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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 4126
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 02 дек 2017, 12:39

Vadim писал(а): Все так, но больно заманчиво использовать под сервак SoC решения с EMMC Flash из-за габаритов и низкого энергопотребления.
По поводу их надежности, уж как повезет с системой и БП.
Использую Orange Pi Plus 2E + Armbian. Особых нареканий пока нет.
Но бывало сервак полностью зависал из-за Beta версий серверного ПО. Знаю, для этого есть wdog, да и беты на продуктив ставить не стоит. :-)
Не вижу смысла гнаться за низким потреблением в ущерб надежности. Это как выбрать для поездки велосипед на ножной тяге, чтобы сэкономить на покупке пары литров бензина.
Специфика сервера для Умного Дома - сбор, хранение, обработка множества мелких данных. А это означает большое количество операций записи. eMMC и прочие SD-карты не слишком для этого подходят. Я бы предпочел иметь сервер с архаичным HDD, лучше промышленного назначения, или в крайнем случае с качественным SSD, вместо не пойми какой eMMC.
И я бы не стал ставить на сервер "testing" и "unstable" версии ОС.
Vadim писал(а):Кстати. по поводу ширковещательных пакетов.... раз уж тема зашла. :-) Отправляю на оценку целесообразности (понимаю ,что это можно сделать на сервере).
Одна из самых востребованных функций для управления светом, на мой взгляд, это центральное включение\выключение всех\отдельной группы осветительных приборов.
Идея, конечно, интересная, но будет ли кто-то реально пользоваться такой функцией?..
Кроме того, реализация подобной функции возможно только в том случае, если пароли у разных устройств будут одинаковыми.
Vadim писал(а):Как бонус, в т.ч. можно было бы сократить размеры полей NET. Зачем указывать IP, если можно на контроллере портам присвоить номер группы и обрабатывать широковещательный трафик с номером этой группы (как распределить эту группу по контроллерам это уже задача\фантазия владельца)?
IP-адрес в Net и сейчас занимает немного - всего 4 байта. Много не сэкономишь.
А еще широковещательный трафик часто по умолчанию блокируется роутерами.

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

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

Сообщение Andrey_B » 02 дек 2017, 12:56

orlov писал(а):Нет, мне надо получить надежное значение текущего состояния порта. Либо программно отключить порт, чтобы никакие команды не могли включить прибор. Я так понимаю сейчас это невозможно? Т.е. нет возможности поставить порт в значение "Disable"
Давайте так.
Надежное значение значение текущего состояния порта можно получить только в том случае, если настройка порта соответствует подключенному исполнительному модулю. Если вы подключили аппаратный выход, а в качестве типа порта выбрано что-то отличное от OUT, то о какой надежности можно говорить?
Тип порта "Disabled" не предусмотрен в контроллере, потому что в этом не было никакой необходимости. К слову, в микроконтроллерах такого состояния пина также нет.
Тип порта "NC" (буквально Not Configured) не означает "Disabled". Почему - я подробно описал вам в предыдущем сообщении. NC скорее нужно воспринимать как "не определен". О какой надежности в этой ситуации может идти речь?
Если уж вы хотите на лету отключить выход, чтобы он не мог управляться ошибочными командами, переведите его в состояние "IN". В этом случае команды управления этим портом выполняться не будут. Ни к каким поломкам в исполнительном модуле это не приведет.
"cmd=get" для ВЫХОДА будет давать гарантированно правильный результат ТОЛЬКО если порт настроен как OUT.

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

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

Сообщение Vadim » 02 дек 2017, 13:17

Andrey_B писал(а): Не вижу смысла гнаться за низким потреблением в ущерб надежности. Это как выбрать для поездки велосипед на ножной тяге, чтобы сэкономить на покупке пары литров бензина.
Специфика сервера для Умного Дома - сбор, хранение, обработка множества мелких данных. А это означает большое количество операций записи. eMMC и прочие SD-карты не слишком для этого подходят. Я бы предпочел иметь сервер с архаичным HDD, лучше промышленного назначения, или в крайнем случае с качественным SSD, вместо не пойми какой eMMC.
Все зависит от личного отношения к этому вопросу и реализации.
Я стараюсь навешивать основной функционал на контроллеры (это и быстрее и надежней), а приятные плюшки на сервер.
Для стат. данных - есть резервное копирование.
Т.е. временная потеря сервера абсолютно не критична.
В т.ч. не критично потерять немножко стат. данных.

eMMC вполне "пойми какая" ;-)
16Gb - KLMAG2WEPD-B031
http://www.datasheetspdf.com/pdf/959544 ... EPD-B031/1
Andrey_B писал(а):
Vadim писал(а):Кстати. по поводу ширковещательных пакетов.... раз уж тема зашла. :-) Отправляю на оценку целесообразности (понимаю ,что это можно сделать на сервере).
Одна из самых востребованных функций для управления светом, на мой взгляд, это центральное включение\выключение всех\отдельной группы осветительных приборов.
Идея, конечно, интересная, но будет ли кто-то реально пользоваться такой функцией?..
Кроме того, реализация подобной функции возможно только в том случае, если пароли у разных устройств будут одинаковыми.
- Тут только время покажет, кому это необходимо.
Все зависит от количества контроллеров. У меня лично получается на домв 200кв.м. только для света около 40 групп.
Кто сможет уложиться в 14 групп и одним контроллером, наверно будет не интересно.
- В рамках одного дома не думаю, что есть потребность в разных паролях.
Andrey_B писал(а):
Vadim писал(а):Как бонус, в т.ч. можно было бы сократить размеры полей NET. Зачем указывать IP, если можно на контроллере портам присвоить номер группы и обрабатывать широковещательный трафик с номером этой группы (как распределить эту группу по контроллерам это уже задача\фантазия владельца)?
IP-адрес в Net и сейчас занимает немного - всего 4 байта. Много не сэкономишь.
А еще широковещательный трафик часто по умолчанию блокируется роутерами.
- Тут важно даже не экономия места, а возможность писать в NET больше одной команды (по аналигии с ACT).
Даже можно сказать так, при наличии подобного механизма само поле NET уже кажется рудиментом, пропадают грани между отдельными контроллерами.
Все можно и в ACT организовать.
-Если мы говорим о большой установке, то портов домашнего роутера все равно не хватит (их обычно 4 шт). И вообще, желательно такие технолические подсети изолировать от прочей домашней сети. Т.е. в любом случае потребуется свитч.
Опять же, можно и в сторону multicast посмотреть.

Еще бонусы:
- замечательная масштабируемость решения, можно более гибко наращивать порты (контроллеры).
- нет головной боли в распределении потребителей между контроллерами.
мы уходим от жесткой привязки к номерам портов, и начинаем работать с идентификаторами (номерами Групп).
- возможность реализации основных функций силами контроллеров в более масштабных инсталляциях.

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

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

Сообщение hawkeye » 03 дек 2017, 02:27

В последней версии кажется не сохраняется значение Freq для PWM портов или по крайней мере в вебморде после сохранения всегда показывает "Norm".
И в 419b9, 420b1 перестала отрабатывать команда d от сервера, откатился на 418b9 - снова работает.

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

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

Сообщение Andrey_B » 03 дек 2017, 12:03

hawkeye писал(а):В последней версии кажется не сохраняется значение Freq для PWM портов или по крайней мере в вебморде после сохранения всегда показывает "Norm".
И в 419b9, 420b1 перестала отрабатывать команда d от сервера, откатился на 418b9 - снова работает.
https://ab-log.ru/files/File/megad-2561 ... a2-hex.zip

Сохранение Freq поправил. А что не так с командой 'd'? У меня работает.

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

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

Сообщение hawkeye » 03 дек 2017, 12:36

У меня при срабатывании входов не выполняется act, например
P5/OFF/4
Type In
Act 12:*255
на версии 418 и ниже всё хорошо.
После обновления на 420 - действие act не срабатывает ни на одной кнопке. Если ставить галку слева от акт - включается успешно.
На сервер как и раньше всё успешно приходит и сервер всегда посылает в ответ "d".
192.168.110.15 - - [03/Dec/2017:12:27:00 +0400] "GET /mmd1.php?pt=5&cnt=3&mdid=15 HTTP/1.1" 200 11 "-" "megad"
Настройки:
IP: 192.168.110.15
Pwd: sec
GW: 192.168.110.254
SRV: 192.168.110.254:8000
SRV Type: HTTP
Script: mmd1.php
Wdog:
Uptime: 0d 00:00
Прошиваю с недавних пор всегда всегда с --ee:
php megad-cfg-2561.php --ip 192.168.110.15 --fw ./megad-2561.hex -p sec --local-ip 192.168.110.136 --ee --read-conf megad.cfg --write-conf megad.cfg
откат на 418 решает проблему. Сейчас перепроверил всё ещё раз - всё по прежнему.
Я не могу понять почему так. Может какой режим дебага сделать, чтобы контроллер какую то отладку отправлял?

Alex_Jet
Сообщения: 913
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 03 дек 2017, 12:49

1. fw: 4.20b1 при запросе ?pt=34&scl=35&i2c_dev=bmx280&i2c_par=1 выдает "11.07", в вебе - "temp:-11.07/press:761.46/hum:81.243"
2. Сохранение настроек Program реализуете?

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

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

Сообщение Andrey_B » 03 дек 2017, 13:30

Alex_Jet писал(а):1. fw: 4.20b1 при запросе ?pt=34&scl=35&i2c_dev=bmx280&i2c_par=1 выдает "11.07", в вебе - "temp:-11.07/press:761.46/hum:81.243"
Попробуйте.
https://ab-log.ru/files/File/megad-2561 ... a3-hex.zip
Alex_Jet писал(а):2. Сохранение настроек Program реализуете?
Вы имеете ввиду скрипт megad-cfg-2561.php?

hawkeye, у меня с вашими настройками команда 'd' срабатывает.
Могу только предложить последовательно устанавливать прошивки, чтобы понять, в какой именно версии у вас перестает работать эта команда.
Если сервер находится в той же IP-сети, что и устройство, GW указывать не нужно и даже в каком-то смысле вредно.
Не обязательно каждый раз делать спрос EEPROM.
Вот здесь я указываю, с какими версиями точно нужно это делать.

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

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

Сообщение hawkeye » 03 дек 2017, 13:46

Проверил все последовательно: 419b5 отрабатывает, 419b6 не работает.
В примечании к релизу написано "- Исправлена ошибка в процедуре взаимодействия с сервером по протоколу HTTP, которая появилась в версии 4.18b9".
У меня видимо это всё сломало. Что поменялось?

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

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

Сообщение Andrey_B » 03 дек 2017, 14:12

hawkeye писал(а):Проверил все последовательно: 419b5 отрабатывает, 419b6 не работает.
В примечании к релизу написано "- Исправлена ошибка в процедуре взаимодействия с сервером по протоколу HTTP, которая появилась в версии 4.18b9".
У меня видимо это всё сломало. Что поменялось?
Возможно, это говорит о том, что у вас на самом деле отрабатывал Act по ошибке в прошивке, а не по команде 'd'.
Попробуйте на 4.19b5 заменить 'd', скажем, на какой-нибудь произвольный символ типа 'k' или 'j'. Не исключено, что будет работать.
'd' в последних версиях работает нормально.
Если у вас есть такая возможность, посмотрите, что сервер отправляет устройству. Я имею ввиду содержимое пакетов. Нет ли там чего-то лишнего.
Перед 'd' не должно быть UTF8 BOM, символов перевода строки, HTML разметки и т.д.

Alex_Jet
Сообщения: 913
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 03 дек 2017, 14:50

Andrey_B писал(а):Попробуйте.https://ab-log.ru/files/File/megad-2561 ... a3-hex.zip
Пока никак. Сервер на дом не перенес...там другая сеть. Специально привозил перепрошитый контроллер.
Andrey_B писал(а):Вы имеете ввиду скрипт megad-cfg-2561.php?
Да, чтобы в соответствующей ветке cf сохранялись настройки.

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

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

Сообщение hawkeye » 03 дек 2017, 18:25

Andrey_B писал(а):
hawkeye писал(а):Попробуйте на 4.19b5 заменить 'd', скажем, на какой-нибудь произвольный символ типа 'k' или 'j'. Не исключено, что будет работать. 'd' в последних версиях работает нормально.
Если у вас есть такая возможность, посмотрите, что сервер отправляет устройству. Я имею ввиду содержимое пакетов. Нет ли там чего-то лишнего.
Перед 'd' не должно быть UTF8 BOM, символов перевода строки, HTML разметки и т.д.
Действительно и на k и на j выполняет в 419b5 act.
Если будет возможность - посмотрите, пожалуйста дамп, вроде только одним символом отвечает.
Вложения
2017-12-03-md.zip
(944 байт) 49 скачиваний

stilet69
Сообщения: 73
Зарегистрирован: 30 июн 2017, 19:14

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

Сообщение stilet69 » 03 дек 2017, 21:11

Андрей хотел бы спросить по поводу MQTT. Каким образом можно получить значение например температуры на порту.
Например имеем на 29 порту DHT22. В каком топике и как получить это значение?

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

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

Сообщение Andrey_B » 03 дек 2017, 21:14

hawkeye писал(а):вроде только одним символом отвечает.
Это не так.
Прекрасно видно, что на вашем сервере работает механизм "Chunked transfer encoding".
Именно он и приводит к передаче лишней информации и сбою в процедуре обмена данными с устройством.
Решение - отключение этого механизма в nginx с помощью: chunked_transfer_encoding off

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

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

Сообщение Andrey_B » 03 дек 2017, 21:24

stilet69 писал(а):Андрей хотел бы спросить по поводу MQTT. Каким образом можно получить значение например температуры на порту.
Например имеем на 29 порту DHT22. В каком топике и как получить это значение?
Пока никак. Можно сделать по аналогии с HTTP. То есть отправлять какую-нибудь команду, похожую на get, в топик megad/14/cmd и получать ответ в топике megad/14.

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

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

Сообщение hawkeye » 03 дек 2017, 22:06

Andrey_B писал(а):Решение - отключение этого механизма в nginx с помощью: cnhuked_transfer_encoding off
Спасибо, помогло.
Теперь осталось разобраться почему netaction вообще перестал работать, с кнопки одной меги не включается порт на второй.
UPD: проблема решена. Если в GW указывать реальный адрес шлюза вместо 255.255.255.255 - то netaction не работает вообще.
Поясните, пожалуйста, что значит во фразе "Если сервер находится в той же IP-сети, что и устройство, GW указывать не нужно и даже в каком-то смысле вредно." - "в каком-то смысле вредно".
Эти две особенности, насчёт chunked и адреса шлюза у меня приводили к таким глюкам как периодическое неотработка netaction, задержки отработки обычных команд. Рад, что никого это больше не затронуло, но наверное стоит это где-то в документации отразить. Чтобы потом не думать, что же за такие свичироутеры в сети, которые фильтруют команды мег.

stilet69
Сообщения: 73
Зарегистрирован: 30 июн 2017, 19:14

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

Сообщение stilet69 » 03 дек 2017, 22:24

Andrey_B писал(а):
stilet69 писал(а):Андрей хотел бы спросить по поводу MQTT. Каким образом можно получить значение например температуры на порту.
Например имеем на 29 порту DHT22. В каком топике и как получить это значение?
Пока никак. Можно сделать по аналогии с HTTP. То есть отправлять какую-нибудь команду, похожую на get, в топик megad/14/cmd и получать ответ в топике megad/14.
А нельзя ли это реализовать? Доступ к MQTT настолько расширит возможности железки...

stilet69
Сообщения: 73
Зарегистрирован: 30 июн 2017, 19:14

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

Сообщение stilet69 » 04 дек 2017, 21:44

Еще вопрос.
Прошивка fw: 4.15b3
При первом клике на выключателе идет команда all: "OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;ON;ON;ON;ON;OFF/0;OFF/12;OFF/43;OFF/0;OFF/9;OFF/3;OFF/0;OFF;OFF;OFF;OFF;OFF;ON;OFF;temp:23.20/hum:37.10;ON;ON;ON;ON;ON;ON;ON;ON"
и только если второй раз кликнуть то появляется команда с номером порта "pt"
На практике это приводит к тому, что реле с первого раза не срабатывает и свет не загорается.
По идее всегда и при всех обстоятельствах в клике должен передаваться номер порта.
Это происходит после перезапуска сервера на котором вертится программа умного дома или при длительном простое. При дальнейших щелчках вроде номер порта посылается корректно.

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

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

Сообщение Vadim » 04 дек 2017, 22:00

stilet69 писал(а):...
Прошивка fw: 4.15b3
.....
С тех пор прошла целая вечность...
Обновитесь.

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

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

Сообщение Andrey_B » 05 дек 2017, 12:05

hawkeye писал(а):UPD: проблема решена. Если в GW указывать реальный адрес шлюза вместо 255.255.255.255 - то netaction не работает вообще.
Кое-что изменено для таких случаев.

https://ab-log.ru/files/File/megad-2561 ... a5-hex.zip

Ответить