I
@Alex_Jet:
Хочу сделать сценарий по потери доступности контроллера MegaD. В выпадающем списке "События" есть:
1. При сбросе датчика
2. При сработке датчика
3. undefined
Когда контроллер не отвечает (так понимаю либо нет HTTP статуса 200, либо ответ отличен от этого статуса) - это сброс или сработка датчика? Может быть здесь стоило поменять значения на более понятные? Что такое undefined и в каких случаях его использовать?
Для каждого плагина (подключенного контроллера) создается виртуальный датчик состояния (0 - отключен/cброшен, 1 - включен/работает). Т е в данном контексте сработка датчика - это запуск плагина, сброс - останов. Событие undefined использовать не стоит, планируем его убрать.
Сам плагин работает так: он периодически связывается с контроллером. Если произошла сетевая ошибка (хост не отвечает, недоступен, статус не тот ), то если в течение определенного времени не удается установить соединение, плагин завершается с ошибкой и датчик плагина будет сброшен в 0. Сервер постоянно пытается запустить плагин. Плагин будет считаться запущенным, если с контроллера удалось получить данные устройств.
Кроме этого можно анализировать флаг ошибки. Обратите внимание, что при отключении контроллера в основном интерфейсе появляется алерт "<название плагина> Ошибка! " Это делает системный сценарий, но в принципе это обычный шаблонный сценарий, просто привязывается автоматически.
Находится он в файле scenpat/fm_error.pat - сценарий unitError Он анализирует флаг ошибки err и через 10 сек после возникновения выдает алерт. Можно туда добавить например отсылку SMS.