LOADING...

Алгоритм работы света с датчиком присутствия

< Все темы
Print

Алгоритм работы света с датчиком присутствия

Условия: в жилой комнате и в коридоре, смежным с ней установлены инфракрасные датчики движения.

Задача: разработать алгоритм, при котором свет в комнате будет включаться при входе и поддерживаться при нахождении в ней человека. Т.к. комната жилая (спальня), свет не должен включаться при регистрации движения только в комнате, например, движении человека во сне.

Решение: датчик движения в коридоре в данном случае используется для определения направления движения человека системой, следовательно, свет должен включаться только после того, как система получает сигнал от обоих датчиков: в коридоре и комнате. Для поддержания работы света при нахождении человека в помещении необходимо завести новый Item и добавить ему metadata типа expire timer с временем, определяющим, сколько свет будет гореть после прекращения движения в комнате. Время работы таймера зависит от предполагаемой активности в комнате и корректируется при необходимости.

Дополнительно: при необходимости можно реализовать режим отключения автоматического управления светом с помощью отдельного Item.

rule "bedroom_motion"
	
when 
	Item BedroomMotionSensor changed from OFF to ON
then
	if (BedroomAutolight.state==ON){ //Проверка включенного режима автоматики
		if (BedroomLights.state == OFF){ //Далее алгоритм работает только если свет изначально выключен
			if (CorridorMotionSensor.state == ON || Expire_timer_bedroom.state == ON){ //Проверка наличия движения в коридоре или включенного таймера
				BedroomLights.sendCommand (ON) //Включение света
			}
		}
		Expire_timer_bedroom.postUpdate(OFF) //Обновление таймера. Важно использовать postUpdate для предотвращения триггера на received command
		Expire_timer_bedroom.sendCommand(ON) //Обновление таймера
	}
end

//Правило для выключения света при истечении времени таймера
rule "bedroom_timer"

when
	Item Expire_timer_bedroom received command OFF // Item получает команду OFF по истечении времени
then 
	if (BedroomAutolight.state==ON){ //Проверка включенного режима автоматики
		if (BedroomMotionSensor.state == OFF && BedroomLights.state == ON) //Если на датчике в комнате нет сигнала и свет включен
        	BedroomLights.sendCommand (OFF) //Свет выключается
	}
end
Предыдущая Аварийный режим работы котла
Следующая Корректировка таймеров, на примере освещения по датчику движения