Управление кондиционером через ИК модуль WB-MIR. ПО Абром
На рынке большое количество модулей управления кондиционерами. Рассматривая разные модули можно глобально выделить 2 типа управления:
- двусторонее или по-другому "полноценное" управление с помощью модулей интеграции.
- одностороннее управление с помощью ИК
Мы в своих проектах придерживаемся следующего формата: для обычных кондиционеров используем ИК. Там где ИК использовать проблематично, например в канальниках или тяжелых сплит системах, используем модули интеграции.
Управление с помощью ИК модуля дешевле и избавляет нас от огромного процесса согласования типов кондиционеров с заказчиками и поиска подходящего модуля интеграции.
Мы не рассматриваем сомнительные решения по типу Яндекс Пульта или других ИК передатчиков.
В нашем примере будем использовать ИК модуль компании Wirenboard (wb-mir v.2). Модуль умеет хранить в своей памяти до 40 "банков" команд.
В ПО Абром реализован конвертер, который поможет нам превратить эти "банки" в полноценное устройство "кондиционер" с возможностью регулировки температуры кондиционера и выбора режимов нагрева или охлаждения.
Требование к кондиционерам
Кондиционер необходимо выбирать с дисплеем на лицевой части кондиционера. В коробочке дисплея прячется ИК приемник кондиционера, к нему мы будем максимально близко "подцепляться".


Очень редко можно встретить кондиционеры с хитрым расположением ИК приемника. У подобных обычно нет дисплея или он как-то очень хитро обыгран. От таких кондиционеров нужно отказываться или искать альтернативный вариант интеграции.
Монтаж ИК модуля wb-mir v.2
ИК модуль можно расположить внутри кондиционера, в зоне подключения силовой части или над кондиционером.
К модулю подключаем датчик ds18b20 и располагаем его в зоне зоборы воздуха.
ИК передатчик протягиваем до дисплея и приклеиваем рядом с приемником кондиционера.
Записываем правила в банки ИК модуля
1. Модуль wb-mir должен быть уже настроен в конфигурационном файле контроллера Wirenboard. По умолчанию доступно 10 банков команд, увеличим в настройках до 15.
2. После настройки переходим во вкладку "Устройства" и находим наш модуль

На скрине выше в модуль уже записаны все команды, это можно определить по ненулевому значению "Размер команды ROM1". Название ROM и "банк" команды синонимы.
Пульт кондиционера при каждом нажатии передает полное состояние пульта.
Например, если на пульте выставлено (17 градусов, режим охлаждение, вентилятор auto, режим eco). То при нажатии на +1 градус пульт передаст (18 градусов, режим охлаждение, вентилятор auto, режим eco).
Нам необходимо настроить команды следующим образом:
- ROM1 - 17 градусов, режим "охлаждение"
- ROM2 - 20 градусов, режим "охлаждение"
- ROM3 - 23 градусов, режим "охлаждение"
- ROM4 - 26 градусов, режим "охлаждение"
- ROM5 - 29 градусов, режим "охлаждение"
- ROM6 - выключение
- ROM7 - 20 градусов, режим "нагрев"
- ROM8 - 23 градусов, режим "нагрев"
- ROM9 - 26 градусов, режим "нагрев"
- ROM10 - 29 градусов, режим "нагрев"
- ROM11 - 30 градусов, режим "нагрев"
3. Для настройки включаем переключатель "Записать команду в ROM1" и отправляем с пульта (17 градусов, режим "охлаждение"). Пульт нужно максимально близко поднести к IR LEARN на wb-mir.
4. После записи, без лишних нажатий на пульт, выключаем переключатель "Записать команду в ROM1". Через несколько секунд "Размер команды ROM1" примет ненулевое значение. Далее нужно сделать то же самое для ROM2-11
5. После записи всех команд желательно протестировать каждый ROM. Для воспроизведения команды чуть ниже есть кнопка "Воспроизвести команду из ROM1".
Чтение и запись команд ROM и перенос между кондиционерами
Чтение и запись команд ROM существенно экономит время настройки модулей wb-mir.
Процесс скачивания и запуска скриптов:
1. Создайте папку ir_backup внутри каталога home
2. Скачайте скрипты в ir_backup

3. Перейдите в директорию /home/ir_backup из консоли
cd /home/ir_backup
4. Дайте разрешение скриптам
chmod +x read_roms.pl - разрешение для скрипта чтения
chmod +x write_roms.pl - разрешение для скрипты записи
5. Запустите скрипты:

Команды выглядят так:
./read_roms.pl [название папки с файлами команд] [количество команд] [порт] [скорость порта] [modbus-адрес]
./write_roms.pl [название папки с файлами команд] [количество команд] [порт] [скорость порта] [modbus-адрес]
Например:
./read_roms.pl roms 11 /dev/ttyMOD1 9600 242
./write_roms.pl roms 11 /dev/ttyMOD1 9600 168
Команды ROM:

Настройка правила в ПО Абром
1. Модуль готов к работе, теперь нужно создать правило с типом IRCONDITIONER, название ac_125_lounge. Название не влияет на работу правила, но смысловое название облегчит нам настройку в перспективе.
- ac - air conditioner
- 125 - адрес модуля
- lounge - название комнаты
Более подробно по работе с правилами ПО Абром по ссылке https://abrom.ru/nastrojka-po-abrom
2. Следующим шагом нажимаем ADD RULE, перед нами появляется окно настройки правила. В нашем примере используется название без адреса модуля, что частенько усложняет нам процесс настройки.

3. Заполняем правило
| device | wb-mir_v2_125 | топик устройства |
| outside temp | wb-mir_v2_143/External Temperature Sensor | топик датчика температуры улицы (необязательное поле) |
| room temp | cityron-pu-3_1/Main Temperature | топик датчика температуры комнаты (необязательное поле) |
| conditioner temp | wb-mir_v2_125/External Temperature Sensor | топик датчика температуры кондиционера (необязательное поле) |
4. Далее в окне "настройка правил" нажимаем SAVE RULE
5. Перед нами появляется вирутальное устройство "кондиционер".

- pref temp - предпочитаемая температура. Кондиционер, при достижении температуры комнаты, будет отключаться. Работает только с включенным "use room temp"
- conditioner mode 0 - режим охлаждения
- conditioner mode 1 - режим нагрева
- conditioner state - состояние кондиционера. Этот переключатель показывает только статус, трогать его нет смысла.
- Rule state - вкл/выкл правило
- use room temp - В выключенном состоянии кондиционер не будет ориентироваться на датчик комнаты. Выставляем температуру с помощью pref temp, кондиционер будет работать в штатном режиме по выставленной температуре
Прокидываем кондиционер в Яндекс и Apple Homekit
Шаблон для SprutHub
{
"name": "Кондиционер",
"manufacturer": "Abrom",
"model": "IRCONDITIONER",
"catalogId": 374,
"services": [
{
"name": "Кондиционер",
"type": "Thermostat",
"characteristics": [
{
"type": "CurrentTemperature",
"link": {
"type": "Integer",
"topicSearch": "/devices/(IRCONDITIONER_ac_176_lounge_control)/controls/room temp/meta/type",
"topicGet": "/devices/(1)/controls/room temp"
}
},
{
"type": "TargetTemperature",
"link": {
"type": "Integer",
"topicGet": "/devices/(1)/controls/pref temp/on",
"topicSet": "/devices/(1)/controls/pref temp/on"
},
"minValue": 16,
"maxValue": 30,
"minStep": 1
},
{
"type": "CurrentHeatingCoolingState",
"link": {
"type": "Integer",
"topicGet": "/devices/(1)/controls/conditioner mode/on",
"map": {
"0": "0",
"1": "1",
"2": "2"
}
}
},
{
"type": "TargetHeatingCoolingState",
"link": {
"type": "Integer",
"topicGet": "/devices/(1)/controls/conditioner mode/on",
"topicSet": "/devices/(1)/controls/conditioner mode/on",
"map": {
"0": "0",
"1": "1",
"2": "2"
}
},
"validValues": "0,1,2"
}
]
}
]
}
Заливаем
Еще никто не написал комментариев.