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

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

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

Сообщение Andrey_B » 03 мар 2018, 22:14

Vadim писал(а):
03 мар 2018, 17:25
Vadim писал(а):
03 мар 2018, 16:26
Андрей, Так какой вердикт ;-) ?
Сделаешь, чтоб галка в Mode отправляла на сервер всю информацию со входа , а не события произведенные на выходе, чтоб на сервере можно было делать более гибкие конфигурации?
С другой стороны, на стороне сервера можно сделать самостоятельный расчет и выявление долгого нажатия (события нажатия и отпускания же присутствуют).
Вот именно это я и хотел вам предложить. Сервер при желании легко определит длительное нажатие.
Ваш пример можно зачесть, как реальный, но у меня, признаться, на такое не хватило бы фантазии.
Код прошивки в режиме "галка Act" работает несколько не так, как без нее. Это нужно для функционирования таких штук, как команды управления диммированием "~". То есть "событие" с точки зрения контроллера при удержании как бы происходит непрерывно. Поэтому выполняется, например, изменение яркости. Если разблокировать функцию отправки события на сервер при удержании, то на него посыпется куча пакетов. Это, конечно, все можно решить, но я без каких-то очень веских оснований не хотел бы пока трогать этот кусок кода.

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

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

Сообщение Andrey_B » 03 мар 2018, 22:18

SolarW писал(а):
03 мар 2018, 20:48
Andrey_B писал(а):Сходил в близлежащий ларек. Притащил авоську с лампочками. В ней обнаружил продукцию следующих брендов: Gauss, Navigator, Lexman, Feron, Uniel, Jazzway, Osram
Вот это бы статьей на сайт выложить, чтобы не потерялось.
На полноценную статью не тянет. Не все ходовые бренды участвовали в тесте.
Кроме того, есть желание немного поэкспериментировать с железом, чтобы понять, можно ли как-то уменьшить эффект мерцания некоторых светодиодных ламп на малой яркости. Физика процесса то в целом понятна.

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

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

Сообщение Igor78 » 04 мар 2018, 09:48

Andrey_B писал(а):
02 мар 2018, 19:05
Igor78, здесь изменения, которые предотвращают "залипание" прерывания от MCP23017.
https://ab-log.ru/files/File/megad-2561 ... a1-hex.zip
...
Прверил на стенде (где выход Меги заведен на вход расширителял) все ОК, «потери связи» с расширителем не наблюдается. Завтра проведу тест в реальных условиях с 4-мя сенсорами на входах расширителя...
С уважением, Игорь

Prokol
Сообщения: 197
Зарегистрирован: 25 янв 2015, 21:43

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

Сообщение Prokol » 04 мар 2018, 12:34

Andrey_B писал(а):
03 мар 2018, 22:06
Prokol писал(а):
03 мар 2018, 16:27
А по поводу работы этого протокола, выше выложил по кнопке Power. Могу еще по нескольким кнопкам выложить.
Очень несподручно кодировать по описанию, не имея реального железа.
Попробую найти у себя что-нибудь, работающее по такому протоколу.
Хорошо бы. А то в квартире все 3 телевизора Philips, медиацентр Philips и не одним не могу управлять через умный дом.
Могу raw коды выложить от пульта и сконфигурированный lirc файл. В принципе все 3 пульта от телеков с одинаковыми командами. Отличается только большим или меньшим количеством кнопок.

Andry
Сообщения: 213
Зарегистрирован: 23 мар 2017, 10:41

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

Сообщение Andry » 05 мар 2018, 09:14

Андрей пожалуйста,можно зделать чекбокс с галочкой для перевода выхода для управления например реле активный высоким-низким.Иногда очень нужно,понимаю что можно с помощью сервера.Но при вкл питания выход автоматом высокий,хотелось бы контролировать без сервера. Вчера тестил дисплеи и часики.2 дисплея .Стоять галки на часах на обоих дисплеях.А температуру активиповал на одном.Получаеться если один дисплей идёт смена часы температура,когда активирую показания часов на втором,то уже на первом смены показаний нет,стоит только температура а на часы не переходит,хоть галочка стоит.Добавить бы контролирование время смены показаний,или обновление показаний.

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

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

Сообщение Andrey_B » 05 мар 2018, 12:55

Andry, что касается "активный: высокий-низкий". При использовании готовых исполнительных модулей MegaD эта функция не потребуется никогда. При использовании сторонних плат/модулей можно либо инвертировать управляющие сигналы аппаратно, либо инвертировать логику 0/1 в сценариях или командах сервера.
"Часы/температура" - это, вообще говоря, побочный эффект. В таком режиме изначально не планировалось использовать дисплей. Я вот, честно говоря, не вижу особой необходимости в таком режиме при любой периодичности смены показаний. Мне кажется это неудобно.

Andry
Сообщения: 213
Зарегистрирован: 23 мар 2017, 10:41

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

Сообщение Andry » 05 мар 2018, 16:33

Согласен нащет оригинальных модулей,но в моем селе их нет и про умный дом большинство и не слышали не то ,что видели.Еслиб я мог купить ориганальный контроллер,стал бы я так извращаться что даже без схемы полез плату делатьЯ чистой воды хобист,и недумаю даже второй комплект делать.Можно и сервером ,но побочный ефект есть после збоя питания например,сразу могут загореца все лампочки поскольку контроллер после вкл на выходы подаёт активный высокий.Тут или дать сразу возможность в самом контроллере инвертировать или правильные реле.Вот интересно а дымер готовый как себя будет вести от активного высокого?

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

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

Сообщение Igor78 » 05 мар 2018, 18:16

Igor78 писал(а):
04 мар 2018, 09:48
Andrey_B писал(а):
02 мар 2018, 19:05
Igor78, здесь изменения, которые предотвращают "залипание" прерывания от MCP23017.
https://ab-log.ru/files/File/megad-2561 ... a1-hex.zip
...
Прверил на стенде (где выход Меги заведен на вход расширителял) все ОК, «потери связи» с расширителем не наблюдается. Завтра проведу тест в реальных условиях с 4-мя сенсорами на входах расширителя...
В реальных условиях работа почти идеальная. Скорости программного I2C вполне хватает чтобы обрабатывать события с 4-х сенсорного выключателя. Пропуски событий крайне редки и при нормальном пользовании выключателем не наблюдаются вообще.

Андрей, спасибо!
С уважением, Игорь

kerberos
Сообщения: 20
Зарегистрирован: 07 мар 2018, 00:08

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

Сообщение kerberos » 07 мар 2018, 21:49

Доброго времени суток!
Андрей, проверьте, пожалуйста, работу чекбокса справа от поля Act: у меня настроен MajorDomo, соответственно в настройках МегаД он (сервер) прописан.
На сервере настроена реакция на события нажатия кнопки (1 или 2 нажатия). В настройках Act нужного порта в режиме Click на МегаД указано событие только для одинарного нажатия.
Проблема в том, что при одинарном нажатии события дублируются: грубо говоря лампа-1 включается и сразу выключается (скорее всего срабатывает скрипт сервера и поле Act МегаД). Если очистить поле act на МегаД, то отрабатывает без проблем (но хотелось бы оставить резервирование при недоступности сервера). Двойное нажатие отрабатывает как надо, т.е. лампа-2 при двойном нажатии переходит в противоположное состояние.
Версия прошивки MegaD-2561 by ab-log.ru (fw: 4.21b1)

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

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

Сообщение Ruslan » 07 мар 2018, 22:01

kerberos, вряд ли тут дело в прошивке. Вам надо смотреть на настройки Мажордомо (модуль MegaD, код). Вы жмете на "железный" выключатель или интерфейсный? Не "потеряла" ли Мега сервер (может быть она его вообще "не видит")? Проверить это можно, прописав разные действия (РАЗНЫЕ выходы Меги) как реакцию на срабатывание выключателя. Разные между командой сервера и действием по умолчанию, прописанном в Меге. Если Мега "не видит" сервер, она через 1,5 секунды после срабатывания выполнит другое действие (прописанное в поле "Act"). Также, надо убедиться, что проставлена галка в поле "Skip default action".

kerberos
Сообщения: 20
Зарегистрирован: 07 мар 2018, 00:08

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

Сообщение kerberos » 07 мар 2018, 22:49

Ruslan писал(а):
07 мар 2018, 22:01
kerberos, вряд ли тут дело в прошивке. Вам надо смотреть на настройки Мажордомо (модуль MegaD, код). Вы жмете на "железный" выключатель или интерфейсный? Не "потеряла" ли Мега сервер (может быть она его вообще "не видит")? Проверить это можно, прописав разные действия (РАЗНЫЕ выходы Меги) как реакцию на срабатывание выключателя. Разные между командой сервера и действием по умолчанию, прописанном в Меге. Если Мега "не видит" сервер, она через 1,5 секунды после срабатывания выполнит другое действие (прописанное в поле "Act"). Также, надо убедиться, что проставлена галка в поле "Skip default action".
Руслан, Вы правы насчёт "может быть она его вообще "не видит". Настроил разные реакции (переключение лампы-1, лампы-2) на выключателе для сервера и Act. Результат - сначала сервер переключает лампу-1, потом МегаД переключает лампу-2. Чекбокс "Skip default action" установлен, выключатель - железный.
Ради эксперимента поставил чекбокс на МегаД напротив поля Act, логика включения не поменялась, но теперь первой загорается лампа-2, а за ней уже лампа-1 (т.е. мега отрабатывает сразу без ожидания 1,5 секунд).

Руслан, спасибо за наводку, буду проверять настройки и физические подключения.

kerberos
Сообщения: 20
Зарегистрирован: 07 мар 2018, 00:08

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

Сообщение kerberos » 08 мар 2018, 15:05

В продолжении темы: проверка проблем с доступностью сервера для меги ничего не дала:
192.168.77.200 - MajorDomo
192.168.77.202 - MegaD-2561 by ab-log.ru (fw: 4.21b1)
Судя по акуле МегаД видит сервер, отдаёт ему команды и получает ответ:
430 10.633069 192.168.77.202 192.168.77.200 HTTP 160 GET /megad.php?pt=1&click=1&cnt=6 HTTP/1.1
437 10.803110 192.168.77.202 192.168.77.200 HTTP 120 HTTP/1.0 200 OK (text/html)

В момент нажатия кнопки акулой видно только одно обращение сервера на переключение портов меги:
435 10.798735 192.168.77.200 192.168.77.202 HTTP 215 GET /sec/?cmd=10:0 HTTP/1.1

Чекбокс "Skip default action" на MajorDomo установлен. Чекбокс напротив Act не установлен, но МегаД продолжает самостоятельно включать порт, указанный в Act (игнорирует чекбокс?).
Что еще проверить?

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

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

Сообщение Ruslan » 08 мар 2018, 15:52

Вижу, что подаваемая с сервера команда: "10:0". Если порт не включен, реакция на эту команду вообще не будет заметна. Может лучше указать команду "10:2"?

Еще "GW" рекомендовали выставить 255.255.255.0

kerberos
Сообщения: 20
Зарегистрирован: 07 мар 2018, 00:08

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

Сообщение kerberos » 08 мар 2018, 16:09

Ruslan писал(а):
08 мар 2018, 15:52
Вижу, что подаваемая с сервера команда: "10:0". Если порт не включен, реакция на эту команду вообще не будет заметна. Может лучше указать команду "10:2"?

Еще "GW" рекомендовали выставить 255.255.255.0
Скрипт на сервере отрабатывает метод switch, поэтому отправляет 0 или 1 в зависимости от состояния порта.
Шлюз не менял, в 1 подсети с сервером:
"GW: шлюз. Важно! Имеет смысл указывать только если сервер находится за пределами текущей IP-сети. Если не указан, то в поле отображается значение 255.255.255.255"

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

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

Сообщение Andrey_B » 08 мар 2018, 20:35

kerberos, пришлите лог "акулы" (лучше по почте) одного события, когда сработала и команда сервера и сценарий по умолчанию.
Обычно описанная проблема случается, когда сервер дает команду не в рамках текущего HTTP-соединения, а открывает новое, не закрывая корректно при этом текущее.
Контроллер эту ситуацию воспринимает как ошибку сервера и выполняет сценарий.
В PHP решается элементарно - вызовом функции flush() перед отправкой команды контроллеру. Данная проблема здесь пару раз обсуждалась. По описанию похоже именно на это.

kerberos
Сообщения: 20
Зарегистрирован: 07 мар 2018, 00:08

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

Сообщение kerberos » 08 мар 2018, 22:30

Andrey_B писал(а):
08 мар 2018, 20:35
kerberos, пришлите лог "акулы" (лучше по почте) одного события, когда сработала и команда сервера и сценарий по умолчанию.
Обычно описанная проблема случается, когда сервер дает команду не в рамках текущего HTTP-соединения, а открывает новое, не закрывая корректно при этом текущее.
Контроллер эту ситуацию воспринимает как ошибку сервера и выполняет сценарий.
В PHP решается элементарно - вызовом функции flush() перед отправкой команды контроллеру. Данная проблема здесь пару раз обсуждалась. По описанию похоже именно на это.
Андрей, добавлю команду flush() в метод, проверю. Если не поможет, направлю Вам лог акулы на почту.

kerberos
Сообщения: 20
Зарегистрирован: 07 мар 2018, 00:08

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

Сообщение kerberos » 08 мар 2018, 23:57

Andrey_B писал(а):
08 мар 2018, 20:35
kerberos, пришлите лог "акулы" (лучше по почте) одного события, когда сработала и команда сервера и сценарий по умолчанию.
Обычно описанная проблема случается, когда сервер дает команду не в рамках текущего HTTP-соединения, а открывает новое, не закрывая корректно при этом текущее.
Контроллер эту ситуацию воспринимает как ошибку сервера и выполняет сценарий.
В PHP решается элементарно - вызовом функции flush() перед отправкой команды контроллеру. Данная проблема здесь пару раз обсуждалась. По описанию похоже именно на это.
Андрей, Вы были правы: добавил flush() в метод, работает "как доктор прописал", спасибо.

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

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

Сообщение Alex_Jet » 09 мар 2018, 19:33

Alex_Jet писал(а):
03 мар 2018, 08:30
Ну вот, другое дело! Теперь такое ощущение, что удаленный контроллер - это просто расширение локального!!! Надеюсь, что с прописанным GW тоже будет все ОК :?:
Походу дела рано радовался. Прошил все контроллеры в доме (запилил небольшой веб-сервер для этого, может позже выложу в новой теме), но все работает как-то не очень. В общем суть такая:
1. Есть 192.168.11.22 с датчиками температуры на первом этаже. Его термостат управляет портом 19 удаленного 192.168.11.24.
2. Есть 192.168.11.31 с датчиками температуры на втором этаже. Его термостат управляет портом 21 удаленного 192.168.11.24.

Отключил сервер (логически в сети он не доступен), специально выстудил помещение первого этажа. Опа - 19-й порт включился и...затем выключился, так повторялось (val=20,hst=0.2, реальная температура опустилась до 19.2) несколько раз пока я не подключил сервер.
Сейчас подключен сервер и 19 порт включен им (температура на первом этаже ниже порога). На втором этаже температура 20.18 (уставки те же), но 21-й порт время от времени включается, немного постоит и выключается.
На всех MegaD прописан GW - 192.168.11.1, поскольку пока сервер в другой сети.

Если кто подскажет как на маршрутизаторе Mikrotik включить какой-нибудь порт в зеркало к тому, к которому подключен удаленный контроллер (192.168.11.24), то пришлю лог сниффера. Сейчас вижу только arp-запросы:

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

95	1246.714398	54:55:c0:a8:0b:1f	Broadcast	ARP	60	Who has 192.168.11.1? Tell 192.168.11.31
96	1247.533544	54:55:c0:a8:0b:1f	Broadcast	ARP	60	Who has 192.168.11.24? Tell 192.168.11.31
От 192.168.11.31 на сервер сыпется вот такая ерунда:

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

09.03.2018 22:25:55 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10787&dir=0
09.03.2018 22:29:27 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10787&dir=0
09.03.2018 22:33:12 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10787&dir=0
09.03.2018 22:38:01 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-11787&dir=0
09.03.2018 22:40:34 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10793&dir=0

kerberos
Сообщения: 20
Зарегистрирован: 07 мар 2018, 00:08

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

Сообщение kerberos » 09 мар 2018, 19:52

Alex_Jet писал(а):
09 мар 2018, 19:33
Alex_Jet писал(а):
03 мар 2018, 08:30
Ну вот, другое дело! Теперь такое ощущение, что удаленный контроллер - это просто расширение локального!!! Надеюсь, что с прописанным GW тоже будет все ОК :?:
Походу дела рано радовался. Прошил все контроллеры в доме (запилил небольшой веб-сервер для этого, может позже выложу в новой теме), но все работает как-то не очень. В общем суть такая:
1. Есть 192.168.11.22 с датчиками температуры на первом этаже. Его термостат управляет портом 19 удаленного 192.168.11.24.
2. Есть 192.168.11.31 с датчиками температуры на втором этаже. Его термостат управляет портом 21 удаленного 192.168.11.24.

Отключил сервер (логически в сети он не доступен), специально выстудил помещение первого этажа. Опа - 19-й порт включился и...затем выключился, так повторялось (val=20,hst=0.2, реальная температура опустилась до 19.2) несколько раз пока я не подключил сервер.
Сейчас подключен сервер и 19 порт включен им (температура на первом этаже ниже порога). На втором этаже температура 20.18 (уставки те же), но 21-й порт время от времени включается, немного постоит и выключается.
На всех MegaD прописан GW - 192.168.11.1, поскольку пока сервер в другой сети.

Если кто подскажет как на маршрутизаторе Mikrotik включить какой-нибудь порт в зеркало к тому, к которому подключен удаленный контроллер (192.168.11.24), то пришлю лог сниффера. Сейчас вижу только arp-запросы:

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

95	1246.714398	54:55:c0:a8:0b:1f	Broadcast	ARP	60	Who has 192.168.11.1? Tell 192.168.11.31
96	1247.533544	54:55:c0:a8:0b:1f	Broadcast	ARP	60	Who has 192.168.11.24? Tell 192.168.11.31
От 192.168.11.31 на сервер сыпется вот такая ерунда:

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

09.03.2018 22:25:55 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10787&dir=0
09.03.2018 22:29:27 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10787&dir=0
09.03.2018 22:33:12 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10787&dir=0
09.03.2018 22:38:01 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-11787&dir=0
09.03.2018 22:40:34 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10793&dir=0
Если через WinBox, то Switch - закладка Switch - выбираете свой Switch - параметры Mirror Source (порта-источник), Mirror Target (порт наблюдатель)

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

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

Сообщение Andrey_B » 09 мар 2018, 20:27

Alex_Jet писал(а):
09 мар 2018, 19:33
От 192.168.11.31 на сервер сыпется вот такая ерунда:
09.03.2018 22:25:55 192.168.11.31 => localhost:9031 HTTP GET /mod_megad.php?pt=30&v=-10787&dir=0
Это косвенно говорит о сбое в процедуре считывания температуры.
Если линия короткая, проверить качество соединений. Если на шине висят другие 1-wire устройства, подключить питание. Если линия длиннее 10-15 метров, уменьшить номинал подтяжки.
Соответственно описанные проблемы в логике работы термостата могут говорить о сбоях в считывании значения температуры.
Есть желание включить все необходимые проверки контрольных сумм, чтобы предотвратить подобные ситуации. Останавливает лишь то, что все эти проверки в 2-3 раза увеличат время работы с датчиком. Ну и с точки зрения работы термостата, ничем практически не помогут. Оттого, что контроллер будет наверняка знать, что есть ошибки в передаче данных по шине, термостат лучше работать не станет.

Ответить