Chainik писал(а): ↑Вс сен 02, 2018 10:53 pm
Mr.Lia писал(а): ↑Вс сен 02, 2018 9:31 pm
...Такой вопрос, как реализовать команды типа 12:^;7:2 и т.п.?
Собственно, для управления диммированием не обязательно нужно использовать модуль MegaD.
Примерная схема действий такая. Предположим, что диммируемая нагрузка подключена к порту P13.
1. Создаете Объект диммера, например, "
Dimmer01". У него должно быть свойство "
value".
2. Пусть у Объекта
Dimmer01 будет "общеклассовый" метод, где расположен алгоритм этого процесса. Назовем метод, к примеру, "
dimming".
Код метода такой:
Код: Выделить всё
$val = $this->getProperty('value');
$val = round(($val/100)*255, 0);
$command="http://192.168.0.14/sec/?cmd=13:".$val;
file_get_contents($command);
Тут пересчитываются проценты (от 0 до 100) в диапазон для ШИМ-порта Меги (от 0 до 255).
3. Создаете в меню объект Слайдер. Задаете мин.значение "0" и макс. "100". Шаг изменений - 1. Выставляете Связанный объект
Dimmer01, Свойство
value, Метод
dimming.
В простейшем случае это все. Сейчас проверить не на чем, но по идее, должно работать.
Прошу помочь настроить свет перед самым НГ.
Захотелось плавного света, но начал с простого вкл/выкл через Простые устройства.
@Chainik предложил способ замены команд, но топорно выходит реализовать.
В коде TurnOn поставил команду file_get_contents("
http://192.168.2.12/sec/?pt=12&pwm=255&cnt=2");
Если не менять опцию "Вызывать родительский метод" на "Перед", то вначале MD шлет команду на 100 на стандартный метод MegaD порта, где стоит плавное включение опцией Smooth, а потом мой код шлет другую команду 255.
Если убрать родительский метод - выбрать "Никогда", то Простое устройство не реагирует на нажатие, индикатор не загорается. Лампа включается, но не выключается, видимо, MD думает, что устройство не включилось.
Может есть какая настройка по пересчету %Majordomo в %MegaD? Каждый метод переписывать у каждого устройства не гуд.
Второй вопрос про разметку списка Простые устройства.
На скриншоте видно - поле выбора % налезает на название лампы и вообще не видно. Как исправить?