Startmeldung ConfigDB Usage setstate

Begonnen von ManOki, 27 Februar 2017, 13:33:14

Vorheriges Thema - Nächstes Thema

ManOki

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

betateilchen

attr global motd none

Dann ein "Save config" und FHEM neustarten.

Falls die Meldung dann immer noch auftaucht, nochmal melden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ManOki

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. Das zweite tritt allerdings immer auf, nicht nur bei Updates.

Vielen Dank schonmal
ManOki

betateilchen

Hat nix mit der configDB zu tun. Du hast in Deiner Konfiguration irgendwo ein device mit einem kaputten reading.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ManOki

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

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ManOki

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