Автоматизация дома в большинстве случаев начинается с умных розеток. Не мой случай, но спустя время и я приобрел чудо розетку в 21 году примерно за 600 руб. Но оказалось, что подключить её к Home Assistance или OpenHub задачка нетривиальная, поэтому купил релюшки с ESP8266 по 170 руб и 5 В блоки питания по 50 руб.
Конфиг для ESP-01s следующего вида, базу взял здесь:
esphome:
name: socket1
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.137.143
gateway: 192.168.137.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Socket1 Fallback Hotspot"
password: "xxxxxxxxxxxxx"
captive_portal:
switch:
- platform: gpio
pin: GPIO0
name: socket1 Pump switch
inverted: true
# The following can be omitted
- platform: restart
name: socket1 restart
sensor:
- platform: wifi_signal
name: socket1 wifi signal
update_interval: 600s
# human readable uptime sensor output to the text sensor above
- platform: uptime
name: socket1 Uptime in Days
id: uptime_sensor_days
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor_days).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? String(days) + "d " : "") +
(hours ? String(hours) + "h " : "") +
(minutes ? String(minutes) + "m " : "") +
(String(seconds) + "s")
).c_str();
time:
- platform: homeassistant
id: homeassistant_time
# Text sensors with general information.
text_sensor:
# Expose ESPHome version as sensor.
- platform: version
name: socket1 Version
# Expose WiFi information as sensors.
- platform: wifi_info
ip_address:
name: socket1 IP
bssid:
name: socket1 BSSID
# human readable update text sensor from sensor:uptime
- platform: template
name: socket1 Uptime Human Readable
id: uptime_human
icon: mdi:clock-start
Прошивал обычным USB-TTL конвертором. Со стороны конвертора:
- черный GND
- фиолетовый VCC (джампер на 3.3В)
- коричневый TX
- белый RX
Нужно не забыть IO0 (синий) подключить к GND чтобы перевести устройство в режим загрузки.
Единственная проблема возникла с моим роутером. ESP отваливался на этапе договора ARP об имени устройства. Переделал на статический адрес по мануалу — проблема ушла.
Конкретно этот экземпляр делал для управления помпой рециркуляции горячей воды. Просто так по расписанию гонять её не хочется. Лучше делать это непосредственно перед принятием душа. Например, по факту включения света или срабатыванию датчика движения в ванной или просто по нажатию беспроводной кнопки.
А вообще этот вариант подходит для повышения IQ существующих бытовых устройств. Первую партию покупал для встраивания в маломощные электрические обогреватели. В случае успеха можно на обычную ESP поставить блок реле, хотя если поискать есть готовые решения.
Последнее обновление 07.08.2022 в 22:09