Hauptmenü

Fehler im Statefile

Begonnen von ujaudio, 27 März 2016, 18:31:51

Vorheriges Thema - Nächstes Thema

ujaudio

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?
Einen lieben Gruß
Jürgen

CoolTux

Hast Du Dir das statefile denn mal angeschaut?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ujaudio

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.
Einen lieben Gruß
Jürgen

Benni

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.

ujaudio

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.
Einen lieben Gruß
Jürgen

ujaudio

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.
Einen lieben Gruß
Jürgen

Elektrolurch

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
configDB und Windows befreite Zone!

scooty

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
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH1080 / IO Homecontrol

P.A.Trick

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 !
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

betateilchen

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);


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Elektrolurch

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
configDB und Windows befreite Zone!

P.A.Trick

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!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn