Баг? Произвольное включение света при рестарте контроллера

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

mxz
Сообщения: 14
Зарегистрирован: Пн сен 30, 2019 7:16 am
Благодарил (а): 3 раза
Поблагодарили: 4 раза

Баг? Произвольное включение света при рестарте контроллера

Сообщение mxz » Вт апр 21, 2020 11:33 pm

У меня 7 контроллеров Ab-Log. Использую Majordomo (версия MegaD devices: 2019-12-13).

Столкнулся с такой проблемой:
При выключении (вручную или пропало электричество) и включении контроллера AB-Log включается свет в ряде помещений.

Проблема наблюдается строго на двух контроллерах (разные прошивки) - самые нагруженные по кол-ву выключателей, контуров света и датчиков. Понять логику не могу - иногда свет и не включается при возобновлении работы контроллера, но часто включается, причем различные контуры (зависимости не прослеживаю).

Почему пишу здесь, а не на сайте Ab-Log: если вынуть сетевой провод из контроллера AB-Log, то проблемы произвольного включения света не наблюдаю при ручном перезапуске Ab-Log. То есть я связываю вышеописанную проблему с каким-то действием от Majordomo (при появлении питания на контроллере Ab-Log).
Плюс, субъективно - от включения контроллера до включения света проходит пара секунд.

Если кто-то сталкивался с чем-то похожим или знаете "куда копать", то буду признателен за дельные советы.
Сверял все настройки между контроллерами в MJDM - отличий не нашел.
Помогло бы понимание что делает MJDM при появлении контроллера "на связи" (в сети передачи данных).

Примечание:
В настройках Majordomo --> Устройства --> MegaD --> (контроллер) --> вкладка данные:
для каждого порта IN\OUT указано "Skip default action = Yes"

Там же, вкладка "Общее":
Ответ по умолчанию = ECMD.
Период опроса = 0.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение Chainik » Ср апр 22, 2020 12:22 am

mxz писал(а):
Вт апр 21, 2020 11:33 pm
... буду признателен за дельные советы.
С очень большой вероятностью (99,999 %) - это проблема модуля MegaD. Поэтому первый дельный совет - перенести этот пост в соответствующую ветку.

Скорее всего, у меня будет то же самое (потестирую). Наиболее вероятная причина следующая: при старте контроллера (отправка параметра st=1) модуль пытается восстановить/синхронизировать состояние выходов контроллера в соответствии с тем, которое сохранено в базе данных Мажордомо/модуля. Что является, естественно, логической ошибкой.

Второй дельный совет: установить Wireshark и посмотреть, что идет (какие команды) от сервера после загрузки контроллера. Это позволит подтвердить версию, что входы включает именно сервер своими командами.

Кстати, давно заметил, что аналогичные безобразия происходят и в обратной ситуации: контроллер работает, стартует Мажордомо (viewtopic.php?f=5&t=2263&start=1197) и состояния выходов контроллера синхронизируются с тем, которое было на момент выключения Мажордомо.

И третий, главный дельный совет - написать Сергею (автору модуля) в коннект и в телеграмм (а то сообщения на форуме он почти не читает).
ZyaK
Сообщения: 407
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 45 раз
Поблагодарили: 69 раз

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение ZyaK » Ср апр 22, 2020 9:06 am

У меня контроллеры самопальные, но периодически при отрубании света или при перезагрузке сервера он тоже включает свет. Мне кажется при загрузке сервер подгружает какие то прошлые состояния из базы данных. Все работает по mqtt. скорее всего при загрузке системы, сервер рассылает топики на которые подписаны устройства, и только потом начинает принимать топики с их состоянием.
PI2 + MQTT + 5 ESP8266 + Atmega16
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение xor » Ср апр 22, 2020 9:31 pm

Ну я в при перезагрузке/старте запускаю в методе зискомпьтер.стартап обновить все реле
до применения групп в скрипте перебирал все объекты класса Реле и для каждого выполнял метод рефреш, который читает статус реле и выполняет соотв. метод (для статус=1 метод турнон и тд). некоторые мои реле без обратной связи, а это позволяет привести их состояние в то, что на сервере

//RunScriptsafe('refreshAllRelays');
cm('grpLight.callGroupMethod',array('mg'=>'refresh'));
За это сообщение автора xor поблагодарил:
Samir77 (Чт апр 23, 2020 12:10 am)
Рейтинг: 1.16%
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение Chainik » Чт апр 23, 2020 12:23 am

xor писал(а):
Ср апр 22, 2020 9:31 pm
Ну я в при перезагрузке/старте запускаю в методе зискомпьтер.стартап обновить все реле
...
Да, вы синхронизируете состояние объектов в системе в соответствии с фактическим состоянием реле.
Тут проблема в другом. Если Меги подключены через модуль MegaD, при старте Мажордомо система синхронизирует состояние реле в соответствии с тем, которое было сохранено в БД на момент выключения Мажордомо!!! Вот в этом и есть логическая ошибка модуля и проблема...
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение xor » Чт апр 23, 2020 12:21 pm

Chainik писал(а):
Чт апр 23, 2020 12:23 am
xor писал(а):
Ср апр 22, 2020 9:31 pm
Ну я в при перезагрузке/старте запускаю в методе зискомпьтер.стартап обновить все реле
...
Да, вы синхронизируете состояние объектов в системе в соответствии с фактическим состоянием реле.
Тут проблема в другом. Если Меги подключены через модуль MegaD, при старте Мажордомо система синхронизирует состояние реле в соответствии с тем, которое было сохранено в БД на момент выключения Мажордомо!!! Вот в этом и есть логическая ошибка модуля и проблема...
наоборот - при старте я умышленно привожу состояние реле к статусу на сервере. так я борюсь с рассинхронизацией статусов реле без обратной связи. но это у меня касается только света и я теряю только включение/выключение, сделанное во время отключения сервера. но это вынужденная мера(
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение Chainik » Чт апр 23, 2020 2:53 pm

xor писал(а):
Чт апр 23, 2020 12:21 pm
Chainik писал(а):
Чт апр 23, 2020 12:23 am
xor писал(а):
Ср апр 22, 2020 9:31 pm
Ну я в при перезагрузке/старте запускаю в методе зискомпьтер.стартап обновить все реле
...
Да, вы синхронизируете состояние объектов в системе в соответствии с фактическим состоянием реле.
Тут проблема в другом. Если Меги подключены через модуль MegaD, при старте Мажордомо система синхронизирует состояние реле в соответствии с тем, которое было сохранено в БД на момент выключения Мажордомо!!! Вот в этом и есть логическая ошибка модуля и проблема...
наоборот - при старте я умышленно привожу состояние реле к статусу на сервере. так я борюсь с рассинхронизацией статусов реле без обратной связи. но это у меня касается только света и я теряю только включение/выключение, сделанное во время отключения сервера. но это вынужденная мера(
А... вон оно как...
Штука в том, что Мега (в простейших случаях) прекрасно умеет работать автономно. Когда сервер "приболел" (отсутствует), с освещением она справится. Но когда потом мы запускаем Мажордомо, программа восстанавливает состояние выходов на момент своего "сердечного приступа".
Лично у меня такое поведение модуля MegaD ломает всю логику. Не должен (в моем понимании) сервер делать то, о чем я его не просил.
mxz
Сообщения: 14
Зарегистрирован: Пн сен 30, 2019 7:16 am
Благодарил (а): 3 раза
Поблагодарили: 4 раза

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение mxz » Чт апр 23, 2020 5:10 pm

Спасибо всем за отклик и советы. Воспользуюсь и еще буду исследовать.
По крайней мере теперь я знаю, что проблема не только у меня.
Странно вот что: так себя ведут не все 7 моих контроллеров, а только 2 из 7. "Мистика" какая-то и не вписывается в логику объяснения.

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

Я хочу иметь возможность задать поведение: вся нагрузка (свет, исполнительные устройства) отключены при восстановлении.
Вопрос как это сделать на Mega-D + MJDM.
С очень большой вероятностью (99,999 %) - это проблема модуля MegaD. Поэтому первый дельный совет - перенести этот пост в соответствующую ветку.
Сделал viewtopic.php?f=5&t=7079
написать Сергею (автору модуля) в коннект и в телеграмм (а то сообщения на форуме он почти не читает).
Второй дельный совет: установить Wireshark и посмотреть, что идет (какие команды) от сервера после загрузки контроллера. Это позволит подтвердить версию, что входы включает именно сервер своими командами.
Да, попробую снять трассу обмена. Вопрос скорее уже в интерпретации. Если не справлюсь - напишу, обращусь за помощью.
mxz
Сообщения: 14
Зарегистрирован: Пн сен 30, 2019 7:16 am
Благодарил (а): 3 раза
Поблагодарили: 4 раза

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение mxz » Чт апр 23, 2020 5:31 pm

Перенесено сюда: viewtopic.php?f=5&t=7079
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Баг? Произвольное включение света при рестарте контроллера

Сообщение skysilver » Чт апр 23, 2020 5:44 pm

mxz писал(а):
Чт апр 23, 2020 5:31 pm
Перенесено сюда: viewtopic.php?f=5&t=7079
viewtopic.php?f=5&t=2263
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить