Objetivo
Saber en todo momento cuántos vatios solares te sobran, y tener un sensor binario «hay excedente» para encender aparatos solo cuando la energía es gratis.
Requisitos
- Un sensor de potencia del inversor, por ejemplo
sensor.inversor_potencia(W). - Un sensor de potencia del consumo de la casa, por ejemplo
sensor.casa_potencia(W). - Acceso a
configuration.yaml(con el complemento File editor o Studio Code Server) o usar el asistente de la interfaz (ver al final).
Si solo necesitas la suma, la media, el mínimo o el máximo de varios sensores, no hace falta una plantilla: usa el ayudante nativo Combinar el estado de varios sensores. La plantilla tiene sentido aquí porque hay que restar.
El código
Añádelo a configuration.yaml (o a un fichero aparte con template: !include plantillas.yaml):
template:
- sensor:
- name: "Excedente solar"
unique_id: excedente_solar
unit_of_measurement: "W"
device_class: power
state_class: measurement
state: >-
{% set produccion = states('sensor.inversor_potencia') | float(0) %}
{% set consumo = states('sensor.casa_potencia') | float(0) %}
{{ [produccion - consumo, 0] | max | round(0) }}
availability: >-
{{ has_value('sensor.inversor_potencia') and has_value('sensor.casa_potencia') }}
- binary_sensor:
- name: "Hay excedente solar"
unique_id: hay_excedente_solar
state: "{{ states('sensor.excedente_solar') | float(0) > 1500 }}"
delay_on: "00:05:00"
delay_off: "00:02:00"
Después, recarga sin reiniciar: Herramientas para desarrolladores → YAML → Entidades de plantilla.
Cómo funciona
unique_idpermite editar el nombre, el icono o el área del sensor desde la interfaz. Ponlo siempre.device_class: powerystate_class: measurementindican que es una potencia instantánea. Home Assistant guardará estadísticas a largo plazo y mostrará la gráfica correcta.[produccion - consumo, 0] | maxse queda con el mayor de los dos valores: si consumes más de lo que produces, el excedente es 0 y no un número negativo.availabilitymarca el sensor como no disponible si falta cualquiera de los dos datos. Sin esta línea, un inversor apagado por la noche daría un excedente falso de 0 W que ensuciaría las estadísticas.has_value()devuelvefalsesi la entidad estáunavailableounknown.delay_onydelay_offevitan que el sensor binario parpadee cuando pasa una nube: tiene que haber excedente durante 5 minutos seguidos para activarse y faltar durante 2 para desactivarse.- El sensor se llama «Excedente solar», así que su entidad es
sensor.excedente_solar. El sensor binario lo usa directamente.
Resultado
sensor.inversor_potencia = 3200 W
sensor.casa_potencia = 1150 Wsensor.excedente_solar = 2050 W
binary_sensor.hay_excedente_solar = on
(tras 5 minutos por encima de 1500 W)sensor.inversor_potencia = unavailable
sensor.casa_potencia = 480 Wsensor.excedente_solar = unavailable
binary_sensor.hay_excedente_solar = offSin YAML: desde la interfaz
En Ajustes → Dispositivos y servicios → Ayudantes → Crear ayudante → Plantilla → Sensor de plantilla puedes pegar la misma plantilla del campo state, elegir la unidad, la clase de dispositivo y la clase de estado, y ver una vista previa en directo antes de guardar.