Примеры правил в ПО Абром Софт
В этой статье приведены стандартные и слегка редкие правила в ПО Абром, которые мы используем в своих проектах.
Инструкция по настройке по ссылке
ИК Кондиционер - irconditioner
Используется для управления кондиционерами по ИК. Правило создает удобный интерфейс управления кондиционером. Поддерживаются режимы: охлаждение и нагрев.
Пример:
irConditioner:
- name: ac_125
device: 'wb-mir_v2_125'
roomTemp: 'cityron-pu-3_1/Main Temperature'
outsideTemp: 'wb-mir_v2_143/External Temperature Sensor'
conditionerTemp: 'wb-mir_v2_125/External Temperature Sensor'
Термостат отопления - heat
Используется для управления реле электрического или водяного отопителя с 1 или 2 датчиками. Режим с 2 датчиками используется например для управления реле по температуре воздуха с защитами "minFloorTemp" "maxFloorTemp" по температуре пола. Правило создает удобный интерфейс управления отопителем.
Пример:
heat:
- name: a123f205_126k2_entry
relays: ['wb-mr6cu_126/K2'] #топик устройства
roomTemp: 'wb-m1w2_205/External Sensor 1' #температура воздуха
floorTemp: 'wb-ms_123/Temperature' #температура пола
inverted: false
defaultState: true
defaultPrefTemp: 26
defaultMinFloorTemp: 20
defaultMaxFloorTemp: 35
Термостат отопления - heatTimer
Используется для управления реле электрического или водяного теплого пола с 1 датчиком и 2 таймерами. В интерфейсе имеется возможность настроить prefRoomTemp, timerBefore, timerAfter.
Правило работает по timerBefore до достижения prefRoomTemp датчиком, далее переключается на timerAfter.
Пример:
heatTimer:
- name: a123f205_126k2_entry
relays: ['wb-mr6cu_126/K2'] #топик устройства
roomTemp: 'wb-m1w2_205/External Sensor 1' #температура воздуха
inverted: false
defaultState: false
defaultPrefTemp: 26
defaultTimerBefore: 19
defaultTimerAfter: 11
Правила с кнопкой – switchbutton | conditionbutton
Привязка осветительного прибора к изменению топика
Может пригодиться для:
- привязки выключателей с фиксацией к группе света
- привязки группы света ко входу modbus модуля wb-mr6c. Фиксируется изменение топика одинарного, двойного и других типов нажатия
switchButton:
- name: 13s_59K3K4_street
topic: wb-gpio/EXT1_IN13 #топик выключателя
outputTopics: [ 'wb-mr6c_59/K3', 'wb-mr6c_59/K4' ] #топик устройства
onCondition: '{wb-mr6c_59/K3} == 1 || {wb-mr6c_59/K4} == 1' #проверка состояния реле
onValue: 1
offValue: 0
onDelayMillis: 0
offDelayMillis: 0
tapType: SINGLE #тип нажатия
conditionButton:
- name: 26i3_24k6_kitchen
outputTopics: ['wb-mr6cv3_24/K6'] #топик выключателя
onCondition: '{wb-mr6cv3_24/K6}==1' #проверка состояния реле
onValue: 1
offValue: 0
onDelayMillis: 0
offDelayMillis: 0
changeCondition: 'changed({wb-mr6cv3_26/Input 3 counter})' #условие на изменение состояния
Мастер выключатель
Может пригодится для:
- отключения света на объекте, закрытия штор, отключения кондиционеров по мастер выключателю.
switchButton:
- name: h11_switch1_master
topic: wb-gpio/EXT1_IN1
rules:
- outputTopics: [
'wb-mr6cv3_24/K1', 'wb-mr6cv3_24/K2', 'wb-mr6cv3_24/K3', 'wb-mr6cv3_24/K4', 'wb-mr6cv3_24/K5', 'wb-mr6cv3_24/K6',
'wb-mr6cv3_26/K1', 'wb-mr6cv3_26/K2', 'wb-mr6cv3_26/K3', 'wb-mr6cv3_26/K4', 'wb-mr6cv3_26/K5', 'wb-mr6cv3_26/K6',
'wb-mr6cv3_46/K1', 'wb-mr6cv3_46/K2', 'wb-mr6cv3_46/K3', 'wb-mr6cv3_46/K4', 'wb-mr6cv3_46/K5', 'wb-mr6cv3_46/K6',
'wb-mr6cv3_68/K1', 'wb-mr6cv3_68/K2', 'wb-mr6cv3_68/K3', 'wb-mr6cv3_68/K4', 'wb-mr6cv3_68/K5', 'wb-mr6cv3_68/K6',
'wb-mr6cv3_70/K1', 'wb-mr6cv3_70/K2', 'wb-mr6cv3_70/K3', 'wb-mr6cv3_70/K4', 'wb-mr6cv3_70/K5', 'wb-mr6cv3_70/K6',
'wb-mr6cv3_73/K1', 'wb-mr6cv3_73/K2', 'wb-mr6cv3_73/K3', 'wb-mr6cv3_73/K4', 'wb-mr6cv3_73/K5', 'wb-mr6cv3_73/K6',
'wb-mr6cv3_75/K1', 'wb-mr6cv3_75/K2', 'wb-mr6cv3_75/K3', 'wb-mr6cv3_75/K4', 'wb-mr6cv3_75/K5', 'wb-mr6cv3_75/K6',
'wb-mr6cv3_79/K1', 'wb-mr6cv3_79/K2', 'wb-mr6cv3_79/K3', 'wb-mr6cv3_79/K4', 'wb-mr6cv3_79/K5', 'wb-mr6cv3_79/K6',
'wb-led_202/Channel 1', 'wb-led_202/Channel 2', 'wb-led_202/Channel 3', 'wb-led_202/Channel 4',
'wb-led_205/Channel 1', 'wb-led_205/Channel 2', 'wb-led_205/Channel 3', 'wb-led_205/Channel 4',
'wb-led_228/Channel 1', 'wb-led_228/Channel 2', 'wb-led_228/Channel 3', 'wb-led_228/Channel 4'
]
onValue: 0
offValue: 0
onDelayMillis: 0
offDelayMillis: 0
tapType: HOLD
Открытие штор по двойному нажатию на выключатель
Может пригодится для:
- Открытия/ закрытия штор по 1 или нескольким кнопкам
- Установки позиции штор по выключателю
conditionButton:
- name: d17i5_0101
outputTopics: ['dooya_0x0101/Position']
onCondition: '{dooya_0x0101/Position} >= 70'
onValue: 100
offValue: 0
onDelayMillis: 0
offDelayMillis: 0
changeCondition: 'changed({wb-mr6cv3_17/Input 5 Double Press Counter})'
switchButton:
- name: d11_0101
topic: wb-gpio/EXT1_IN1
rules:
- outputTopics: ['dooya_0x0101/Position']
onValue: 100
offValue: 0
onDelayMillis: 0
offDelayMillis: 0
tapType: SINGLE
Кастомные правила - custom
Управление вытяжным вентилятором
Может пригодится для:
- Создания логики включения вытяжного вентилятора по свету и отключения по задержке
- Создания логики включения вытяжного вентилятора по датчику влажности
custom:
- name: vent_toilet
isWithState: true # Состояние условия
onCondition: '{wb-mdm3_199/K1}==1' # Условие 1
offCondition: '{wb-mdm3_199/K1}==0' # Условие 2
onDelay: 0
offDelay: 180
onMessage: "1"
offMessage: "0"
outputTopics: ['wb-gpio/EXT4_ON4'] # Управляемые топики
Авто-включение топика
Может пригодиться для:
- Принудительного включения топика, если управление группой не требуется.
custom:
- name: auto_ON
isWithState: false
onCondition: '{wb-mr6cv3_28/K3} + {wb-mr6cv3_23/K2} + {wb-mr6cv3_23/K3} + {wb-mr6cv3_213/K1} + {wb-mr6cv3_187/K3} < 5'
onDelay: 0
onMessage: "1"
outputTopics: ['wb-mr6cv3_28/K3', 'wb-mr6cv3_23/K2', 'wb-mr6cv3_23/K3', 'wb-mr6cv3_213/K1', 'wb-mr6cv3_187/K3']
Авто-включение термостатов HEAT
Может пригодиться для:
- Принудительного включения топика, если управление группой не требуется.
Авто-включение БП по включению светодиодных групп
Может пригодится для удобного включения БП после его отключения Мастер клавишей.
custom:
- name: powersupply_autoON
isWithState: false
onCondition: '{wb-mrgbw-d-fw3_16/Channel 1 (B)} + {wb-mrgbw-d-fw3_16/Channel 2 (R)} + {wb-mrgbw-d-fw3_16/Channel 3 (G)} + {wb-mrgbw-d-fw3_16/Channel 4 (W)} >=1'
onDelay: 0
onMessage: "1"
outputTopics: ['wb-mr6c_59/K1']
Датчик двери (по 1 двери без блокировок)
custom:
- name: 139i1_blackbedroomdoor
isWithState: true
onCondition: '{wb-mr6cv3_183/K5} == 0 && ((changed({wb-mcm8_138/Input 5}) && {wb-mcm8_138/Input 5}== 0))'
offCondition: '{wb-mr6cv3_183/K5} == 1'
onDelay: 0
offDelay: 300
onMessage: "1"
offMessage: "0"
outputTopics: ['wb-mr6cv3_183/K5']
Датчик двери (по 1 двери с блокировкой отключения по основному свету)
custom:
- name: 139i5_mastertoiletdoor
isWithState: true
onCondition: '{wb-mr6cv3_183/K2} == 0 && ((changed({wb-mcm8_139/Input 5}) && {wb-mcm8_139/Input 5}== 0))'
offCondition: '{wb-mr6cv3_183/K2} == 1'
onDelay: 0
offDelay: 300
onMessage: "1"
offMessage: "{wb-mr6cv3_174/K6}"
outputTopics: ['wb-mr6cv3_183/K2']
Датчик двери (несколько дверей + блокировка по основному свету)
custom:
- name: 138i5i6&139i1_blackgarderobdoor
isWithState: true
onCondition: '{wb-mr6cv3_188/K6} == 0 && ((changed({wb-mcm8_139/Input 1}) && {wb-mcm8_139/Input 1}== 0) || (changed({wb-mcm8_138/Input 5}) && {wb-mcm8_138/Input 5}== 0) || (changed({wb-mcm8_138/Input 6}) && {wb-mcm8_138/Input 6}== 0))'
offCondition: '{wb-mr6cv3_188/K6} == 1'
onDelay: 0
offDelay: 300
onMessage: "1"
offMessage: "{wb-mr6cv3_188/K5}"
outputTopics: ['wb-mr6cv3_188/K6']Управление воротами и калиткой по сухому контакту
Ворота настроенные на управление SBS (step by step) требуют переключение реле. Соответсвенное после включения реле, правило будет отключать его с небольшой задержкой
Пример:
custom:
- name: autoOff_23k1-6_2sek
isWithState: false
onCondition: '{wb-mr6cu_23/K1} == 1'
onDelay: 2
onMessage: "0"
outputTopics: ['wb-mr6cu_23/K1']Телеграм оповещения
Для настройки
- создайте бота в @BotFather, например home_notification_bot,
- Определите ваш личный id и токен бота. Токен бота появится сразу после создания бота. Для определения вашего id используйте например @username_to_id_bot. Также можно использовать id чата, тогда бот будет отправлять данные туда (не забудьте добавить бота в чат!)
- Настройте правило в ПО АБром
Пример:
telegram:
- name: temp_notify
condition: "NOW == {yandexWeather/sunrise}"
message: "artCity, г. Бишкек. \n Температура Офис - {} Комнатка - {} Туалет - {}. Реле Кондиционер - {} Бойлер - {}"
arguments:
[
"{wb-ms_123/Temperature}",
"{wb-m1w2_32/External Sensor 1}",
"{wb-ms_112/Temperature}",
"{IRCONDITIONER_aс_227_kitchen_control/Rule state}",
"{wb-mr6cu_113/K6}"
] # argument of message, replace {} to value of expression
chatIds: [ "-5999399925" ]
botToken: "8400140011:A0003c000PzgvM000yT1wD000An-000rI00"
withoutState: true #by default - false, need to use when rule doesn't have state sendIntervalSeconds: 10
Виртуальное устройство для тестов
defineVirtualDevice("temperature_control", {
title: "Temperature Control",
cells: {
air_temp: {
type: "range",
value: 20.0,
max: 35.0,
min: 5.0,
step: 0.5,
readonly: false,
units: "°C"
},
floor_temp: {
type: "range",
value: 25.0,
max: 40.0,
min: 5.0,
step: 0.5,
readonly: false,
units: "°C"
},
switch1: {
type: "switch",
value: false,
},
switch2: {
type: "switch",
value: false,
},
switch3: {
type: "switch",
value: false,
},
switch4: {
type: "switch",
value: false,
},
switch5: {
type: "switch",
value: false,
},
time: {
title: "Sunset",
type: "text",
value: "05:00",
readonly: false
}
}
});Еще никто не написал комментариев.