Power Import (Simons Skript) muss bei mir geändert werden

Guten Morgen liebe Community

Aufgrund meiner vor Ort befindlichen Messmöglichkeiten muss das Skript von Simon42 angepasst werden. Leider fehlt mir jegliche Idee wie ich das lauffähig realisieren kann. All meine Versuche sind bisher gescheitert, deshalb die Bitte um Hilfe.

Folgende Situation:
Mein Shelly 3EM ist im Schaltschrank so verbaut, dass er die PV mit monitort.

Das heißt konkret.

Die Messung tagsüber - wenn die PV liefert - ist korrekt. Leider schaltet die PV ohne Lieferung nachts - wie bei den meisten vermutlich - ab.
Wenn kein Wert mehr kommt, dann läuft das u.g. Skript nicht mehr und ich bekomme dann auch keinerlei Werte mehr bzgl. “Power Import”.

Was müsste geändert werden, dass trotz fehlendem PV Anteil (sensor.power_ac_fronius_inverter_1_192_168_2_50) das Skript noch richtige Werte liefert, wenn dieser Anteil “unavailable” ist?

 # Template sensor for values of power import (active_power > 0)
      power_import:
        friendly_name: "Power Import"
        unique_id: 'power_import'
        unit_of_measurement: 'W'
        value_template: >-
          {% if (states('sensor.powermonitor_channel_a_power')|float +         states('sensor.powermonitor_channel_b_power')|float + states('sensor.powermonitor_channel_c_power')|float - states('sensor.power_ac_fronius_inverter_1_192_168_2_50')|float) > 0 %}
            {{ states('sensor.powermonitor_channel_a_power')|float + states('sensor.powermonitor_channel_b_power')|float + states('sensor.powermonitor_channel_c_power')|float - states('sensor.power_ac_fronius_inverter_1_192_168_2_50')|float }}
          {% else %}
            {{ 0 }}
          {% endif %}
        availability_template: "{{
            [ states('sensor.powermonitor_channel_a_power'),
              states('sensor.powermonitor_channel_b_power'),
              states('sensor.powermonitor_channel_c_power'),
              states('sensor.power_ac_fronius_inverter_1_192_168_2_50')
            ] | map('is_number') | min
          }}"

Ich habs mal so probiert, aber das scheint auch noch nicht so richtig zu funktionieren. Es sieht so aus, dass jetzt immer die Berechnung im “elif” Zweig genommen werden :frowning:

        value_template: >-
          {% if ((states('sensor.powermonitor_channel_a_power')|float + states('sensor.powermonitor_channel_b_power')|float + states('sensor.powermonitor_channel_c_power')|float - states('sensor.power_ac_fronius_inverter_1_192_168_2_50')|float) > 0) and ((states('sensor.power_ac_fronius_inverter_1_192_168_2_50')|float) > 0 ) %}
            {{ states('sensor.powermonitor_channel_a_power')|float + states('sensor.powermonitor_channel_b_power')|float + states('sensor.powermonitor_channel_c_power')|float - states('sensor.power_ac_fronius_inverter_1_192_168_2_50')|float }}

          {% elif (states('sensor.powermonitor_channel_a_power')|float + states('sensor.powermonitor_channel_b_power')|float + states('sensor.powermonitor_channel_c_power')|float) > 0 %}    
            {{ states('sensor.powermonitor_channel_a_power')|float + states('sensor.powermonitor_channel_b_power')|float + states('sensor.powermonitor_channel_c_power')|float }}

          {% else %}
            {{ 0 }}
          {% endif %}