Seite 19 von 19

Re: SENEC Modul

Verfasst: So Mai 12, 2024 4:13 pm
von cjungde
Hallo newbe2020,

Danke für die Frage, vermutlich hatte ich das gleich Problem und habe mich nur gewundert, warum ich die OpenWB Box alle paar Monate mal neu starten musste. Vermutlich ist einfach der Speicher vollgelaufen mit allen den nicht abgeschlossenen Prozessen.

Ich habe den Code in meinem ersten Post entsprechend angepasst. Der Code lief jetzt bei mir seit 2 Wochen ohne Fehler, daher traue ich mich ihn hier zu veröffentlichen.
Ich teste derzeit auf einer virtuellen Machine die OpenWB V2 und binde sie über MQTT aus Home Assistant ein. Dort gibt es ein schönes Modul zur SENEC , das von erfahreneren Leuten gepflegt wird.

Update 12.05.2024:
Ich habe um die HTTP Abfragen jetzt ein try ... except gesetzt, damit ein nicht antwortendes SENEC System nicht die OpenWB einfrieren lässt. (Danke an Newbe2020 für die Frage.)
Sollte nun innerhalb von 2 Sekunden keine Antwort kommen, wird die komplette Funktion einfach beendet, ohne den weiteren Code abzuarbeiten
Beispiel hier:

Code: Alles auswählen

try:
    reqdata='{"PM1OBJ1":{"FREQ":"","U_AC":"","I_AC":"","P_AC":"","P_TOTAL":""}}'
    response = urllib2.urlopen('https://'+ ipaddress +'/lala.cgi' ,data=reqdata, context=ctx, timeout=2)
    jsondata = json.load(response)
except:
    sys.exit(1)

Re: SENEC Modul

Verfasst: So Jun 02, 2024 2:31 pm
von newbe2020
Danke cjungde
für die Erweiterung deines Scipts.
Ich hatte heute seit langem wieder mal NPU Fehler bei meinem Senec. Leider habe ich diesen Thread erst danach gelesen. Ich habe die Änderungen jetzt jedenfalls übernommen und mit etwas Glück kann ich beim nächsten NPU Fehler beobachten wie sich openWB verhält.
Oder wäre es möglich noch Logging einzubauen für den Fall das die Verbindung zum Senec fehl schlägt?

etwa so:

Code: Alles auswählen

except Exception as e:
        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        with open('/var/log/openWB.log', 'a') as logfile:
            logfile.write("{} Error fetching data from SENEC: {}\n".format(timestamp, e))
        sys.exit(1)
Nur so eine Idee

Re: SENEC Modul

Verfasst: Sa Sep 21, 2024 11:26 am
von Andrea_s
An dieser Stelle ein grosses DANKESCHÖN für alle die hier Zeit und Arbeit reingesteckt haben-
es funktioniert
Senec.jpg
(107.02 KiB) Noch nie heruntergeladen