Умная розетка для умного дома DIY

Одно из самых простых и необходимых устройств, делающее любой дом умным — это управляемая розетка. В большинстве случаев это устройство дешевле купить, но если нужно очень быстро и есть особые требования, то добро пожаловать в мир DIY.

Моя цель — это снизить затраты на обогрев одной комнаты масляным электрическим радиатором с пиковой мощностью 3 кВ. В дешевых умных розетках нагрузкой управляют реле на 10А, что маловато в моем случае.

А у меня в наличии есть твердотельное реле на 40А. И хотя от него больше проблем чем реальной необходмости для этого проекта применить его было самым быстрым решением, т.к. у него уже есть готовые клемники для подключения мощной нагрузки. Минус этого реле — это внутреннее сопротивление его тиристора которое вызывает сильный нагрев и эксплуатация без радиатора невозможна. Поэтому пришлось прикрутить его на кусок гипсокартонного профиля который стал безобразным корпусом всего устройства. Решение временное пока не приедет zigbee розетка на обычном реле. Кстати, если требования к мощности не более 5А, то проще купить реле из набора для arduino, там уже будет управляющий транзистор, но колодки для подключения силовых проводов там не выглядят на 10А.

Управляющий сигнал подается с ESP32, в моем случае это Heltec Wireless Lite, но естественно подойдет любая дешёвая dev board, причем для WiFi варианта подойдет самая дешёвая ESP8266. Опять же если не нужен большой ток, то проще купить почти готовый вариант реле+ESP8266. Выходные токи у ESP маловаты для прямого управления, поэтому взял простой n-p-n биполяный транзистор в схеме ключа. На схеме управления R1 и U2 — это часть внутри реле. Соответственно всё что нужно это Q1 и R2. Накидал всё навесным монтажом.

Уже описывал принцип применения платформы ESPHome в статье про BLE хаб, поэтому тут просто выложу свой конфиг.

esphome:
  name: heater

esp32:
  board: heltec_wireless_stick_lite
  framework:
    type: arduino

logger:
 
api:

ota:
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Heater1 Fallback Hotspot"
    password: "xxxxxxxxxxx"

captive_portal:

switch:
  - platform: gpio
    name: "Heater 1"
    pin: 4       

После прошивки в Home Assistant (HA) появится новое устройство и объект, в моем случае switch.heater_1_2

Чтобы управлять температурой в комнате нужно в HA добавить базовый компонент generic_thermostat . Для этого в /config/configuration.yaml добавим

- platform: generic_thermostat
  name: Heater Room 1
  heater: switch.heater_1_2
  target_sensor: sensor.0x00158d00045c2e93_temperature
  away_temp: 16
  comfort_temp: 21
  home_temp: 19.5
  sleep_temp: 18
  min_temp: 16
  max_temp: 26
  cold_tolerance: 0.2
  hot_tolerance: 0.2
  precision: 0.1
  initial_hvac_mode: "heat"
  min_cycle_duration:
    minutes: 5

Где target_sensor определяет датчик температуры относительно которого будет работать этот электронный термостат. Термостат появится в HA на вкладке Обзор. По центру температура target_sensor, ниже уставка, которую можно изменять круговым бегунком. При снижении температуры sensor.0x00158d00045c2e93_temperature ниже уставки на 0,2 градуса HA отдаст команду на включение switch.heater_1_2 и соответственно при превышении на 0,2 градуса выключит его, но не раньше чем через 5 мин после последнего переключения.

Две простейших автоматизации регулировки температуры от времени суток записываем в /config/automations.yaml.

- id: '1647248933226'
  alias: Heating room 1 night
  description: ''
  trigger:
  - platform: time
    at: '23:00:00'
  condition: []
  action:
  - service: climate.set_preset_mode
    data:
      preset_mode: sleep
    target:
      entity_id: climate.heater_room_1
  mode: single
- id: '1647249000657'
  alias: Heating room 1 morning
  description: ''
  trigger:
  - platform: time
    at: 07:00:00
  condition: []
  action:
  - service: climate.set_preset_mode
    data:
      preset_mode: home
    target:
      entity_id: climate.heater_room_1
  mode: single

Первая установливает на термостате ночную температуру в 23-00, а вторая в 7-00 возвращает дневную. Естественно есть и другие сценарии управляющие отоплением, например, в случае если дома никого нет, но это уже другая история. На графиках ниже то — как работает

Последнее обновление 18.03.2022 в 17:07