Da meine IT Steckdosenschalter nicht so zuverlässig schalten, wollte ich analog zu dem Wiki EIntrag http://www.fhemwiki.de/wiki/Zeitschaltuhr#L.C3.B6sungsansatz_1 eine fünfmalige Schaltung realisieren. Ich änderte also meine vorherigen Aufruf des AT Commandos
DEF: *23:00 set Wohnzimmer_Fenster off;;set Wohnzimmer_Dekolicht off
in DEF:
{
{ fhem("define wz_DekoFensterAusTimer at +*{5}00:01:00 set Wohnzimmer_Fenster off;;set Wohnzimmer_Dekolicht off") }
}
um. Jetzt bekomme ich leider aber ein
wz_DekoFensterAus: Unknown command {
{, try help.
Die Lösung ist doch sicher sehr einfach, aber ich komme nicht drauf. Ein ändern der Klammern in nur eine am Anfang, ein weglassen der {5} oder ein maskieren mit \{ von diesem half nichts.
Bitte Code-Tags verwenden (das # Zeichen).
Warum wechselst du erst in perl um dann einen fhem Befehl zu senden?
Ich weiß nicht wo dein Fehler liegt, aber einfacher wird es dadurch schon mal ;)
Wie igami schon sagt, ist es unnötig hier Perl zu verwenden. Es handelt sich ja um reine FHEM Befehle. Außerdem setzt du viel zu viele Klammern. Bitte ein wenig mit Perl beschäftigen.
Das hier im DEF, reicht:
define wz_DekoFensterAusTimer at +*{5}00:01:00 set Wohnzimmer_Fenster off;set Wohnzimmer_Dekolicht off
Oder
Zitatdefine wz_DekoFensterAusTimer at +*{5}00:01 set Wohnzimmer_Fenster,Wohnzimmer_Dekolicht off
um das allzeit verwirrende ; zu sparen.
Was vmtl. die Ursache des urspuenglichen Problems war
Danke für eure Erläuterungen. Eure Frage, wieso ich das so kompliziert mache, liegt daran, dass ich mich einfach an das Wiki Beispiel gehalten habe und es nur mit meinen Geräten und Zeiten geändert habe. Ist also das Wiki Beispiel auch viel zu kompliziert, oder gibt es dafür eine Erklärung, wieso das dort mit dem extra FHEM BLock so gemacht werden "muss"?
Zitat von: Cruiser79 am 10 Dezember 2016, 08:27:00
Ist also das Wiki Beispiel auch viel zu kompliziert, oder gibt es dafür eine Erklärung, wieso das dort mit dem extra FHEM BLock so gemacht werden "muss"?
Teilweise
define PumpeAbendsStart at *17:00:00 {
{ fhem("define PumpeAbends at +*{24}00:15:00 set Umwaelzpumpe on-for-timer 300") }
}
Ist zu kompliziert
define pumpe_wd78 at +*00:15 { fhem("set Umwaelzpumpe on-for-timer 300") if(!$we && $hour>=7 && $hour<9) }
nicht
Zitat von: igami am 10 Dezember 2016, 08:36:49
Teilweise
define PumpeAbendsStart at *17:00:00 {
{ fhem("define PumpeAbends at +*{24}00:15:00 set Umwaelzpumpe on-for-timer 300") }
}
Ist zu kompliziert
define pumpe_wd78 at +*00:15 { fhem("set Umwaelzpumpe on-for-timer 300") if(!$we && $hour>=7 && $hour<9) }
nicht
Und wenn ich eure Bemerkung der zu vielen Klammern auch richtig sehe, müsste es beim ersten Beispiel ja auch nur wie folgt aussehen
define PumpeAbendsStart at *17:00:00 {fhem("define PumpeAbends at +*{24}00:15:00 set Umwaelzpumpe on-for-timer 300") }
Aber eben auch unsinnig, weil ich mit {} Perl Code ausführe, um in diesem mit fhem() wieder ein FHEM Kommando abzusetzen. So korrekt interpretiert?
Korrekt
Zitat von: rudolfkoenig am 10 Dezember 2016, 07:14:49
Oderum das allzeit verwirrende ; zu sparen.
Was vmtl. die Ursache des urspuenglichen Problems war
Wenn ich die Semikolons durch ein Komma ersetze
*08:13:10 define wz_DekoFensterAusTimer at +*{5}00:01 set Wohnzimmer_Fenster,Wohnzimmer_Dekolicht off
bekomme ich nur ein
2016.12.10 23:01:00 3: wz_DekoFensterAusTimer: Unknown argument off
, choose one of off:noArg on:noArg on-for-timer on-till off-for-timer on-till-overnight blink toggle off-till-overnight intervals off-till
Unknown argument off
, choose one of off:noArg on:noArg on-for-timer on-till off-for-timer on-till-overnight blink toggle off-till-overnight intervals off-till
In dem angelegtem Kommando wz_DekoFensterAusTime steht dann nur
+*{5}00:01 set Wohnzimmer_Fenster
Wenn ich hingegen das AT Kommando wie folgt definiere, geht es
*08:13:10 define wz_DekoFensterAusTimer at +*{5}00:01 set Wohnzimmer_Fenster off;;set Wohnzimmer_Dekolicht off
Kann mir das nochmal wer erklären?
Habs versucht nachzustellen. Mit
define mat at *13:41 define wz_DekoFensterAusTimer at +*{5}00:01 set Wohnzimmer_Fenster,Wohnzimmer_Dekolicht off
und zwei dummies (Wohnzimmer_Fenster,Wohnzimmer_Dekolicht)
sehe ich aber keine Fehler.
Zitat von: rudolfkoenig am 11 Dezember 2016, 13:46:42
Habs versucht nachzustellen. Mit
define mat at *13:41 define wz_DekoFensterAusTimer at +*{5}00:01 set Wohnzimmer_Fenster,Wohnzimmer_Dekolicht off
und zwei dummies (Wohnzimmer_Fenster,Wohnzimmer_Dekolicht)
sehe ich aber keine Fehler.
Mh, komisch, ich lasse es jetzt einfach mit den zwei Semikolons. Auch wenns nicht optimal ist, funktioniert es doch wenigstens bei mir ;)