Hallo Poellph,
ja, das Modul habe ich damals adaptiert. Allerdings habe ich das Modul nicht mehr im Einsatz, ich habe meinen dafür verwendeten SMA Energy Meter inzwischen ausgetauscht gegen einen SDM 72.
Hintergrund für meine Entscheidung (Verbrauch Wärmepumpe): Irgendwann ging mir das Broadcast-Verhalten des Energy Meter auf den Nerv. Sporadisch wurden zum Verarbeitungszeitpunkt keine Datenpakete empfangen. Dafür habe ich ja im Code extra das "Fake-return file" programmiert:
Code: Alles auswählen
# Scenario 3: Our EnergyMeter is not sending but we have a returnfile which is younger than n seconds (parameter secondssincelastmetering)
# We have a ret-file which is younger than n seconds. We do nothing as the existing ret-file is good enough.
Den SDM 72 kann ich aktiv abfragen, seitdem ist die Datenlage bei mir deutlich sauberer.
In deinem Fall kann ich somit nur die Logfiles analysieren.
Der relevante Eintrag ist im smaem.log:
Code: Alles auswählen
2022-12-10 14:24:14.187164: smaserial: #192.168.0.92# - Current SMA serial number:#1901427731# - watt:#1891# - wattc:#7536686.000#
2022-12-10 14:24:14.187676: 4 - No data received and no historical data since boottime
2022-12-10 14:24:40.498621: smaserial: #192.168.0.92# - Current SMA serial number:#1901432257# - watt:#9255# - wattc:#1794445.000#
2022-12-10 14:24:40.498897: 4 - No data received and no historical data since boottime
Wieviele SMA EMs fragst du denn ab bzw. für welchen SMA EM / Seriennummer vermisst du die Werte?
Sind das nur die im Log erwähnten 2 EMs (Seriennummer 1901427731 und 1901432257) oder noch mehr?
Wie sieht deine Web-Konfiguration für das Modul aus?
Das Modul ist der Meinung, das für die konfigurierte Seriennummer keine Werte empfangen werden.
Die aktive Modul-Konfiguration findest du am Anfang der smaem.log:
Code: Alles auswählen
debugfile.write(str(datetime.datetime.now()) + ': smaserial: #' + str(smaserial) + '# - Current SMA serial number:#' + str(emparts['serial']) + '# - watt:#' + str(int(emparts.get("pconsume"))) + '# - wattc:#' + str("{:.3f}".format(int(emparts.get('pconsumecounter')*1000))) + '#\n')
Sprich: Hier schreibe ich die konfigurierte Seriennummer "smaserial" sowie die aktuell empfangene Seriennummer "Current SMA serial number" ins Logfile.
Meine Kommentare aus dem Code für deinen Fehlerfall:
Code: Alles auswählen
# Our EnergyMeter is not sending right now and it didn't send any data since boottime
# In this case we do nothing and we don't create a "fake" returnfile (as we don't know the value for wattc)
# This will cause error messages in /var/www/html/openWB/ramdisk/smarthome.log:
# Module SMAEM: No data received and no historical data since boottime
# Leistungsmessung smaem [...] Fehlermeldung: [Errno 2] No such file or directory: '/var/www/html/openWB/ramdisk/smarthome_device_ret1'
debugfile.write(str(datetime.datetime.now()) + ': 4 - No data received and no historical data since boottime\n')
Gruß Markus
2 x openWB Standard+ + SMA HM 2.0 + PV 8,8 kWp SMA WR + PV 5,3 kWp SMA WR + BYD HV 10.2 mit SMA SBS 3.7
Tesla Model Y LR