Flashear enchufe Teckin SP22 ( o Gosund SP1 o BlitzWolf SHP2 ) con firmware Espurna e integración en Home Assistant

En esta ocasión voy a flashear cuatro Teckin SP22 mas que me hacían falta para varios dispositivos que quería controlar , al precio que tienen no vale la pena andar reutilizando alguno de los que uso por temporadas como los de los ahuyentadores de mosquitos u otros chismes.

Estos enchufes también estan en el mercado como Gosund SP1 o BlitzWolf SHP2

Lo peor de estos enchufes es que los muy ca………. vienen termo soldados y abrirlos es un festival , para abrirlos hay que darles bastante calor con una pistola de calor , con un cutter repasar varias veces los bordes y luego hacer presión hasta que salten un par de pestañas , quedan algo marcados , pero nada que no se pueda disimular

Haciendo presión al final se abren , las dos marcas que quedan luego se pueden disimular bastante bien con un poco de calor devolviéndoles la forma original

Sacaremos los dos tornillos interiores para poder girar un poco la placa.

Giraremos un poquito la placa , podemos observar la seña IO0 para ponerlo en modo programación.

Al girarlo veremos que tiene un TYWE2S que es compartible con el firmware Espurna

Este es pinout del modulo TYWE2S

Existen dos versiones de este enchufe con dos placas diferentes , estos serian los pines del modulo antiguo cuyas señales venían serigrafiadas en la placa.

Para versiones actuales 2.3 y 2.4 estas serian las señales directamente desde el modulo TYWE2S

El firmware a grabar será el siguiente :

Soldaremos con cuidado los cables que vienen de nuestro adaptador FTDI USB a TTL teniendo en cuenta que van RX a TX y TX a RX

Yo personalmente prefiero soldar GPIO0 directo al adaptador me resulta mas cómodo para llevar esta señal a cero y que entre en modo de programación

Quedaria algo asi

TRABAJAREMOS SIEMPRE SIN CONECTAR EL ENCHUFE A 220Vac , YA QUE LA ALIMENTACION LA COGERA DIRECTAMENTE DEL ADAPTADOR FTDI USB A TTL , SI ENCHUFAMOS EL ADAPTADOR CON 220Vac ES POSIBLE QUE FRIAMOS ALGO.

Por facilidad últimamente suelo usar tasmotizer , pero antes de flashear el nuevo firmware siempre saco una copia del dispositivo

Marcaremos “save original firmware” y elegimos el fichero previamente descargado , en este caso tenemos que desmarcar el auto reset , y siempre “erase before flashing” así evitaremos problemas de corrupción.

Una vez pulsemos Tasmotize empezara a leer y guardar el firmware original del dispositivo

Lo quitaremos del alargo usb y pulsamos OK

Empieza a borrar la flash del dispositivo

Una vez borrada la flash empezara a escribir el nuevo firmware

Si todo es correcto reiniciaremos el dispositivo pero antes debemos quitar la señal GPIO0 de masa

Al arrancar deberemos ver que aparece una nueva wifi

Una vez comprobado esto podemos proceder a montar de nuevo el enchufe

Nos conectaremos a la wifi ESPURNA-XXXXXX con la clave fibonacci

Accederemos a la url http://192.168.4.1/ con las credenciales admin / fibonacci

La primera pantalla nos pide cambiar la contraseña por defecto

Una vez que volvamos a entrar a la wifi ESPURNA-XXXXXX y nos autentiquemos veremos la pantalla de estado que nos dará información de tensiones y consumos si todo es correcto.

En la pestaña general cambiaremos el nombre del dispositivo

Después de reiniciar ya aparece el nombre del dispositivo , activamos si queremos el auto discovery de Home Assistant

Configuramos la conexión a nuestro servidor MQTT

Definiremos los tiempos de lectura y cada cuantas lecturas envia la información a nuestro sistema

Aquí definiremos el comportamiento de la salida del enchufe en el arranque

Configuramos al wifi principal y la de backup , asi como si queremos IP fija o dinámica

Aquí definimos la contraseña de acceso al panel web y toda la parte de conexión via API

Podremos ver como va enviando los datos a nuestro servidor MQTT

Y desde de MQTT EXplorer veremos como van llegando correctamente.

Configuramos el switch en Home Assistant y toda la parte de sensores

switch:
    - name: enchufe_26
      state_topic: enchufe-26/relay/0
      command_topic: enchufe-26/relay/0/set
      payload_on: 1
      payload_off: 0
      availability_topic: enchufe-26/status
      payload_available: 1
      payload_not_available: 0    
      qos: 0
      retain: false
      optimistic: false  
 

sensor:
    - name: enchufe_26_current
      state_topic: enchufe-26/current
      unit_of_measurement: A
      icon: mdi:power-socket
      force_update: true
      
    - name: enchufe_26_voltage
      state_topic: enchufe-26/voltage
      unit_of_measurement: V
      icon: mdi:flash
      force_update: true
      
    - name: enchufe_26_power
      state_topic: enchufe-26/power
      unit_of_measurement: W
      icon: mdi:power-plug
      force_update: true
      
    - name: enchufe_26_reactive
      state_topic: enchufe-26/reactive
      unit_of_measurement: W
      icon: mdi:calendar  
      force_update: true
      
    - name: enchufe_26_apparent
      state_topic: enchufe-26/apparent
      unit_of_measurement: W
      icon: mdi:calendar-today
      force_update: true
      
    - name: enchufe_26_factor
      state_topic: enchufe-26/factor
      unit_of_measurement: '%'
      icon: mdi:division
      force_update: true
      
    - name: enchufe_26_energy
      state_topic: enchufe-26/energy
      unit_of_measurement: kWh
      icon: mdi:calendar-blank
      force_update: true  

También definimos un sensor tipo ping para controlar la comunicación con nuestro enchufe

  - platform: ping 
    host: 192.168.1.106
    name: ping_enchufe_26
    count: 5
    scan_interval: 150 

En customize.yaml le pondremos iconos y textos.

binary_sensor.ping_enchufe_26:
  friendly_name: Enchufe 26
  icon: mdi:power-socket-eu
  
switch.enchufe_26:
  friendly_name: Enchufe 26
  icon: mdi:power-socket-eu
sensor.enchufe_26_current:
  friendly_name: Consumo actual Enchufe 26
  icon: mdi:power-socket
sensor.enchufe_26_voltage:
  friendly_name: Tension Enchufe 26
  icon: mdi:flash
sensor.enchufe_26_power:
  friendly_name: Potencia actual Enchufe 26
  icon: mdi:power-plug
sensor.enchufe_26_reactive:
  friendly_name: Reactiva Enchufe 26
  icon: mdi:calendar
sensor.enchufe_26_apparent:
  friendly_name: Consumo aparente Enchufe 26
  icon: mdi:calendar-today
sensor.enchufe_26_energy:
  friendly_name: Consumo acum. Enchufe 26
  icon: mdi:calendar-blank
sensor.enchufe_26_factor:
  friendly_name: Factor de potencia Enchufe 26
  icon: mdi:division    

Y ya a programar automatizaciones a gusto del consumidor , con esto y un bizcocho ….