Ich habe einen restart durchgeführt und dabei folgende Mitteilung bekommen:
Messages collected while initializing FHEM:
statefile: 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.
Ein erneuter Restart bringt die gleiche Meldung wieder. Wie kann ich das wieder korrigieren? Wie kann das überhaupt entstanden sein?
Hast Du Dir das statefile denn mal angeschaut?
Ja, das ist sehr lange und beim ersten durchschauen konnte ich nichts entdecken. Wonach muss ich denn gezielt suchen? Alle device-Namen prüfen ok, damit habe ich schon mal angefangen... Komma-separeierte Liste dann als nächstes, mal schauen... das ist echt komplex, da hat man schnell etwas übershen, aber ich werde mal durch das Tal der Tränen gehen müssen.
Läuft fhem bei dir auf einem Raspberry?
Kann es sein, dass die SD-Karte voll oder defekt ist?
Das könnte dazu führen, dass das statefile nicht vollständig geschrieben wurde, bzw. geschrieben werden kann.
ja, es läuft bei mir auf dem Raspberry, voll ist die Sd ganz sicher nicht Defekt!!?! Außer der Meldung läuft alles einwandfrei.
Also alle <name> sind nach bestem Wissen und Gewissen, doppelter, sorgfältiger und länglicher Prüfung alle richtig., bei den nachfolgenden Inhalten bin ich aber ein paar Mal überfordert, das zu analysieren.
Es gibt jedoch noch 2 weitere Dateien namens LightScenes.save und LightScenes.dd.save - da kann ich aber auch keinen Fehler entdecken.
Hilft es das globale verbose auf 5 zu setzen und einen Restart zu machen, um mehr Infos zu bekommen? Könnte ich nach dem Mittagessen mal versuchen.
Oder kann ich das ignorieren? Was könnte denn alles passieren, aktuell wie gesagt, kann ich keine Fehlfunktion feststellen.
Hallo,
ich habe auch schon seit längerem eine solche Fehlermeldung.
Zitat:
Hast Du Dir das statefile denn mal angeschaut?
Konnte beim ersten Durchsehen im statefile auch nichts ungewöhnliches finden.
Frage:
Habe mir in der fhem.pl den Code angesehen, der die Meldung "wirft". Werde da aber nicht ganz schlau raus. Könnte man (lieber Entwickler) nicht einfach an der Stelle auch ausgeben, was da syntaktisch nicht korrekt ist? Dann hätte man das device mit den defekten Daten und könnte es löschen und neu anlegen.
Wäre hilfreich. Danke.
Elektrolurch
Hallo zusammen,
habe den gleichen Fehler und kann in der fhem.save (=mein statefile) auf Anhieb auch keinen Fehler entdecken.
Bei mir hilft (zumindest temporär) folgendes:
- bei gestopptem FHEM die fhem.save (=mein statefile) mit Notepad++ öffnen
- so tun, als ob etwas geändert wird (=irgendwo Leerzeichen eingefügt UND wieder gelöscht)
- die Datei fhem.save speichern
Beim folgenden Start von FHEM kommt dann die Fehlermeldung nicht mehr.
Nach save config und Neustarts von FHEM ist die Fehlermeldung aber immer wieder da.
Könnte das jemand von euch auch 'mal ausprobieren und bitte Rückmeldung geben ob es sich bei euch auch so verhält?
Erkläre mir selbst das so:
Irgendwo scheint ein (für mein menschliches Auge nicht sichtbares) Sonderzeichen in die fhem.save eingefügt zu werden, Notepad++ wandelt das wohl beim Speichern in ein sinnvolles Zeichen um (oder entfernt es?), so dass beim nachfolgenden Start von FHEM keine Fehler festgestellt werden.
Wie gesagt, leider wirkt das nur temporär, aber hilft vielleicht bei einer Lösungsfindung, falls sich das so auch bei anderen nachstellen lässt?
Viele Grüße,
Andreas
Ich hänge mich mal an - ich habe auch sporadische solche Meldungen beim fhem-Start! Gibt es eine Moeglichkeit das einzugrenzen? Mit dem bloßen Auge kann ich auch nichts erkennen !
Die Meldung wird ausgegeben, wenn in einer Zeile des statefiles nicht mindestens drei Zeichenketten stehen, die per Leerzeichen getrennt sind.
korrekt: "setstate abc def" oder auch "setstate abc def ghi jkl"
falsch: "setstate" oder auch "setstate bla"
Wer es genauer wissen will, kann zwischen Zeile 2594 und 2595 in der fhem.pl eine Debug-Ausgabe einbauen:
my @a = split(" ", $param, 2);
Debug "setstate >>> $param";
return "Usage: setstate <name> <state>\n$namedef" if(@a != 2);
Okay.
Statt aber viele debug - Ausgaben zu produzieren: Wäre es nicht einfacher, die Stelle, an der der Fehler "bemerkt" wird, die Ausgabe um den "defekten" Inhalt anzureichern? Dann ließe sich das auch leichter beheben....
Elektrolurch
Zitat von: betateilchen am 10 Mai 2016, 20:06:47
Die Meldung wird ausgegeben, wenn in einer Zeile des statefiles nicht mindestens drei Zeichenketten stehen, die per Leerzeichen getrennt sind.
korrekt: "setstate abc def" oder auch "setstate abc def ghi jkl"
falsch: "setstate" oder auch "setstate bla"
Wer es genauer wissen will, kann zwischen Zeile 2594 und 2595 in der fhem.pl eine Debug-Ausgabe einbauen:
my @a = split(" ", $param, 2);
Debug "setstate >>> $param";
return "Usage: setstate <name> <state>\n$namedef" if(@a != 2);
Hi Udo,
Danke das hat geklappt, allerdings tauchte beim restart die Meldung nicht auf......grrrr! Ich beobachte das mal und melde mich wieder!