nooLite F: MTRF-64, SLF-1-300. Часть 6. Последовательность действий. Пример.

Собрано, налажено, проверено.

Давайте последовательно решим такую задачу: в коридоре установим лампочку под управлением старого блока SU-1-300, добавим выключатель и датчик движения и заведем все в OpenHab.

Управление блоками, которые могут регулировать яркость нагрузки, осуществляется с привязкой к ячейкам 0-10 нашего устройства. Действуем.

1. Связываем ячейку 00 на прием с пультом, который будет управлять силовым блоком:

bind0001

2. Связываем ячейку 00 на передачу с силовым блоком:

bind0002

3. Связываем ячейку 40 с датчиком движения:

bind0003

4. Связываем пульт из пункта 1 с силовым блоком из пункта 2 по их инструкции.

5. Связываем датчик движения из пункта 3 с силовым блоком из пункта 2 по инструкции от этих железок.

Вау! Наконец у нас все повязаны:

bind0004

Теперь двигаемся в OpenHab и делаем итемы:

Switch noo01cc00 	"Коридор (00"		(Noo01)		{ mqtt="<[mosquitto:fromnoo01/00/state:state:default], >[mosquitto:noo01/comm/00:command:on:ON],>[mosquitto:noo01/comm/00:command:off:OFF]" }
Switch noo01cn00 	"Коридор cn (00)"	(Noo01)		{ mqtt="<[mosquitto:fromnoo01/00/changed:state:default]" }
Switch noo01IR01 	"Коридор IR (40)"	(Noo01)		{ mqtt="<[mosquitto:fromnoo01/40/state:state:default]" }

Вставляем их в сайтмэп все три, но вообще то потом надо оставить только один, самый первый. Остальные для проверки и понимания явления:

Switch item=noo01cc00
Switch item=noo01cn00
Switch item=noo01IR01

То есть лишь noo01cc00 является главным, два других — вспомогательные.

Пишем правила:

rule "When Corridor Switch is changed by noo01" 
when
	Item noo01cn00 received update ON
then
	if (noo01cc00.state == ON) {
		postUpdate(noo01cc00, OFF)
	}
	else {
		postUpdate(noo01cc00, ON)
	}
end

rule "When Corridor IR Fired" 
when
	Item noo01IR01 received update
then
	if (noo01IR01.state == ON) {
		postUpdate(noo01cc00, ON)
	}
	else {
		postUpdate(noo01cc00, OFF)
	}
end

Что мы получили?

Первое правило реагирует на получение от пульта управления команды на переключение и, соответствующим образом, меняет отражение в OpenHab состояния выключателя.

Чтобы все было правильно, первый раз следует включить и выключить наш силовой блок не физическим пультом, а через Switch OpenHab. Тогда нашему дому будет точно известно начальное состояние силового блока.

Второе правило меняет отражение состояния нашего силового блока в зависимости от работы датчика движения. Причем, это правило будет работать как со старыми моделями датчиков так и с новыми. Различие лишь в том, что старые датчики подают команду на выключение, которая будет принята силовым блоком, а новые — только включают их на время. При этом информация о выключении вычисляется ESP-8266 и отправляется в OpenHab самостоятельно.

И пример того, как это (у меня пока в тестовом режиме и привязано к ячейке 02) выглядит в OpenHab:

bind0005

Сработал датчик движения:

https://iksite.selfip.org:7083/openhab.app?sitemap=myhome#_030000

 

На сегодня все. Надеюсь, заметка оказалась для вас не утомительной. Продолжение обязательно будет.

 

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s