2 мин на чтение

Одним вечерним вечером мне понадобились умные розетки для всякой мелочевки. Ну знаете, зашедулить включение фумигатора от комариков и все в таком духе. Имеющийся SMATRUL WiFi Socket из поста про стиралочку мне не понравился, поэтому я занырнул в поиск Lazada/AliExpress и вынырнул с Sonoff S31. Собсно, начало коротенькой зарисовочки о ее перепрошивке вы сейчас и читаете ;)

О Sonoff S31

Для начала, как и положено, пара слов о выборе:

  • Стоит как средний бургер с колой, т.е. около $5
  • Type B socket (вариация US) - довольно популярная тема в Таиланде
  • Умеет измерять потребление энергии. Кстати, есть и Sonoff S31 Lite без
  • До 15A нагрузки
  • ESP8266 вместо сердца
  • Красивенькая, но разбирается отверткой

Будь вместо Type B что-то универсальное, вообще цены бы не было. Но и так не дурно. Особенно учитывая, что ESP8266 + разборка отверткой = привет ESPHome.

Разбираем

Нам понадобится отвертка и что-то для защелок (я использую пластиковую штуку для разборки телефонов). Прямые руки, кстати, совсем не обязательны - я проверял ;)

  • Начинаем с того, что снимаем серенькую крышку:

  • Добираемся до шурупов и откручиваем их:

  • Вуаля, вот они нужные пины:

Прошиваем

Для прошивки все еще не нужны прямые руки, но нужен паяльник и USB to Serial converter (у меня какой-то дефолтный на базе FT232 с алика).

  • Припаиваемся к пинам VCC, RX, TX и GND. К счастью, аккуратность тут не важна:

  • Подключаемся к serial converter:
    | USB2Serial  |   S31   |
    |-------------|---------|
    |  VCC (3.3V) |   VCC   |
    |    GND      |   GND   |
    |    RX       |   TX    |
    |    TX       |   RX    |
    
  • Зажимаем кнопку на платке (подключена к GPIO0) для перевода ESP8266 в режим бутлоадера и втыкаем USB to Serial в комп
  • Заводим новое устройство в ESPHome:
  • Дожидаемся окончания процесса и ребутаем S31
  • Хоба, готово! Можем подключиться по воздуху и почитать лог:

На этом с прошивкой ESPHome закончили, мы молодцы :) Все дальнейшие манипуляции можно сделать по воздуху, поэтому собираем нашу розетку обратно.

Последние шаги

ESPHome и OTA это, конечно, хорошо, но у нас тут вообще-то розетка! Что ж, шьем ей конфиг (взят из документации Sonoff S31 для ESPHome):

esphome:
  name: dinners31plug
  friendly_name: DinnerS31Plug

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "DEADBEEF"

ota:
  password: "DEADBEEF"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  manual_ip:
    static_ip: 10.11.5.1
    gateway: 10.11.0.1
    subnet: 255.255.0.0
    dns1: 10.11.1.2

time:
  - platform: homeassistant
    id: homeassistant_time

uart:
  rx_pin: RX
  baud_rate: 4800

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Sonoff S31 Button"
    on_press:
      - switch.toggle: relay
  - platform: status
    name: "Sonoff S31 Status"

sensor:
  - platform: wifi_signal
    name: "Sonoff S31 WiFi Signal"
    update_interval: 60s
  - platform: cse7766
    current:
      name: "Sonoff S31 Current"
      accuracy_decimals: 1
    voltage:
      name: "Sonoff S31 Voltage"
      accuracy_decimals: 1
    power:
      name: "Sonoff S31 Power"
      accuracy_decimals: 1
      id: my_power
  - platform: total_daily_energy
    name: "Sonoff S31 Daily Energy"
    power_id: my_power

switch:
  - platform: gpio
    name: "Sonoff S31 Relay"
    pin: GPIO12
    id: relay
    restore_mode: ALWAYS_ON

status_led:
  pin:
    number: GPIO13
    inverted: True

Добавляем нашу DinnerS31Plug в Home Assistant (воткнул в нее что-то, дабы проверить power monitoring):

Собсно, чего мы и добивались! Дальше можно мутить нужные нам автоматизации, но об этом как-то в другой раз при хорошем случае. А пока всем кота (づ˶•༝•˶)づ♡

Разделы:

Дата изменения: