Hace ya tiempo baje la potencia contratada a 3,45Kw/h , y la verdad que hasta el momento ningún problema , hasta que este año he decidido usar las bombas de calor de los aires en lugar de la caldera de gas natural , esto tiene el problema de que incrementa bastante el consumo eléctrico y hay muchas posibilidades de que el contador inteligente corte el suministro por exceder el consumo de la potencia contratada
Estos contadores inteligentes tienen un cierto margen de maniobra con dos variables , por un lado el tiempo y por el otro el consumo.
El tema esta en que se puede llegar a consumir el doble de lo contratado durante un periodo de unos cinco minutos sin que la protección de contador actué.
Al tener el PZEM en el cuadro de entrada tengo lecturas cada seis segundos de como están todos los valores de la instalación eléctrica
Estos datos los voy grabando en influxdb para poder tener series históricas , por ejemplo este seria mi consumo instantáneo de los últimos seis meses
Y este el consumo instantáneo del ultimo mes
Se puede observar que en muchas ocasiones se pasa de los 3,45 contratados con la compañia
Así mismo también tengo los datos históricos de los consumos diarios
Consumo diario del ultimo mes
Consumo diario de los últimos seis meses
El objetivo es definir una serie de automatizaciones que nos permitan ir desconectando elementos cuando el consumo sea superior a la potencia contratada durante un determinado tiempo
Empezaremos creando un binary sensor que se ponga en ON cuando detecte que pasamos de la potencia contratada
- platform: template sensors: exceso_consumo: friendly_name: "Exceso consumo" value_template: >- {% if ((states.sensor.pzem_potencia.state )| round(5,default=0) ) >= 3450 %} on {% else %} off {% endif %} icon_template: mdi:gauge-full
Como dos de elementos que vamos a apagar son dos televisiones controlaremos si están encendidas o no por su consumo , crearemos un par mas de binary sensors para que nos digan su estado
- platform: template sensors: tv_matrimonio_encendida: friendly_name: "TV Matrimonio encendida" value_template: >- {% if (states.sensor.enchufe_tv_matrimonio_power.state | int(0) | round(0,default=0)) >= 50 %} on {% else %} off {% endif %} icon_template: mdi:television - platform: template sensors: tv_comedor_encendida: friendly_name: "TV Comedor encendida" value_template: >- {% if (states.sensor.enchufe_mueble_tv_power.state | int(0) | round(0,default=0)) >= 60 %} on {% else %} off {% endif %} icon_template: mdi:television
Empezaremos con las automatizaciones , primero definimos un aviso a los cinco minutos , enviamos una grafica del consumo eléctrico de la ultima media hora , informamos dos veces con un espacio de tiempo entre las lecturas del consumo actual , y a los diez minutos enviamos una grafica actualizada del consumo actual
A los siete minutos de exceso de consumo aprovechando que el otro día integre ambos aires con climate.set_hvac_mode paramos uno de los aires y enviamos el consumo antes y después de la puesta en off del aire.
A los ocho minutos si el televisor esta funcionando ( consumiendo ) lo para enviando el código IR de poweroff y enviamos el consumo antes y después del apagado
A los nueve minutos para el otro aire y a los diez la otra televisión , la automatización debería quedar algo similar a esto
########################################################################################################################## # Automatizaciones por exceso de consumo ########################################################################################################################## - alias: alerta de sobreconsumo eléctrico initial_state: True trigger: - platform: state entity_id: binary_sensor.exceso_consumo to: 'on' for: minutes: 5 action: - service: notify.notif_telegram_bot data: message: "*Alerta por exceso de consumo* , actual : {{states.sensor.pzem_potencia.state}} W." - service: shell_command.consumo_media_hora - delay: 00:00:15 - service: notify.notif_telegram_bot data: title: Enviar imagenes message: Consumo ultima media hora data: photo: - file: "/config/www/graficas/grafica_consumo_total_ultima_media_hora.png" capture: Snapshoot caption: Consumo ultima media hora - delay: 00:00:40 - service: notify.notif_telegram_bot data: message: "*Alerta por exceso de consumo* , actual : {{states.sensor.pzem_potencia.state}} W." - delay: 00:00:55 - service: notify.notif_telegram_bot data: message: "*Alerta por exceso de consumo* , actual : {{states.sensor.pzem_potencia.state}} W." # Enviamos el consumo una vez ya apagados los equipos - delay: 00:10:00 - service: shell_command.consumo_media_hora - delay: 00:00:15 - service: notify.notif_telegram_bot data: title: Enviar imagenes message: Consumo ultima media hora data: photo: - file: "/config/www/graficas/grafica_consumo_total_ultima_media_hora.png" capture: Snapshoot caption: Consumo ultima media hora - service: notify.notif_telegram_bot data: message: "*Alerta por exceso de consumo* , actual : {{states.sensor.pzem_potencia.state}} W." # Primero el aire de la habitacion de matrimonio - alias: exceso consumo electrico apagado aire matrimonio initial_state: True trigger: - platform: state entity_id: binary_sensor.exceso_consumo to: 'on' for: minutes: 7 action: - service: notify.notif_telegram_bot data: message: "Exceso de consumo , *apagado aire matrimonio* , actual : {{states.sensor.pzem_potencia.state}} W." - service: climate.set_hvac_mode entity_id: climate.ac_daikin data: hvac_mode: "off" - delay: 00:00:55 - service: notify.notif_telegram_bot data: message: "*Consumo actual* : {{states.sensor.pzem_potencia.state}} W." - delay: 00:05:40 - service: shell_command.consumo_media_hora - delay: 00:00:15 - service: notify.notif_telegram_bot data: title: Enviar imagenes message: Consumo ultima media hora data: photo: - file: "/config/www/graficas/grafica_consumo_total_ultima_media_hora.png" capture: Snapshoot caption: Consumo ultima media hora - service: notify.notif_telegram_bot data: message: "*Consumo actual* : {{states.sensor.pzem_potencia.state}} W." #Luego la television de la habitacion de matrimonio - alias: exceso consumo electrico apagado tv matrimonio initial_state: True trigger: - platform: state entity_id: binary_sensor.exceso_consumo to: 'on' for: minutes: 8 condition: - condition: state entity_id: binary_sensor.tv_matrimonio_encendida state: 'on' action: - service: notify.notif_telegram_bot data: message: "Exceso de consumo , *apagada TV matrimonio* , actual : {{states.sensor.pzem_potencia.state}} W." - service: media_player.turn_off entity_id: media_player.tv_samsung_matrimonio # - service: script.turn_on # entity_id: script.remote_tv_matrimonio_power - delay: 00:00:55 - service: notify.notif_telegram_bot data: message: "*Consumo actual* : {{states.sensor.pzem_potencia.state}} W." #Luego el aire del comedor - alias: exceso consumo electrico apagado aire comedor initial_state: True trigger: - platform: state entity_id: binary_sensor.exceso_consumo to: 'on' for: minutes: 9 action: - service: notify.notif_telegram_bot data: message: "Exceso de consumo , *apagado aire comedor* , actual : {{states.sensor.pzem_potencia.state}} W." - service: climate.set_hvac_mode entity_id: climate.ac_general data: hvac_mode: "off" - delay: 00:00:55 - service: notify.notif_telegram_bot data: message: "*Consumo actual* : {{states.sensor.pzem_potencia.state}} W." #Por ultimo la television del comedor - alias: exceso consumo electrico apagado tv comedor initial_state: True trigger: - platform: state entity_id: binary_sensor.exceso_consumo to: 'on' for: minutes: 10 condition: - condition: state entity_id: binary_sensor.tv_comedor_encendida state: 'on' action: - service: notify.notif_telegram_bot data: message: "Exceso de consumo , *apagada TV comedor* , actual : {{states.sensor.pzem_potencia.state}} W." - service: script.turn_on entity_id: script.remote_tv_comedor_power - delay: 00:00:55 - service: notify.notif_telegram_bot data: message: "*Consumo actual* : {{states.sensor.pzem_potencia.state}} W."
Este seria el comando para actualizar la grafica de consumos
shell_command: consumo_media_hora: "curl -s -H 'Authorization: Bearer eyJrIjoid0RrZ3232EIzVjlosdbkJhRfsdhzVqaW154554V0NyQ1FTalcifsfLCJuIwjoiSEwerwerfsdfEyIiwiafsWQiOjF9' 'http://192.168.1.20:3000/render/d-solo/iZBnH5iMz/consumo-electrico-diario?orgId=1&panelId=11&from=now-30m&to=now&width=500&height=500&tz=Europe%2FMadrid' > /config/www/graficas/grafica_consumo_total_ultima_media_hora.png"
Así se vería en telegram el resultado de esta automatización
Y con esto y un bizcocho …