El módulo de persianas lo vamos a realizar con un Sonoff 4CH Pro como el de la imagen de la derecha.
Y el esquema de montaje físico es el que ves debajo de estas líneas.
Para ejecutar el software que nos interesa flashearemos el sonoff con tasmota
https://github.com/arendst/Sonoff-Tasmota/wiki/Sonoff-4CH-and-4CH-Pro
Una vez que hemos conseguido cargar tasmota en el 4chPro y estamos conectados via wifi con el dispositivo. Lo configuramos como un sonoff 4chPro en la web que nos sirve, y le configuramos los datos de conectividad MQTT.
De esta manera configuramos la conectividad con el broker MQTT, que en el aula está en la ip 172.16.250.108.
el dipositivo abrirá y cerrará los 4 reles atendiendo a paquetes del tipo:
ejdlc/39/persianas/4ch1/cmnd/POWER1 con el mensaje ON OFF o TOGGLE para el relé 1 etc.
Los modos de uso en el 4chPro se definen mediante selectores en placa, pero no se puede seleccionar un modo en el que dos relés sean excluyentes de manera independiente para gobernar dos motores a la vez con cámbio de sentido de giro. Por ello hemos optado por que los relés actuen en sere dos a dos sobre cada una de las persianas de manera que el relé1 y el relé 3 alimentan las persianas y hacen funcionar los motores de las mismas, y los relés 2 y 4 permiten en sus dos posiciones elegir el sentido de guiro del motor.
Entendemos que esta disposición de botones no es la más intuitiva, y en una segunda fase del proyecto se plantea cambiar la programación del mismo para actuar de manera intuitiva sobre los cuatro pulsadores para accionar las persianas.
En cualquier caso la mayoría de los accionamientos serán automáticos o via MQTT.
Tendremos que añadir a items/mqtt.items las siguientes líneas:
Switch Persiana1P "Persiana 1 ON/OFF" { mqtt=">[broker:ejdlc/39/persianas/4ch1/cmnd/POWER1:command:*:default], <[broker:ejdlc/39/persianas/4ch1/stat/POWER1:state:default]" }Switch Persiana1W "Persiana 1 UP/DOWN" { mqtt=">[broker:ejdlc/39/persianas/4ch1/cmnd/POWER2:command:*:default], <[broker:ejdlc/39/persianas/4ch1/stat/POWER2:state:default]" }Switch Persiana2P "Persiana 2 ON/OFF" { mqtt=">[broker:ejdlc/39/persianas/4ch1/cmnd/POWER3:command:*:default], <[broker:ejdlc/39/persianas/4ch1/stat/POWER3:state:default]" }Switch Persiana2W "Persiana 2 UP/DOWN" { mqtt=">[broker:ejdlc/39/persianas/4ch1/cmnd/POWER4:command:*:default], <[broker:ejdlc/39/persianas/4ch1/stat/POWER4:state:default]" }Rollershutter Persiana1 "Persiana Uno [(%d)]" <rollershutter> (Log, gShutters)Rollershutter Persiana2 "Persiana Dos [(%d)]" <rollershutter> (Log, gShutters)Los dos items virtuales Persiana1 y Persiana2 nos sirven para introducir en el sitemap correspondiente los elementos virtuales de tipo persiana y de esta forma y a través de las reglas correspondientes hacer que los botones de subida, bajada y parada de las persianas actuen sobre los relés correspondientes. El archivo sitemaps/mqtt.sitemap podría quedar asi:
sitemap mqtt label="Nuestra clase" { Frame { Switch item=Luz_39_1 label="Luz 1" icon="light" Default item=Persiana1 label="Persiana 1" Default item=Persiana2 label="Persiana 2" }}Y cada botón virtual del tipo persiana envia dos comandos mediante una regla del módulo experimental de reglas de openhab2
rule "Persiana1Stop" when Item Persiana1 received command STOP then sendCommand(Persiana1P, OFF) sendCommand(Persiana1W, OFF) endrule "Persiana1Up" when Item Persiana1 received command UP then sendCommand(Persiana1P, ON) sendCommand(Persiana1W, ON) endrule "Persiana1Down" when Item Persiana1 received command DOWN then sendCommand(Persiana1P, ON) sendCommand(Persiana1W, OFF) endMuy bonito. Todo funcionó como debía salvando los fallos propios de la realidad, al soldar unos de los pulsadores dejó de funcionar y por tanto tuvimos que prescindir de un canal. Solución usar solo dos canales y por tanto las dos persianas moverlas solidariamente. OK funcionó durante 3 días y al tercero el relé pese a cambiar de estado y hacer el consiguiente click no movia los contactos, estaban soldados. Como teníamos un canal libre. Pusimos uno de los buenos para sustituir el "quemado", ... y volvió a durar otros 3 días.
Realidad: el relé que hace que el cambio de sentido de giro, cuando el motor está alimentado, pasando la alimentación desde un hilo al otro, no es capaz de aguantar los chispazos que esto debe producir y los contactos del mismo terminan por soldarse.
No tenemos más sonoff 4 CH pro por lo que vamos a adoptar otra solución:
wemos d1 Mini + placa de 4 relés comprada en amazon por lo de la urgencia.
con una persiana por relé bajaremos los picos de intensidad a la mitad, lo cual va a ser bueno.
y para evitar chispazos del cambio de giro los relés y los botones físicos no serán solidarios y están conectados mediante reglas con retrasos.
Para ello configuramos el wemos de la siguiente forma:
De manera que lo configuramos como si tuviera 8 relés aunque sólo cableamos a los relés los 4 últimos. que son los que van a mover las persianas.
los 4 primeros son relés virtuales el 1, 2 y 3 se pueden mover a través de interruptores. Tendremos 2 en la pared para mover las persianas solidariamente de manera física cercana al elemento (interruptores típicos de persinas) y los cámbios de estado de estos relé virtuales generarán cámbios de estado de los relés físicos 5, 6, 7, 8. ¿Ok? Yo tampoco lo entiendo muy bien hoy, pero creo que va a funcionar.
Curso 2018/19
El sistema volvió a morir y ahora estamos probando un shelly 2. lo tenemos configurado con MQTT y no contra la nube de shelly, y está funcionando sin problema con normalidad.
20 euros han conseguido ser la solución y estos de shelly están triunfando de verdad. ESP8266 usable y sin necesidad de flasheo para funcionar a través de MQTT.
Nuestro shelly2 coge la ip http://172.16.253.92/ y configurado como persiana con 2 pulsadores funciona escuchando los topics
shellies/shellyswitch-32B70E/roller/0/command
open close stop