LOADING...

Аварийный режим работы котла

< Все темы
Print

Аварийный режим работы котла

Переменная Emergency_mode принимает значение ON при неисправной работе датчиков, либо при температуре в котельной, сильно отличающейся от нормы и значение OFF при нормализации температуры и восстановлении связи с датчиками.

Переменные thingStatusInfo считывают состояние датчиков

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

Завершение аварийного режима также выключает ручной режим

//Проверяет смену состояния датчика в помещении и при отсутствии сигнала, включает аварийный режим. Отправляет уведомления

rule "connection_lost2"

when
        Thing "onewiregpio:sensor:b71f2e0775" changed or
        Item systemstarted received update
then
        logInfo("warning", "room sensor state is supposed to be updated")

        var thingStatusInfo2 = getThingStatusInfo("onewiregpio:sensor:b71f2e0775")

        if (thingStatusInfo2 !== null && thingStatusInfo2.getStatus().toString() == "OFFLINE"){
                if (Notifications.state == ON){
                sendBroadcastNotification("Потеряна связь с датчиком в помещении")
                }
                Temperature_sensor2_ONLINE.sendCommand(OFF)
                logInfo("warning", "room sensor disabled")
                Emergency_mode.sendCommand(ON)
        }
        if (thingStatusInfo2 !== null && thingStatusInfo2.getStatus().toString() == "ONLINE") {
                if (Notifications.state == ON){
                        sendBroadcastNotification("Связь с датчиком в помещении восстановлена")
                }
                Temperature_sensor2_ONLINE.sendCommand(ON)
                logInfo("warning", "room sensor enabled")
                Emergency_mode.sendCommand(OFF)
        }

end


//Каждые 30 секунд проверяет состояние аварийного режима. Если ВКЛ, меняет состояние котла на противоположное.

rule "emergency_mode_cron"
when
  Time cron "0 */30 * ? * *"
then
        if(Emergency_mode.state == ON && Manual_mode.state == OFF){
                if (nn_n1.state == OFF){
                        nn_n1.sendCommand(ON)
                        logInfo("warning", "Emergency ON, relay ON")
                }
                else{
                        nn_n1.sendCommand(OFF)
                        logInfo("warning", "Emergency ON, relay OFF")
                }
        }
end

//turns auto control off in case of emergency
//При смене состояния аварийного режима, выключает ручной режим. Если ВКЛ, выключает контроль температуры, если Выкл, включает его
rule "automatic_mode_off"
when
        Item Emergency_mode changed
then
        Manual_mode.sendCommand(OFF)
        if (Emergency_mode.state == ON){
                Temp_control.sendCommand(OFF)
                logInfo("warning", "Emergency ON, Manual mode OFF, Temp control mode OFF")
        }
        else {
                Temp_control.sendCommand(ON)
                logInfo("warning", "Emergency OFF, Manual mode OFF, Temp control mode ON")
        }
end
Следующая Алгоритм работы света с датчиком присутствия