Autor Thema: Syntax bei mehrfachen Schaltvorgängen  (Gelesen 279 mal)

Offline stefan7

  • New Member
  • *
  • Beiträge: 22
Syntax bei mehrfachen Schaltvorgängen
« am: 25 April 2018, 07:03:47 »
Guten Morgen,
ich bin gerade dabei, meine ersten at-Events zu bauen und habe Probleme, mehrere Schaltvorgänge in einem Rutsch durchzuführen.
Wenn ich folgendes als Define über Webfrontend eingebe, kommt beim Speichern zumindest keine Fehlermeldung:
define a2 at  *{sunrise("HORIZON=-2.0",0,"06:00:00","07:40:00")} { fhem("set KNX_0003122 off ; set KNX_0002078 off ; set KNX_0500015 off ; set KNX_0500008 off") if(!$we) }In der Config wurde dann automatisch eine Verdopplung der Semikolons daraus:
define a2 at *{sunrise("HORIZON=-2.0",0,"06:00:00","07:40:00")} { fhem("set  KNX_0003122 off ;; set KNX_0002078 off ;; set KNX_0500015 off ;; set KNX_0500008 off") if(!$we) }
Problem: Zum definierten Zeitpunkt wird nur der erste Schaltvorgang ausgelöst, also "set KNX_0003122 off". Die anderen drei Scaltvorgänge werden nicht ausgeführt.

Ich habe mit den Semikolons und der Syntax schon einiges herumprobiert, bin aber noch nicht auf  den Trichter gekommen. Ein konkretes Beispiel in der Commandref habe ich auch nicht gefunden.

Wie werden alle vie Schaltvorgänge gleichzeitig ausgeführt?

Danke

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1864
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #1 am: 25 April 2018, 07:23:55 »
{ fhem("set KNX_0003122, KNX_0002078, KNX_0500015, KNX_0500008 off") if(!$we) }
Maintainer der Module: MPD, UbiquitiMP, UbiquitiOut, SIP

Offline stefan7

  • New Member
  • *
  • Beiträge: 22
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #2 am: 25 April 2018, 21:45:54 »
danke, hat geklappt  :)

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9164
    • Otto's Technik Blog
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #3 am: 25 April 2018, 23:13:07 »
Ich habe mit den Semikolons und der Syntax schon einiges herumprobiert, bin aber noch nicht auf  den Trichter gekommen. Ein konkretes Beispiel in der Commandref habe ich auch nicht gefunden.
Hi,

zur Vollständigkeit noch die Stelle zum lesen  ;)
Zitat
Mehrere FHEM-Kommandos hintereinander werden mittels Semikolon (;) getrennt. Weil Semikola auch in PERL-Code oder SHELL-Programmen benutzt werden, müssen sie mittels doppelten Semikola geschützt werden. Lesen Sie sich bitte die Bermerkungen des notify-Abschnittes zu Kommandoparametern und Regeln durch.
Z.B. schaltet die erste der folgenden Befehlszeilen die Lampe 1 nur/erst zur Uhrzeit 07:00 Uhr aus, die Lampe 2 aber sofort und die zweite Befehlszeile schaltet Lampe 1 und 2 um 7:00 Uhr gleichzeitig aus.

define lampoff at 07:00 set Lamp1 off; set Lamp2 off
define lampoff at 07:00 set Lamp1 off;; set Lamp2 off

Für jede weitere Indirektion muss man die Strichpunkte verdoppeln. Um also die beiden Lampen um 7:00 für 10 Minuten einzuschalten schreibt man:
define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
Keine Angst, das Vorherige kann in FHEM auch deutlich einfacher formuliert werden als:
define onAt at 07:00 set Lamp1,Lamp2 on-for-timer 600

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline stefan7

  • New Member
  • *
  • Beiträge: 22
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #4 am: 26 April 2018, 06:47:17 »
Die Stelle kannte ich schon. Wieso allerdings im einen Fall Semikolons und im anderen Fall Kommata zu verwenden sind, steht da nicht.

Offline stefan7

  • New Member
  • *
  • Beiträge: 22
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #5 am: 26 April 2018, 06:52:07 »
Das passt doch noch nicht ganz.
Wenn ich folgendes direkt auf der Commandline eingebe
set KNX_0003122, KNX_0002078, KNX_0500015, KNX_0500008 offerhalte ich folgende Fehlermeldung
Unknown argument knx_0002078,, choose one of on-for-timer string rgb raw off value on on-until on-till-overnight on-till off-till-overnight off-for-timer blink intervals off-till toggle
hier noch die definition (die anderen sind imho gleich definiert)
defmod KNX_0002078 KNX 0/2/78:dpt1.008
attr KNX_0002078 IODev knxd
attr KNX_0002078 alias Alle Rolladen EG auf/ab;; Rolladen_EG
attr KNX_0002078 room Rolladen

setstate KNX_0002078 up
setstate KNX_0002078 2018-04-25 20:38:26 getG1 down
setstate KNX_0002078 2018-04-25 20:38:26 last-sender 1/1/221
setstate KNX_0002078 2018-04-26 06:06:41 setG1 up
setstate KNX_0002078 2018-04-26 06:06:41 state up
« Letzte Änderung: 26 April 2018, 06:54:45 von stefan7 »

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1864
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #6 am: 26 April 2018, 07:23:01 »
sorry mein Fehler, natürlich ohne Leerzeichen :(
set KNX_0003122,KNX_0002078,KNX_0500015,KNX_0500008 offleg mal drei Dummys an : dummy1 dummy2 & dummy3
set dummy1,dummy2,dummy3 on setzt alle drei auf on , aber set dummy1, dummy2, dummy3 on hat ein anderes Ergebniss.
Maintainer der Module: MPD, UbiquitiMP, UbiquitiOut, SIP

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9164
    • Otto's Technik Blog
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #7 am: 26 April 2018, 09:32:14 »
Die Stelle kannte ich schon. Wieso allerdings im einen Fall Semikolons und im anderen Fall Kommata zu verwenden sind, steht da nicht.
Weil das eine Äpfel und das andere Birnen sind, da begründet Dir doch auch keiner die Form  :o ;D
Befehle werden mit Semikolon getrennt.
Befehl1;Befehl2;Befehl3Geräte werden mit Komma getrennt
set Device1,Device2,Device3 on
Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline stefan7

  • New Member
  • *
  • Beiträge: 22
Antw:Syntax bei mehrfachen Schaltvorgängen
« Antwort #8 am: 26 April 2018, 20:27:25 »
Danke, jetzt wird's langsam logisch :-)

 

decade-submarginal