Обработка ошибок устройств
-
Теория
В системах автоматизации крайне необходим контроль за состоянием устройств. Любой датчик или актуатор может выйти из строя в самый неподходящий момент. Нужна информация, что датчик находится в рабочем состоянии.
В системе intraHouse есть два механизма обработки ошибок.
Первый основан на обработке ошибок на стороне плагина. При разработке плагина могут быть учтены возможные ошибки устройств. И тогда, в случае их появления, плагин передает информацию об ошибке серверу. Но иногда бывает так, что плагин сам не знает об ошибке устройства. И ничего не передает северу в течении длительного времени.
Второй механизм. На стороне сервера. Здесь обрабатываются два типа ошибок.
Ошибка — таймаут. Сервер сам отслеживает таймаут поступления информации от устройств. Если устройство (через плагин) не сообщает о себе в течении определенного времени, устанавливается флаг ошибки этого устройства.
Ошибка — вне диапазона. Если от устройства приходит значение вне допустимого диапазона.Обратите внимание. Все механизмы обработки ошибок работают одновременно.
Практика
Визуально ошибка устройства отображается в виде красного треугольника в левом верхнем углу устройства:
Первый механизм обработки ошибок (на стороне плагина) программируется в самом плагине и никак не настраивается.
Второй механизм (на стороне сервера) настраивается в настройке устройства:
1. Установить флаг ошибки если от устройства не пришла информация в течении X сек.
От любого аналогового датчика информация должна приходить в течении не более 100-200 сек.
От датчика открытия двери (геркон) информация может приходить очень редко. Тогда лучше поставить 0 (ноль).
В любом случае это время зависит от устройства.2. Установить флаг ошибки если информация от датчика вне заданного диапазона
Если эта галка установлена, система сравнивает входящее от датчика значение с диапазоном допустимых значений — Min Value и Max Value3. Не принимать значение от датчика, если оно выходит из допустимого диапазона
Если значение выходит из диапазона, система просто откидывает его не пропуская для индикации или анализа в сценариях.Чтобы ошибка (красный треугольник) отображалась на устройстве не забывайте про размер индикатора ошибки. По умолчанию он установлен в 30. Но вдруг вы его изменили
Размер настраивается здесь:
Обработка ошибок в сценариях
Выше я показал как отображать ошибки устройств на экране. Теперь займемся обработкой ошибок в сценариях.
В качестве примера рассмотрим сценарий управления отоплением по датчику температуры.
От датчика температуры (STEMP_1_1) поступает значение (VALUE) и сравнивается с уставкой (SETPOINT). Если температура меньше уставки, включаем батарею отопления (RADIATOR_1_1). Если больше, выключаем.
Все работает. Температура в комнате регулируется.Добавим обработку ошибок:
Если датчик работает без ошибки (NOT ERROR), тогда батарея отопления включается/выключается в зависимости от температуры (VALUE) и уставки (SETPOINT).
Если есть ошибка, то регулирование не происходит.Добавим сообщение об ошибке:
Если возникает ошибка, взводится таймер на 120 сек. После отработки таймера проверяем, есть ли ошибка. Если ошибка сохранилась, отправляем сообщение по e-mail.
На этом все. Батарея управляется по датчику температуры с учетом ошибки.
Можно было добавить еще некоторые моменты. Например, в случае ошибки датчика переключиться на другой датчик. Это вы можете попробовать сделать самостоятельно.