БЛОГ

Обработка ошибок устройств

Теория

В системах автоматизации крайне необходим контроль за состоянием устройств. Любой датчик или актуатор может выйти из строя в самый неподходящий момент. Нужна информация, что датчик находится в рабочем состоянии.

В системе intraHouse есть два механизма обработки ошибок. 

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

Второй механизм. На стороне сервера. Здесь обрабатываются два типа ошибок.
Ошибка — таймаут. Сервер сам отслеживает таймаут поступления информации от устройств. Если устройство (через плагин) не сообщает о себе в течении определенного времени, устанавливается флаг ошибки этого устройства.
Ошибка — вне диапазона. Если от устройства приходит значение вне допустимого диапазона.

Обратите внимание. Все механизмы обработки ошибок работают одновременно. 

Практика

Визуально ошибка устройства отображается в виде красного треугольника в левом верхнем углу устройства:

Первый механизм обработки ошибок (на стороне плагина) программируется в самом плагине и никак не настраивается.

Второй механизм (на стороне сервера) настраивается в настройке устройства:

1. Установить флаг ошибки если от устройства не пришла информация в течении X сек.
От любого аналогового датчика информация должна приходить в течении не более 100-200 сек. 
От датчика открытия двери (геркон) информация может приходить очень редко. Тогда лучше поставить 0 (ноль). 
В любом случае это время зависит от устройства.

2. Установить флаг ошибки если информация от датчика вне заданного диапазона
Если эта галка установлена, система сравнивает входящее от датчика значение с диапазоном допустимых значений — Min Value и Max Value

3. Не принимать значение от датчика, если оно выходит из допустимого диапазона
Если значение выходит из диапазона, система просто откидывает его не пропуская для индикации или анализа в сценариях. 

Чтобы ошибка (красный треугольник) отображалась на устройстве не забывайте про размер индикатора ошибки. По умолчанию он установлен в 30. Но вдруг вы его изменили 😉 Размер настраивается здесь:

Обработка ошибок в сценариях

Выше я показал как отображать ошибки устройств на экране. Теперь займемся обработкой ошибок в сценариях.

В качестве примера рассмотрим сценарий управления отоплением по датчику температуры.

От датчика температуры (STEMP_1_1) поступает значение (VALUE) и сравнивается с уставкой (SETPOINT). Если температура меньше уставки, включаем батарею отопления (RADIATOR_1_1). Если больше, выключаем.
Все работает. Температура в комнате регулируется.

Добавим обработку ошибок:

Если датчик работает без ошибки  (NOT ERROR), тогда батарея отопления включается/выключается в зависимости от температуры (VALUE) и уставки (SETPOINT). 
Если есть ошибка, то регулирование не происходит.

Добавим сообщение об ошибке:

Если возникает ошибка, взводится таймер на 120 сек. После отработки таймера проверяем, есть ли ошибка. Если ошибка сохранилась, отправляем сообщение по e-mail.

На этом все. Батарея управляется по датчику температуры с учетом ошибки.
Можно было добавить еще некоторые моменты. Например, в случае ошибки датчика переключиться на другой датчик. Это вы можете попробовать сделать самостоятельно.

Оглавление:

Есть вопросы?
Напишите нам: