Automatizar termo eléctrico a la tarifa de luz

Automatizar termo eléctrico a la tarifa de luz
Portada como automatizar tu termo eléctrico

Para hacer esta automatización no hace falta ni home assistant ni quebrarte la cabeza con tarifas de luz.

En mi caso lo hago así por puro cacharreo, pero la luz siempre cambia, al menos en España, a la misma hora todos los días.

Estos cambios se producen a las 10 de la mañana, dónde se pasa del horario valle al horario punta. Cambia a las 14 horas, donde vuelve el horario valle. Cambia de nuevo a las 18 hacia el horario punta y el último cambio se produce a las 22 horas dónde vuelve a entrar el horario valle.

Elementos necesarios:

  • Enchufe domótico, en mi caso Tapo P110 que ya tiene información de consumo.
  • Registro en Datadis
  • Home assistant, en mi caso versión OS, no sé si es posible hacerlo desde docker
  • Instalación de HACS en nuestro home assistant, esto se hace mediante un script desde la terminal de home assistant
  • Instalación de la integración e-data desde HACS
  • Instalación de interfaz apexcharts-cards en HACS
  • Instalación de PVPC Hourly Princig Card
  • Automatización en Home Assistant
  • Bot de precios de la luz en Telegram (sólo a título informativo)

1.- Enchufe domótico

Quizás pueda valer cualquiera, pero yo inicialmente para poner una programación horaria sin tener home assistant, me decidí a comprar el tapo P110 con control de consumo de energía.

Enchufe tapo P110

Es un enchufe económico, de la marca TP-link, que no permite muchas locuras, pero que a mi no me ha fallado nunca desde que lo tengo. Es un enchufe wifi, por lo que a los amantes del zigbee no les valdrá.

Yo lo compre en enero de 2023 y no ha cambiado mucho su precio, aunque salen ofertas con packs. Os dejo el enlace por aquí por si queréis comprarlo https://amzn.to/4agLawf

Tp-link tiene integración con su app, dónde veremos energía consumida y podremos realizar configuraciones básicas de encendido y apagado por horarios. Además también es compatible con home assistant a través de la integración TP-link Smart Home

2.- Registro en datadis

Este es un paso necesario para sacar nuestro CUPS y los datos de nuestro consumo energético desde la distribuidora, no desde la comercializadora.

Entramos en la web https://datadis.com/login y comenzamos nuestro registro.

Imagen de página de registro en datadis

Lo podremos hacer con nuestra firma digital y tarda un tiempo que puede llegar a llevar algunos días incluso.

Recibiremos un mail de confirmación cuando el registro esté realizado.

El dato que nos interesa son los cuatro últimos dígitos del CUPS, para sincronizar los datos de consumo con nuestro home assistant, mediante la integración de e-data y las tarjetas de apexcharts-cards.

Una vez confirmado el registro y copiado los cuatro últimos dígitos del CUPS, vamos al siguiente paso.

Si no hay registro, no habrá sincronización posterior, por si pensabas saltarte este paso.

3.- Home Assistant

En mi caso, como ya sabéis, lo tengo mediante Home Assistant OS en mi proxmox.

Es tan fácil como entrar a nuestro proxmox, irnos a consola en introducir el siguiente script

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"

Imagen de la página de los scripts para instalar home assistant

Esto nos llevará paso por paso a instalar una máquina virtual con este sistema operativo en unos cuantos clics.

4.- Instalación de hacs

Una vez iniciado y configurado nuestro Home Assistant, nos vamos desde proxmox a su máquina virtual y desde su terminal, instalamos HACS con el siguiente comando

wget -O - https://get.hacs.xyz | bash -

O bien, podemos desde nuestro panel de Home Assistant ir a Ajustes, Complementos e instalar Terminal & SSH para este cometido.

Una vez instalado, y tras un reinicio, tenemos que instalar la integración de HACS para que podamos verla.

Para ello, vamos a Ajustes, Dispositivos y servicios y en integracion pulsamos en el botón de Añadir integración. Escribimos HACS y debe de salirnos así

imagen de instalación de hacs en home assistant tras introducir el script

Para realizar la integración es necesario tener una cuenta en Github, así que al seleccionarla nos saldrá esta ventana

integración de GitHub, checks de opciones

Seleccionamos los 5 checks y pulsamos en el botón azul.

Nos sale la siguiente ventana en la que nos dice el link de github.com donde debemos picar, para que nos de ese token para realizar dicha integración.

enlace a GitHub para activar la integración de hacs

Introducimos el código facilitado en la tarjeta del paso anterior y pulsamos en continuar

código token que tenemos que introducir en GitHub

Autorizamos en el botón correspondiente en este paso.

imagen de autorización final en GitHub

Nos confirma que todo está correcto

confirmación que todo está ok

Y en nuestro Home Assitant, debemos ver algo así

imagen de home assistant con el paso final de la integración de HACS

5.- Instalación de la integración e-data desde HACS

En este paso, vamos a buscar la integración de e-data.

https://github.com/uvejota/homeassistant-edata

Vamos a HACS, pulsamos sobre integraciones y después pulsamos en los tres puntos de la parte superior deracha y buscamos Repositorios personalizados. Pulsamos

Menú para seleccionar repositorios personalizados

En la ventana que se nos abre, escribimos e-data en repositorio y despues, en Categoría, elegimos integración. Cuando lo hayamos encontrado, pulsamos en añadir.

instalación de la integración de edata

Este paso nos va a permitir que lo encontremos, desde la integración nativa de Home Assistant.

Probablemente, tengamos que reiniciar o HACS o Home Assistant para que veamos la integración correctamente.

Dentro de Home Assistant, vamos a Ajustes, Dispositivos y Servicios, y en integraciones pulsamos sobre el botón añadir integración.

Si todo ha ido bien, en la barra de búsqueda de la integración al introducir e-data, debemos ver algo así

Edata en las integraciones de home assistant

Luego configuramos los datos de acceso con nuestras credenciales de Datadis y el número de CUPS. El DNI no es obligatorio introducirlo

Configuración de edata donde tenemos que poner los datos del registro de datadis

Tras una breve espera, aparece un sensor con formato sensor.edata_xxxx donde las xxxx son los cuatro últimos dígitos de tu CUPS.

6.- Instalación de interfaz apexcharts-cards en HACS

Este paso es opcional, pero ya que nos hemos tomado la molestia de llegar hasta aquí, pues porque no poner unas gráficas informativas de consumo.

Para ello, vamos a HACS de nuevo y en la parte de interfaz buscamos Apexcharts.

La instalamos y reiniciamos nuestro Home-Assistant de nuevo.

Esto de reiniciar es muy habitual para que se apliquen los cambios.

Luego desde la página de GitHub consultada en el paso anterior para instalar la parte de e-data, tenemos los códigos para configurar diferentes tarjetas.

Por ejemplo, os dejo el código de una de ellas a modo de ejemplo, que es la del consumo mensual

type: custom:apexcharts-card
graph_span: 395d
stacked: true
yaxis:
  - id: eje
    opposite: false
    max: '|+20|'
    min: ~0
    apex_config:
      forceNiceScale: true
header:
  show: true
  title: Consumo mensual
  show_states: false
  colorize_states: false
all_series_config:
  type: column
  unit: kWh
  yaxis_id: eje
  extend_to: false
  show:
    legend_value: false
series:
  - entity: sensor.edata_xxxx
    type: line
    name: Total
    data_generator: |
      return hass.connection.sendMessagePromise({
      type: 'edata/consumptions/monthly',
      scups: 'xxxx'}).then(
          (resp) => {
              return resp.map((data, index) => {
                return [new Date(data['datetime']).getTime(), data['value_kWh']];
              });
          }
      );
    show:
      in_chart: true
  - entity: sensor.edata_xxxx
    name: Punta
    data_generator: |
      return hass.connection.sendMessagePromise({
      type: 'edata/consumptions/monthly',
      scups: 'xxxx'}).then(
          (resp) => {
              return resp.map((data, index) => {
                return [new Date(data['datetime']).getTime(), data['value_p1_kWh']];
              });
          }
      );
  - entity: sensor.edata_xxxx
    name: Llano
    data_generator: |
      return hass.connection.sendMessagePromise({
      type: 'edata/consumptions/monthly',
      scups: 'xxxx'}).then(
          (resp) => {
              return resp.map((data, index) => {
                return [new Date(data['datetime']).getTime(), data['value_p2_kWh']];
              });
          }
      );
  - entity: sensor.edata_xxxx
    name: Valle
    data_generator: |
      return hass.connection.sendMessagePromise({
      type: 'edata/consumptions/monthly',
      scups: 'xxxx'}).then(
          (resp) => {
              return resp.map((data, index) => {
                return [new Date(data['datetime']).getTime(), data['value_p3_kWh']];
              });
          }
      );

Aquí, una vez configurados los datos en e-data, debemos cambiar los datos sensor.edata_xxxx por nuestro sensor creado. También debemos cambiar las XXXX en el valor scups por los cuatro últimos dígitos de nuestro sensor creado que coinciden con los 4 últimos dígitos del CUPS.

7.- Instalación de PVPC Hourly Princig Card

Un último paso antes de realizar la automatización es instalar la tarjeta que nos va a dar el precio del PVPC.

En este caso, volvemos a irnos a HACS., de ahí navegaremos en Interfaz y una vez dentro, pulsamos el botón de explorar repositorios y escribimos PVPC Hourly.

Debemos encontrar la siguiente tarjeta

Tarjeta de PVPC Hourly Princig Card

Y cuando vayamos al panel de Home Assistant y añadamos la tarjeta, debemos de configurarla con los siguiente datos para que nos muestre los precios.

Configuración tarjeta PVCP Hourly

Como se ve en la captura, el precio se hace con el sensor creado de e-data

8.- Crear la automatización en Home Assistant

Tras pasar en Home Assistant por la parte de Ajustes, y Complementos, buscaremos File Editor, para poder configurar el archivo de configuración.

Para poder enviarnos el mensaje de notificación en Telegram, si pulsamos en File Editor y pulsamos en el icono de la carpeta y buscamos el archivo configuration.yaml

En él tenemos que añadir lo siguiente

telegram_bot:
  - platform: polling
    api_key: xxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxx  # token del bot
    allowed_chat_ids:
      - xxxxxxxxxxxxx #  id de tu usuario

# Notifier
notify:
  - platform: telegram
    name: "botHA"  # damos un nombre identificativo
    chat_id: xxxxxxxxxxxxx #  id de tu usuario

homeassistant:
  whitelist_external_dirs:
    - /config/www/Fotos/fotos # ruta donde guardar imagenes

Cuando tengamos creado correctamente el archivo de configuración, debemos reiniciar para que se apliquen los cambios.

Una vez que se haya reiniciado, vamos a Ajustes, Automatizaciones y Escenas y creamos una nueva automatización.

Aquí os muestro como he preparado la mía.

Imagen de automatización

Esta actualización lo que hace es que tomando los datos de la entidad Precio de la luz, cuando el periodo cambie de P2 a P1, es decir, de valle a punta, desencadene las siguientes acciones.

Seleccionas la acción apagar interruptor, en el botón de Elige Dispositivo buscas el enchufe del termo.

Luego manda una notificación usando la opción de Telegram creada en el paso anterior, donde puedo ponerle un mensaje para mostrar e incluso mandar una foto.

En mi caso, también añado una notificación de voz al altavoz Alexa que tengo en la planta inferior .

Quedaría así, por ejemplo la de encender el termo

audio-thumbnail
Copia de Miercoles a las 10 57
0:00
/6.558

9.- Bot de precios de la luz en Telegram

Este último paso no es para nada obligatorio dentro de home Assistant y es sólo a título informativo para conocer los precios de la energía por tramos horarios al día siguiente.
Para ello podéis buscar y seguir en Telegram al siguiente bot

Bot Precios tarifa de la luz PVPC

Y con esto, os dejo hasta la semana que viene. Espero que le cojáis el gusto a esto de Home Assistant y las automatizaciones, sobre todo, si tenéis más cositas que yo que tengo 4 tonterías.

Mi nombre es David Rodríguez, apasionado por un millón de cosas que lleven placas y chips dentro. Puedes encontrarme como https://mas.to/@_Bilito en Mastodon y en grupo de Telegram de Synology NAS https://t.me/synologyNAS
Tengo un canal de youtube que complementa al blog https://www.youtube.com/@_Bilito y que me harías un gran favor si te suscribes.