OpenHAB #19 (Controla el motor de tus persianas)

Este es uno de los apartados de la domótica más básicos y del que podemos encontrar un montón de soluciones distintas. Si optamos por un control domótico conectado a nuestra red wifi podemos comprobar como el precio se dispara, no sólo por el hecho de tener que comprar los motores, sino porque la opción de controlarlos de manera remota encarece, y mucho, la factura final.

La compra de los motores es algo imprescindible pero en este post veremos como conectarlos a nuestro servidor OpenHAB y controlarlos desde nuestros teléfonos por muy poco dinero.

Estoy pendiente de realizar un post reprogramando un SonOff Dual que se adapta perfectamente a nuestro requerimiento pero en este caso he optado por un WemosD1 y una placa de dos relés como lo que podeis ver en la siguiente imagen:

IMG_0325

La forma de alimentar el WemosD1 ya es opcional. Es recomendable alimentar con 5v ya que con esa misma tensión podemos alimentar también la placa de relés pero podemos usar un cargador de móvil android

img_0327.jpg

O podemos usar un HLK-PM01 como el de la foto que básicamente es un transformador de 220v alterna a la entrada y 5v de continua a la salida.

IMG_0326

El coste total en hardware no debería superar los 10 euros.

Conectamos la alimentación del relé aprovechando los mismos 5v que usamos para el WemosD1 y conectamos la entradas IN1 e IN2 del relé a los pines D5 y D0. No tienen que ser esos obligatoriamente ya que se pueden cambiar en el programa pero por ahora son los que vienen programados por defecto.

Para la conexión de la corriente del motor nos fijamos en el siguiente esquema:

relés

Identificamos los cables que corresponden a subida y bajada del motor y los conectamos a los pines NO (normalmente abierto) de cada relé. El neutro del motor irá conectado directamente al neutro (N) de nuestra toma de corriente y la fase (L) se conectará sólo al común de uno de los relés. Por último el común del otro relé irá conectado al pin NC (normalmente cerrado) del primero.

Si bien el software propuesto impide que en ningún momento se activen los dos relés a la vez, como medida adicional de seguridad podemos comprobar que no es posible tener conectados los dos cables de subida y bajada al mismo tiempo.

Ya podemos descargar el sketch de arduino desde el siguiente archivo:

Persianas_MQTT.ino

Otra de las ventajas del WemosD1 es su facilidad de programación ya que con un cable de cargador de un teléfono android podremos conectarlo a cualquier puerto USB de nuestro ordenador.

Abrimos el Arduino IDE, seleccionamos “Wemos D1 R1” en nuestro tipo de placa y seleccionamos el puerto serie al que lo tenemos conectado.

Antes de programarlo definitivamente añadimos en el sketch los datos de nuestra red wifi y parámetros mqtt. Además de los datos habituales debemos proporcionar uno en especial y es el tiempo en segundos que tarda en subir la persiana ya que en función de ese valor calculará el tiempo que deberá mantener activado cada relé.

Y una vez más el último paso consiste en configurar los archivos .items, .sitemap y .rules

Archivo .items:

Dimmer ROLLER1 "Persiana [%s]" <rollershutter> ["Lighting"] {mqtt=">[mosquitto:topic/persiana/salon:command:*:default]"}

Archivo .sitemap:

Switch item=ROLLER1 mappings=[0="Abrir", 100="Cerrar"]
Slider item=ROLLER1

Archivo .rules:

//Abre persiana a las 8 de la mañana
rule "Abre persiana"
when
Time cron "0 0 8 1/1 * ? *"
then
sendCommand(ROLLER1, 0)
end

//Cierra persiana a las 8 de la noche
rule "Cierra persiana"
when
Time cron "0 0 20 1/1 * ? *"
then
sendCommand(ROLLER1, 100)
end

Como podemos comprobar la misma configuración se ve de diferente manera si usamos la app para IOS de OpenHAB:

IMG_0330

Si acccedemos por web al BASIC UI:

img_0329.png

O si accedemos a través de la web al CLASSIC UI:

IMG_0328

La elección del entorno es personal pero podemos comprobar que en el classic UI no aparece el slider como en los otros dos casos y en su lugar aparecen dos botones. He tenido que adaptar el programa para ese caso concreto de forma que una pulsación en el botón de subir o bajar desplaza la persiana un 20% en la dirección elegida de forma que 5 pulsaciones completan el recorrido total de la persiana.

9 Comentarios Agrega el tuyo

  1. miguelbueno dice:

    No se si te habrá pasado pero el año pasado hicimos el control de persianas con sonoff pro mediante tasmota, usé el pro ya que los relés tienen los tres contactos accesibles, y en todas las ocasiones después de horas de uso, los contactos del relé 2 se soldaban.

    Hemos optado por poner un Shelly2 y funciona de maravilla.

    Por cierto felicidades por el blog.

    Me gusta

  2. recretron dice:

    Los relés que tengo ahora mismo son los mismos que aparecen en la foto de éste blog y no me dan ningún problema. No sabía que los relés de los dispositivos SonOff podían llegar a soldarse a largo plazo.

    De todas formas lo probaré. Gracias

    Le gusta a 1 persona

  3. VicBCN dice:

    Hola, Gracias por tu post. Tengo pendiente realizar el control sobre las persianas pero no quiero prescindir del control mediante pulsador/interruptor.

    Ahora mismo tengo interruptores simon ( https://www.simonelectric.com/27333-65-interruptor-persianas-10-250v-3-posiciones-subida-bajada-paro-blanco-simon-27-play.html ) En caso de seguir tu tutorial y cambiando los interruptores por pulsadores, en el momento de subir o bajar la persiana por pulsador openhab leeria la nueva posición?

    Saludos y gracias!

    Me gusta

    1. recretron dice:

      No. Esa función no está programada. Doy por supuesto que si la persiana está en posición 0 (abierta por ejemplo) y la cerramos manualmente a la posición 50, cuando reciba la orden de cerrar (posicion 100) se cerrará por completo ya que activará el relé el tiempo en segundos que le hayamos programado.

      Me gusta

  4. VICBCN dice:

    Gracias por tu respuesta.

    Y si utilizara unos pulsadores directamente conectados a Arduino se quedaría grabada la posición? Lo que más me interesa es que si muevo el slider desde open hab al 35% de apertura y luego manualmente pulso hasta el 75%. Cuando vaya a openhab quede reflejada esa última posición. He visto el Shelly2 que comenta MiguelBueno pero creo que no tiene slider para fijar la posición.

    Me gusta

    1. recretron dice:

      Si usas unos pulsadores y añades un contador en el programa para verificar el tiempo que se mantiene activado ya sería posible grabar la nueva posición y actualizarla en el sitemap de openhab

      Me gusta

    1. recretron dice:

      Por supuesto. Es compatible con todos los motores cableados.

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s