gelöst, return value: Unknown command if

Begonnen von geiercasi, 01 Mai 2017, 18:10:50

Vorheriges Thema - Nächstes Thema

geiercasi

Guten Abend
fhem soll bei Anwesenheit meines Handys das Licht einschalten, aber nur wenn es dunkel ist. Mein Versuch bringt den Fehler
CasiStatusAnwesend return value: Unknown command if, try help.
Um diese Zeile geht es.
define CasiStatusAnwesend notify CasiStatus:1 set HomeStatus 1;; if (Value("LichtStatus")<2) {fhem("set FlurLichtTag on;; sleep 300;; set FlurLichtTag off")}

Kann mir bitte jemand helfen ?

#Licht an oder aus beim Heimkommen
#1= licht an 2=licht aus
define LichtStatus dummy
attr LichtStatus setList LichtStatus 1 2
attr LichtStatus room Haus
define Lichtan at *{sunset("HORIZON=-3.0",0,"14:30","22:30")} set LichtStatus 1
attr Lichtan room Timer
define Lichtaus at *{sunrise(0,"04:30","09:30")} set LichtStatus 2
attr Lichtaus room Timer


Gruß und danke

Manul

Ich bin nicht 100% sicher, aber ich denke, Du musst das komplette if-Konstrukt noch in geschweifte Klammern setzen, damit es als Perl erkannt wird.

geiercasi

Hallo Manul

so {if (Value("LichtStatus")<2) {fhem("set FlurLichtTag on;; sleep 300;; set FlurLichtTag off")}} hatte ich es vorher, mit dem selben Fehler. Oder meintest du das anders ?

danke für deine Mühe

Manul

So meinte ich es, ja. Ich habe noch mal in die Commandref geschaut: notify kann wohl entweder FHEM oder perl-Kommandos aufrufen, aber keinen Mix. Versuch doch mal:

define CasiStatusAnwesend notify CasiStatus:1 { fhem("set HomeStatus 1"); if (Value("LichtStatus")<2) {fhem("set FlurLichtTag on;; sleep 300;; set FlurLichtTag off")}

geiercasi

#4
CasiStatusAnwesend return value: Unknown command {, try help.

wenn ich die { am ende zu Mache,
define CasiStatusAnwesend notify CasiStatus:1 { fhem("set HomeStatus 1"); if (Value("LichtStatus")<2) {fhem("set FlurLichtTag on;; sleep 300;; set FlurLichtTag off")}}
gibt es den selben Fehler.
define CasiStatusAnwesend notify CasiStatus:1 fhem("set HomeStatus 1"); if (Value("LichtStatus")<2) {fhem("set FlurLichtTag on;; sleep 300;; set FlurLichtTag off")}
CasiStatusAnwesend return value: Unknown command fhem("set, try help.

Danke Dir.
Gruß

CoolTux


define CasiStatusAnwesend notify CasiStatus:1 {     fhem("set HomeStatus 1");
                if (Value("LichtStatus")<2) {
                     fhem("set FlurLichtTag on; sleep 300; set FlurLichtTag off");
                 }
}
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

geiercasi

Hallo CoolTux,
danach startet FHEM nicht mehr
WARNING: sleep without additional commands is deprecated and blocks FHEM
leider übersteigt das mein aktuelles Wissen....

Gruß und danke

geiercasi

Diesen Fehler konnte ich jetzt beseitigen, durch einen on-for-timer. Dafür gibts jetzt den alten Fehler wieder :)
CasiStatusAnwesend return value: Unknown command {, try help.
define CasiStatusAnwesend notify CasiStatus:1 {     fhem("set HomeStatus 1");
                if (Value("LichtStatus")<2) {
                     fhem("set HUEDevice18 on-for-timer 300");
                 }
}


Gruß & gute n8

CoolTux

Das verstehe ich nicht. Mein Code ist einfach und sollte genau so laufen.
Wenn Du das im DEF Bereich des Notifys ein gibst und dann auf modify drückst sollte er entweder meckern wenn der Code nicht stimmt oder abspeichern und lauffähig sein


CasiStatus:1 {   fhem("set HomeStatus 1");
                if (Value("LichtStatus")<2) {
                     fhem("set HUEDevice18 on-for-timer 300");
                 }
}
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

geiercasi

define CasiStatusAnwesend notify CasiStatus:1 {   fhem("set HomeStatus 1");
                if (Value("LichtStatus")<2) {
                     fhem("set HUEDevice18 on-for-timer 300");
                 }
}

Missing right curly or square bracket at (eval 369) line 1, at end of line
syntax error at (eval 369) line 1, at EOF
Unknown command if, try help.
Unknown command }, try help.


Danke für deine Hilfe
Gruß

Thorsten Pferdekaemper

Zitat von: CoolTux am 02 Mai 2017, 06:09:58Wenn Du das im DEF Bereich des Notifys ein gibst und dann auf modify drückst
Hast Du das wirklich ganz genau so gemacht?
Gruß,
   Thorsten
FUIP

CoolTux

Gib mal bitte ein list von Notify Device. Irgendwas machst Du "anders"
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

Frank_Huber

Eine geschweifte klammer zuviel, eine normale zuwenig. Oder seh ich das falsch?

Gesendet von meinem S3_32 mit Tapatalk


CoolTux

Also wenn ich nicht ganz blind bin stimmen zu mindest die Klammern in meinem Beispiel. Am besten wir warten Mal auf das list. Habe den Verdacht wir haben hier ein cfg Editierer wo das ganze schief geht.
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

geiercasi

bisher wurden die Daten per nano in der jeweiligen .cfg Datei geändert.
Ich habe nun ein Device in der Config erstellt
define CasiStatusAnwesend notify CasiStatus:1 set HomeStatus 1 und dann der DEF Bereich per Gui angepasst.
CasiStatus:1 {   fhem("set HomeStatus 1");
                if (Value("LichtStatus")<2) {
                     fhem("set HUEDevice18 on-for-timer 300");
                 }
}
wurde ohne fehler übernommen und funktioniert im Test.

@CoolTux wie bitte erstelle ich das list ?