Hallo zusammen,
ich wollte folgendes at definieren:
define PCA301_Reset_at at *00:00:01 { sysResetPCA301(); }
Bekomme aber folgenden Fehler:
Missing right curly or square bracket at (eval 4703273) line 1, at end of line
syntax error at (eval 4703273) line 1, at EOF
Unknown command }, try help.
Wo liegt mein Fehler?
Ich sehe da nichts.
Gruß
Ralf
Hi,
das Semikolon ist an der Stelle unnütz. Ich würde es weglassen.
Wenn Du es wirklich haben willst musst Du zwei daraus machen. So interpretiert der Parser das einzelne Semikolon als Befehlstrenner
Warum das so ist?
ZitatMehrere FHEM-Kommandos hintereinander werden mittels Semikolon (;) getrennt. Weil Semikola auch in perl-Code oder Shell-Programmen benutzt werden, müssen sie mittels doppelten Semikola geschützt werden. Lesen Sie sich bitte die Bemerkungen des notify-Abschnittes zu Kommandoparametern und Regeln durch.
https://fhem.de/commandref_modular_DE.html#perl
https://fhem.de/commandref_DE.html#command
Gruß Otto
Hallo Otto,
vielen Dank für deine Antwort!
Mit :define PCA301_Reset_at at *00:00:01 { sysResetPCA301() }
hat es geklappt!
Und Danke für die weiteren Informationen.
Gruß
Ralf
Ich versuchs doch mal hier, trotz das es schon als gelöst markiert ist.
Ich habe das gleiche Problem aber eben mit zwei Semikolon
define Slider_notify notify Slider {\fhem "set an_315 ".ReadingsVal("Slider","state","0");;\}
Die Fehlermeldung dazu
Slider_notify return value: syntax error at (eval 1950) line 1, at EOF
Wo liegt hier der Fehler
Ich habe mich an das Beispiel im Fhem WiKi (https://wiki.fhem.de/wiki/S7) gehalten
Da sieht es auch so aus
define Temperaturkorrektur_315_Knob_notify notify Temperaturkorrektur_315_Knob {\
fhem "set Temperaturkorrektur_315 ".ReadingsVal("Temperaturkorrektur_315_Knob","state","0");;\
}
Gruß
Eckhard
Hallo Eckhard,
ich würde es so machen:
define Slider_notify notify Slider {fhem "set an_315 ".ReadingsVal("Slider","state","0")}
oder so:
define Slider_notify notify Slider set an_315 [Slider:state]
Die Zeichen \ wirken bei Dir wie escape Zeichen, stehen im Original aber anstelle Zeilenfortsetzung in der Config. Die zwei Semikolon am Ende braucht man nur wenn es weiter geht mit Perl Code.
Gruß Otto
Da Du hinter \ kein "Return" hast, lass den mal weg.
Wo trägst DU es eigentlich ein? In der Config direkt oder Editierst Du in FHEM?
Edit:
@Otto war schneller und hat die \ Problematik besser erklärt ...
Danke Euch beiden,
ist das den überholt mit den doppelten Semikolons?
Und
Ja ich benutze beides, Otto hat auch schon geraten ich soll es nicht direkt in der fhem.cfg editieren.
Aber erstens habe ich gern Ordnung in der Datei für eine bessere Übersicht und
zweiten geht es manchmal schneller mit kopieren und ändern.
Jedenfalls klappt es so wie Otto es beschrieben hat.
Was mir jetzt noch vor dem Ändern aufgefallen ist zeigen die Codes hier:
So stand es in der Fhem.cfg
define Slider_notify notify Slider {\fhem "set an_315 ".ReadingsVal("Slider","state","0");;\}
und so liest man es in den Internals von dem Notify
DEF Slider {\fhem "set an_315 ".ReadingsVal("Slider","state","0");\}
da fehlt dann ein Semikolon.
die Sache mit den Semikolon steht hier beschrieben https://fhem.de/commandref_DE.html#command
Zitat von: eckhard scholz am 27 August 2023, 22:02:46Aber erstens habe ich gern Ordnung in der Datei für eine bessere Übersicht und
zweiten geht es manchmal schneller mit kopieren und ändern.
Hör besser auf den Rat von Otto und Wernieman und lass das direkte editieren der fhem.cfg!
Und ich schließe mich mal an... 8)
Das mit Ordnung" dachte ich früher auch mal...
...schon lange nicht mehr: wozu?
Und schneller: schau dir mal "RawDef" an...
Ansonsten landest du verm. wieder im Forum, mit "eigentümlichen" Problemen und Hilfe wird schwer (oder verweigert), weil du manuell editierst (und es dauert bis man darauf als Fehlerursache kommt)...
Manche Module haben Probleme mit fhem.cfg Editierern: alexa-fhem, gassistant, ...
Tendenz steigend...
EDIT: eine Suche im Forum müsste dich zu einigen dieser "Problemfälle" führen...
Gruß, Joachim
Und gerade die "Maskieren Fälle" werden von FHEM intern super sauber gelöst ....