Guten Tag,
ich habe ein ominöses Problem.
Am Ende der "fhem.cfg" habe ich die drei folgenden Definitionen:
define do_not_check dummy
set do_not_check on
defmod avoid_check_states at +01:00:00 set do_not_check off
Nach einem restart von FHEM ist die dummy Variable "do_not_check" vorhanden und hat auch , wie erwartet, "on" als Wert.
Ebenfalls vorhanden ist das "at" avoid_check_states.
Wenn ich mir nach dem restart von fhem die fhem.cfg ansehe, sind auch eben diese drei Zeilen noch in der config "fhem.cfg" vorhanden. Nach einem "save" jedoch werden :
set do_not_check on
defmod avoid_check_states at +01:00:00 set do_not_check off
... gelöscht und es bleibt lediglich
define do_not_check dummy
Wo ist da mein Denkfehler ??
Viele Grüße!
Andreas
Der Fehler liegt darin, dass Du die fhem.cfg direkt bearbeitest und nicht weißt was Du tust.
Soll heißen: die Zeilen haben in der fhem.cfg nix zu suchen.
Zitat von: dev0 am 30 September 2016, 10:47:31
Der Fehler liegt darin, dass Du die fhem.cfg direkt bearbeitest und nicht weißt was Du tust.
Soll heißen: die Zeilen haben in der fhem.cfg nix zu suchen.
solche Dinge wie ...
define at.IrgendEtwas at +01:00:00 set irgendEtwas on
... hat in der fhem.cfg nix zu suchen ?
Ich habe nun einige dieser "at" in den configs (includes in der fhem.cfg), welche natürlich funktionieren. Warum sollte es in der fhem.cfg nicht funktionieren ?
'define' ist ok, 'defmod' und 'set' nicht. Benutze stattdessen ein notify.
set hat in der config nichts zu suchen. Wenn du möchtest, dass etwas bei Start von FHEM gesetzt wird, verwende das Event global:INITIALIZED und ein notify.
Bitte auch die Grundlagen aneignen.
Ich habe vor (gefuehlt) 10 Jahren beschlossen, dass einmalige at Definitionen wohl nur temporaer sind, und deswegen in fhem.state gespeichert werden. Immerhin habe ich das im commandref dokumentiert:
ZitatNotes:
- if no * is specified, then a command will be executed only once, and then the at entry will be deleted. In this case the command will be saved to the statefile (as it considered volatile, i.e. entered by cronjob) and not to the configfile (see the save command.)
Zitat von: marvin78 am 30 September 2016, 11:01:00
set hat in der config nichts zu suchen. Wenn du möchtest, dass etwas bei Start von FHEM gesetzt wird, verwende das Event global:INITIALIZED und ein notify.
Bitte auch die Grundlagen aneignen.
Danke! das ist der wesentliche Hinweis. Hatte ich schlicht nicht präsent.
Viele Grüße!
Andreas
... Funktioniert leider auch nicht:
define FHEMinit notify global:INITIALIZED {\
fhem("set do_not_check on");;\
fhem("defmod avoid_check_states at +01:00:00 set do_not_check off")\
}
... "set do_not_check on" wird nach Start von FHEM nicht gesetzt ? Als würde das event "global:INITIALIZED" an dieser Stelle nicht "kommen" ??
EDIT:
Geht jetzt , hatte nur ein rereadcfg gemacht, was natürlich nicht zu einem global:INITIALIZED führte.
Viele Grüße!
Andreas
Hallo Andreas,
man kann ja jeden Ausdruck mit Klammern und Schutzzeichen beliebig kompliziert gestalten, aber muss man das?
define FHEMinit notify global:INITIALIZED set do_not_check on;; defmod avoid_check_states at +01:00:00 set do_not_check off
Also zumindest bis zum ersten set von mir getestet. 8)
Hast Du auch save gemacht? :-X
Gruß Otto
Zitat von: Otto123 am 30 September 2016, 14:18:58
Hallo Andreas,
man kann ja jeden Ausdruck mit Klammern und Schutzzeichen beliebig kompliziert gestalten, aber muss man das?
define FHEMinit notify global:INITIALIZED set do_not_check on;; defmod avoid_check_states at +01:00:00 set do_not_check off
Also zumindest bis zum ersten set von mir getestet. 8)
Hast Du auch save gemacht? :-X
Gruß Otto
Hi,
ist gelöst, ich hatte nur ein rereadcfg gemacht, das erzeugt natürlich kein INITIALIZED event...
VIele Grüße!
Andreas
Zitat von: Otto123 am 30 September 2016, 14:18:58
Hast Du auch save gemacht? :-X
Er bearbeitet doch die fhem.cfg direkt, daher auch die vielen Schutzzeichen. ;)
Zitat von: Benni am 30 September 2016, 14:30:45
Er bearbeitet doch die fhem.cfg direkt, daher auch die vielen Schutzzeichen. ;)
aber {fhem("bla bla")} ist doch komplett überflüssig - oder verstehe ich das falsch?
Gruß Otto
Zitat von: Otto123 am 30 September 2016, 14:34:46
aber {fhem("bla bla")} ist doch komplett überflüssig - oder verstehe ich das falsch?
Gruß Otto
Ist auch richtig, ich hatte vorher noch mehr "perl code" in den notify {} drin...
define FHEMinit notify global:INITIALIZED {\
fhem("set do_not_check on");;\
fhem("defmod avoid_check_states at +01:00:00 set do_not_check off")\
}
deshalb {...}. Natürlich geht es auch mit "define FHEMinit notify global:INITIALIZED set .....;; defmod ..."
Viele Grüße!
Andreas
Zitat von: Otto123 am 30 September 2016, 14:34:46
aber {fhem("bla bla")} ist doch komplett überflüssig - oder verstehe ich das falsch?
Nein, da hast du schon recht! :)
Ich meinte v.a. die ";;" und die "\" am Zeilenende.