Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение empenoso » 24 янв 2018, 17:53

Должна быть унификация - однократное нажатие - параметр m=1, удерживание параметр m=2, но в выдаче этот параметр всегда должен быть - иначе алгоритм считывания не прописывается. Нет параметра - ошибка.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 24 янв 2018, 18:45

Исторически так сложилось, что:
- без параметра "m" -> нажатие
- "m=1" -> отжатие
- "m=2" -> удержание

Логика была простая. Зачем передавать лишние данные, когда "сервер" и так разберется?
if ( empty($_GET['m']) )
echo "Нажатие"";

Вообще это довольно забавно, когда маленькое устройство, тратя на это свои ресурсы и передавая в общем-то бесполезную информацию, должно подстраивать свою выдачу под сервер, который потенциально все умеет, но как бы не царское это дело... Устройство, конечно, не переломится передавать "m=0" при работе по MQTT. Просто напомню, что протокол якобы позиционируется как "экономичный" транспорт для IoT в сравнении с HTTP, а по факту получается по-разному...

alex946
Сообщения: 204
Зарегистрирован: 05 дек 2015, 22:48
Контактная информация:

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение alex946 » 24 янв 2018, 18:55

m=1 зарезервировано для сигнала о размыкании, это написано в инструкции. Возможно, для унификации имело бы смысл прописать m=0 в момент срабатывания входа, но это значение и так получается в процессе приведения переменной m к типу, а эта процедура является обязательной к применению

Андрей, мне кажется, empty($_GET['m']) это не очень надёжный метод,  settype как-то спокойнее, особенно если со встречной проверкой. Мало ли что пришлют в этой "m"
Последний раз редактировалось alex946 25 янв 2018, 15:20, всего редактировалось 1 раз.

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение martiniman » 25 янв 2018, 14:41

Значение должно быть всегда, если есть событие.

alex946
Сообщения: 204
Зарегистрирован: 05 дек 2015, 22:48
Контактная информация:

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение alex946 » 25 янв 2018, 15:25

Не совсем так. Неудобной и даже опасной является только такая ситуация, при которой отсутствие переменной в GET-запросе (в данном случае m) и её присутствие с нулевым значением обозначают разные сигналы от контроллера. Другие же случаи особого значения не имеют. Ну, может быть, в реализации  MQTT это ещё может как-то сыграть (тут ещё не разобрался в вопросе)

r7s
Сообщения: 34
Зарегистрирован: 24 янв 2018, 10:20

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение r7s » 25 янв 2018, 15:37

Все зависит от кода парсинга. В некоторых языках отсутствующая переменная и нулевая - одно и то же, в некоторых - нет.
Если язык разделяет эти понятия (или не дает обработать как одно), то для отсутствующей надо писать отдельный код, для значений - отдельный. Код начинает выглядит по разному возникает неоднообразность.
В целом это не страшно и не фатально. Хотя гарантированное наличие значения сильно упростит код. С другой стороны при приеме чего то из внешнего источника - проверка корректности значений (в т.ч. и их наличия) - все равно обязана быть.
Поэтому насчет m=0 - думаю было бы хорошо, но не особо важно. Важнее, как уже заметили выше, что бы отсутствие m и m=0 не начали означать разные вещи. Вне зависимости от HTTP или MQTT.

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение empenoso » 25 янв 2018, 15:49

Prokol писал(а):
22 янв 2018, 18:05
empenoso писал(а):
21 янв 2018, 21:19
Как-то можно физически не находясь рядом с мегой сэмулировать нажатие физической кнопки, подключенной к меге (желательно длительное нажатие)?
Подключить Out к In и управляя Out
А так кстати не хочет работать почему-то.
r7s писал(а):
25 янв 2018, 15:37
Поэтому насчет m=0 - думаю было бы хорошо, но не особо важно. Важнее, как уже заметили выше, что бы отсутствие m и m=0 не начали означать разные вещи. Вне зависимости от HTTP или MQTT.
Вы правы, наличие или отсутствие не начали означать разные вещи, но для кода было бы лучше унификация, если нет m в выдаче, то лучше уж m=0 начать выдавать. Во всяком случае опенхаб перестанет ошибками сыпать :?

Vadim
Сообщения: 122
Зарегистрирован: 04 мар 2017, 17:38

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Vadim » 25 янв 2018, 16:29

empenoso писал(а):
25 янв 2018, 15:49
А так кстати не хочет работать почему-то.
OUT на каком модуле используете?
SD работать не будет в данном случае, подойдут только модули R (с реле)

Igor78
Сообщения: 143
Зарегистрирован: 26 янв 2015, 14:44
Откуда: Москва

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Igor78 » 25 янв 2018, 17:17

Andrey_B писал(а):
23 янв 2018, 17:39
..Теперь можно вывести текст (подпись) мелко
Вот так: http://192.168.0.14/sec/?pt=31&text=test&col=0&row=0
Здесь col и row - координаты (колонка, ряд), откуда выводить текст.
Проверил, работает.

Непонятно только как правильно очищать строку: ...text=_____________________________________&col=0&row=0 очищает только около 40% строки, поэтому приходится делать в три запроса:
...text=_________________________&col=0&row=0
...text=_________________________&col=40&row=0
...text=_________________________&col=80&row=0
С уважением, Игорь

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 25 янв 2018, 17:53

https://ab-log.ru/files/File/megad-2561 ... a2-hex.zip
Попробуйте так.
http://192.168.0.14/sec/?pt=31&disp_cmd=1&row=0
где row - ряд, который нужно очистить.

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение empenoso » 25 янв 2018, 21:40

Andrey_B писал(а):
24 янв 2018, 18:45
Исторически так сложилось, что:
- без параметра "m" -> нажатие
- "m=1" -> отжатие
- "m=2" -> удержание

Устройство, конечно, не переломится передавать "m=0" при работе по MQTT. Просто напомню, что протокол якобы позиционируется как "экономичный" транспорт для IoT в сравнении с HTTP, а по факту получается по-разному...
Хорошо что есть история, но когда в текущем моменте не начинают работать вроде как простые вещи, и их воплощение становится сложным - не есть хорошо. Народ ропщет: https://www.ab-log.ru/forum/viewtopic.p ... =80#p31060
Может быть уже добавить m0?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 26 янв 2018, 17:15

empenoso писал(а):
25 янв 2018, 21:40
Народ ропщет
https://ab-log.ru/files/File/megad-2561 ... a3-hex.zip

Добавил m:0 для MQTT.

Vadim
Сообщения: 122
Зарегистрирован: 04 мар 2017, 17:38

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Vadim » 28 янв 2018, 02:27

Andrey_B писал(а):
23 янв 2018, 14:52
Vadim писал(а):
23 янв 2018, 14:34
Wiegand34 не планируется?
Пока не было в этом особой необходимости. Как возникнет, подумаем.
Если смотреть считыватели NFC, то в большинстве случаев, там уже W34

hawkeye
Сообщения: 98
Зарегистрирован: 06 окт 2016, 22:16

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение hawkeye » 28 янв 2018, 10:54

Тут уже писали, но напишу ещё раз: при обновлении с 4.22b9 на 4.23b3 получил:
Writing firmware... FAULT
Please update firmware in recovery mode (-f -e)
Соответственно пришлось шить в аварийном режиме.

hawkeye
Сообщения: 98
Зарегистрирован: 06 окт 2016, 22:16

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение hawkeye » 28 янв 2018, 11:06

У меня был ранее баг с задержками включения света из-за некорректной для меги настройки nginx (из-за Chunked transfer encoding), потому решил чразу спросить (может что ещё не досматриваю...)
Сейчас дошло время до ioBroker-а, переключил меги на него и получаю такую картину:
иногда при щелчке выключателем свет загарается с задержкой до 5 секунд. Это воспроизводится не каждый раз, но если щелкать, то легко воспроизводится.
Записал дамп на сервере, вижу, что событие срабатывания кнопки на сервер прилетает, ответ мгновенный,
тут же посылается команда на включение порта, мега мгновенно отвечает "Done", но свет зажигается спустя 4-5 секунд.
Собственно прошу, если есть время, посмотреть дамп. Из него не видно задержки, но она реально была!
Вложения
a.zip
(962 байт) 93 скачивания

Taurus
Сообщения: 56
Зарегистрирован: 23 мар 2015, 14:15

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Taurus » 28 янв 2018, 11:25

hawkeye писал(а):
28 янв 2018, 11:06
У меня был ранее баг с задержками включения света из-за некорректной для меги настройки nginx (из-за Chunked transfer encoding)...
Можно попросить рассказать об этом более подробно? Что в паре с nginx работало? PHP через php-fpm?
Заранее спасибо.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 28 янв 2018, 11:25

Из дампа видно, что выключатель подключен к одному контроллеру, а команда на включение света (а точнее на установку значения 30 для ШИМ порта) отправляется другому контроллеру.
Никаких задержек в дампе не видно. Куда в действительности подключена лампа, на которой происходит задержка?


hawkeye
Сообщения: 98
Зарегистрирован: 06 окт 2016, 22:16

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение hawkeye » 28 янв 2018, 11:40

Taurus Да, в nginx c php-fpm. После рекомендаций Андрея всё стало шикарно.
Andrey Вы всё правильно поняли. Кнопка на 14-ом контроллере. Лампа на 15 контроллере на порту 30.
Собственно такая же ситуация и по отдельности с каждым из контроллеров. кнопка на 15ом и лампа на 15ом. Пока всё отправлялось на сервер с nginx, который просто отвечал 'd' всё было 100% быстро.
Возникновение задержек произошло при переезде на ioBroker.
В реальном времени смотрю tcpdump и дергаю кнопку - подтверждение включения лампы на сервер приходит, а лампа загорается через несколько (до 5 секунд).

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 28 янв 2018, 11:45

Нужны скриншоты сетевых настроек обоих контроллеров.
Нужны скриншоты входа P0, к которому подключен выключатель на 14-м контроллере и выхода P12, куда подключена лампа на 15-м контроллере.
Дело тут явно в настройках.

Ответить