FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Cruiser79 am 09 Dezember 2016, 23:30:15

Titel: [gelöst] Unknown command bei at
Beitrag von: Cruiser79 am 09 Dezember 2016, 23:30:15
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.
Titel: Antw:Unknown command bei at
Beitrag von: igami am 10 Dezember 2016, 06:41:30
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 ;)
Titel: Antw:Unknown command bei at
Beitrag von: marvin78 am 10 Dezember 2016, 06:44:25
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
Titel: Antw:Unknown command bei at
Beitrag von: rudolfkoenig am 10 Dezember 2016, 07:14:49
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
Titel: Antw:Unknown command bei at
Beitrag von: Cruiser79 am 10 Dezember 2016, 08:27:00
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"?
Titel: Antw:Unknown command bei at
Beitrag von: igami am 10 Dezember 2016, 08:36:49
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
Titel: Antw:Unknown command bei at
Beitrag von: Cruiser79 am 10 Dezember 2016, 14:19:50
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?
Titel: Antw:Unknown command bei at
Beitrag von: igami am 10 Dezember 2016, 14:27:15
Korrekt
Titel: Antw:Unknown command bei at
Beitrag von: Cruiser79 am 11 Dezember 2016, 08:18:01
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?


Titel: Antw:Unknown command bei at
Beitrag 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.
Titel: Antw:Unknown command bei at
Beitrag von: Cruiser79 am 11 Dezember 2016, 20:52:11
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  ;)