Hallo,
ich bekomme seit einiger Zeit nach einem Neustart von Fhem die Meldung:
Messages collected while initializing FHEM:
configDB: Usage: setstate
where is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.
Ich kann leider nicht nachvollziehen, woher das genau kommt. Hat jemand eine Idee?
Vielen Dank
ManOki
attr global motd none
Dann ein "Save config" und FHEM neustarten.
Falls die Meldung dann immer noch auftaucht, nochmal melden.
Hallo,
das habe ich gemacht, die Meldung ist wie erwartet verschwunden. Dabei ist mir noch eingefallen/aufgefallen, dass die Meldung immer nur nach einem Update und anschließenden Neustart kam. Wenn ich nach dem Prozedere nochmal neu gestartet habe, war die Meldung auch ohne weitere Anpassung weg.
Mit dem Befehl wird nur die Ausgabe der Fehler nach dem Neustart unterdrückt, aber nicht der Fehler selbst behoben, oder?
Vllt 2 relevante Nebeninformationen: Ich habe einen Autoneustart nach einem Update per notify und noch ein weiteres "Problem", siehe https://forum.fhem.de/index.php/topic,17509.0.html (https://forum.fhem.de/index.php/topic,17509.0.html). Das zweite tritt allerdings immer auf, nicht nur bei Updates.
Vielen Dank schonmal
ManOki
Hat nix mit der configDB zu tun. Du hast in Deiner Konfiguration irgendwo ein device mit einem kaputten reading.
Ok, gibt es eine Möglichkeit, das Device oder Reading herauszufinden oder ggf. alle bestehenden Readings zu löschen?
Mit configdb list
bekomme ich nur u.a. aktuelle Attribute angezeigt, gibt es das auch für Readings mit setstate?
Alle Readings zu löschen, sollte doch theoretisch kein Problem sein: Irgendwann werden die neu geschrieben, solange habe ich eben ggf. ein paar Fehlermeldungen von notify etc.
Viele Grüße
ManOki
Setze mal global verbose 5, mache ein save config und starte dann FHEM neu.
Dann müsste im Logfile die Zeile auftauchen, die das Problem verursacht.
Ok, ich habe nochmal etwas rumprobiert. Das Problem tritt definitiv nur bei Updates auf, wenn ich danach nochmal neustarte, erscheint keine Fehlermeldung mehr. Auch scheint es kein Problem mit meinem "autorestart nach update" notify zu geben, das habe ich probehalber ausgeschaltet.
Eben habe ich die aktuellen Updates eingespielt und dabei mit global verbose 5 alles ins Logfile geschrieben. Zusätzlich habe ich noch vor dem Update und nach dem zweimaligen neustarten Backups vom Statefile angelegt.
Leider finde ich keine passende Fehlermeldung. In den Statefiles haben alle Zeilen mindestens zwei Leerzeichen und sollten somit gültig sein ( geprüft mit cat /opt/fhem/log/fhem.save | grep -v -E '[^ ]+ [^ ]+ .+' ). Im Logfile finde ich die Fehlermeldung wie folgt:
2017.02.28 10:36:01 5: Cmd: >setstate thermometer 2016-02-14 01:09:13 windDirectionText SSW<
2017.02.28 10:36:01 5: Cmd: >setstate thermometer 2016-02-14 01:09:13 windGust 55.4<
2017.02.28 10:36:01 5: Cmd: >setstate thermometer 2016-02-14 01:09:13 windSpeed 69.3<
2017.02.28 10:36:01 1: configDB: Usage: setstate <name> <state>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.
Die setstate Zeilen sind auch tatsächlich die letzten im Statefile und auch das reading "windSpeed" wird korrekt gesetzt. Mir ist aufgefallen, dass die letzte Zeile im Statefile eine Leerzeile ist, ist das richtig so?
Viele Grüße
ManOki