gauge photovoltaic power for Home Assistant

Tuya wifi/ZigBee Dual Channel Smart Energy meter: integrazione in Home Assistant – seconda parte

In un post precedente ho fornito una introduzione a questo apparecchio ed alla sua integrazione in HA.
In questo post fornirò alcune parti di codice necessarie per completarne l’integrazione in HA.

Rilevazione della produzione dell’impianto fotovoltaico

Come indicato nel post precedente, con le due pinze amperometriche dell’apparecchio si possono monitorare:

  • la corrente scambiata a livello del contatore (ovvero: assorbita dalal rete oppure immessa in rete)
  • il carico totale degli apparecchi utilizzatori

La produzione del fotovoltaico non si può quindi monitorare direttamente (per farlo servirebbe una terza pinza amperomentrica), ma si ottiene per differenza tra le due precedenti.

Per calcolare questa differenza, dobbiamo definire in /homeassistant/configuration.yaml tre opportuni sensor, inserendo il seguente codice:

template:
  
  - sensor:
      - name: "PV Production"
        unique_id: "sensor.pv_production"
        unit_of_measurement: "kWh"
        state: >
          {% set load2 = states('sensor.107_reverse_energy_a') | float %}
          {% set gridfeed = states('sensor.109_dp_energy_reverse_b') | float %}
          {% set gridabsorb = states('sensor.108_dp_energy_forward_b') | float %}
          {{ (load2 + gridfeed -gridabsorb)  | round(1, default=0) }}  
        device_class: energy
        state_class: total_increasing

  - sensor:
      - name: "grid exchange"
        unique_id: "sensor.pv_production_test"
        unit_of_measurement: "W"
        state: >
          {% set instpower = states('sensor.105_power_b') | int %}
          {% set versus = states('sensor.104_versus') %}
          {% if versus == "FORWARD" %}
             {{ (-instpower)  | round(1, default=0) }}
          {% else %}
             {{ (instpower)  | round(1, default=0) }}
          {% endif %}
        device_class: power
 
  - sensor:
      - name: "PV Power"
        unique_id: "sensor.pv_power"
        unit_of_measurement: "W"
        state: >
          {% set load = states('sensor.101_power_a') | float %}
          {% set gridfeed = states('sensor.grid_exchange') | float %}
          {{ (load + gridfeed)  | round(1, default=0) }}  
        device_class: power

Il primo (sensor.pv_production) fornirà il valore dell’a corrente’energia in kWh prodotta dall’impianto fotovoltaico, ottenuta per somma tra corrente consumata (load2) + corrente immessa in rete (gridfeed) – corrente prelevata dalla rete (gridabsorb).
Questo valore può essere utilizzato nella dashboard “Energy” per definire il valore “PV Production”.

Il secondo ( sensor.pv_production_test) fornirà il valore della corrente istantanea immessa in o prelevata da rete.
Numericamente è equivalente a sensor.105_power_b, ma mentre sensor.105_power_b è un valore in senso assoluto (che quindi sempre positivo), sensor.pv_production_test è un valore con segno (negativo quando si preleva da rete, positivo quando si immette in rete)

Infine il terzo (sensor.pv_power) fornirà il valore della corrente istantanea prodotto dall’impianto fotovoltaico.

I valori così definiti possono esser usati, oltre che all’interno della dashboard standard “Energy”, anche all’interno di dashboard personalizzate oppure per creare le più varie automazioni (es. accendo automaticamente il boiler elettrico quando la disponibilità di corrente FV è sufficiente, e lo spengo quando non è più sufficiente).

Ad esempio, in una dashboard è possibile inserire questa entità, che ci fornirà un indicatore grafico della potenza istantanea generata dall’impianto fotovoltaico:

type: gauge
entity: sensor.pv_power
unit: W
needle: true
min: 0
max: 6000

Il risultato è il seguente:
gauge photovoltaic power for Home Assistant

Comments

No comments yet. Why don’t you start the discussion?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *