Умный дом: собираем недогое управление отоплением.

Хочу рассказать вам про свою реализацию умного дома на даче.

⚠️ Сразу дисклеймер: этот вариант подойдёт тем, кто хотя бы пару раз держал паяльник в руках, а так же имеет базовые знания в настройке unix-подобных систем и программировании. То есть такой гиковский вариант.

Если для вас это темный лес, то имеет смысл посмотреть на готовые системы от Эктоконтрола и аякса.

Одно из главных условий — автономность. Умный дом должен работать без интернета, потому что 4g не очень стабилен. Если у вас проводной провайдер, то может вполне подойти решение на базе Xiaomi или Tuya, которые работают через «облако».

Подготовка

🎛️ Начнем с главного: центр управления умным домом. В моём случае это шлюз Xiaomi DGNWG05LM (он же ZHTZ02LM), перепрошитый в OpenWrt. Для перепрошивки вам и понадобится паяльник , чтобы подключиться к UART разъёму. А так же usb2uart контроллер . Шлюз можно выгодно купить в наборе с датчиками в DNS .

Руководство по перепрошивке есть на сайте проекта openilumi .

Настройка

После перепрошивки я установил на шлюз Homeassistant — это система управления умным домом с открытым кодом. Гайд по установке всё там же. Если что-то не понятно, то есть чат , где энтузиасты могут помочь.

Основная задача моего «умного дома» — поддержание нужной температуры. Для этого нужны датчики температуры и розетки.

🌡️ Один датчик есть в наборе. Так же я докупил Aqara MCCGQ11LM . Они работают по протоколу zigbee и без проблем подключаются к homeassistant через zigbee2mqtt.

🔌 Температуру мы знаем, давайте научимся ею управлять. Для этой цели я купил козетки BlitzWolf BW-SHP13 . Они так же работают по zigbee, сохраняют своё состояние при отключении электричества и нормально работают с нагрузкой от конвекторов.

В homeassistant я объединил розетки с датчиками в виртуальные термостаты. Теперь достаточно задать в конфиге температуру для режима отсутствия и когда вы дома. Для этого в configuration.yaml хоумассистанта нужно добавить примерно такую секцию:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
climate:
  - platform: generic_thermostat
    name: bedroom
    unique_id: thermostat_bedroom
    # в heater: указываем id розетки
    heater: switch.0xcc86ecfffe4eaf38 
    # в target_sensor id сенсора с датчика температуры
    target_sensor: sensor.comfort_bedroom_temperature
    min_temp: 0
    max_temp: 25
    ac_mode: false
    target_temp: 22
    cold_tolerance: 0.3
    hot_tolerance: 0
    min_cycle_duration:
      seconds: 5
    keep_alive:
      minutes: 3
    initial_hvac_mode: "heat"
    away_temp: 16
    precision: 0.1

Зачем так сложно?

Я выбрал такой вариант по двум причинам: ◾ финансы: описанное решение на базе Эктоконтролла стоит больше 40000. У меня получилось около 20000.

◾ Спортивный интерес и достаточный опыт.

На этом всё, вопрос удалённого управления разберу в следующем посте.