Dispositivos ESP8266. Domuino en Home Assistant

Una vez que ya tenemos instalado y configurado MQTT, tenemos que darle alguna utilidad, y nada mejor para ello que usar un dispositivo ESP8266

¿Cómo? ¿Que aún no sabes instalar MQTT? Anda, pincha aquí.

Una de las utlidades que le vamos a dar a MQTT es la comunicación de dispositivos basados en el chip ESP8266, como por ejemplo el Nodemcu o Lolín y el Wemos D1 con Home assistant

La principal ventaja de estos dispositivos frente a las placas tradicionales de arduino, es que disponen de conexión wifi, y en el caso del Nodemcu, disponen además de suficientes entradas y salidas como para poder controlar los distintos circuitos de iluminación de una habitación entera mediante el empleo de relés. Otra de las ventajas es su reducido coste, pues en china los puedes encontrar desde un par de euros

Para configurar estos dispositivos nos valdremos del sistema domuino, cuya página oficial es: http://www.domuino.es/

En primer lugar descargamos el firmware más actual que vamos a grabar en el ESP8266 desde aquí:

http://www.domuino.es/foro/showthread.php?tid=836

Para grabar el firmware, descargamos e instalamos el nodemcu-pyflasher desde aquí:

https://github.com/marcelstoer/nodemcu-pyflasher/releases

Busca en el reverso de tu ESP8266 los drivers que necesitas, descárgalos de la página del fabricante y los instalas

Abrimos el nodemcu-pyflasher y grabamos el firm, seleccionando las opciones: Baud rate 9600, Flash Mode Dual I/O (DIO) y erase flash yes, wipe all data

Una vez grabado, configuraremos el wifi del nodemcu con la ayuda de un móvil android inferior a 6.0 y la siguiente app

http://www.domuino.es/foro/showthread.php?tid=698

Para configurar domuino en el ESP8266 debemos escanear las redes wifi disponibles, y nos aparecerá una llamada DOMUINO_AP XXXXXXXXX. Nos conectamos a ella.

Abrimos la App descargada anteriormente, al iniciarse rastreará los dispositivos disponibles y encontrará el ESP8266. Le damos a Aceptar

Pinchamos sobre el dispositivo y a continuación veremos tres pestañas llamadas ARDUINO, DISPOSITIVO e INSTALACIÓN. pulsamos sobre Dispositivo y luego sobre el lápiz para editar.

Indicamos el nombre con el que identificaremos el ESP8266,

Configuramos el wifi de casa, indicando el SSID y el WifiKey, y le asignamos una IP. el puerto lo wan lo fijamos en 5082

Una vez le demos a guardar, veremos que el móvil pierde la red wifi DOMUINO_AP y al wifi de casa se habrá conectado el ESP8266.

Para mostrar el funcionamiento del dispositivo, vamos a modificar el circuito de una lampara de casa para poder apagar y encender remotamente la luz con la ayuda de un relé.

Para ello, debemos quitar los hilos que actualmente llegan hasta el interruptor, puesto que ahora el interruptor será un relé. El interruptor de la pared lo seguiremos aprovechando, pues lo vamos a conectar al ESP8266.

El esquema de la nueva instalación podría ser el siguiente:

Una vez modificada la instalación vamos a configurar el lolin (esto ya se puede hacer con cualquier móvil, no es necesario que sea android inferior a 6)

Para ello, en las tres pestañas de la app le damos a Instalación y al +

A continuación selecciona salida

Edita los campos, dando un nombre a la luz a controlar, cambia el icono por uno de tu gusto. En tipo, selecciona DIGITAL_INVERTIDA, y a continuación selecciona el pin en el que hayas conectado la maniobra del relé.

Guarda la configuración

A continuación selecciona entrada

Edita los campos, dando un nombre al interruptor, cambia el icono por uno de tu gusto. En tipo, selecciona DIGITAL_PULLUP, y a continuación selecciona el pin en el que hayas conectado el interruptor.

Guarda la configuración

Por último, hay que configurar la programación.

Para ello, haz una pulsación prolongada sobre la entrada o salida que has definido, y en los tres puntos que aparecerán en la esquina superior derecha dale a PROGRAMACIÓN.

Pincha sobre la automatización, y a continuación en condiciones. en la primera linea selecciona el interruptor definido antes,en la siguiente =, y en la tercera dale a ESTADO y a continuación a CAMBIO DE ESTADO

Seguidamente pincha en ACCIÓN y en la primera linea selecciona la luz definida anteriormente, en la segunda linea != y en la tercera linea vuelve a seleccionar la luz.

Si todo ha ido bien, te aparecerá la entrada y salida con unos engranajes.

Ahora vamos a instalar MQTT en el nodemcu a través del monitor serie del IDE de arduino:

Configura el menú desplegable de la esquina inferior derecha:

donde dice “sin ajuste de linea” debe indicar “Ambos NL & CR” y la velocidad ha de estar en 115200 baudios. Si no funcionase, prueba otras velocidades

Escribe la siguiente linea modificando los campos y dale a enviar:

#AAAN#255#000#240#BBB#CCC#CCC#CCC#CCC#000#000usuario

AAA es el bus que aparece en la app de domuino. ojo con la “N”
Se queda igual el 255 000 240.
BBB son el numero de carácteres de tu USUARIO +8 (en este caso 7+8 = 015)
CCC CCC CCC CCC es la IP del dispositivo donde tengas el server MQTT (192 168 001 012 por ejemplo)
todo lo demás igual cambiando usuario por el user que tengas configurado en tu mqtt server

a continuacion esta otra linea:

#AAAN#255#000#246#DDDpassword

AAA es el bus que aparece en la app de domuino. Ojo con la “N”
DDD son el numero de carácteres de tu password +2 (en este caso 8+2 = 010)

Ahora reseteamos el ESP8266 con el siguiente código

#AAAR#255#000

deberá aparecerte algo así como:

connected mqqt_client

Si has llegado hasta aquí, ya solo falta crear los switch en Home Assitant

Para ello creamos, si no lo tienes ya, el archivo switch.yaml y pegamos dentro lo siguiente:

- platform: mqtt
  name: "nombre que quieras"
  state_topic: "domuino001/get/nombre de la salida" (la que has definido en domuino)
  command_topic: "domuino001/set/nombre de la salida" (la que has definido en domuino)
  payload_on: "1"
  payload_off: "0"
  qos: 0

Hay que añadir y editar este grupo de líneas por cada salida o relé que tengas.

Y ya está. Ya puedes encender y apagar luces con tu nodemcu y Home Assistant

Por último, gracias a César cabe indicar que si en algún momento realizas alguna modificación en el servidor mqtt y necesitases reconfigurar el acceso a éste, tan solo has de volver a enviar por el monitor en serie las anteriores lineas, teniendo la precaución de sustituir la N por una S en el grupo AAA para sobrescribir la configuración.

Una vez tengas instalado domuino en tu ESP8266 existe la posibilidad de actualizarlo via OTA.

Para ello debes acceder a la web http://IPdetuesp8266/ota

Te pedirá un usuario, que es domuino

El password que te pide es la keymaster que te ofrece el IDE de arduino cuando lo conectas al monitor en serie.

A continuación seleccionas el archivo a flashear y le das a update.

Y así actualizas tu ESP8266 sin necesidad de conectarlo al PC ni sacarlo de donde lo hayas instalado.

Hasta la próxima!

 

7 comentarios sobre “Dispositivos ESP8266. Domuino en Home Assistant

  • Pingback:Interruptores SonOff. Firmware Tasmota y HA | Domology 2.0

  • el 11 febrero, 2018 a las 14:06
    Permalink

    Hola soys unos cracks!
    Estoy intentando seguir vuestros pasos, pero al configurar el archivo switch.yaml
    (entiendo que en el archivo configuration.yaml hay que incluir esto:
    switch: !include switch.yaml)
    Al arrancar el HA me aparece esto:
    Invalid config

    The following components and platforms could not be set up:

    port
    mqtt
    password
    broker
    client_id
    username
    switch

    Please check your config.

    A ve si me podeis ayudar.
    Gracias

    • el 12 febrero, 2018 a las 15:34
      Permalink

      Entiendo, que la instalación de MQTT te ha salido bien y la prueba de las dos ventanas te salió correctamente.
      En el código que hay que añadir al archivo swicth.yaml le falta dos espacios en cada linea, excepto a la primera, es decir deben empezar todas las lineas al mismo nivel de la p de platform.
      A ver si saco un rato y lo corrijo.
      Prueba si fuera eso…

      Gracias!

      • el 15 febrero, 2018 a las 22:45
        Permalink

        Si gracias era eso!! Eres un maquina.
        Pero tengo otro problema ahora, aunque ponga la configuracion en el configuration.yaml o en el switch.yaml ese no es el problema.
        Tengo este switch configurado:
        – platform: mqtt
        name: “LEd1”
        state_topic: “domuino001/get/led1”
        command_topic: “domuino001/set/led1”
        payload_on: “1”
        payload_off: “0”
        qos: 0
        retain: true
        Pero este no actua sobre el led de domuino.
        El nombre que le he puesto al dispositivo es DOMUINO, esta en el bus 1. El led se llama led1. Cree una entrada llamada intled1. y realize la progaramación como indicaste.
        Se te ocurre algo?

          • el 16 febrero, 2018 a las 09:33
            Permalink

            Al final consegui solucionarlo, el problema venia en DOMUINO qe no me conectaba correctamente a mqtt. No me guardava la configuracion. borre la eprom de nuevo y empezo a funciona.

          • el 16 febrero, 2018 a las 16:49
            Permalink

            Me alegro que funcione todo bien!

Deja un comentario

Síguenos

Siguenos en facebook