Can anyone help with such a scenario:

- Shelly 3EM installed on PV inverter to measure PV production
- HVAC hooked to same circuit as PV, so HVAC directly consumes PV generated power or import from grid if there’s no PV production
- HVAC is duct system so 3 phases such as inverter

I want to create a template that will:

- calculate how much energy HVAC consumed while PV inverter is working + how much energy HVAC consumed while PV is not working (so imported from grid)

So far I’ve got mixed results and my idea is:

- create Shelly 3EM energy exported total sensor

```
- sensor:
- name: "PV energy exported"
icon: mdi:solar-power-variant
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{% set val1 = states('sensor.shelly3em_total_returned_0') %}
{% set val2 = states('sensor.shelly3em_total_returned_1') %}
{% set val3 = states('sensor.shelly3em_total_returned_2') %}
{{ val1 | float(0) + val2 | float(0) + val3 | float(0)
if
is_number(val1) and is_number(val2) and is_number(val3)
else
None
}}
availability: >-
{{
is_number(states('sensor.shelly3em_total_returned_0')) and
is_number(states('sensor.shelly3em_total_returned_1')) and
is_number(states('sensor.shelly3em_total_returned_2'))
```

- take total energy produced by PV inverter (the problem is it’s updated every 5 min)

Calculate how much energy was used by HVAC by calculating:

```
- sensor:
- name: "HVAC energy used"
icon: mdi:hvac
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{% set val1 = states('sensor.PV_total_energy') %}
{% set val2 = states('sensor.PV_energy_exported') %}
{{ val1 | float(0) + val2 | float(0)
if
is_number(val1) and is_number(val2)
else
None
}}
availability: >-
{{
is_number(states('sensor.PV_total_energy')) and
is_number(states('sensor.PV_energy_exported'))
}}
```

- calculate grid used energy by HVAC:

```
- sensor:
- name: "HVAC energy imported from grid"
icon: mdi:hvac
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{% set val1 = states('sensor.shelly3em_total_0') %}
{% set val2 = states('sensor.shelly3em_total_1') %}
{% set val3 = states('sensor.shelly3em_total_2') %}
{{ val1 | float(0) + val2 | float(0) + val3 | float(0)
if
is_number(val1) and is_number(val2) and is_number(val3)
else
None
}}
availability: >-
{{
is_number(states('sensor.shelly3em_total_0')) and
is_number(states('sensor.shelly3em_total_1')) and
is_number(states('sensor.shelly3em_total_2'))
}}
```

- now it should be an easy one but since inverter production is updated every 5 min I cannot get this to work:

**HVAC energy imported from grid**+ (**PV total energy**-**PV energy exported**)

Highly appreciate if any have and idea how to solve that problem.