Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.
Ganz kurz beschrieben: Shelly.call ist eine asynchrone Funktion, bei der man in der Callback-Funktion (function(result, error_code, error_message)) den Wert erst erhält, wenn der HTTP Aufruf fertig ist. Das erfolgt zeitversetzt. Damit ist der Wert außerhalb der Callback-Funktion in Zeile 29 gar nicht vorhanden.
Es hilft auch nicht, den Wert innerhalb des Callbacks zurück zugeben, weil er dann nirgendwo "ankommt".
Ich versuche später mal eine mögliche Lösung zu skizzieren.
Ich habe es bei mir etwas anders gemacht: auch beide in einem Raum "Gesamt", aber alle anderes Mess-Shellys vom Gesamtverbrauch ausgenommen. Die weiteren PM/EM Shellys messen ja sowieso nur eine Untermenge von dem, was der Pro 3EM am Zähler bereits erfasst bzw. durch den PV Pro 3EM ins Hausnetz eingespeist wird.
Beide Pro 3EM in einem Raum und keinen vom Raum ausnehmen bewirkt, dass dieser Raum immer genau den aktuellen Verbrauch ausweist, egal ob dieser vom Netz oder der PV kommt (nicht zu verwechseln mit dem Eigenverbrauch).
Mich wundert auch bei ausgeschaltetem Relay warum der integrierte ADC nicht "das Fehlen des Stroms" sauber messen sollte
Wie kann man bei einem offenen Stromkreis (Relais off) Stromfluss messen? Ich verstehe es so, dass man hier maximal per Software "behaupten" könnte, es fließt 0A und das macht Shelly eben nicht.
Eigenverbrauch ist (wie der Name schon sagt) VERBRAUCH (positive Leistung)
Hier nicht ganz:
Da der Shelly direkt die PV misst, ist erzeugte PV Leistung hier positiv, weil diese ins Haus geliefert wird (auch wenn es sich umgangssprachlich um Einspeisung handelt).