Como crear un Termostato Inteligente DIY en Home Assistant







                Termostato Inteligente DIY

Presentación:

      Buenas a tod@s, esta vez os traigo un packages para Home Assistant (termostato_inteligente_diy.yaml) con el cual podemos crear un termostato virtual inteligente con horarios configurables al gusto y podremos controlar la caldera, emisores térmicos, radiadores, aire acondicionado, etc que tengamos vinculados a un termostato físico o si no lo tenemos podremos empezar a controlarlos con Home Assistant simplemente con un sonoff basic o cualquier otro mecanismo inteligente que tenga relé o pueda controlar uno, un sensor de temperatura integrable en Home Assistant, tipo xiaomi por ejemplo y sensores de apertura para evitar un gasto innecesario por puertas o ventanas abiertas.

Instalación eléctrica:

      Aquí dejo el esquema eléctrico para que al mismo tiempo que controlamos la climatización con nuestro termostato inteligente DIY podamos seguir manteniendo nuestro termostato físico para casos que Home Assistant no reinicie o simplemente pasar el control de nuevo al físico. (Recomiendo poner un interruptor al wemos/lolin para poder apagarlo en caso de cuelgue tanto del lolin como de HA.)

      Como muestra, aquí mismo hay una entrada del compañero DawiEs donde nos enseña a domotizar un termostato normal:  https://domology.es/domotizar-nuestro-termostato-antiguo-y-integrarlo-en-ha/

Creando el packages:

      Antes de nada, comentar que modificar este packages requiere de un nivel avanzado de Home Assistant dado que hay muchas variables a controlar y cualquier error hará que HA no arranque y estamos hablando de mas de 2000 lineas de código si se añade la customización.

      Ahora si, nos metemos en faena, primero vamos a enumerar ciertas cosas que es recomendable tener ya funcionando:

  1. Tener instalado Home Assistant, esto es bastante importante jeje.
  2. Tener Mqtt funcionando para poder trabajar con la persistencia de estados.
  3. Recomendable tener configurados los custom_components de state-card https://domology.es/personalizando-home-assistant-con-un-customui/  y de hline https://github.com/covrig/homeassistant-hline  para que la personalización sea la correcta.
  4. Confirmar que tenemos instalado el sensor.time, necesario para los horarios y que la hora que indica sea la de nuestra zona.

configuration.yaml:

      Antes de empezar con el packages hay que declarar un include en el archivo configuration.yaml de nuestro Home Assistant para los packages en caso de no tenerlo, con la misma identación  que customize y customize_glob.

homeassistant:
customize: !include_dir_merge_named customize
customize_glob: !include customize_glob.yaml
packages: !include_dir_named packages

termostato_inteligente_diy.yaml:

      Ahora hay que crear un único y nuevo archivo .yaml en nuestro editor de texto preferido para estos menesteres, y lo nombramos como termostato_inteligente_diy.yaml (Mantener este nombre es importante).  Para el que no este familiarizado con los packages estos vienen a ser un solo archivo donde se pueden incluir todas las variables sin tener que recurrir a varios archivos diferentes.

PASO 1:

      Todo packages empieza con homeassistant: al igual que un configuration.yaml. Aquí tenemos un tutorial del compañero Mig77angel donde nos explica a utilizar los packages https://domology.es/configuracion-de-homeassistant-en-packages/

El contenido del packages lo he dividido en varios pasos para que sea mas fácil entenderlo, pinchando en los enlaces aparecerá el código que tenemos que ir añadiendo tal cual está identado a nuestro termostato_inteligente_diy.yaml.

*Aclarar que customize y customize_glob están en los últimos pasos en la guía pero deben ir inmediatamente después de homeassistant: dentro del .yaml, para verlo mejor descargar el .yaml con el packages completo.

  Ahora creamos el climate que hará la función de termostato virtual.

 http://domology.es/termostato_inteligente_diy-yaml-paso1/

Aquí vemos varias posibilidades de configuración, de momento lo más recomendable es mantener el name del climate para una vez terminada toda la guía poder comprobar que el packages funciona.

(Declarar en heater y target_sensor nuestras propias entidades)

PASO 2:

      Debajo del climate añadimos los interruptores virtuales (input_boolean) que controlarán los diferentes modos del funcionamiento de nuestro termostato inteligente DIY y para la activación de las diferentes programaciones. En este caso son 4 programas para días laborables y 2 para el fin de semana/festivos, además hay una extra para los horarios no programados que será la temperatura fijada en el Modo Fuera/No prog.

http://domology.es/termostato_inteligente_diy-yaml-paso2/

PASO 3:

      Ahora vamos a crear los input_number que nos servirán para modificar las temperaturas en los diferentes modos y también la programación de los horarios: 

http://domology.es/termostato_inteligente_diy-yaml-paso3/

      Con esto tenemos creados todos los controles para nuestro termostato inteligente.  

PASOS 4-5-6-7-8:

Creación de los sensores necesarios.

http://domology.es/termostato_inteligente_diy-yaml-paso4-5-6-7-8/

      En el Paso 4 creamos el binary_sensor.workday el cual nos va a indicar si estamos en dia laborable o no laborable para adecuar el termostato a la programación que tengamos hecha, aquí podeis ver más sobre este sensor https://www.home-assistant.io/components/binary_sensor.workday/

      El sensor del Paso 5 convierte la hora actual a minutos de ahí que es muy importante que HA tenga configurada la zona horaria correcta.

      Los sensores del Paso 6 comprueban el estado de los relés tanto del termostato virtual como del físico en caso de tenerlo.

      Los sensores horarios los definimos en el Paso 7 y el Paso 8 son los sensores hline para las lineas de separación dentro de los grupos.

Para la programación posterior hay que aclarar que los horarios se definen siempre partiendo desde las 12 de la noche, es decir, las 0:0. Para definir un horario de 10 de la noche a 4 de la mañana deberemos crear dos programaciones, una de 22:0 a 23:55 y otra de 0:0 a 4:0, el apagado del termostato siempre debe ser superior en minutos al encendido.

    PASOS del 9 al 18:

Vamos a crear la pestaña principal y los diferentes grupos.

http://domology.es/termostato_inteligente_diy-yaml-paso-9-al-18/

      PASOS 19 a 22:

Customize y customize_glob, estos archivos habrá que colocarlos justo debajo de homeassistant: en nuestro .yaml, antes del climate o cualquier otra declaración.

homeassistant:
#######################################################
## 19 -- PERSONALIZACION DE LAS ENTITIES CREADAS
#######################################################
customize:
climate.radiador_salon:
friendly_name: Termostato Salon
entity_picture: /local/climate_azul.jpg

      Aclarar que el 20 son los sensores hline y muy importante no modificar el 21 porque ahí es donde declaramos la persistencia para guardar los horarios y las temperaturas programadas asi como el modo de funcionamiento en el que estaba el termostato en caso de reinicio de HA.

http://domology.es/termostato_inteligente_diy-yaml-paso-19-al-22/

PASOS 23 a 35:

      Ahora nos vamos a dedicar a definir los automations. Con estos conseguiremos que nuestro termostato inteligente funcione de forma correcta, se ha realizado algún cambio de mejora desde la primera versión subida. También nos encontramos con los automations que conseguirán hacer que se recuperen los estados anteriores (persistencia).

http://domology.es/termostato_inteligente_diy-yaml-paso-23-al-35/

      Con esto debemos de tener ya listo nuestro termostato inteligente DIY para funcionar. 

Si además queremos integrarlo en Telegram para controlar parte de sus funciones, podemos empezar por seguir este tutorial https://domology.es/crear-menu-interactivo-en-telegram/

Packages completo:

En el packages completo que dejo a continuación, en la parte final, teneis dicha integración en Telegram.

http://domology.es/termostato_inteligente_diy/

Hasta aquí llegamos con esta guía, espero que le podais sacar provecho y toda mejora será bien recibida.

Como siempre, si tenéis cualquier duda, dejad vuestros comentarios en la web o en el grupo de telegram de @Domology

2 comentarios sobre “Como crear un Termostato Inteligente DIY en Home Assistant

  • el 11 diciembre, 2018 a las 23:08
    Permalink

    La idea me encanta, pero justo había comprado un shelly1 y un shelly sensor de temperatura para hacerlo menos automatizado y ahora me ha picado el gusanillo, sabes si con los shelly podré hacerlo?

    • el 12 diciembre, 2018 a las 16:14
      Permalink

      Si tienes los shelly integrados en HA los puedes utilizar tanto como sensor de temperatura como de switch en el climate

Deja un comentario

Síguenos

Siguenos en facebook