MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Модератор: immortal

Chainik
Сообщения: 1387
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 230 раз
Поблагодарили: 433 раза

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение Chainik » Ср мар 22, 2017 4:15 pm

AndySaf39 писал(а):Насколько я понял, пока для диммируемых устройств даже типа элемента не предусмотрено... Но как то же это можно наверное сделать?
Если речь о программной реализации, то сделать однозначно можно. Есть, например, элемент "слайдер" (в меню). Его, кстати, можно продублировать и на сцене. К нему можно привязать скрипт или метод, в котором будет выставляться значение ШИМ, подаваемое с Меги.
Если значение ШИМ допустим, на P11, нужно выставить, к примеру "150" (в диапазоне от 0 до 255), то код в скрипте будет:

Код: Выделить всё

file_get_contents("http://192.168.0.14/sec/?cmd=11:150");
Значение, выставляемое слайдером, нужно "повесить" на какое-нибудь свойство.
Единственное, нужно "зашить" значение, получаемое из слайдера в ПЕРЕМЕННУЮ и "склеить" строку "http://192.168.0.14/sec/?cmd=11:"&&ПЕРЕМЕННАЯ средствами PHP.
Сам такого пока не делал, но когда получу "железо", попробую обязательно.

Там в меню еще было что-то вроде кнопок +/-. Думаю, их можно наравне со слайдером использовать.

PS. Проверить пока не могу (Мажордомо вне досягаемости), но код скрипта, выполняемого после изменения значения слайдера, будет примерно такой:

Код: Выделить всё

$value=getGlobal("Объект.свойство_значение_слайдера");
$command="http://192.168.0.14/sec/?cmd=11:".$value;
file_get_contents($command);
PPS. Еще Сергей написал модуль "Простые устройства / Simple Devices".
viewtopic.php?f=7&t=3574&p=43111&hilit= ... %80#p43111
Там есть объект "Диммер". Сам не пользовался, поэтому не знаю, что к чему.
За это сообщение автора Chainik поблагодарил:
profx5016 (Пн июн 12, 2017 8:40 pm)
Рейтинг: 1.18%
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение profx5016 » Пн июн 12, 2017 8:40 pm

Всем привет! Помогите очень начинающему!) Не могу никак осилить диммер на слайдере. Есть обычный такой слайдер в меню управления:
https://www.dropbox.com/s/nusv4516n6ih2m6/1.JPG?dl=0
Есть Megad . нагрузка подключена к 13 порту. В настройках вот это:
https://www.dropbox.com/s/8yynjguj6r34qf5/2.JPG?dl=0
В простых устройствах добавил «управляемый диммер»:
https://www.dropbox.com/s/r11qg61crkt5wwl/3.JPG?dl=0
В megad наклацал вот это:
https://www.dropbox.com/s/iv774rhde89cbgg/4.JPG?dl=0
В меню управления, на слайдере натворил вот это:
https://www.dropbox.com/s/1hapwh2osf5t4m3/5.JPG?dl=0
Понимаю, что я должен сделать что-то еще, но не понимаю что). А есть большая вероятность, что я даже сделал что-то не так). Прошу помощи, ребят, не кидайтесь шапками).
Chainik
Сообщения: 1387
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 230 раз
Поблагодарили: 433 раза

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение Chainik » Пн июн 12, 2017 9:28 pm

Простые устройства не пробовал, да и на картинках ничего разглядеть не смог. Но готов поделиться своей реализацией реакции на слайдер. Правда, у меня слайдером регулируется скорость вращения двигателя в диапазоне от 0 до 255, однако принципиально все то же самое.

В меню создан слайдер, который связан с Объект.Свойством "RollorBlind_2.Speed_1". Т.е. в поле "связанный объект" выставлено "RollorBlind_2", а в поле "Свойство" - "Speed_1". Таким образом, при изменении положения ползунка на слайдере меняется значение свойства "RollorBlind_2.Speed_1". В "Код" вписан код PHP

Код: Выделить всё

$Speed=gg('RollorBlind_2.Speed_1');
$command="http://192.168.0.21/sec/?cmd=25:".$Speed;
file_get_contents($command); 
Таким образом вновь установленное ползунком слайдера значение "запихивается" в команду, отправляемую Меге. Как видно ШИМ-сигнал задается для порта P25.
За это сообщение автора Chainik поблагодарил:
profx5016 (Пн июн 12, 2017 10:46 pm)
Рейтинг: 1.18%
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение profx5016 » Пн июн 12, 2017 10:56 pm

Спасибо, добрейший! С этим, благодаря Вашей помощи, разобрался и все мне стало понятно!
Chainik писал(а): В меню создан слайдер, который связан с Объект.Свойством "RollorBlind_2.Speed_1". Т
Вот теперь мне не понятно, как описать это свойство в объекте. Простите... =(
Я так понимаю, должен где-то быть описан метод, который добавит эти свойства в "RollorBlind_2"?
Chainik
Сообщения: 1387
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 230 раз
Поблагодарили: 433 раза

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение Chainik » Пн июн 12, 2017 11:10 pm

profx5016 писал(а):Вот теперь мне не понятно, как описать это свойство в объекте. Простите... =(
Я так понимаю, должен где-то быть описан метод, который добавит эти свойства в "RollorBlind_2"?
Не совсем понял вопрос.
Чтобы добавить свойство к какому-либо объекту, нужно просто в классе, где расположен этот объект или в самом объекте на вкладке "Свойства" внизу есть поле "Добавить новое свойство". Вписываем в это поле новое свойство и нажимаем кнопку "Обновить".

Если мы добавляем новое свойство к классу, то это свойство появляется сразу у всех объектов, находящихся внутри этого класса.
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение profx5016 » Пн июн 12, 2017 11:32 pm

Chainik писал(а): Не совсем понял вопрос.
Чтобы добавить свойство к какому-либо объекту, нужно просто в классе, где расположен этот объект или в самом объекте на вкладке "Свойства" внизу есть поле "Добавить новое свойство". Вписываем в это поле новое свойство и нажимаем кнопку "Обновить".

Если мы добавляем новое свойство к классу, то это свойство появляется сразу у всех объектов, находящихся внутри этого класса.
Я может запутал Вас потому как сам еще путаюсь в объектах, свойствах и иерархии. Я создам свойство, но я не получу от него толк, ведь в свойство должно передаваться какое-то значение от работы метода. Я к тому клоню, что я не знаю php)). Вот у Вас слайдером регулируются обороты двигателя. Как меняется значение свойства speed_1 в зависимости от положения ползунка? Это же что-то накодить нужно).
Chainik
Сообщения: 1387
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 230 раз
Поблагодарили: 433 раза

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение Chainik » Пн июн 12, 2017 11:51 pm

Чтобы получить толк от свойства, нужно чтобы что-то (метод, код PHP, сценарий и т.д.) меняло значение этого свойства.
В случае со слайдером значение свойства будет меняться при изменении положения ползунка слайдера. Мы же ведь связали наш Объект.Свойство с объектом слайдера в меню (сослались на Объект.Свойство в настройках слайдера). Значение связанного Объект.Свойства будет изменяться в момент отпускания ползунка слайдера в новом положении.

А чтобы помимо изменения Объект.Свойства у нас и Мега что-то отрабатывала (после перемещения ползунка слайдера), я и вписал в настройки слайдера код PHP, который указал выше.

Кстати на ab-log есть ветка, где некоторые вещи по Мажордомо показаны в картинках (http://ab-log.ru/forum/viewtopic.php?f=1&t=1328).
За это сообщение автора Chainik поблагодарил:
profx5016 (Вт июн 13, 2017 12:31 am)
Рейтинг: 1.18%
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение profx5016 » Вт июн 13, 2017 12:30 am

Chainik писал(а):Чтобы получить толк от свойства, нужно чтобы что-то (метод, код PHP, сценарий и т.д.) меняло значение этого свойства.
В случае со слайдером значение свойства будет меняться при изменении положения ползунка слайдера. Мы же ведь связали наш Объект.Свойство с объектом слайдера в меню (сослались на Объект.Свойство в настройках слайдера). Значение связанного Объект.Свойства будет изменяться в момент отпускания ползунка слайдера в новом положении.

А чтобы помимо изменения Объект.Свойства у нас и Мега что-то отрабатывала (после перемещения ползунка слайдера), я и вписал в настройки слайдера код PHP, который указал выше.

Кстати на ab-log есть ветка, где некоторые вещи по Мажордомо показаны в картинках (http://ab-log.ru/forum/viewtopic.php?f=1&t=1328).
В очередной раз меня выручаете! Теперь стало более-менее ясно. И за ссылочку отдельное спасибо!
Аватара пользователя
profx5016
Сообщения: 21
Зарегистрирован: Вт май 23, 2017 12:08 pm
Откуда: Беларусь
Благодарил (а): 13 раз
Поблагодарили: 0

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение profx5016 » Сб июл 29, 2017 8:55 pm

Доброго времени суток! Нужна помощь следующего характера. Хочу написать php, результатом работы которого будет увеличение значения свойства объекта на заданное число по клику. Возможно я захожу с огорода, но другого решения пока не могу придумать.
Делаю кнопочный (физический) диммер. По-сути две кнопки подключеные к входам 7i7o. При первом нажатии на одну кнопку значение увеличивается, допустим, до 51 и пишется в свойство объкета для диммера (который описан выше). Не могу понять, как мне сделать так, чтобы при последующем клике значение увеличилось до 102... Т.е. К примеру, через MDM слайдер выставлено значение 15. Если кликнуть на кнопку выключателя (на увеличение яркости), значение становится 51. Еще раз нажать - 102 и так далее до 255. Не понятна, кроме реализация последующих нажатий((. В Меге есть функция ^,v,x для работы с сервером, но мне также не понятен принцип его работы. Хелп, по возможности.
Chainik
Сообщения: 1387
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 230 раз
Поблагодарили: 433 раза

Re: MegaD, ab-log.ru, MegaD-328, Контроллер ввода/вывода

Сообщение Chainik » Сб июл 29, 2017 10:51 pm

Можно попробовать так.

Код: Выделить всё

//Допустим, кнопка для увеличения яркости подключена к порту P1,
//а кнопка для уменьшения яркости подключена к порту P2

//Узнаем текущее значение яркости
$brightness=gg(Lemp1.brightness);
//Если сработала кнопка P1 (увеличение яркости)
if ( $_GET['pt'] == "1" ) {
if (round(($brightness/255)/2,1)*10 == 0 ) {
sg(Lemp1.brightness,51);
return"";
}
if (round(($brightness/255)/2,1)*10 == 1 ) {
sg(Lemp1.brightness,102);
return"";
}
if (round(($brightness/255)/2,1)*10 == 2 ) {
sg(Lemp1.brightness,153);
return"";
}
if (round(($brightness/255)/2,1)*10 == 3 ) {
sg(Lemp1.brightness,204);
return"";
}
if (round(($brightness/255)/2,1)*10 == 4 ) {
sg(Lemp1.brightness,255);
return"";
}
if (round(($brightness/255)/2,1)*10 == 5 ) {
sg(Lemp1.brightness,255);
return"";
}
}

//Если сработала кнопка P2 (уменьшение яркости)
if ( $_GET['pt'] == "2" ) {
if (round((255/$brightness)/2,1)*10 == 0 ) {
sg(Lemp1.brightness,0);
return"";
}
if (round(($brightness/255)/2,1)*10 == 1 ) {
sg(Lemp1.brightness,0);
return"";
}
if (round(($brightness/255)/2,1)*10 == 2 ) {
sg(Lemp1.brightness,51);
return"";
}
if (round(($brightness/255)/2,1)*10 == 3 ) {
sg(Lemp1.brightness,102);
return"";
}
if (round(($brightness/255)/2,1)*10 == 4 ) {
sg(Lemp1.brightness,153);
return"";
}
if (round(($brightness/255)/2,1)*10 == 5 ) {
sg(Lemp1.brightness,204);
return"";
}
} 
За это сообщение автора Chainik поблагодарил:
profx5016 (Вт авг 15, 2017 8:51 pm)
Рейтинг: 1.18%
Ответить