FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Smallfeuer am 04 März 2017, 11:24:05

Titel: sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 04 März 2017, 11:24:05
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 !!!
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: DeeSPe am 04 März 2017, 11:28:10
Du musst die Befehle hintereinander in einen fhem Aufruf schreiben!

Gruß
Dan

EDIT: Auch ein paar {} zu viel.
Titel: Antw:sleep - bin am verzweifeln
Beitrag 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");
  }
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: DeeSPe am 04 März 2017, 11:37:13
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)
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: CoolTux am 04 März 2017, 11:41:08
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
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: DeeSPe am 04 März 2017, 11:42:33
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
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 04 März 2017, 15:52:28
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?
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: CoolTux am 04 März 2017, 16:09:48
Gib mal die komplette Funktion noch mal.
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 04 März 2017, 16:12:31
   
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.
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: CoolTux am 04 März 2017, 16:22:18
Schau dir mal deine fhem Zeile an und meine aus der else Bedingung. Und dann passt Du an.

Ähm also Deins anpassen.
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 04 März 2017, 16:40:33
Also ich seh da nix. Hab die grad da rein kopiert. Oder suche ich nach ner leertaste???
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: CoolTux am 04 März 2017, 16:44:22
Vorne Klammer weg hinten Klammer weg. Die geschweiften bitte und dann gaaaanz ans Ende ein Semikolon. Und dann schauen wir mal.
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 04 März 2017, 16:59:15
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");
  }


Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 04 März 2017, 17:02:19
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?
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 04 März 2017, 17:03:54
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  ::)
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: CoolTux am 04 März 2017, 17:06:38

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");
  }
}
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Puschel74 am 04 März 2017, 17:59:06
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.
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: CoolTux am 04 März 2017, 18:05:24
Danke Puschel. Das mit den " ausserhalb der Klammer habe ich gar nicht für voll genommen.
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 05 März 2017, 19:13:43
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");
  }
}
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 05 März 2017, 19:26:35
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 .
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: CoolTux am 05 März 2017, 19:37:23
Gib mal bitte in FHEMWEB
list Licht01
ein und poste hier die Ausgabe in Code Tags
Titel: Antw:sleep - bin am verzweifeln
Beitrag von: Smallfeuer am 05 März 2017, 19:39:45
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...