FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Octopus am 06 Januar 2014, 22:51:11

Titel: [gelöst] Unknown command {, try help.
Beitrag von: Octopus am 06 Januar 2014, 22:51:11
Hallo,

ich weiß, dass die Frage nach dem im Betreff genannten Fehler oft gestellt wurde. Ich meine, alle Threads gelesen zu haben - den Fehler finde ich aber trotzdem nicht.

Ich habe folgendes Notify definiert:

define n_act_on_alarm_check_aktiv notify ALARM_check:aktiv define warte30sec at +00:00:30 {  if (Value("ALARM_STATUS") eq "on") { fhem ("set S_Tuer_LED_innen on-for-timer 10 ;; set ALARM_check inaktiv") } }

Ich kann hier keinen Fehler erkennen, bekomme aber im Log:

warte30sec: Unknown command {, try help.

und im Event Monitor:

dummy ALARM_check inaktiv") } }

Versucht habe ich schon, den Einzeiler komplett neu von Hand in der Weboberfläche von FHEM zu schreiben, alle Leerzeichen entfernt und erneuert, darauf geachtet, dass am Ende kein Leerzeichen steht, die Klammern neu geschrieben, das ganze im DEF kontrolliert  etc. Den Fehler werde ich aber nicht los.

Erstaunlicherweise habe ich im selben Config-File weiter oben ein ähnliches Konstrukt, was einwandfrei funktioniert:

define ANLAGE_EIN_intern notify S_Tuer_aufgeschlossen:open define warte2sec_i at +00:00:02 { if (Value("S_Tuer_abgeschlossen") eq "open" && Value("ANLAGE_STATUS") eq "unscharf") { fhem("set ANLAGE_SCHARF_intern on") } }

Kann mich hier jemand auf die richtige Spur setzen?

Gruß
Octopus
Titel: Antw:Unknown command {, try help.
Beitrag von: BeamterAD am 07 Januar 2014, 00:44:33
Was bezweckst du mit dem 2. define warte30sec?
Titel: Antw:Unknown command {, try help.
Beitrag von: Octopus am 07 Januar 2014, 08:09:00
Genau das, was "warte30sec" sagt: warte 30 Sekunden, ehe die Prüfung ausgeführt wird. Das ist der zweite Teil einer zweiteiligen Prüfung beim Alarmauslosen, um Fehlalarme noch abfangen zu können, ehe die externe Sirene los geht. "S_Tuer_LED_innen" habe ich nur genommen, damit meine Nachbarn nicht genervt werden :-)

Hat mit meinem Problem aber nichts zu tun...
Titel: Antw:Unknown command {, try help.
Beitrag von: Octopus am 07 Januar 2014, 10:16:35
Ichhabe jetzt mal weiter probiert, es funktioniert nur dann, wenn in der letzten fhem Anweisung

{ fhem ("set S_Tuer_LED_innen on-for-timer 10 ;; set ALARM_check inaktiv") }

nur ein Befehl drin steht, also z.B.

{ fhem ("set ALARM_check inaktiv") }

Sobald mehrere Befehle dort drin stehen oder ich eine zweite fhem-Anweisung einbaue, wie

{ fhem ("set S_Tuer_LED_innen on-for-timer 10");; fhem("set ALARM_check inaktiv") }

bekomme ich den bekannten Fehler.

Hat jemand eine Idee dazu? Ich könnte mir natürlich mit einem weiteren Notify helfen, aber das erklärt das seltsame Verhalten nicht...
Titel: Antw:Unknown command {, try help.
Beitrag von: Puschel74 am 07 Januar 2014, 10:25:17
Hallo,

die 9 Seiten a 30 Beiträge in den Suchergebnissen hast du dir durchgeschaut?

Aber da ich keine Einzeiler beherrsche kann ich dir da leider nicht weiterhelfen.
Mit meiner "längeren" Schreibweise funktionieren alle Befehle einwandfrei.

Grüße
Titel: Antw:Unknown command {, try help.
Beitrag von: Octopus am 07 Januar 2014, 11:06:16
Ich würde nicht beschwören, alle Beiträge gelesen zu haben - gefühlt schon.

Wie sieht denn Deine längere Schreibweise an einem kurzem Beispiel aus?

Sowas wie


{ fhem ("set S_Tuer_LED_innen on-for-timer 10") } \
{ fhem("set ALARM_check inaktiv") }


?
Titel: Antw:Unknown command {, try help.
Beitrag von: Puschel74 am 07 Januar 2014, 11:11:32
Hallo,

{ fhem ("set S_Tuer_LED_innen on-for-timer 10");
fhem("set ALARM_check inaktiv");
}


Achtung! Da ich ausschliesslich und nur die DEF bearbeite kümmere ich mich um keine Zeillenabschlüsse etc.

Grüße
Titel: Antw:Unknown command {, try help.
Beitrag von: Octopus am 09 Januar 2014, 21:17:23
Nach langem herumprobieren hab ich für mich die Lösung gefunden:

define n_act_on_alarm_check_aktiv notify ALARM_check:aktiv define warte30sec at +00:00:30 {  if (Value("ALARM_STATUS") eq "on") { fhem ("set S_Tuer_LED_innen on-for-timer 10 ;;;; set ALARM_check inaktiv");;;; } }

Damit funktioniert es bei mir...