Closed bhuddah closed 9 months ago
Um mal noch ein paar Details zu liefern: Das scheint mit dem Abtauvorgang der Wärmepumpe zu tun zu haben. Eventuell sind das "negative" Werte, die nicht richtig übersetzt werden.
IN den Docs hab ich folgendes gefunden: For all Datapoint Types 9.xxx, the encoded value 7FFFh shall always be used to denote invalid data Ich schätze mal, dass da also "invalid" Daten kommen. Da ich das überlesen hatte, fange ich es in der Library nicht als Fehler ab. Ist nur so eine Vermutung. Ich werd das mal abfangen in naher zukunft. Witzig. Wenn sie schon wissen, dass die Daten falsch sind, koennten sie sie ja auch vielleicht einfach NICHT schicken ?!!
Hab das "blind" abgefangen. Bitte Feedback ob der Fehler jetzt weg ist.
fehler tritt leider weiterhin auf:
Wie hast du die neue Version installiert? von Hand oder per HACS? Kompletten Neustart nicht vergessen? wenn alles nix hilft, trag mal bitte in die "configuration.yaml" folgendes ein:
dann loggt er die werte mit, die er übers netzwerk empfängt. Und dann bitte mal das zu mir schicken, was er als Message kriegt./umrechnet. Ich kann das leider bei mir nicht nachstellen, scheint nur die CWL zu machen
achtung, github hat die einrückungen gelöscht. so muss es aussehen
logger:
arrgh ich werde verrückt diese Markdown
logger: -->einfache einrueckung: default: warning -->einfache einrueckung: logs: -->doppelte einrueckung : wolf_ism8.ism8: debug
ich hab das jetzt folgendermaßen konfiguriert:
logger:
default: warning
logs:
wolf_ism8.ism8: debug
werde mich melden, sobald ich logs mit werten habe
Die Datenpunkte sehen folgendermaßen aus:
2024-01-19 14:10:52.766 DEBUG (MainThread) [wolf_ism8.ism8] Processing DP-ID 178,Heizleistung,message: 4c:ff
2024-01-19 14:10:52.766 DEBUG (MainThread) [wolf_ism8.ism8] decoded 19711 to 6548.4800000000005
Ich hab die Implementierung der float-decoder nochmal gecheckt -- sie scheint zu stimmen. 4c:ff sind binär 0100110011111111. Das Vorzeichen ist +, der exponent 1001 , das ergibt 9 und 10011111111 sind 1279. nach der WOlf-Spec sind das dann 0.0112792exp9=6548 kW
ist es immer derselbe wert 4c:ff oder kommen auch andere? ich könnte 4c:ff einfach unterdrücken evtl.
Ich hab nochmal weiter durch die größere Datenmenge gesucht:
2024-01-21 22:48:20.940 DEBUG (MainThread) [wolf_ism8.ism8] Processing DP-ID 178,Heizleistung,message: 4c:fe
2024-01-21 22:48:20.941 DEBUG (MainThread) [wolf_ism8.ism8] decoded 19710 to 6543.360000000001
2024-01-21 22:49:23.977 DEBUG (MainThread) [wolf_ism8.ism8] Processing DP-ID 178,Heizleistung,message: 4c:ff
2024-01-21 22:49:23.977 DEBUG (MainThread) [wolf_ism8.ism8] decoded 19711 to 6548.4800000000005
Es treten nur diese beiden Variationen auf. Bisher zumindest. Man könnte die jetzt - wie du sagst - einfach unterdrücken. Oder man wertet das aus als Status "Abtauen" weil effektiv ist es das, was es tut. Aber allzuwichtig ist das nicht. Danke, dass du dich damit so intensiv befasst.
hab noch was cooles gefunden:
2024-01-25 13:42:05.679 DEBUG (MainThread) [wolf_ism8.ism8] Processing DP-ID 183,Warmwassertemperatur,message: 00:00
2024-01-25 13:42:05.679 DEBUG (MainThread) [wolf_ism8.ism8] decoded 0 to 0.0
safe to say... das warmwasser war nicht null grad. vermutlich ist das auch ein nichtzulässiger wert oder so...
Habe auch in den letzten Tagen vereinzelt fehlerhafte Datenpunkte festgestellt. Leider htte ich zu dem Zeitpunkt das Loglevel noch nicht angepasst, daher nur Screenshots.
Also ich konnte kein Muster / keine Fehler in der Implementierung entdecken. Die Float-Werte aus 4C:FF und 4C:FE sind korrekt decodiert und witzigerweise genau "eins" auseinander. Der letzte Screenshot ist besonders wichtig, weil die dargestellte Zahl wird hier schon als Integer angeliefert -- da kann gar kein Decodierfehler vorliegen (hex: AA:AA). Also würde ich mal Netzwerk und Decodierfehler ausschließen, d.h. das ISM sendet sie so ab. Lösungsvorschlag: ich ignoriere /unterdrücke pauschal alle Werte >1.000. Das wären m.E. weder vernünftige Temperaturen, Leistungen oder Volumenströme.... Setz ich dann in 3.0.1 so um
Falls das ausschliessen einer konkreten Liste an Fehlkodierungen nicht ökonomisch erscheint, wäre das mmn. auch eine mögliche Strategie. Für mich zur Zielerreichung auf jeden Fall ausreichend. Es würde leider nicht die gelegentlichen 00:00-Fehler rausfiltern, aber dafür habe ich (ausser dem Ignorieren von GENAU 0, auch keine Lösungsidee.
Ok, umgesetzt wie besprochen. Kann es leider nicht testen, ich hoffe es funktioniert.
Sieht soweit gut aus. Die Fehler mit den Extremwerten sind weg. einzelne verbleibende 00:00-Werte sind wohl was tieferliegendes. Keine Idee, was man da noch machen könnte, ausser die auch zu ignorieren... Vielen Dank für deinen Einsatz!
Ich beobachte zeitweise fehlerhafte Datenpunkte weit ausserhalb der erwarteten Skala. (6000kW Heizleistung ...)