Also ich möchte den Schaltzustand der Lampe nach einen Anruf wieder herstellen.
Dazu habe ich jetzt folgenyes gebastelt. Leider kommen die Befehle alle auf einmal:
Telefon:event:.ring
{
if ("Licht01" eq "off") {
{fhem("set Licht01 blink 2 3")}}
else
{
{fhem("set Licht01 off")}
{fhem("sleep 3 quiet")}
{fhem("set Licht01 on")}
{fhem("sleep 3 quiet")}
{fhem("set Licht01 off")}
{fhem("sleep 3 quiet")}
{fhem("set Licht01 on")}
}
}
HILFE !!!
Du musst die Befehle hintereinander in einen fhem Aufruf schreiben!
Gruß
Dan
EDIT: Auch ein paar {} zu viel.
else
{
fhem("set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
}
Zitat von: CoolTux am 04 März 2017, 11:35:25
else
{
fhem("set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
}
Jetzt hast Du ihm den Spaß am Verstehen und Umsetzen genommen... :(
Gruß
Dan
EDIT: Bin ja manchmal selber so... 8)
Zitat von: DeeSPe am 04 März 2017, 11:37:13
Jetzt hast Du ihm den Spaß am Verstehen und Umsetzen genommen... :(
Gruß
Dan
EDIT: Bin ja manchmal selber so... 8)
Nicht unbedingt. Beim ersten Mal biete ich gerne ein Beispiel zum besseren verstehen. Schauen wir mal was er im Laufe seiner FHEM und Forumszeit daraus macht ;)
Grüße
Zitat von: CoolTux am 04 März 2017, 11:41:08
Nicht unbedingt. Beim ersten Mal biete ich gerne ein Beispiel zum besseren verstehen. Schauen wir mal was er im Laufe seiner FHEM und Forumszeit daraus macht ;)
Grüße
Ja hast Recht!
Anhand von Beispielen verstehen die meisten Menschen eben doch am Besten.
Gruß
Dan
Hallo, danke erstmal... leider hatte ich auch diese Variante schon... mittlerweile bin ich 50 Versionen durch und komme immer nen step weiter. Jetzt kommt als Fehler : Can't find string terminator '"' anywhere before EOF at (eval 49826) line 7.
OK
Was fehlt da?
Gib mal die komplette Funktion noch mal.
Telefon:event:.ring
{
if ("Licht01" eq "off") {
{fhem("set Licht01 blink 2 3")}}
else
{
fhem("set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
}
}
so nimmt er ihn nicht.
Schau dir mal deine fhem Zeile an und meine aus der else Bedingung. Und dann passt Du an.
Ähm also Deins anpassen.
Also ich seh da nix. Hab die grad da rein kopiert. Oder suche ich nach ner leertaste???
Vorne Klammer weg hinten Klammer weg. Die geschweiften bitte und dann gaaaanz ans Ende ein Semikolon. Und dann schauen wir mal.
Also dann so...nimmt er erstmal... test nachher:
Telefon:event:.ring
if ("Licht01" eq "off") {
{fhem("set Licht01 blink 2 3")}}
else
{
fhem"(set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
}
2017.03.04 16:59:25 3: FBDECT set Licht01 on
2017.03.04 16:59:40 3: TelefonLichtAn return value: Unknown command if, try help.
2017.03.04 16:59:43 3: FBDECT set Licht01 on
2017.03.04 16:59:46 3: FBDECT set Licht01 off
2017.03.04 16:59:49 2: After sleep: Unknown argument on"), choose one of off:noArg on:noArg toggle:noArg on-till off-for-timer off-till-overnight on-till-overnight off-till on-for-timer intervals blink
Unknown command
Jetzt hab ich wieder das im LogFile und Licht ist aus... oder die ";"hinter der Klammer?
Dann sind wir auch wieder beim großen IF ELSE oder? ohne die Klammer ist das ja nicht komplett Perl.
das ist zu viel für die erste Woche ::)
Telefon:event:.ring {
if ("Licht01" eq "off") {
fhem("set Licht01 blink 2 3");
} else {
fhem"(set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
}
}
Spontan seh ich 2 Probleme:
Hier
fhem"(set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
ist das erste " ausserhalb der Klammer - ganz schlecht.
Hier
if ("Licht01" eq "off") {
wird geprüft ob der String "Licht01" eq dem String "off" ist - was aber nie sein wird (also das der String Licht01 plötzlich off sein wird da Licht01 immr Licht01 ist).
Vermutlich wird das
if (Value("Licht01") eq "off") {
eher zutreffen -- der Inhalt der Variable Licht01 (genauer des Reading state von Device Licht01) wird geprüft ob er equal (gleich) off ist.
Danke Puschel. Das mit den " ausserhalb der Klammer habe ich gar nicht für voll genommen.
Vielen dank, na das hat ja selbst so noch nerven gekostet ::)
aber nun passt es. Vielen dank "Jungs" ;)
Hier nochmal das Ergebnis:
Telefon:event:.ring {
if (Value("Licht01") eq "off")
{ fhem("set Licht01 blink 2 3")
}
else
{
fhem("set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
}
}
Naja...also fast richtig. Jetzt klappt die if Bedingung passt für Licht01 noch nicht so wie sie im letzten Thread steht.
Jetzt gibts nur else Routine, egal ob an oder aus .
Gib mal bitte in FHEMWEB
list Licht01
ein und poste hier die Ausgabe in Code Tags
Ich hab es... das war eine Leertaste:
Telefon:event:.ring {
if ( Value("Licht01") eq "off")
{
fhem("set Licht01 blink 2 3")
}
else
{
fhem("set Licht01 off; sleep 3; set Licht01 on; sleep 3; set Licht01 off; sleep 3; set Licht01 on");
}
}
Die vor " value".
Jetzt passt die Abfrage. Vielen Dank...