Ich nutze Modbus beim Pro3EM nicht.
Mir wäre aber kein Grund bekannt, warum dieser Saldierungs-Script die Modbus Funktion in irgendeiner Form einschränken sollte.
Der Script holt sich nur die aktuelle Leistung[W] und generiert damit 2 Zählerwerte Consumed/Returned [kWh] und legt diese als MQTT Werte bereit.
Meine Anpassung ist in der Speicherung der Daten die im Script per default alle 30Min. gespeichert werden.
(Da die KVS/Flash-Speicher Werte eine begrenzte Anzahl Schreibzyklen haben erfolgt dies per. def. im Script möglichst selten. (alle 30min))
counter3600 = counter3600 + 1; // Bei 500ms Zyklus = 3600 == 30 min.
if (counter3600 > 3600)
{
counter3600 = 0;
SaveCounters();
}
[*] Wenn in diesen 30 Min. der Zähler bootet (FW Update, Ausfall Versorgungsspg. etc) sind die Werte bis zum letzten Speichern verloren. (Maximal die letzten 30 min)
Da meine Smart-Projekte bisher immer Gewerbe Betriebe waren, sind auch höhere Leistungen[kW] im Spiel. [Bezug bzw. PV um die 100kWh/Tg.]
Dh. bei 30 Min. Fehler können gleich mal 1..4 kWh zu geringer Zählerwert bei einem einmaligem Booten des Pro3EM bedeuten. Bzw. Der PV Zähler braucht in der Nacht überhaupt nicht speichern da ja keine Änderung.
Daher habe ich für Netz- und PV Zähler spezielle Speicherungs-Strategien um einen möglichen Fehler gering zu halten.
- PV: 07:00..19:00 alle 1kWh oder 30Min, sonst alle 3 Std.
- Netz: Alle 1,5kWh oder 30Min.
Dies ist ein für mich akzeptabler Kompromiss zwischen zu erwartende Lebensdauer Flash/Speicher Pro3EM (Min. 5 Jahre) und korrekte Daten.