CONTROL FACTURA ELÉCTRICA Antes de nada agradecer a: @Franzisc0 ( https://domology.es/calcula-tu-gasto-de-luz-con-discriminacion-horaria/ ) @danimart1991 (todo parte de su card PVPC) y @david_Mfc que es el que hizo todo el codigo. 1- instalar el componente: https://github.com/snarky-snark/home-assistant-variables 2-Declarar las variables: var: precio_hora_normal_pvpc: unit_of_measurement: '€' precio_dia_normal_pvpc: unit_of_measurement: '€' 3-Componente utility meter: https://www.home-assistant.io/integrations/utility_meter/ 4-Declaramos nuestros medidores: ### (configuration.yaml) utility_meter: energy_hour: source: sensor.pzem16_energy_today #### aqui cada cual poner el suyo cycle: hourly energy_day: source: sensor.pzem16_energy_today #### aqui cada cual poner el suyo cycle: daily energy_mes: source: sensor.pzem16_energy_today #### aqui cada cual poner el suyo cycle: monthly energy_year: source: sensor.pzem16_energy_today #### aqui cada cual poner el suyo cycle: yearly precio_mensual_pvpc_normal: source: var.precio_dia_normal_pvpc ### medición variable cycle: monthly offset: days: 02 ### día que termina la facturación del mes precio_anual_pvpc_normal: source: var.precio_dia_normal_pvpc ### medición variable cycle: yearly 5-Calculo del consumo: ### (configuration.yaml) - platform: template sensors: gastoelectrico_diafactura: friendly_name: "Dia de facturacion" value_template: "{{ (2)|int }}" gastoelectrico_potencia: friendly_name: "Gasto termino de potencia" ##### mi potencia contratada unit_of_measurement: "€" value_template: "{{ ( (4.6)|float * (30)|int * (0.119971)|float ) | round(2) }}" gastoelectrico_impuesto_electicidad: friendly_name: "Gasto impuesto a la electicidad" ##### poner el valor cada uno de su factura unit_of_measurement: "€" value_template: "{{ ( (0.0511269632) *( states('sensor.precio_mensual_pvpc_normal')|float + states('sensor.gastoelectrico_potencia')|float ) ) | round(2) }}" gastoelectrico_otros_conceptos: friendly_name: "Gasto alquiler y otros" ##### poner el valor cada uno de su factura unit_of_measurement: "€" value_template: "{{ ( (0.02663)|float * (30)|int ) | round(2) }}" gastoelectrico_igic: friendly_name: "IGIC Electricidad" #### yo aqui tengo IGIC.....en peninsula sera IVA unit_of_measurement: "€" value_template: "{{ ( (0.07)|float * ( states('sensor.precio_mensual_pvpc_normal')|float + states('sensor.gastoelectrico_potencia')|float + states('sensor.gastoelectrico_impuesto_electicidad')|float + states('sensor.gastoelectrico_otros_conceptos')|float) ) | round(2) }}" gastoelectrico_actual: friendly_name: "Gasto actual (Gastos e impuestos hasta el dia 30)" #### eso calcula el consumo real hora a hora unit_of_measurement: "€" value_template: "{{ ( states('sensor.precio_mensual_pvpc_normal')|float + states('sensor.gastoelectrico_potencia')|float + states('sensor.gastoelectrico_impuesto_electicidad')|float + states('sensor.gastoelectrico_otros_conceptos')|float + states('sensor.gastoelectrico_igic')|float ) | round(2) }}" gastoelectrico_estimado: friendly_name: "Gasto Estimado TOTAL con los consumos actuales" #### eso calcula el consumo estimado teniendo en cuenta el consumo del mes anterior unit_of_measurement: "€" value_template: " {% if now().day > (states('sensor.gastoelectrico_diafactura')|int ) -%} {{ ( 1.07 * ( ((states('sensor.precio_mensual_pvpc_normal')|float / (now().day - (states('sensor.gastoelectrico_diafactura')|int)) )*30) + states('sensor.gastoelectrico_potencia')|float + (0.0511269632) *( ((states('sensor.precio_mensual_pvpc_normal')|float / (now().day - (states('sensor.gastoelectrico_diafactura')|int )))*30) + states('sensor.gastoelectrico_potencia')|float ) + states('sensor.gastoelectrico_otros_conceptos')|float ) ) |round(2)}} {% elif now().day == (states('sensor.gastoelectrico_diafactura')|int ) -%} {{ ( 1.07 * ( states('sensor.precio_mensual_pvpc_normal')|float + states('sensor.gastoelectrico_potencia')|float + (0.0511269632) * (states('sensor.precio_mensual_pvpc_normal')|float + states('sensor.gastoelectrico_potencia')|float ) + states('sensor.gastoelectrico_otros_conceptos')|float ) ) |round(2)}} {%- else -%} {{ ( 1.07 * ( ((states('sensor.precio_mensual_pvpc_normal')|float / (30 - ((states('sensor.gastoelectrico_diafactura')|int) - now().day)) )*30) + states('sensor.gastoelectrico_potencia')|float + (0.0511269632) *( ((states('sensor.precio_mensual_pvpc_normal')|float / (30 - ((states('sensor.gastoelectrico_diafactura')|int) - now().day)) )*30) + states('sensor.gastoelectrico_potencia')|float ) + states('sensor.gastoelectrico_otros_conceptos')|float ) ) |round(2)}} {%- endif %}" 6- Auto para el calculo por hora segun las variables: alias: Coste energia pvpc normal por hora trigger: - platform: time_pattern minutes: /59 seconds: '50' action: - service: var.set data_template: entity_id: - var.precio_hora_normal_pvpc value: >- {{ (states('sensor.pvpc') | float) * (states('sensor.energy_hour') | float) }} - delay: '00:00:05' - service: var.set data_template: entity_id: - var.precio_dia_normal_pvpc value: >- {{ (states('var.precio_dia_normal_pvpc') | float) + (states('var.precio_hora_normal_pvpc') | float) | round(4) }} mode: single 7-Auto para resetear el mes de factura y de paso aviso a telegram: ### en mi caso es tasmota alias: RESET FACTURA LUZ description: '' trigger: - platform: template value_template: '{{ (now().day == 2) and (states(''sensor.time'') == ''00:01'') }}' condition: [] action: - data: payload: '0000' topic: cmnd/PZEM16/energyreset3 service: mqtt.publish - data: message: reseteo contador kw/h total service: notify.telegram mode: single 8- Auto para reset gasto diario (variable) alias: Reseteo gasto diario energia trigger: - platform: time at: '00:00:00' action: - service: var.set data: entity_id: - var.precio_dia_normal_pvpc value: 0 entity_id: var.precio_dia_normal_pvpc mode: single 9-card 1: cards: - entities: - entity: sensor.pzem16_energy_voltage name: Volts - entity: sensor.pzem16_energy_current name: Ampers - entity: sensor.pzem16_energy_yesterday name: C. Ayer - entity: sensor.pzem16_energy_today name: C.Hoy - entity: sensor.pzem16_energy_total name: C. Total show_icon: true show_state: true title: PVPC type: glance theme: yourname - cards: - entity: sensor.pzem16_energy_power max: 4600 min: 0 name: Consumo Actual severity: green: 0 red: 3500 yellow: 800 type: gauge theme: synthwave - entity: sensor.gastoelectrico_estimado max: 100 min: 0 name: Proxima factura (Estimada) severity: green: 0 red: 60 yellow: 40 theme: default type: gauge type: horizontal-stack 10-Card 2: type: entities entities: - entity: sensor.gastoelectrico_potencia - entity: sensor.gastoelectrico_otros_conceptos - entity: sensor.gastoelectrico_igic - entity: sensor.gastoelectrico_estimado - entity: sensor.gastoelectrico_actual - entity: sensor.energy_hour - entity: sensor.energy_day - entity: sensor.energy_mes - entity: sensor.energy_year - entity: sensor.gastoelectrico_diurno - entity: var.precio_hora_normal_pvpc - entity: var.precio_dia_normal_pvpc - entity: sensor.precio_mensual_pvpc_normal state_color: true A partir de aqui ya cada uno que lo coloree como mas le guste.