FHEM speichert "at" manchmal nicht

Begonnen von Nemo0815, 29 April 2015, 11:43:45

Vorheriges Thema - Nächstes Thema

Nemo0815

Hallo,

folgendes habe ich nun schon mehrfach bemerkt:

Sowohl auf der Fritzbox (7490) als auch auf dem RasPi2 speichert FHEM Änderungen oftmals nicht.

Bspw. lege ich ein neues define an (z.B. at), editiere es, klicke auf modify und anschliessend auf Save. Der Save wird bestätigt (das Fragezeichen verschwindet auch). Schaue ich dann in der FHEM config nach, fehlt das neue define manchmal komplett. Auch mehrmaliges editieren des defines und erneuter Save führt dann zu keinem Eintrag in der cfg.

Nach einem FHEM Neustart verschwindet das zuvor erstellte Objekt dann auch komplett, bzw. FHEM meckert dass es irgendwelche nicht definierten Symbole gibt und ich darf alles nochmal machen (dann funktionierts meistens).

Das ganze ist allerdings sporadisch, meistens funktoiniert alles wie erwartet, also bei SAve wird alles entspr. gespeichert usw.

Woran könnte das liegen? Oder handelt es sich um einen Bug im FHEM?

LuckyDay

mach doch ein ordentliches Beispiel  :o

at werden nicht immer in der fhem.cfg gespeichert, je nach dem wie die definition aussieht  ;)

Nemo0815

#2
Beispiel nach Neustart:

Error messages while initializing FHEM:
statefile: Unknown command my, try help.
Unknown command if($d, try help.
Unknown command $d++;;, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Unknown command else{, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Unknown command }, try help.


Folgendes at habe ich eingetragen, welches nicht in der cfg auftaucht (wohl aber die Fehlermeldungen oben).:

define FRITZBOX.WatchdogCounter at +*00:01:00 {
my $d = Value("FRITZBOX.Watchdog");;
if($d < 60){
$d++;;
fhem("set FRITZBOX.Watchdog $d");;
}
else{
fhem("set FRITZBOX.Watchdog 0");;
}
}


Funktionieren tut das ganze solange ich FHEM nicht neu starte. Nach neustart verschwindet das at dann wieder aus der "Everything" Ansicht und funktioniert folglich auch nicht mehr.

Nach erneutem Eintragen und wiederholtem Neustart kommt dann:

2015.04.29 11:57:18 2: Error messages while initializing FHEM: statefile: Please define FRITZBOX.WatchdogCounter first Please define FRITZBOX.WatchdogCounter first
2015.04.29 11:57:18 0: Server started with 50 defined entities (version $Id: fhem.pl 8486 2015-04-26 14:16:32Z rudolfkoenig $, os linux, user root, pid 22296)

LuckyDay

mach mal bitte ein

list FRITZBOX.WatchdogCounter

bitte

Nemo0815

Zitat von: fhem-hm-knecht am 29 April 2015, 12:04:23
mach mal bitte ein

list FRITZBOX.WatchdogCounter

bitte

Nach Neustart siehts so aus:

[i]No device named FRITZBOX.WatchdogCounter found[/i]

und davor:

Internals:
   CFGFN
   COMMAND    { my $d = Value("FRITZBOX.Watchdog"); if($d < 60){ $d++; fhem("set FRITZBOX.Watchdog $d"); } else{ fhem("set FRITZBOX.Watchdog 0"); } }
   DEF        +*00:01:00 { my $d = Value("FRITZBOX.Watchdog"); if($d < 60){ $d++; fhem("set FRITZBOX.Watchdog $d"); } else{ fhem("set FRITZBOX.Watchdog 0"); } }
   NAME       FRITZBOX.WatchdogCounter
   NR         224
   NTM        12:07:51
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 12:07:51
   TIMESPEC   00:01:00
   TRIGGERTIME 1430302071.94769
   TRIGGERTIME_FMT 2015-04-29 12:07:51
   TYPE       at
   Readings:
     2015-04-29 12:06:51   state           Next: 12:07:51
Attributes:



Nemo0815

Interessanterweise wurde nachdem ich jetzt das define oben hier aus dem Forum wieder rauskopiert hatte und komplett als ganzes in das FHEM Eingabefenster kopiert hatte es mit druck auf "Return"/Save jetzt auch in die CFG eingetragen.

Vorher hatte ich das define jeweils mit

"define FRITZBOX.WatchdogCounter at +*00:01:00 x"

Erstmal als leer angelegt, und danach editiert (also x durch was sinnvolles ersetzt).
Kann es sein dass es auf diesem Weg nicht in der CFG landet, sondern nur wenn ein komplettes Kommando auf einmal definiert wurde?

Hier jetzt in der CFG:

define FRITZBOX.WatchdogCounter at +*00:01:00 { my $d = Value("FRITZBOX.Watchdog");; if($d < 60){ $d++;; fhem("set FRITZBOX.Watchdog $d");; } else{ fhem("set FRITZBOX.Watchdog 0");; } }

marvin78

Das liegt vermutlich daran, dass x kein FHEM Befehl ist. Lege neue ats so an, dann funktioniert dein Vorgehen:

define FRITZBOX.WatchdogCounter at +*00:01:00 {}

Nemo0815

Hm interessant, funktoinieren tuts aber trotzdem, nur speichert er es eben nicht.

Bei Notify gehts übrigens (mit z.B. ... a b am Ende des defines, steht glaub ich sogar so im Wiki als Vorgehensweise).

Aber wirklich konsequent ist das nicht, oder?

marvin78

Anzunehmen, dass etwas, das bei notify funktioniert, auch bei at (völlig anderes Modul) funktioniert, ist aber auch nicht gerade weise.  ;)

Ich bin auch nicht sicher, ob das dein Problem wirklich löst. Das war nur ein Tipp.

krikan

Ich kann das Problem von Nemo0815 nicht nachstellen. Die Anlage über den Weg von Nemo0815 funktioniert; auch mit dem hier gezeigten Code. Das at ist auch nach einem Neustart nicht weg.

Nemo0815

#10
ICh habe das Problem immer noch von Zeit zu Zeit. Irgendwie speicher FHEM "at"s nicht zuverlässig ab.

Es kommt vor dass ich selbst nach einem neustart das at noch verfügbar habe, es aber nach einer Weile dann wieder aus der Konfig verschwindet. Sehr ärgerlich das ganze.

Gerade eben habe ich wieder ein at dass ich gestern erneut (habs vorher schon mehrfach verloren) angelegt hatte verloren:

Internals:
   CFGFN
   COMMAND    {
if(Value("Raspi2Fritz") eq "disconnected"){
system("/home/pi/StartFhemOnFritz.sh");;
}
}
   DEF        +*00:03:00 {
if(Value("Raspi2Fritz") eq "disconnected"){
system("/home/pi/StartFhemOnFritz.sh");;
}
}
   NAME       FritzAliveCheck
   NR         4554
   NTM        18:20:34
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 18:20:34
   TIMESPEC   00:03:00
   TRIGGERTIME 1433780434.64832
   TRIGGERTIME_FMT 2015-06-08 18:20:34
   TYPE       at
   Readings:
     2015-06-08 18:17:34   state           Next: 18:20:34
Attributes:

mrbreil

#11
Hast du dein Problem gelöst, seit einer halben Stunde habe ich das gleiche Problem.
Fhem ist bei mir auf einem Debian PC Installiert.
Angefangen hat alles als ich per notify zwei at active und inactive setzen wollte.
Ob das jetzt zwangsläufig zusammenhäng kann ich nicht beschwören, aber davor hatte ich keine Probleme.
Habe weder in der fhem.cfg noch in der fhem.save rumgepfuscht, habe sie aber lesend geöffnet und die at's sind nicht mehr da.
Beim anlegen eines neuen at Devices erscheint auch nicht das Fragezeichen neben save config, auch nicht wenn ich dem at einen anderen Namen beim erstellen gebe.

Update:

Selbst wenn ich nach dem anlegen auf save config gehe, schreibt fhem das device nicht in die fhem.cfg.
Lege ich aber ein dummy device an erscheint sowohl das Fragezeichen zum speichern und das device steht auch in der fhem.cfg.

mrbreil

Kann das mit dem statistics Modul zusammen hängen?

Habe Verbose mal auf 5 gestellt beim anlegen eines at devices.

2015.09.13 10:55:01 4: HTTP FHEMWEB:192.168.1.31:50952 GET /fhem&room=Unsorted&cmd=define+testat+at+%2B02%3A02%3A00+set+lampe+on
2015.09.13 10:55:01 5: Cmd: >define testat at +02:02:00 set lampe on<
2015.09.13 10:55:01 5: Triggering testat (1 changes)
2015.09.13 10:55:01 5: Notify loop for testat Next: 12:57:01
2015.09.13 10:55:01 5: statistics Statistik_Kueche: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics Statistik_Wetter: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Bad: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Flur: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Schlafzimmer_Fenster: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Schlafzimmer_Zimmer: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Umwelt: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Wohnzimmer: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: milight1_Notify: Triggered by testat; Next: 12:57:01
2015.09.13 10:55:01 5: Triggering global (1 changes)
2015.09.13 10:55:01 5: Notify loop for global DEFINED testat

mrbreil

Habe jetzt den ganzen Nachmittag/Abend Fhem neu installiert und eingerichtet, dachte vor ein paar Stunden das Problem damit zwar nicht gelöst zu haben, aber immerhin war es aus der Welt. Leider muss ich jetzt wieder feststellen das bereits angelegte und funktionierende at's einfach verschwinden. Und nein ich ediere die fhem.cfg nicht direkt sondern nur über die Weboberfläche. Fhem ist auch UpToDate.

Meiner bescheiden Meinung liegt es an dem "active" und "inactive" setzten. Aber wie sollte ich anders ein at deaktivieren, da mir die Lösung das per attr disable sehr unpraktisch erscheint, da man dann die cfg speichern muss!

Daher ergeben sich mir mehrere Fragen.
Nutzt jemand überhaupt diesen "set <at_device> inactive" Befehl?
Wird dieser Befehl eigentlich von fhem noch unterstützt oder ist der schon Altbacken?
Wie löst ihr das unscharf schalten eines at?

Für jegliche Hilfe bin ich sehr Dankbar.

franky08

#14
Mit  disable  ;)

P.S. Ein at , angelegt ohne relativ oder periodisch, verschwindet nach einmaliger Ausführung, dass dürfte aber bekannt sein
Vg
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1