Syntax: Mehrere FHEM-Befehle hintereinander

Begonnen von Damian, 14 November 2012, 10:44:18

Vorheriges Thema - Nächstes Thema

Damian

                                                       

Hallo zusammen,

ich wollte über ein Notify ein simples Ausführen von zwei FHEM-Befehlen
hintereinander schalten. Die Syntax:

*set Lampe on; set Rolladen off*

führt zu einer Fehlermeldung.

erst

*{FHEM("set Lampe on")};{FHEM("set Rolladen off")}*

führt zum Erfolg - recht umständlich in solch einem Fall, wie ich finde.

Gibt es evtl. noch eine Alternative für ein Einfaches ausführen mehrere
FHEM-Befehle, die ich evtl. übersehen habe?

Das Auslagern in ein Script halte ich in solchen einfachen Fällen nicht für
sinnvoll.

Oder anders gefragt: wäre eine Syntaxerweiterung, wie im obigen Beispiel
oder ähnlich nicht sinnvoll?

Gruß

Damian


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Puschel74

                                               

Hallo,

siehe Heimautomatisierung mit fhem.pdf
Es gibt mehrere Möglichkeiten.

a) structure
b) set lamp1 on*;;*set lamp2 on

Das doppelte Semikolon müsste in diesem Fall zum gewünschten Ergebnis
führen.

Müsste auch in der commandref so beschrieben sein - ich finde auf die
schnelle nur die Stelle nicht.

Grüße

Am Mittwoch, 14. November 2012 10:44:18 UTC+1 schrieb Damian:
>
> Hallo zusammen,
>
> ich wollte über ein Notify ein simples Ausführen von zwei FHEM-Befehlen
> hintereinander schalten. Die Syntax:
>
> *set Lampe on; set Rolladen off*
>
> führt zu einer Fehlermeldung.
>
> erst
>
> *{FHEM("set Lampe on")};{FHEM("set Rolladen off")}*
>
> führt zum Erfolg - recht umständlich in solch einem Fall, wie ich finde.
>
> Gibt es evtl. noch eine Alternative für ein Einfaches ausführen mehrere
> FHEM-Befehle, die ich evtl. übersehen habe?
>
> Das Auslagern in ein Script halte ich in solchen einfachen Fällen nicht
> für sinnvoll.
>
> Oder anders gefragt: wäre eine Syntaxerweiterung, wie im obigen Beispiel
> oder ähnlich nicht sinnvoll?
>
> Gruß
>
> Damian
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Guest

Originally posted by: <email address deleted>

Hallo Damian,
 
guckst Du: http://fhem.de/Heimautomatisierung-mit-fhem.pdf
 
dort steht auf Seite 24 als Beispiel: *define Schalter1NotifyAn notify
Schalter1:on set wz_Media on;;set wz_Licht off* bedeutet für Dich: *set
Lampe on;; set Rolladen off*
 
Sonder zeichen wie *@*, *;*, *%* müssen durch *@@*, *;;*, *%%* maskiert
werden.
Herzliche Grüße
 
Jörg

Am Mittwoch, 14. November 2012 10:44:18 UTC+1 schrieb Damian:

> Hallo zusammen,
>
> ich wollte über ein Notify ein simples Ausführen von zwei FHEM-Befehlen
> hintereinander schalten. Die Syntax:
>
> *set Lampe on; set Rolladen off*
>
> führt zu einer Fehlermeldung.
>
> erst
>
> *{FHEM("set Lampe on")};{FHEM("set Rolladen off")}*
>
> führt zum Erfolg - recht umständlich in solch einem Fall, wie ich finde.
>
> Gibt es evtl. noch eine Alternative für ein Einfaches ausführen mehrere
> FHEM-Befehle, die ich evtl. übersehen habe?
>
> Das Auslagern in ein Script halte ich in solchen einfachen Fällen nicht
> für sinnvoll.
>
> Oder anders gefragt: wäre eine Syntaxerweiterung, wie im obigen Beispiel
> oder ähnlich nicht sinnvoll?
>
> Gruß
>
> Damian
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Müsste auch in der commandref so beschrieben sein - ich finde auf die
> schnelle nur die Stelle nicht.

http://fhem.de/commandref.html#command

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Damian

                                                       

Danke für euch für die Tipps, jedoch

führt bei mir die Syntax

*set Schreibtisch off;;set R_Dachboden on*

zu folgender Fehlermeldung:

*no set value specified*

die obigen Befehle einzeln aufgeführt funktionieren dagegen.

Schreibtisch ist eine FS20-Steckdose, R_Dachboden ist bei mir ein
HM-Rollladen.

Ist hier was kaputt?

Mein FHEM läuft unter Windows mit ActivePerl.

Gruß

Damian





--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Puschel74

                                               

Hallo,

du kannst die Geräte aber einzeln mit set schalten?
Also mit
set Schreibtisch on
und
set R_Dachboden on
die Steckdose einschalten und den Rollladen hochfahren (oder runter)?

Grüße

Am Mittwoch, 14. November 2012 12:08:05 UTC+1 schrieb Damian:
>
> Danke für euch für die Tipps, jedoch
>
> führt bei mir die Syntax
>
> *set Schreibtisch off;;set R_Dachboden on*
>
> zu folgender Fehlermeldung:
>
> *no set value specified*
>
> die obigen Befehle einzeln aufgeführt funktionieren dagegen.
>
> Schreibtisch ist eine FS20-Steckdose, R_Dachboden ist bei mir ein
> HM-Rollladen.
>
> Ist hier was kaputt?
>
> Mein FHEM läuft unter Windows mit ActivePerl.
>
> Gruß
>
> Damian
>
>
>
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Damian

                                                       

Dass es kompliziert geht, habe ich bereits im ersten Post geschrieben, lt.
Verweis  von Rudi auf die Dokumentation:


   Multiple fhem commands are separated by semicolon (;). In order to use
   semicolon in perl code or shell programs, they have to be escaped by the
   double semicolon (;;). See the *Notes* section of the notify<http://fhem.de/commandref.html#notify> chapter
   on command parameters and escape rules.
   E.g. the following first command switches Lamp1 off at 07:00 and Lamp2
   immediately (at the point of definition), the second one switches both
   lamps off at 07:00.
   define lampoff at 07:00 set Lamp1 off; set Lamp2 off
      *define lampoff at 07:00 set Lamp1 off;; set Lamp2 off*
     
soll es aber auch einfacher gehen.

Gruß

Damian


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rudolfkoenig

                                                   

> soll es aber auch einfacher gehen.

Kannst Du mal das Ganze mit "attr global verbose 5" durchfuehren, und den
relevanten Abschnitt aus dem Logfile zeigen?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Puschel74

                                               

Hallo,

also klappt es mit meinem letzten Beispiel nicht?
Ich weiß zwar nicht was an

fhem ("set lamp1 on;;set lamp2 on");;\
kompliziert isein soll aber ok.

@Rudi
Geht das auch "einfacher" aus einem notify heraus?
Ich dachte mir immer ein notify spielt in Perl und fhem muss daher explizit
genannt werden.
Hmm, hab ich mich wohl getäuscht.

Evtl. wäre ein - hier ist mein notify, das klappt so nicht was mach ich
falsch, besser als ein
das geht nicht ich hab das in meinem notify drin.
Poste doch mal dein notify damit wir sehen was und wie abgefragt wird.

Grüße

Am Mittwoch, 14. November 2012 19:50:09 UTC+1 schrieb Damian:
>
> Dass es kompliziert geht, habe ich bereits im ersten Post geschrieben, lt.
> Verweis  von Rudi auf die Dokumentation:
>
>
>    Multiple fhem commands are separated by semicolon (;). In order to use
>    semicolon in perl code or shell programs, they have to be escaped by the
>    double semicolon (;;). See the *Notes* section of the notify<http://fhem.de/commandref.html#notify> chapter
>    on command parameters and escape rules.
>    E.g. the following first command switches Lamp1 off at 07:00 and Lamp2
>    immediately (at the point of definition), the second one switches both
>    lamps off at 07:00.
>    define lampoff at 07:00 set Lamp1 off; set Lamp2 off
>       *define lampoff at 07:00 set Lamp1 off;; set Lamp2 off*
>      
> soll es aber auch einfacher gehen.
>
> Gruß
>
> Damian
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Damian

                                                       

Am Mittwoch, 14. November 2012 19:59:00 UTC+1 schrieb Rudolf Koenig:
>
> > soll es aber auch einfacher gehen.
>
> Kannst Du mal das Ganze mit "attr global verbose 5" durchfuehren, und den
> relevanten Abschnitt aus dem Logfile zeigen?
>

2012.11.14 20:02:36 5: Cmd: >set Schreibtisch off;; set R_Dachboden on<
2012.11.14 20:02:36 4:
/fhem?room=Info&cmd=set+Schreibtisch+off%3B%3B+set+R_Dachboden+on / RL: 911
/ text/html; charset=UTF-8 / Content-Encoding: gzip

führt zu der oben genannten Fehlermeldung.
 

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rudolfkoenig

                                                   

> 2012.11.14 20:02:36 5: Cmd: >set Schreibtisch off;; set R_Dachboden on<

Das ist Quatsch, weil ;; sagt, bitte nicht trennen, sondern als _ein_ Befehl
betrachten. Das FS20 Modul kriegt fuer Schreibtisch das Befehl
"off; set R_Dachboden on", und liefert eine ziemlich beknackte Fehlermeldung.


> 2012.11.14 20:02:36 4:
> /fhem?room=Info&cmd=set+Schreibtisch+off%3B%3B+set+R_Dachboden+on / RL: 911
> / text/html; charset=UTF-8 / Content-Encoding: gzip

Das ist ein Bug: die FHEMWEB Kommandozeile hat immer nur ein Befehl
ausgefuehrt, nie Ketten, im Gegensatz zu der Telnet Schnittstelle.
Ich hab das geaendert, hoffentlich ohne Nebenwirkungen.  Ab morgen per
updatefhem.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Damian

                                                       

> 2012.11.14 20:02:36 4:

> > /fhem?room=Info&cmd=set+Schreibtisch+off%3B%3B+set+R_Dachboden+on / RL:
> 911
> > / text/html; charset=UTF-8 / Content-Encoding: gzip
>
> Das ist ein Bug: die FHEMWEB Kommandozeile hat immer nur ein Befehl
> ausgefuehrt, nie Ketten, im Gegensatz zu der Telnet Schnittstelle.
> Ich hab das geaendert, hoffentlich ohne Nebenwirkungen.  Ab morgen per
> updatefhem.
>
 
wird damit dann auch ein notify "richtig" funktionieren:

hier nochmal ein Beispiel

CFGFN
DEF
Drucker:on set Schreibtisch off;; set R_Dachboden on
NAME
N_test
NR
158
NTFY_ORDER
50-N_test
REGEXP
Drucker:on
STATE
active
TYPE
notify

im Log steht beim Auslösen von N_test:

2012.11.14 20:22:36 5: Triggering N_test
2012.11.14 20:22:36 5: Cmd: >set Schreibtisch off; set R_Dachboden on<
2012.11.14 20:22:36 3: N_test return value: no set value specified

Gruß

Damian
 

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rudolfkoenig

                                                   

> wird damit dann auch ein notify "richtig" funktionieren:

Hat damit nichts zu tun, das war auch vorher nur ein Befehl.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Puschel74

                                               

Hallo,

versuch es doch indem du ein
trigger Drucker on
absetzt.
Was passiert dann?

Grüße
 

Am Mittwoch, 14. November 2012 21:05:03 UTC+1 schrieb Damian:
>
>
> > 2012.11.14 20:02:36 4:
>
>> > /fhem?room=Info&cmd=set+Schreibtisch+off%3B%3B+set+R_Dachboden+on / RL:
>> 911
>> > / text/html; charset=UTF-8 / Content-Encoding: gzip
>>
>> Das ist ein Bug: die FHEMWEB Kommandozeile hat immer nur ein Befehl
>> ausgefuehrt, nie Ketten, im Gegensatz zu der Telnet Schnittstelle.
>> Ich hab das geaendert, hoffentlich ohne Nebenwirkungen.  Ab morgen per
>> updatefhem.
>>
>  
> wird damit dann auch ein notify "richtig" funktionieren:
>
> hier nochmal ein Beispiel
>
> CFGFN
> DEF
> Drucker:on set Schreibtisch off;; set R_Dachboden on
> NAME
> N_test
> NR
> 158
> NTFY_ORDER
> 50-N_test
> REGEXP
> Drucker:on
> STATE
> active
> TYPE
> notify
>
> im Log steht beim Auslösen von N_test:
>
> 2012.11.14 20:22:36 5: Triggering N_test
> 2012.11.14 20:22:36 5: Cmd: >set Schreibtisch off; set R_Dachboden on<
> 2012.11.14 20:22:36 3: N_test return value: no set value specified
>
> Gruß
>
> Damian
>  
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Damian

                                                       

Hat damit nichts zu tun, das war auch vorher nur ein Befehl. ?
>

Irgendwie reden wir an einander vorbei. Ich versuche es noch einmal:

Laut Doku soll funktionieren, Zitat:

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

Nun mache das Ganze nicht mit Notify, sondern mit einem at-Kommando,
genauso, wie in der Doku:
*
*
also:
*
*
*define A_test at 21:24 set Schreibtisch on;; set R_Dachboden on
*
*
*
im Log steht dann:
*
*
2012.11.14 21:24:00 5: exec at command A_test
2012.11.14 21:24:00 5: Cmd: >set Schreibtisch on; set R_Dachboden on<
2012.11.14 21:24:00 3: no set value specified

auch hier gleiches Verhalten wie bei Notify.

Daher meine Frage: ist die Doku falsch, mache ich etwas falsch oder ist es
ein Bug?

Gruß

Damian
*
*
*
*
*
*
*
*


 

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF