Konverzia Tuya predlžováku BlitzWolf Power Strip do esphome

Ucelené projekty, návody a postupy.
Odpovědět
Uživatelský avatar
tiimsvk
Dárce - Donátor
Dárce - Donátor
Příspěvky: 800
Registrován: 06. květen 2021, 07:03
Dal poděkování: 72 poděkování
Dostal poděkování: 65 poděkování

Konverzia Tuya predlžováku BlitzWolf Power Strip do esphome

Příspěvek od tiimsvk »

Ahojte urobim tu taký jednoduchý rychly tutorial ako konvertovať jeden z predlžovákov od Tuya
BlitzWolf BW-SHP9 Power Strip (SKUD56165) / Deltaco SH-P03USB Power Strip
blitzwolf_SHP9.jpg
Vo vnútri je osadení čip s označením LM1 Lingan SWB2-1 --- je to vlastne esp8266
Konverzia je jednoduchá nakoľko priamo na doske sú umiestnené piny na flashovanie RX TX GPIO0 GND 5VDC
7625091a404b6a4b48b0de4e97282b20931050a5.jpeg
-Stačí použiť akýkoľvek flashboard FTL232RL
- GPIO0 pri flashovaní pripojiť na GND
- RX na Tx a TX na Rx
- nesmie byť pripojený do siete!

V esphome je potrebne len vytvoriť binárny súbor a nahrať ho cez napr. ESPHome-Flasher-1.4.0-Windows-x64

Kód nižšie ale ešte ho upravujem (ale dostupne sú tu: https://community.home-assistant.io/t/deltaco-smarthome ak by chcel niekto bez power metra)
Popis pinov je na stránke tasmota: https://templates.blakadder.com/blitzwolf_SHP9.html
popis pinov na esp8266 lm1
LM1_pinout.jpg
BONUS:
PRIDANIE POWER METRU POMOCOU MODULU HLW8012
UPOZORNENIE: MODUL NIE JE GALVANICKY ODDELENÝ OD FÁZY PRETO JE FÁZA PRIVEDENÁ V CELOM OBVODE PRETO AK NEMÁTE ZNALOSTI NEPÚŠTAJTE SA DO TOHO!
UPOZORNENIE 2: PREDLŽOVÁK OBSAHUJE USB TIETO JE POTREBNÉ CELÉ ODLETOVAŤ A VYTVORIŤ NOVÝ MODUL PRE ODDELENIE OD FÁZY!!! POPIS NIŽŠIE
UPOZORNENIE 3: Vždy pred zapojením do siete si všetko pomerajte merákom či náhodou Vám niekde nepretláča spojenie GND a VCC alebo GND a uzemnenie. GND a Fáza spojenie je vporiadku. VCC fáza by Vám malo vyhodiť nejaký odpor.
UPOZORNENIE 4: Ak to plánujete hodiť na iné zariadenie inú inteligentú záuvku tak vždy platí to čo je napísané vyššie a najlepšie riešenie a kontrolu či to bude fungovať je tá, že voltig divider z 220V na 5 alebo 3.3V je pomocou transformátorum ktorý robí galvanické oddelenie od nuláku. Umiestnujte celé zariadenie aj s esp do uzatvorenej krabice aby nedošlo k úrazu ak je to custom predlžovák.

ČO POTREBUJEME:
- energy meter hlw8012 modul: https://www.aliexpress.com/item/3295497 ... 1802PXKZ0E
- opotoculer PC817
- NPN mofset IRFZ44N
- Diodu 1N4007
- Odpory: 110k, 330k, 1k, 2x100, 220,
- transformátor z 220Ac na 5Vdc cievkový (rozobral som malý modul zo starej usb nabijiačky 1,5A)
- kabeláž spoje atď
REALIZÁCIA:
20220831_091439.jpg
20220831_091431.jpg
20220831_091423.jpg
SCHÉMA ZAPOJENIA (galvanické oddelenie usb):
Clipboard02.jpg
YAML KÓD:

EDIT:1
- upravil som piny nakoľko pin GPIO15 nedokáže čitať a bol prehodený na SEL_pin
- ešte musim porovnať s nejakým power metrom pre kontrolu výstupných hodnôt nakoľko keď vynásobím volty x ampére tak výsledná hodnota je dvojnásobná ako ukazuje power na module.

Kód: Vybrat vše

substitutions:
  friendly_name: ESP-Strip
  device_name: esp-strip
  created_by: "StudioTiiM 2022"
  device_description: "convert strip Tuya Lingan SWB2-1 and add power meter hlw 8012"

  button_pin: GPIO13
  socket1_pin: GPIO12
  socket2_pin: GPIO14
  socket3_pin: GPIO05
  usb_pin: GPIO16
  
  hlw_sel_pin: GPIO15
  hlw_cf_pin: GPIO003 #power measured
  hlw_cf1_pin: GPIO04 #current/voltage
#-------------------------------------------
# ESP main settings
#-------------------------------------------
esphome:
  name: esp-strip1

esp8266:
  board: esp01_1m
  restore_from_flash: true

logger:
api:
ota:
  password: "6d46e4943a7c28f4a232784e352152aa"
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "$device_name Hotspot"
    password: "passstrip"
captive_portal:
  
#-------------------------------------------
# SENSORS
#-------------------------------------------
sensor:
#-------------------------------------------
# Wifi signal component
#-------------------------------------------
  - platform: wifi_signal
    name: "${friendly_name} Signal"
    update_interval: 320s
    
#-------------------------------------------
# Power meter sensor - hlw8012 modul
#-------------------------------------------
  - platform: hlw8012
    sel_pin: "$hlw_sel_pin"
    cf_pin: "$hlw_cf_pin"
    cf1_pin: "$hlw_cf1_pin"
#    initial_mode: CURRENT
    change_mode_every: 5
    current:
      name: "${friendly_name} Current"
      id: current
      on_value:
        then:
          component.update: power_temp
    voltage:
      name: "${friendly_name} Voltage"
      id: voltage
      accuracy_decimals: 0      
    power:
      name: "${friendly_name} Power"
    energy:
      name: "${friendly_name} Energy"
    update_interval: 10s

#-------------------------------------------
# Power meter template - correct watt and total energy 
# (it is necessary to check the consumption data)
#-------------------------------------------
  - platform : template
    name: "${friendly_name} Power temp"
    id: power_temp
    icon: "mdi:flash"
    unit_of_measurement: "W"
    lambda: |-
      return (id(current).state * id(voltage).state);
    update_interval: never
    accuracy_decimals: 0

  - platform: total_daily_energy
    name: "${friendly_name} Total energy"
    power_id: power_temp
    unit_of_measurement: 'kWh'
    icon: mdi:circle-slice-3
    state_class: total_increasing
    device_class: energy
    filters:
        # Multiplication factor from W to kW is 0.001
      - multiply: 0.001
    accuracy_decimals: 3
    
#-------------------------------------------
# BINARY SENSORS
#-------------------------------------------
binary_sensor:
#-------------------------------------------
# Button strip - on press all relay on or off
#-------------------------------------------
  - platform: gpio
    name: "${friendly_name} Button"
    pin:
      number: "$button_pin"
      mode: INPUT_PULLUP
    id: press_strip
    filters:
      - invert:
      - delayed_on: 10ms
    device_class: power
    on_press:
      then: 
        - switch.template.publish:
            id: socket_all_temp
            state: !lambda |-
              if (id(socket_all_temp).state) {
                return false;
              } else {
                return true;
              }
#    on_click:
#    - min_length: 50ms
#      max_length: 990ms
#      then:
#      max_length: 5000ms
#      then:

#-------------------------------------------
# SWITCHES
#-------------------------------------------
switch:
#-------------------------------------------
# Template Button 1 Left
#-------------------------------------------
  - platform: template
    name: "${friendly_name} Socket all"
    id: socket_all_temp
    optimistic: true
    restore_state: on
    on_turn_on:
      then:
        - switch.turn_on: plug1
        - switch.turn_on: plug2
        - switch.turn_on: plug3
        - switch.turn_on: plugusb
    on_turn_off:
      then:
        - switch.turn_off: plug1
        - switch.turn_off: plug2
        - switch.turn_off: plug3
        - switch.turn_off: plugusb
        
#-------------------------------------------
# Led button - find out why it is the same pin as the button
#-------------------------------------------
  - platform: gpio
    id: led
    pin:
      number: "$socket1_pin"
      inverted: true

#-------------------------------------------
# Socket - USB
#-------------------------------------------
  - platform: gpio
    name: "${friendly_name} USB"
    pin: "$usb_pin"
    id: plugusb
    restore_mode: RESTORE_DEFAULT_ON
    icon: mdi:usb

#-------------------------------------------
# Socket - 1
#-------------------------------------------
  - platform: gpio
    name: "${friendly_name} Socket1"
    pin: "$socket1_pin"
    id: plug1
    restore_mode: RESTORE_DEFAULT_OFF
    icon: mdi:power-socket-de

#-------------------------------------------
# Socket - 2
#-------------------------------------------
  - platform: gpio
    name: "${friendly_name} Socket2"
    pin: "$socket2_pin"
    id: plug2
    restore_mode: RESTORE_DEFAULT_OFF
    icon: mdi:power-socket-de
    
#-------------------------------------------
# Socket - 3
#-------------------------------------------
  - platform: gpio
    name: "${friendly_name} Socket3"
    pin: "$socket3_pin"
    id: plug3
    restore_mode: RESTORE_DEFAULT_OFF
    icon: mdi:power-socket-de

#-------------------------------------------
# TIME
#-------------------------------------------
time:
  - platform: homeassistant
    id: homeassistant_time
HASSIO.jpg
CHYBY:
- Počas úpravy sa mi vyskytla jedna chyba modulu a to, že nechcel bez akejkoľvek zmeny nabehnúť po pripojení cez ftd a pozretí logu na mňa vyskočila chyba:

Kód: Vybrat vše

ets Jan 8 2013,rst cause:2, boot mode:(3,6)
Podľa info na nete som moc vecí nezistil. ale pomohlo až nahratie firmware znova na modul cez PC.

- Je potrebná korekcia spotreby.

Odpovědět

Zpět na „Komplexní projekty“