Automatizar termo eléctrico a la tarifa de luz
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.
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.
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)"
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í
Para realizar la integración es necesario tener una cuenta en Github, así que al seleccionarla nos saldrá esta ventana
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.
Introducimos el código facilitado en la tarjeta del paso anterior y pulsamos en continuar
Autorizamos en el botón correspondiente en este paso.
Nos confirma que todo está correcto
Y en nuestro Home Assitant, debemos ver algo así
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
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.
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í
Luego configuramos los datos de acceso con nuestras credenciales de Datadis y el número de CUPS. El DNI no es obligatorio introducirlo
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
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.
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.
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
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
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.