Плагин MegaD



  • @Alex_Jet, контроллер перестал отвечать на запросы к 31 порту (1WBUS):

    22:19:42 Здесь еще все ОК

    25.12 22:19:42.788 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list
    25.12 22:19:42.871 megad4: localhost <= 192.168.11.24  response: statusCode=200 contentType = text/html
    25.12 22:19:42.871 megad4:  body: e46477910b02:43.75;666877911402:43.87;35e977910902:42.68
    

    22:20:42 через минуту ответа уже нет . Через 200 мсек передается следующий запрос

    25.12 22:20:42.963 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list
    25.12 22:20:43.164 megad4: // ??????????? Нет ответа. 
    25.12 22:20:43.164 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=1
    25.12 22:20:43.181 megad4: localhost <= 192.168.11.24  response: statusCode=200 contentType = text/html
    25.12 22:20:43.182 megad4:  body: -14.55
    

    Но этот сокет остался открытым, с таймаутом 30 сек.
    Поэтому через 30 сек (22:20:42+30 сек = 22:21:12) происходит сброс этого сокета и генерируется ошибка

    25.12 22:21:12.966 megad4: localhost <=> 192.168.11.24 Socket timed out - abort!
    25.12 22:21:12.968 megad4: localhost <= 192.168.11.24 Error ECONNRESET.  Stopped.
    

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

    Может сделать интервал больше 200 мсек?
    И реже опрашивать порт с 1WBUS, так как по документации конвертация происходит каждые 30 сек. Или хотя бы не кратно 30 сек - 67 сек, например



  • @intrapro, я помню что обсуждали это уже не раз. Но не нашел пропущенного пакета...просмотрел. В данном случае связано с шиной 1WBUS...

    Пользователи MegaD!!! А вы замечали что у Вас плагины megad перезапускаются? Или ни у кого не подключены датчики I2C и 1WBUS? Все же хочу докапаться до истины - это проблема контроллера (что-то там не так, как например, алгоритм опроса DHT22), проблема в iH (что-то не то в запросах) или скорострельность iH, которую надо ограничить, например, увеличив интервал очереди запросов?



  • @Alex_Jet
    Я только запланировал использовать датчики I2C.
    И сразу началось.
    Но мега не перезагружаются. Она перенастраивается несанкционированно.
    Uptime на мегах не обнуляется сам по себе.



  • @Erik, Андрей перезагрузку MegaD победил в начале этого года... и она проявлялась только совместно с Mikrotik (у меня коммутаторы CSS326). А вот за плагинами последите. Правда у меня проблема есть только с теми, на которых есть I2C, 1WBUS, DHT22 или их комбинация.



  • Я откатился на версию плагина v1.1.10. Она от 14.01.19, на Меге прошивка тоже до конца прошлого месяца позапрошлогодняя была, т.е. в ней перезагрузка не побеждена.
    Микротик CRS125.
    С перезагрузками Меги пока не сталкивался. Зато другая проблема есть, которую ни IH ни AbLog признавать даже не хотят.
    Какая то это очень не надежная связка.
    Мега-микротик-сервер IH.



  • @Erik, я сделал вывод, что связка Mikrotik-iH слишком быстрая для MegaD и нуждается либо в особой настройке, либо доводке скорее прошивки MegaD. Однако Андрей скептически к этому всему относится, тем более является большим любителем однопоточного и медленного php. У меня не удалось убедить его провести полномасштабное тестирование контроллера с iH через тот же Mikrotik, который есть у меня (у него такой же есть). Думаю, что это помогло бы еще лучше допилить прошивку контроллера.



  • Участник @intrapro написал в Плагин MegaD:

    Может сделать интервал больше 200 мсек?

    Ради эксперимента для этого контроллера установил 1000 мсек. И, кстати, при изменении этого параметра плагин приходится вручную останавливать стартовать. Добавьте чтобы при сохранении этого параметра он сам рестартовал.



  • Участник @intrapro написал в Плагин MegaD:

    На github выложена новая версия плагина v1.1.15:
    https://github.com/intrahouseio/intraHouse.plugin-MegaD/releases/tag/v1.1.15

    Вот спасибо ОГРОМНОЕ. Буду тестировать!



  • @Alex_Jet можете показать схему подключения для роллет, а то меня заинтересовало. Спасибо



  • @amgstone, собственно вот такая схема:
    Scheme_Control_of_Rollets.png



  • Участник @Alex_Jet написал в Плагин MegaD:

    Пользователи MegaD!!! А вы замечали что у Вас плагины megad перезапускаются? Или ни у кого не подключены датчики I2C и 1WBUS?

    У меня подключены 5 устройств I2C (датчики температуры-влажности, освещенности, расширитель портов, датчик давления и температуры-влажности), 2 датчика DHT22, 3 шины 1WBUS (на одной из шин 6 датчиков). Устройства I2C подключены как попало (звездой, лучи до 8м, до 3 шт на один порт, при этом - все SDL на одном порту!). Особых проблем не наблюдаю. Раньше висли DHT22, но после замены одного из них на SHT21, зависания пропали. Все работает. Опросы датчиков у меня примерно 1 раз в минуту. По поводу перегрузки плагина, ничего сказать не могу - подскажите, пожалуйста, где смотреть - понаблюдаю. Правда, у меня не классическая мега, а моноблок от Ермакова.



  • @gis, это все висит на одном моноблоке или на нескольких? И какой коммутатор и маршрутизатор используется в локальной сети?
    Понаблюдать можно в разделе "Плагины" - там есть столбец "Запуск" - в идеале время запуска у каждого плагина должно совпадать со временем запуска сервера, конечно если не проводились настройки плагинов. Если хотите прям понаблюдать (будут приходить сообщения, например, в Telegram), то можно написать вот такой мультисценарий:

    /** 
    * @name MegaD - уведомления от плагинов 
    * @desc Сообщение в Telegram о проблемах с плагинами 
    * @version 4 
    */
    
    const dev = Device("SensorD");
    
    startOnChange(dev);
    
    script({
      start() {
        let string = "";
        
        switch(dev.value) {
          case 0: string = "возникла ошибка";
                  break;
          case 1: string = "остановлен";
                  break;
          case 2: string = "запущен";
                  break;
        }
        
        this.info("telegram", "OWNER", dev.id+ ": " +string+ "; error - " +dev.error);
      },
      
      GetDate() {
        return new Date().toLocaleString('ru-RU');
      }
    });
    


  • Участник @Alex_Jet написал в Плагин MegaD:

    @gis, это все висит на одном моноблоке или на нескольких? И какой коммутатор и маршрутизатор используется в локальной сети?

    Спасибо! Да, все висит на одном моноблоке. Обслуживает первый этаж, кроме санузла (5 помещений) - климат, отопление, частично освещение, окна, двери, ворота и калитка. Маршрутизатор самый простой - Zyxel Kinetic Giga II, раздает беспроводный интернет. В этой же сети камеры и видеорегистратор, а так же 12 шт. Shelly управляют освещением на 220 вольт. Коммутатор - самый дешевый Dlink на 16 портов.
    Понаблюдаю за плагином (сейчас перезапускал его после настройки для работы с расширителем портов).
    .



  • @gis, а вы используете для аппроксимации значений (особенно актуально для управления отоплением - усреднять значение температуры в зоне в течении пятиминуток) "Функцию обработки при получении данных от контроллера? Примеры функций приводил выше. У меня не работает она для датчиков на шине 1WBus, собственно лог тоже выше приводил.



  • Провели серию тестов с контроллером MegaD от Андрея.
    Тестирование проводили в локальной сети с роутером Mikrotik

    Настройки:
    Порт 16
    Type: in
    Act: 23:2
    Mode: P&R

    Порт 15
    Type: in
    Act: 22:2
    Mode: P&R

    Порты 22 и 23
    Type: Out

    Версии прошивки MegaD:
    С версии прошивки от 4.30.b5 до 4.31.b8 все работает нормально
    Начиная с версии 4.32.b1 при нажатии на порт 15, сбрасывается порт 16 в Mode: P

    При проведении тестов с прошивками версию плагина не меняли. Работал плагин 1.1.13

    Проанализировали дамп трафика с версией прошивки 4.39.b9
    Увидели, что плагин отвечает в режиме фрагментации. В соответствии со спецификацией HTTP/1.1 https://tools.ietf.org/html/rfc7230#section-3.3.1

    Снимок экрана 42_2.jpg

    Тем не менее решили попробовать без фрагментации (версия плагина 1.1.15):

    Снимок экрана 43_2.jpg

    Контроллер MegaD перестал сбрасывать порт 16.

    Надеемся, что эта информация будет полезна разработчикам MegaD



  • @intrahouse
    Большое человеческое спасибо, что занимаетесь этим вопросом.
    На форум ab-log информацию положил.

    Я могу отнестись к сообщению как к совету перейти на версию плагина 1.1.15?



  • Участник @Erik написал в Плагин MegaD:

    Я могу отнестись к сообщению как к совету перейти на версию плагина 1.1.15?

    Да. Обновите плагин.



  • @intrapro, @intrahouse, коллеги, у кого Победа, а у кого Беда! После обновления плагина iH загнулась моя охранная система... iH не реагирует на открытие окна:

    30.12 23:12:21.523 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=1&m=1&cnt=42&mdid=
    30.12 23:12:21.524 megad2: 192.168.11.22 <= localhost:11022 
    30.12 23:12:36.235 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=1&cnt=43&mdid=
    30.12 23:12:36.236 IH: get [ { id: '1', value: '1' } ]
    set { SGERKON1_02: { dval: 0, err: 0 } }
    30.12 23:12:36.236 megad2: 192.168.11.22 <= localhost:11022 
    30.12 23:12:37.230 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=1&m=2&cnt=43&mdid=
    30.12 23:12:37.231 IH: get [ { id: '1', value: '1' } ]
    set { SGERKON1_02: { dval: 0, err: 0 } }
    30.12 23:12:37.232 megad2: 192.168.11.22 <= localhost:11022 
    

    Расширения.JPG

    Соответствующие входы инвертированы.



  • @Alex_Jet, Добрый вечер! Проверьте пожалуйста флаг новый "Расширенный порт". Он случайно не установлен?



  • @intrapro, нет не установлен. Ну и по скриншоту видно что в этом столбце пусто.
    Пока откатился на 1.1.14. В нем все работает)


Log in to reply