Störrisches AT - Command Direkteingabe funktioniert - at nicht [gelöst]

Begonnen von docb, 28 Januar 2017, 09:31:17

Vorheriges Thema - Nächstes Thema

docb

Guten Morgen! Ich ärgere mich seit geschlagenen 2 Stunden mit einem AT rum und finde meinen Fehler nicht. Wenn ich das Command direkt absetze funktioniert es:


{ if (!($we) && (Value("dyJahreszeit") eq "Winter")) { fhem("set BA_Fussbodenheizung An");; } }


Aber wenn ich das AT auslöse bekomme ich immer den Fehler:
FuBoHeizung_an: Unknown command {, try help.

Was mache ich denn nur falsch?
Hier mal ein List des at:

Internals:
   COMMAND    { if (!($we) && (Value("dyJahreszeit") eq "Winter"))
  {
   fhem("set BA_Fussbodenheizung An");;
  }
}



   DEF        *04:30:00 { if (!($we) && (Value("dyJahreszeit") eq "Winter"))
  {
   fhem("set BA_Fussbodenheizung An");;
  }
}



   NAME       FuBoHeizung_an
   NR         1120
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 04:30:00
   TIMESPEC   04:30:00
   TRIGGERTIME 1485660600
   TRIGGERTIME_FMT 2017-01-29 04:30:00
   TYPE       at
   Readings:
     2017-01-28 12:00:46   state           Next: 04:30:00
Attributes:
   group      Heizung
   icon       sani_floor_heating
   room       Z_Automatisierung


Danke für jeden Hinweis, mein Hirn ist am Ende ;-)
Viele Grüße
doc
I love FHEM!

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

docb

Hmpf. Ich habe ja auch noch dazu ein altes Command reinkopiert. Heute ist wohl nicht mein Tag. Jetzt passen oben command und at - also so stehts bei mir drin - aber es funktioniert nur das command, beim at bleibt der Fehler bestehen.
Viele Grüße
I love FHEM!

Otto123

#3
Moin,

versuch mal so. Ungetestet und von einem PerlFastNichtsWissenden  :-X
{ if (!($we) && (Value("dyJahreszeit") eq "Winter")) fhem "set BA_Fussbodenheizung An"; }

Du bist schon auf Perl Ebene. Da braucht es die zweite Klammer nicht, sagt ja die Fehlermeldung.
Und in der DEF braucht man nur ein Semikolon, nur im define müssen es zwei sein.

Steht übrigens alles hier -> https://fhem.de/commandref_DE.html#command
Wobei man auch die Hinweise auf die Kommandozeile und den notify Abschnitt genau lesen muss.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

docb

Moin, ja das ist auch mein Problem - ich mache eher try and error mit Perl, aber in der Regel klappt es...
Deine Idee
*04:30:00 { if (!($we) && (Value("dyJahreszeit") eq "Winter")){ if (!($we) && (Value("dyJahreszeit") eq "Winter")) fhem "set BA_Fussbodenheizung An"; }
gibt folgende etwas komische Meldung:

, try help.


Unknown command }
I love FHEM!

Otto123

#5
Zitat von: docb am 28 Januar 2017, 12:22:05
Moin, ja das ist auch mein Problem - ich mache eher try and error mit Perl, aber in der Regel klappt es...
Deine Idee
*04:30:00 { if (!($we) && (Value("dyJahreszeit") eq "Winter")){ if (!($we) && (Value("dyJahreszeit") eq "Winter")) fhem "set BA_Fussbodenheizung An"; }
gibt folgende etwas komische Meldung:

, try help.


Unknown command }

Das war nicht mein Vorschlag  :-[
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

#6
Du kannst auch nachgestelltes if versuchen:
{ fhem "set BA_Fussbodenheizung An" if(!$we && Value("dyJahreszeit") eq "Winter")}

Siehe Perl Specials Abschnitt in der commandref.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

#7
Was ist denn da so schwer?



*04:30:00 { if (!$we && Value("dyJahreszeit") eq "Winter") { fhem( "set BA_Fussbodenheizung An" ) } }

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

#8
Bei den Klammern um den logischen Vergleich war ich mir noch unsicher. Aber da hat betateilchen natürlich mehr Erfahrung :)
Ich war noch am lesen -> https://wiki.selfhtml.org/wiki/Perl/Operatoren#Operatorenrangfolge

Und es wird ein paar Varianten geben die funktionieren werden. 8)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

docb

Tja, was da so schwer ist, weiß ich auch nicht  ??? Es will einfach nicht - auch nicht mit deinem Code Beta, der liefert:

2017.01.28 12:58:50 3: FuBoHeizung_an: Unknown command {, try help.

Ich werde noch wahnsinnig...
I love FHEM!

Otto123

Davon FuBoHeizung_an war noch nie die Rede?

Ich glaube Du hast ein Problem mit copy & paste?
Mach bitte ein list von Deinem at.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

docb

Ich glaube auch langsam nicht mehr, dass es am Code liegt, sondern dass da was anderes hakt... (und wenn es mein Hirn ist)...
Hier der List:

Internals:
   COMMAND    { if (!$we && Value("dyJahreszeit") eq "Winter") { fhem( "set BA_Fussbodenheizung An" ) } }



   DEF        *04:30:00 { if (!$we && Value("dyJahreszeit") eq "Winter") { fhem( "set BA_Fussbodenheizung An" ) } }



   NAME       FuBoHeizung_an
   NR         1120
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 04:30:00
   TIMESPEC   04:30:00
   TRIGGERTIME 1485660600
   TRIGGERTIME_FMT 2017-01-29 04:30:00
   TYPE       at
   Readings:
     2017-01-28 13:00:49   state           Next: 04:30:00
Attributes:
   group      Heizung
   icon       sani_floor_heating
   room       Z_Automatisierung
I love FHEM!

docb

und ich rufe das at mit atexec FuBuHeizung_an auf (habe ich aus der Wiki - https://wiki.fhem.de/wiki/Cmdalias):

Internals:
   ALIAS      atexec
   DEF        atexec .* AS { if($defs{$EVENT}) { if($defs{$EVENT}->{TYPE} eq "at") { at_Exec($defs{$EVENT}); 0; } else { return "$EVENT is not of TYPE at!"; }} else { return "Device $EVENT does not exist!"; }}
   NAME       c_atexec
   NEWCMD     { if($defs{$EVENT}) { if($defs{$EVENT}->{TYPE} eq "at") { at_Exec($defs{$EVENT}); 0; } else { return "$EVENT is not of TYPE at!"; }} else { return "Device $EVENT does not exist!"; }}
   NR         1147
   PARAM      .*
   STATE      defined
   TYPE       cmdalias
Attributes:
   alias      atexec at-device-name
   group      Commands
   icon       edit_settings
   room       Z_System
I love FHEM!

Otto123

Kannst Du im at bitte die ganzen Leerzeilen am Ende der DEF entfernen.

Sollte eigentlich egal sein, aber man weiß ja nie.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

docb

 :D :D :D
YES - du bist mein Held des Tages! Daran lag es tatsächlich.... 
HERZLICHEN DANK!!!!
I love FHEM!