Hallo zusammen,
beim loggen des Programmablaufs unseres Geschirrspülers (implementiert über HTTPMOD) erhalte ich merkwürdige Einträge in der DbLog wenn ein Reading ohne Wert geloggt werden soll. Dies ist z.B. beim Programmschritt (Reading program_step) nach Ende des Spülprogramms der Fall. Im Logfile sieht das soweit gut aus (Wertwechsel Reading program_step von "Ende" auf ""):
2019-12-27_03:53:56 MieleMaschine Ende
2019-12-27_03:53:56 MieleMaschine program_step: Ende
2019-12-27_11:11:57 MieleMaschine Aus
2019-12-27_11:11:57 MieleMaschine program_step:
In der Datenbank hingegen werden die Einträge in den Feldern Reading und Value aus meiner Sicht falsch (z.B. Value = ReadingName program_step statt "") fortgeführt was kann hier die Ursache sein, bzw. was übersehe ich hier.
TIMESTAMP DEVICE TYPE EVENT READING VALUE
2019-12-28 03:53:56 MieleMaschine HTTPMOD program_step: Ende program_step Ende
2019-12-28 11:11:57 MieleMaschine HTTPMOD program_step: state program_step:
Bei der Definition des DB-loggings sind aktuell nur die folgenden Attribute gesetzt:
attr DbLog DbLogType Current/History
attr DbLog asyncMode 1
attr DbLog room System
Danke für eine Prüfung und Rückmeldung.
Hallo Obi-Wan,
"schuld" daran ist das sogenannte Eventsplitting im DbLog. Das Modul muss dafür sorgen, die eintreffenden Events korrekt in die einzelnen Feldbestandteile zur Speicherung der DB aufzuteilen.
Das wird nach diversen Regeln gemacht, wobei es Modul-Spezifika gibt.
In deinem vorliegenden Fall ist es tatsächlich so, dass das Fehlen eines Wertes "vermuten" lässt, es handele sich um das state-Reading obwohl "state" als Reading mitgeliefert wird (siehe auch Attribut addStateEvent).
Ich werde versuchen ob ich die Defaultzerlegung anpassen kann, um einen solchen Fall abzufangen. Werde mich mit einer Testversion wieder melden. Es muss dann ausgiebig getestet werden um ungewünschte Nebeneffekte auszuschließen.
LG,
Heiko
Die Testversion 4.9.4 liegt in meinem contrib.
Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:
"wget -qO ./FHEM/93_DbLog.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbLog.pm"
Danach restarten.
Bitte teste mal den Erfolg bei dir.
Grüße,
Heiko
Hallo Heiko,
danke für die Antwort. Ich habe Deinen Patch eingespielt und einen Test durchgeführt. Das DB-Logging verhält sich nun wie erwartet. Auch die Logs anderer Geräte sehen tadellos aus. Vielen Dank.
Gruß,
Oliver
TIMESTAMP DEVICE TYPE EVENT READING VALUE
2019-12-28 17:27:10 MieleMaschine HTTPMOD state: Aus state Aus
2019-12-28 17:27:10 MieleMaschine HTTPMOD state_id: 1 state_id 1
2019-12-28 17:27:10 MieleMaschine HTTPMOD progstep_id: 0 progstep_id 0
2019-12-28 17:27:10 MieleMaschine HTTPMOD program_step: program_step
Hallo Oliver,
danke für deine Rückmeldung, sieht gut aus. :D
Ich habe in diesem Thread https://forum.fhem.de/index.php/topic,65860.msg1006274.html#msg1006274 weitere User gebeten ebenfalls diese Version zu testen.
Wenn nichts mehr auffällt, checke ich die Version in Kürze ein.
Heute früh habe ich die Version 4.9.3 online gestellt. Sie ist morgen früh im Update. Diese Version solltest du dann erstmal nicht übernehmen. ;)
Schönen Abend,
Heiko
Hallo Heiko,
Deinem Aufruf zum Test im anderen Thread ist ja leider bislang keiner gefolgt. Bei mir läuft seit der Umstellung alles stabil, folgende Typen logge ich zur Zeit: HTTPMOD, DUMMY, HMCCUDEV, NOTIFY, HARMONY, AT, SONOSPLAYER, UWZ, LUXTRONIK2, HUEDEVICE. Wie siehst Du die Chancen die Anpassung demnächst in die Standardversion zu übernehmen ?
Danke und Gruß,
Oliver
Hallo Oliver,
schön dass du dich nochmal meldest :)
Sorry, hatte hier nicht nochmal geschrieben ... seit dem 4.1. mit der Version 4.9.6 habe ich eine etwas abgewandelte Lösung schon eingecheckt. Siehe das Problem hier: https://forum.fhem.de/index.php/topic,106992.0.html
Wenn du also die V 4.9.6 bzw. aktuell die 4.9.7 im System hast, ist die Anpassung schon drin.
Ansonsten einfach updaten. Dann sollte es immernoch passen.
Grüße,
Heiko
Hallo Heiko,
ich habe die neue Version eingespielt, nun ist das Verhalten wieder wie vor Deiner 1. Korrektur:
TIMESTAMP DEVICE TYPE EVENT READING VALUE
2020-01-20 15:54:25 MieleMaschine HTTPMOD state: In Betrieb state In Betrieb
2020-01-20 18:04:25 MieleMaschine HTTPMOD state: Ende state Ende
2020-01-20 18:12:25 MieleMaschine HTTPMOD state: Aus state Aus
2020-01-20 15:54:25 MieleMaschine HTTPMOD program_step: Vorspülen program_step Vorspülen
2020-01-20 16:12:25 MieleMaschine HTTPMOD program_step: Reinigen program_step Reinigen
2020-01-20 16:56:25 MieleMaschine HTTPMOD program_step: Spülen program_step Spülen
2020-01-20 17:08:25 MieleMaschine HTTPMOD program_step: Klarspülen program_step Klarspülen
2020-01-20 17:30:25 MieleMaschine HTTPMOD program_step: Trocknen program_step Trocknen
2020-01-20 18:04:25 MieleMaschine HTTPMOD program_step: Ende program_step Ende
2020-01-20 18:12:25 MieleMaschine HTTPMOD program_step: state program_step:
Gruß,
Oliver
Hmm ... das ist nicht so erfreulich. Ich war guter Hoffnung das Problem https://forum.fhem.de/index.php/topic,106992.0.html erledigen zu können ohne den Patch für dein Problem zu zerstören.
Ich schau nochmal, aber habe fast den Verdacht dass es ein gordischer Knoten ist :-(
Grüße,
Heiko
Na vielleicht habe ich doch noch eine Lösung für beide Probleme gefunden.
Teste doch bitte wieder die Version aus meinem contrib bei dir :
Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:
"wget -qO ./FHEM/93_DbLog.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbLog.pm"
Danach restarten.
LG,
Heiko
Hallo Heiko,
sowohl bei der alten (93_DbLog.pm 20966 2020-01-13 21:13:47Z DS_Starter) wie auch bei der gestern (93_DbLog.pm 21003 2020-01-17 19:56:36Z DS_Starter)
eingespielten Version ergibt sich das folgende identische Bild in der Tabelle History:
TIMESTAMP DEVICE TYPE EVENT READING VALUE
2020-01-21 16:40:37 MieleMaschine HTTPMOD state: Aus state Aus
2020-01-21 16:40:37 MieleMaschine HTTPMOD program_step: state program_step:
In table current gibt es Unterschiede:
93_DbLog.pm 20966 2020-01-13 21:13:47Z DS_Starter (Hier wurde der aktuelle (Zeitstempel 16:40) leere Wert zu program_step gar nicht geloggt, dafür das richtige ("Aus") state event):
2020-01-21 16:32:37 MieleMaschine HTTPMOD program_step: Ende program_step Ende
2020-01-21 16:40:37 MieleMaschine HTTPMOD state: Aus state Aus
93_DbLog.pm 21003 2020-01-17 19:56:36Z DS_Starter (Hier wurde der aktuelle ("") Wert zu program_step, allerdings nach wie vor falsch geloggt, das richtige aktuelle state reading ("Aus") fehlt hingegen):
2020-01-22 20:42:15 MieleMaschine HTTPMOD program_step: state program_step:
Leider noch ein ziemliches durcheinander, sorry das ich keine besseren Nachrichten habe.
Gruß,
Oliver
Hallo Oliver,
die Current können wir erstmal ignorieren. Für die History muss es klappen, aber da gehen mir langsam die Ideen aus.
Hast du nach dem Einspielen auch restartet ?
Hallo Heiko,
ja shutdown restart hatte ich durchgeführt. Hast Du die Zeitstempel der Versionen mal geprüft ob die richtig sind? Dein Post zur Korrektur war ja am 21.01. der Zeitstempel ist aber schon vom 17.01., also vor dem Post meiner Meldung, passt das zusammen?
Gruß,
Oliver
Ja die Timestamps 21003 2020-01-17 19:56:36Z .. ändern sich erst wenn man das Modul "richtig" eincheckt.
Ich habe nochmal etwas geändert ... probier mal bitte ...
OK, danke - ist vorbereitet, Update nach dem nächsten Lauf der Spülmaschine....
Gruß und gute Nacht,
Oliver
Gn Oliver, schauen wir mal ...
Heiko
So Heiko,
ausgiebig getestet sowie die Versionen mehrfach gewechselt und logs verglichen. Die aktuelle Version macht nun was Sie soll. Fast schon schade da ich im Thread https://forum.fhem.de/index.php/topic,107541.0.html (https://forum.fhem.de/index.php/topic,107541.0.html) nun eine Möglichkeit gefunden habe die Meldungen des Geschirrspülers zu simulieren :)...
Gibst Du mir bitte noch ein Signal sobald die Version veröffentlicht wurde und ich somit wieder normale updates machen kann?
Danke Dir.
Hallo Oliver,
danke für die Rückmeldung. Ich habe nur darauf gewartet, bei mir lief die Version auch bisher ohne Aufälligkeiten.
Ich checke sie nachher ein, d.h. morgen früh im Regelupdate enthalten.
Grüße,
Heiko
Super, vielen Dank nochmal für Deine Unterstützung, ich weiß das zu schätzen..
Gruß,
Oliver