Hoy va de openHAB y smarthome.
Ya tengo unos cuantos de estos módulos de sonoff en funcionamiento, y ningún problema de momento. Eso si, todos flasheados con tasmota, que permiten un control mucho más fácil, y los desconecta de los servidores chinos.
El hardware
Me hacían falta aun un par de ellos más, y ya han llegado!
para poderlos añadir a openHAB necesitamos «tasmotizarlos» para que sean capaces de comunicarse por MQTT, y para ello necesitamos:
– un sonoff
– un conversor USB-TTL a 3v3 (importante!)
– una herramienta para Windows o Mac
– la última versión de tasmota
Lo voy a hacer con un Sonoff Basic R3, pero el procedimiento es muy similar para otros sonoff, como por ejemplo el sonoff mini.
Si aún no tienes ninguno, puedes conseguirlo aquí:
como conversor USB-TTL yo tengo uno muy sencillito, este de aqui:

En principio cualquiera vale, incluso se podría usar un Arduino UNO o nano.
siempre es recomendable usar uno con chip FTDI, mas fiables.
Como flashear
para flashear, otras veces lo he hecho con una herramienta llamada esphome-flasher, ya que tiene version para Mac. Si lo vas a hacer con Windows, puedes usar la propia herramienta de Tasmota: Tasmotizer
https://github.com/tasmota/tasmotizer/releases

Para que venga en español, elegid la opcion Release y dentro del desplegable el archivo que se llama tasmota-ES.bin
Para poner el módulo de tal modo que lo podamos flashear, hay que pulsar el botón al conectar la alimentación, y seguir este pinout:

3V3 <-> 3V3
Rx <-> Tx
Tx <-> Rx
GND <-> GND
Una vez preparada la herramienta Tasmotizer y el sonoff listo en modo flash, solo hay que darle Tasmotize! y esperar a que termine.
Primera configuración
Después de un par de minutos, ya tenemos nuestro sonoff con tasmota listo. Para que tasmota empiece a funcionar hay que reiniciar el módulo desconectándolo del conversor TTL.
La misma herramienta tiene una opción para ponerle la configuración básica al módulo, como detalles del wifi, tipo de dispositivo o configuración MQTT. para ello hay que volver a conectar los cuatro cables antes de darle a save.
Ahora ya sí que lo podemos alimentar, y una vez lo localicemos en la red (con Fing, por ejemplo o mediante la interfaz del router) podemos terminar de configurarlo.
Todos mis tasmota tienen (normalmente) el parámetro PowerOnState configurado, para que al encender, el relay conmute a ON. muy útil por si algo fallara en openHAB, poder encender las luces usando el interruptor de la pared.
Y lo añadimos a openHAB
Ahora solo falta añadirlo a openHAB, y me gusta hacerlo directamente con archivos de configuración.
En el archivo /etc/openhab/things/XXX.things lo siguiente:
Thing topic LedJMDespacho "Led JM Despacho" @ "Despacho"{
Channels:
Type string : reachable "Online" [ stateTopic="tele/LedJMDespacho/LWT" ]
Type switch : power "Power" [ stateTopic="stat/LedJMDespacho/POWER", commandTopic="cmnd/LedJMDespacho/POWER" ]
Type number : rssi "Señal WiFi" [ stateTopic="tele/LedJMDespacho/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
}
y en el archivo /etc/openhab/items/XXX.items:
String LedJMDespacho_Reachable "Online: [%s]" <contactable> (gLights) { channel="mqtt:topic:localhost:LucesDespacho:reachable" }
Switch LedJMDespacho_Power "Luces Despacho" <light> (gLights) { channel="mqtt:topic:localhost:LucesDespacho:power", ga="Light" }
Number LedJMDespacho_RSSI "Señal WiFi" <wifi> (gLights) { channel="mqtt:topic:localhost:LucesDespacho:rssi" }
y solo nos falta el archivo /etc/openhab/sitemaps/XXX.sitemap
Frame label= "Despacho"
{
Switch item= LedJMDespacho_Power
}
y listo para funcionar!