Ya hemos visto con anterioridad como reprogramar otros artículos de Itead. Son baratos, fáciles de usar y tienen su propia aplicación que resulta adecuada para la mayoría de los usuarios. Pero nuestro objetivo en éste blog es hacer que dispositivos de varios fabricantes puedan funcionar en nuestro entorno OpenHAB y no tener que usar distintas aplicaciones para cada dispositivo instalado en nuestra casa.
Es por ello que el primer paso es desmontar el S26 para poder reprogramarlo a nuestro gusto. Y éste es aspecto del enchufe interiormente:
Una vez desmontado es fácil localizar y acceder a los pines que necesitamos para la reprogramación:
Tan sólo con soldar 4 cables ya podemos reprogramar el dispositivo. Como es habitual usamos el rojo para el positivo de alimentación (3,3v), el negro para el negativo (GND) y otro par de cables para los pines Tx y Rx que debemos intercambiar en el adaptador USB-serie de forma que conectemos Tx de un lado con Rx del otro y viceversa.
Ya estamos listos para la reprogramación. Podeis descargar el sketch del siguiente enlace:
Lo abrimos con nuestro arduino IDE, incluimos en el programa los campos necesarios para que funcione en nuestro domicilio
Tendremos en cuenta antes de programarlo que el modelo de placa es una «Generic ESP8266 module» y que el puerto serie seleccionado sea el correcto.
Pulsamos programar y ya está listo para usar en nuestro entorno OpenHAB.
Ahora podemos desconectar los cables, volver a montar nuestro enchufe inteligente y enchufarlo a la corriente.
A partir de aquí sólo queda configurar los archivos .items, .sitemap y .rules para hacer uso del dispositivo en nuestro entorno OpenHAB.
Archivo .items:
Switch S26IN "Enchufe" <poweroutlet> ["Switchable"] {mqtt=">[mosquitto:s26/topic:command:ON:ON],>[mosquitto:s26/topic:command:OFF:OFF]"} Switch S26OUT "Estado enchufe" {mqtt="<[mosquitto:status/topic:state:default]"}
Archivo .sitemap:
Switch item=S26IN
Archivo .rules:
rule "Enchufe encendido por pulsación" when Item S26OUT received update ON then sendCommand(S26IN, ON) end rule "Enchufe apagado por pulsación" when Item S26OUT received update OFF then sendCommand(S26IN, OFF) end
A través del archivo .rules nos aseguramos que cuando se enciende o apaga el enchufe a través del pulsador, se notifica el cambio de estado al servidor y así tendremos en pantalla el estado real del enchufe en cada momento.