[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

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

Re: [Модуль] MegaD (megad)

Сообщение Chainik » Пт мар 08, 2019 1:35 pm

John писал(а):
Пт мар 08, 2019 12:04 pm
После обновления модуля пропали свойства объекта, связанные с MegaD, теперь там нет IP, пароля и порта. Как теперь привязывать объект к конкретному девайсу?
Сегодня обновлял систему, включая все установленные приложения, у меня ничего не пропало.
Вам, видимо, снова стоит добавить девайсы в модуль, а уж потом снова привязывать объекты/методы/свойства к портам конкретного MegaD.
AndrewS
Сообщения: 114
Зарегистрирован: Пт апр 15, 2016 10:18 am
Откуда: 21RU
Благодарил (а): 3 раза
Поблагодарили: 17 раз
Контактная информация:

Re: [Модуль] MegaD (megad)

Сообщение AndrewS » Вс мар 17, 2019 9:18 pm

Модуль получился замечательный, но у меня 2 вопроса.

1. Как после отправки команды на смену состояния реле, получить состояние выхода реле?
Распарсивать ответ file_get_contents или можно заставить контроллер отправить ответ на сервер?

2. Как инвертировать состояние? Сейчас использую свой метод и дополнительное свойство, может я чего то не знаю?
Слабость - велика, а сила - ничтожна.
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
Chainik
Сообщения: 824
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 99 раз
Поблагодарили: 237 раз

Re: [Модуль] MegaD (megad)

Сообщение Chainik » Вс мар 17, 2019 9:58 pm

AndrewS писал(а):
Вс мар 17, 2019 9:18 pm
Модуль получился замечательный, но у меня 2 вопроса.

1. Как после отправки команды на смену состояния реле, получить состояние выхода реле?
Распарсивать ответ file_get_contents или можно заставить контроллер отправить ответ на сервер?
Например, отправляем команду на включение реле на порту P7:

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

file_get_contents("http://192.168.0.14/sec/?cmd=7:1");
Узнаем текущее состояние реле:

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

$state = file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
При этом в переменную $state сохранится "ON" (или "OFF", если реле выключено).
AndrewS писал(а):
Вс мар 17, 2019 9:18 pm
2. Как инвертировать состояние? Сейчас использую свой метод и дополнительное свойство, может я чего то не знаю?
Не совсем понял вопрос. Если просто переключить реле в противоположное состояние, то

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

file_get_contents("http://192.168.0.14/sec/?cmd=7:2");
За это сообщение автора Chainik поблагодарил:
AndrewS (Вс мар 17, 2019 10:37 pm)
Рейтинг: 1.37%
AndrewS
Сообщения: 114
Зарегистрирован: Пт апр 15, 2016 10:18 am
Откуда: 21RU
Благодарил (а): 3 раза
Поблагодарили: 17 раз
Контактная информация:

Re: [Модуль] MegaD (megad)

Сообщение AndrewS » Вс мар 17, 2019 10:37 pm

Chainik писал(а):
Вс мар 17, 2019 9:58 pm
Узнаем текущее состояние реле:

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

$state = file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
При этом в переменную $state сохранится "ON" (или "OFF", если реле выключено).
Спасибо, то что нужно.
Chainik писал(а):
Вс мар 17, 2019 9:58 pm

Не совсем понял вопрос. Если просто переключить реле в противоположное состояние, то

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

file_get_contents("http://192.168.0.14/sec/?cmd=7:2");
Нет, уточню вопрос. Схема распайки реле может не совпадать с текущим состоянием объекта. Ну NO и NC контакты, например я послал сигнал на включение 7:1, выход стал ON, обратно вернулось состояние 0 и теперь у меня в простых устройствах нагрузки отображается выключенной.
Теперь с ответом "ON" или "OFF" все проще, переверну в методе, но может есть какая то настройка?
Слабость - велика, а сила - ничтожна.
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
Chainik
Сообщения: 824
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 99 раз
Поблагодарили: 237 раз

Re: [Модуль] MegaD (megad)

Сообщение Chainik » Вс мар 17, 2019 11:29 pm

C простыми устройствами не подскажу, т.к. ими не пользуюсь.
Еще почерпнуть идеи можно здесь (https://ab-log.ru/forum/viewtopic.php?f=1&t=1328).
Особенно рекомендую обратить внимание на пример настройки в самом конце своего первого длинного поста после подзаголовка "ДОПОЛНЕНИЕ".
cyber3
Сообщения: 1
Зарегистрирован: Сб мар 23, 2019 11:03 am
Благодарил (а): 0
Поблагодарили: 0

Re: [Модуль] MegaD (megad)

Сообщение cyber3 » Сб мар 23, 2019 11:07 am

Подскажите, что нужно сделать, чтобы у кнопки появился тип "long_press". У меня после обновления модуля только у части кнопок есть такой тип и не на тех где нужно. Корреляцию с Mode не обнаружил.
Chainik
Сообщения: 824
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 99 раз
Поблагодарили: 237 раз

Re: [Модуль] MegaD (megad)

Сообщение Chainik » Сб мар 23, 2019 11:48 am

cyber3 писал(а):
Сб мар 23, 2019 11:07 am
Подскажите, что нужно сделать, чтобы у кнопки появился тип "long_press". У меня после обновления модуля только у части кнопок есть такой тип и не на тех где нужно. Корреляцию с Mode не обнаружил.
Хороший вопрос. Сам тут уже спрашивал, где после обновления найти новый функционал (long_press, release, click, double_click).

Остальные молчат, наверное, у них все работает...
OlegM
Сообщения: 47
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: [Модуль] MegaD (megad)

Сообщение OlegM » Вт мар 26, 2019 9:16 pm

Chainik писал(а):
Сб мар 23, 2019 11:48 am
Хороший вопрос. Сам тут уже спрашивал, где после обновления найти новый функционал (long_press, release, click, double_click).

Остальные молчат, наверное, у них все работает...
Я об этом писал еще выше. В итоге от автора ответа не получил и сам добавил их в templates/megad/megaddevices_edit_property.html
Вот что получилось в итоге.

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

              <select name="command" class="form-control">
                    <option value=""></option>
                    <option value="input"[#if PROPERTY_COMMAND="input"#] selected[#endif#]>IN</option>
                    .........................................
                    <option value="raw"[#if PROPERTY_COMMAND="raw"#] selected[#endif#]>RAW command</option>
                    
		    <option value="long_press"[#if PROPERTY_COMMAND="long_press"#] selected[#endif#]>Long press</option>
		    <option value="release"[#if PROPERTY_COMMAND="release"#] selected[#endif#]>Release</option>
		    <option value="click"[#if PROPERTY_COMMAND="click"#] selected[#endif#]>Click</option>
		    <option value="double_click"[#if PROPERTY_COMMAND="double_click"#] selected[#endif#]>Double click</option>
                </select>
Часть туда Сергей добавил в обновление от 15.03 (Clic, Double click и Release), а long_press там почему то до сих пор нет. Поэтому пока и не обновляю этот модуль.
OlegM
Сообщения: 47
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: [Модуль] MegaD (megad)

Сообщение OlegM » Вс мар 31, 2019 3:29 am

Есть серьезная проблема.
Часто сервер не отрабатывает нажатие кнопки. Например такая ситуация:
Нажимаю клавишу, в логах на сервере отображается, а в данных остаются старые показания. Это заметил пока что для шим настройки. Т.е. было к примеру выставлена яркость 80. После короткого нажатия клавиши, свет гаснет, а в данных на сервере в модуле продолжает отображаться старые данные, до тех пор пока не нажмешь в модуле кнопку "Обновить". После этого данные обновляются до следующего нажатия клавиши.
Chainik
Сообщения: 824
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 99 раз
Поблагодарили: 237 раз

Re: [Модуль] MegaD (megad)

Сообщение Chainik » Вс мар 31, 2019 9:54 am

Ну да, бывает иногда такое. Щелкаешь коротко "железной" кнопкой, а модуль по каким-то причинам не отрабатывает и, соответственно, интерфейсные элементы остаются в неактуальном состоянии. Правда, не заметил, чтобы это было часто.
А на вкладке "Данные" информация обновляется, насколько я понял, только при загрузке/перезагрузке страницы или по нажатию кнопки "Обновить".
Ответить