пятница, 13 мая 2022 г.

Прошивка Gosund sp211 на ESPHome при помощи tuya convert и подключение к Home Assistant

          В данной статье будет описан способ прошивки двухканального модуля Gosund sp211 при помощи Tuya convert (без паяльника) альтернативной прошивкой ESPHome и последующим его подключением к умному дому на базе Home Assistant. 

         Подробное описание прошивки одноканального Gosund sp211 при помощи заранее подготовленного ноутбука было приведено в этой статье. Данный модуль был куплен в магазине allo за 349грв., что составляло на момент покупки около 12$ США по курсу НБУ:

 

 


Фото из описания производителя:

 


  




Приступаем к прошивке:

        В ESPHome при помощи «+ NEW DEVICE» создаем новый временный профиль и сохраняем его на диск нажав «INSTALL» и выбрав «Manual download»

 

        На вопрос о формате сохранения выбираем «Legacy format»:

 

        После окончания компилирования файл будет сохранен в папку «Загрузки» (по умолчанию):


        Далее необходимо сохраненный файл прошивки (в моем случае это gosund-sp211.bin) флешкой скопировать на ноутбук с установленным ранее tuya convert, в одноименную папку tuya-convert, расположенную в домашней папке Linux: 

 

        Запускаем «Terminal» и входим в папку tuya-convert введя команду 

cd tuya-convert


        Запускаем программу обновления прошивки введя

./start_flash.sh


        Вводим пароль учетной записи с правами администратора:


        На все претензии соглашаемся, нажав «y»:


        Перед тем как нажать «ENTER» выполняем рекомендации как на скриншоте:

 

    1. Подключаем телефон к точке доступа «vtrust-flash»

 


    2. Включаем на Gosund sp211 режим сопряжения зажав кнопку на время более 5 секунд

    3. Нажимаем «ENTER»

        Начнется резервное копирование оригинальной прошивки в папку tuya-convert /backup. Ее надо сохранить в надежное место на случай, если захотите вернуться на снова на прошивку tuya. Далее нужно выбрать прошивку, которая будет загружена в Gosund sp211, нажав «2»:

 


        «Вы уверены что хотите прошить ….?» Уверенно нажимаем «Y»:

 


        После удачной прошивки увидим следующее:

 


        Теперь в ESPHome Gosund sp211 стал в статусе «онлайн». Это значит, что он доступен для перепрошивки «по воздуху»:

 


        Используемые GPIO Gosund sp211:

 


        Мой профиль для Gosund sp211 (за основу был взят профиль с esphome-devices)

esphome:
  name: gosund-sp211
  platform: ESP8266
  board: esp8285

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  
    # Static IP
  manual_ip:
    static_ip: 192.168.1.142
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Gosund-Sp211 Fallback Hotspot"
    password: !secret ap_password

captive_portal:


time:
  - platform: homeassistant
    id: homeassistant_time

substitutions:
  plug_name: sp211
  # Higher value gives lower watt readout
  #current_res: "0.00520"
  current_res: "0.00130"
  # Lower value gives lower voltage readout
  #voltage_div: "750"
  voltage_div: "910"

# Enable Web server
web_server:
  port: 80

sensor:
  - platform: wifi_signal
    name: "${plug_name} - WiFi Signal"
    update_interval: 60s

  - platform: uptime
    name: "${plug_name} - Uptime"
    icon: mdi:clock-outline
    update_interval: 60s

  - platform: hlw8012
    sel_pin:
      number: GPIO03
      inverted: true
    cf_pin: GPIO04
    cf1_pin: GPIO05
    current_resistor: ${current_res}
    voltage_divider: ${voltage_div}

    current:
      name: "${plug_name} - Ampere"
      unit_of_measurement: A
      accuracy_decimals: 3
      icon: mdi:flash-outline

    voltage:
      name: "${plug_name} - Volt"
      unit_of_measurement: V
      accuracy_decimals: 1
      icon: mdi:flash-outline

    power:
      name: "${plug_name} - Watt"
      unit_of_measurement: W
      id: "${plug_name}_power"
      icon: mdi:flash-outline

    change_mode_every: 4
    update_interval: 10s

  - platform: total_daily_energy
    name: "${plug_name} - Daily energy consumed"
    power_id: "${plug_name}_power"
    filters:
        # Multiplication factor from W to kW is 0.001
        - multiply: 0.001
    unit_of_measurement: kWh
    icon: mdi:clock-alert

text_sensor:
  - platform: version
    name: "${plug_name} - ESPHome Version"

status_led:
  pin:
    number: GPIO01
    inverted: true

binary_sensor:
  - platform: gpio
    id: button1
    internal: true
    pin:
      number: GPIO12
      mode: INPUT_PULLUP
      inverted: true
    #on_state:
    on_press:
      - switch.toggle: relay1

  - platform: gpio
    id: button2
    internal: true
    pin:
      number: GPIO00
      mode: INPUT_PULLUP
      inverted: true
    #on_state:
    on_press:
      - switch.toggle: relay2

    # Fix for overload bug in certain SP211 devices
  - platform: gpio
    id: gpio15_irq
    pin: GPIO15
    internal: true

output:
  - platform: gpio
    pin: GPIO02
    inverted: true
    id: led1

  - platform: gpio
    pin: GPIO13
    inverted: true
    id: led2

switch:
  - platform: gpio
    pin: GPIO14
    id: relay1
    restore_mode: RESTORE_DEFAULT_OFF
    name: '${plug_name} - Switch 1'
    icon: mdi:power-socket-eu
    on_turn_on:
      - output.turn_on: led1
    on_turn_off:
      - output.turn_off: led1

  - platform: gpio
    pin: GPIO16
    id: relay2
    restore_mode: RESTORE_DEFAULT_OFF
    name: '${plug_name} - Switch 2'
    icon: mdi:power-socket-eu
    on_turn_on:
      - output.turn_on: led2
    on_turn_off:
      - output.turn_off: led2
    


        Теперь осталось заменить временный профиль постоянным:

 


        И обновить через INSTALL/Wirelessly:

 


        В Home Assistant добавляется через Настройки/Устройства и Службы. В итоге Gosund sp211 в Home Assistant выглядит так:



Комментариев нет:

Отправить комментарий