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
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
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
> 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
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
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
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 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
> 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
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 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
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
> 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
> 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
> 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
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
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
Scheinbar ist die Doku falsch.
Wenn Du hier bestätigst, dass es funzt, wenn Du nur ein Semikolon setzt,
> korrigiere ich die Doku gern.
>
Hiermit kann ich bestätigen:
Ein Notify oder At-Befehl funktioniert mit einem Semikolon wie erwartet:)
Daher sind die fett markierten Stellen falsch. Denn es wird mit einem
Semikolon auch nichts unmittelbar geschaltet, sondern geht in die
Definition des at-Kommandos ein.
*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*
Mit anderen Worten ist das Einzige, was hier Sinn macht:
define lampoff at 07:00 set Lamp1 off; set Lamp2 off
hiermit werden um 07:00 Uhr beide Lampen geschaltet.
Gruß
Damian
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
> Mit anderen Worten ist das Einzige, was hier Sinn macht:
> define lampoff at 07:00 set Lamp1 off; set Lamp2 off
Das stimmte so bis gestern, wenn man diesen Befehl in der FHEMWEB Kommandozeile
eingegeben hat. Im telnet und ab heute nach einem Update in FHEMWEB muss das
dokumentierte ;; verwendet werden. Im FHEMWEB editiere ich sowas im
Detail-Ansicht, deswegen ist das mir noch nie aufgefallen.
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
> Das stimmte so bis gestern, wenn man diesen Befehl in der FHEMWEB
> Kommandozeile
> eingegeben hat. Im telnet und ab heute nach einem Update in FHEMWEB muss
> das
> dokumentierte ;; verwendet werden. Im FHEMWEB editiere ich sowas im
> Detail-Ansicht, deswegen ist das mir noch nie aufgefallen.
>
Dann bin ich ja beruhigt, dass ich doch nicht auf den Kopf gefallen bin und
meine Frage von oben:
'wird damit dann auch ein notify "richtig" funktionieren?'
durchaus berechtigt war und jetzt mit "ja" zu beantworten ist.
Gut, dass wir darüber gesprochen haben und die Welt (hier zumindest die
Dokumentation und die Software) wieder in Ordnung ist;)
Gruß
Damian
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
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)?
ja, wie bereits oben geschrieben kann ich:
*set Schreibtisch off *
schalten
sowie
*set R_Dachboden on*
Allerdings funktioniert das Hintereinanderschalten der Kommandos nicht.
Alle folgenden Beispiele funktionieren nicht:
*set Schreibtisch off;;set R_Dachboden on
*
*
*
*set Schreibtisch off ;;set R_Dachboden on
*
*
*
*set Schreibtisch off;; set R_Dachboden on
*
*
*
*set Schreibtisch off ;; set R_Dachboden on
*
Das Gleiche mit einem Semikolon funktioniert genauso wenig.
Bei allen Versuchen kommt die oben genannte Meldung:
*no set value specified*
*
*
*fhem.pl* ist vom 31.10.2012
Hat sich da etwa ein Fehler eingeschlichen?
Kann das Jemand verifizieren?
Gruß
Damian
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Hallo,
ich hab bei mir für den Bewegungsmelder ein
set EG_Eingang_Licht_innen on-for-timer 30; sleep 1; set EG_Vorraum_Licht on-for-timer 48
im Einsatz (ACHTUNG!!! Aus der DEF für das notify entnommen daher nur einfache Semikolon.
Mit Notepad++ sieht das ganze so aus
define zuhause_on notify EG_Eingang_Bewegungsmelder:on.* { \
my $now=sprintf("%%02d:%%02d",$hour,$min);;\
if(sunrise_abs(3600) gt $now || $now gt sunset_abs(-3600)) {\
fhem ("set EG_Eingang_Licht_innen on-for-timer 30;; sleep 1;; set EG_Vorraum_Licht on-for-timer 48");;\
}\
}
attr zuhause_on room 20_Erdgeschoss
Ich hab auch grad versucht in fhem
set EG_Eingang_Licht_innen on-for-timer 30;; sleep 1;; set EG_Vorraum_Licht on-for-timer 48
abzusetzen und bekomme auch ein
no set value spezified
Wenn du das ganze natürlich über ein notify machen willst musst du auch
fhem ("set EG_Eingang_Licht_innen on-for-timer 30;; sleep 1;; set EG_Vorraum_Licht on-for-timer 48");;\
schreiben, oder bei dir
fhem ("set Schreibtisch on;; set R_Dachboden on");;\
wenn du das über notepad++ eingibst oder im DEF direkt dann
fhem ("set Schreibtisch on;; set R_Dachboden on");
Damit sollte es auch bei dir klappen.
Grüße
Am Mittwoch, 14. November 2012 18:42:58 UTC+1 schrieb Damian:
>
> 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)?
>
>
> ja, wie bereits oben geschrieben kann ich:
>
> *set Schreibtisch off *
>
> schalten
>
> sowie
>
> *set R_Dachboden on*
>
> Allerdings funktioniert das Hintereinanderschalten der Kommandos nicht.
>
> Alle folgenden Beispiele funktionieren nicht:
>
> *set Schreibtisch off;;set R_Dachboden on
> *
> *
> *
> *set Schreibtisch off ;;set R_Dachboden on
> *
> *
> *
> *set Schreibtisch off;; set R_Dachboden on
> *
> *
> *
> *set Schreibtisch off ;; set R_Dachboden on
> *
>
> Das Gleiche mit einem Semikolon funktioniert genauso wenig.
>
> Bei allen Versuchen kommt die oben genannte Meldung:
>
> *no set value specified*
> *
> *
> *fhem.pl* ist vom 31.10.2012
>
> Hat sich da etwa ein Fehler eingeschlichen?
>
> Kann das Jemand verifizieren?
>
> Gruß
>
> Damian
>
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com