FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: KNET am 16 Juli 2017, 14:24:50

Titel: DOIF mit RandomTimer Syntax Problem
Beitrag von: KNET am 16 Juli 2017, 14:24:50
Hallo

Die Kombination DOIF mit RandomTimer funktioniert nicht. Der RandomTimer selber funktioniert.

define ZufallsTimer_Aussen_Chemine_Licht DOIF ([Personen:state] eq "abwesend") (RandomTimer *{h2hms_fmt(hms2h(sunset_abs())-(rand()*2/3)-1/3)} Licht_Chemine *{h2hms_fmt(hms2h(sunset_abs(6*3600))-(rand()*2/3)-1/3)} 1200)

Es kommt beim Speichern folgende Fehlermeldung:

ZufallsTimer_Aussen_Chemine_Licht: unknown attribute DOIF. Type 'attr ZufallsTimer_Aussen_Chemine_Licht ?' for a detailed list.


Kann mir jemand einen Tip geben?
Titel: Antw:DOIF mit RandomTimer Syntax Problem
Beitrag von: Amenophis86 am 16 Juli 2017, 18:42:08
Und du bist sicher, dass du mit define und nicht mit attr gearbeitet hast?

Edit:
Mal abgesehen davon, dass du :state nicht angeben musst. Ohne Readingsangabe wird auf state geprüft.
Titel: Antw:DOIF mit RandomTimer Syntax Problem
Beitrag von: KNET am 16 Juli 2017, 19:57:45
Hallo Amenophis86

Ich habe mal :state weggelassen. Einzel Funktioniert es (hat es auch mit :state funktioniert). 

define di_Test DOIF ([Personen] eq "abwesend") ((set EG_Signalgeber_Mp3 playTone 027))

Die Abwesenheit funktioniert.

define ZufallsTimer_Aussen_Chemine_Licht RandomTimer *{h2hms_fmt(hms2h(sunset_abs())-(rand()*2/3)-1/3)} Licht_Garten_Weg 

Auch der RandomTimer funktioniert

Wobei ich jetzt beim speichern von
define ZufallsTimer_Aussen_Chemine_Licht DOIF ([Personen] eq "abwesend") (RandomTimer *{h2hms_fmt(hms2h(sunset_abs())-(rand()*2/3)-1/3)} Licht_Chemine *{h2hms_fmt(hms2h(sunset_abs(6*3600))-(rand()*2/3)-1/3)} 1200)

keine Fehlermeldung bekomme habe. Ich warte mal heute Nacht ab, mal sehen ob es das macht,was ich will.
Titel: Antw:DOIF mit RandomTimer Syntax Problem
Beitrag von: KNET am 16 Juli 2017, 20:13:48
Jetzt habe ich bemerkt, dass es am attr switchmode 800/200 liegt.

define ZufallsTimer_Aussen_Chemine_Licht DOIF ([Personen] eq "abwesend") (RandomTimer *{h2hms_fmt(hms2h(sunset_abs())-(rand()*2/3)-1/3)} Licht_Chemine *{h2hms_fmt(hms2h(sunset_abs(6*3600))-(rand()*2/3)-1/3)} 1200)
attr ZufallsTimer_Aussen_Chemine_Licht room 1.9.0_Sicherheit
attr ZufallsTimer_Aussen_Chemine_Licht switchmode 800/200
attr ZufallsTimer_Aussen_Chemine_Licht verbose 5


Wenn ich das attr switchmode weglasse kommt die Fehlermeldung nicht.

Was müsste ich machen, dass es mit dem attr switchmode funktioniert?

Titel: Antw:DOIF mit RandomTimer Syntax Problem
Beitrag von: Amenophis86 am 17 Juli 2017, 00:43:02
Was soll das für ein attr sein? Zu DOIF gehört es nicht.

Natürlich geht mit und ohne :state. Meinte auch nur, dass du es dir sparen kannst, wenn du magst. Kannst es aber natürlich auch gerne schreinben :)
Titel: Antw:DOIF mit RandomTimer Syntax Problem
Beitrag von: amenomade am 17 Juli 2017, 01:08:59
Zitat(RandomTimer *{h2hms_fmt(hms2h(sunset_abs())-(rand()*2/3)-1/3)} Licht_Chemine *{h2hms_fmt(hms2h(sunset_abs(6*3600))-(rand()*2/3)-1/3)} 1200)

Was ist das für ein fhem Befehl? RandomTimer ist ein Modul, kein Befehl.

Spätestens beim nächsten "Personen abwesend" kriegst du in der Log:
ZufallsTimer_Aussen_Chemine_Licht: RandomTimer *{h2hms_fmt(hms2h(sunset_abs())-(rand()*2/3)-1/3)} Licht_Chemine *{h2hms_fmt(hms2h(sunset_abs(6*3600))-(rand()*2/3)-1/3)} 1200: Unknown command RandomTimer, try help.
Titel: Antw:DOIF mit RandomTimer Syntax Problem
Beitrag von: KNET am 17 Juli 2017, 18:34:01
Hallo amenomade

Du hast recht. Diese Meldung stand im Log.

Wie bekomme ich das hin, dass der RandomTimer nur bei Abwesenheit funktioniert?
Titel: Antw:DOIF mit RandomTimer Syntax Problem
Beitrag von: amenomade am 17 Juli 2017, 20:47:34
Du machst ein RandomTimer mit der richtige Definition / Syntax (siehe CommandREF https://fhem.de/commandref.html#RandomTimer) und mit allen seinen Attribute:
define ZufallsTimer_Aussen_Chemine_Licht RandomTimer *{sunset_abs()} Licht_Garten_Weg +04:00:00 500
attr ZufallsTimer_Aussen_Chemine_Licht switchmode 800/200
attr ZufallsTimer_Aussen_Chemine_Licht disableCond (Value("Personen") ne "abwesend")


DOIF hat nix damit zu tun.