FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: docb am 28 Januar 2017, 09:31:17

Titel: Störrisches AT - Command Direkteingabe funktioniert - at nicht [gelöst]
Beitrag von: docb am 28 Januar 2017, 09:31:17
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
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: betateilchen am 28 Januar 2017, 11:37:30
zuviele Klammern wo keine hingehören.
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: docb am 28 Januar 2017, 12:03:48
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
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: Otto123 am 28 Januar 2017, 12:13:56
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
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag 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 }
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: Otto123 am 28 Januar 2017, 12:24:36
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  :-[
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: Otto123 am 28 Januar 2017, 12:29:14
Du kannst auch nachgestelltes if versuchen:
{ fhem "set BA_Fussbodenheizung An" if(!$we && Value("dyJahreszeit") eq "Winter")}

Siehe Perl Specials Abschnitt  (https://fhem.de/commandref_DE.html#perl)in der commandref.

Gruß Otto
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: betateilchen am 28 Januar 2017, 12:41:32
Was ist denn da so schwer?



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

Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: Otto123 am 28 Januar 2017, 12:47:18
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)
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: docb am 28 Januar 2017, 13:01:12
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...
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: Otto123 am 28 Januar 2017, 13:04:14
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
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: docb am 28 Januar 2017, 13:08:09
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
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: docb am 28 Januar 2017, 13:10:14
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
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: Otto123 am 28 Januar 2017, 13:15:44
Kannst Du im at bitte die ganzen Leerzeilen am Ende der DEF entfernen.

Sollte eigentlich egal sein, aber man weiß ja nie.
Titel: Antw:Störrisches AT - Command Direkteingabe funktioniert - at nicht
Beitrag von: docb am 28 Januar 2017, 13:18:54
 :D :D :D
YES - du bist mein Held des Tages! Daran lag es tatsächlich.... 
HERZLICHEN DANK!!!!