Hallo Rudi,
es hatte mich schon mehrfach fast zum Jammern getrieben, weil meine cfg-Scripte ohne ersichtlichen Grund nicht funktioniert haben. Aber jetzt habe ich endlich den Grund gefunden.
Wenn man in eine cfg-Datei mehrere Perl Befehle schreibt, können diese mit ;;\<LineFeed> getrennt werden. Schreibt man aber ;;\<TAB><LF> wird dies anscheint nicht korrekt an Perl weitergegeben.
Erst wenn der <TAB> entfernt wurde, funktioniert es. Dummerweise sieht man den TAB aber nur, wenn man Steuerzeichen anzeigen kann.
PS: Ich schreibe meine Scripte in Notepad++ und kopiert dann den Inhalt über die WebGUI.
Gruß
Tupol
Bin (z.Zt.) dagegen, aus folgenden Gruenden:
- alle anderen Programme die ich kenne machen auch nicht solche Ausnahmen
- wenn man einen Editor nicht beherrscht, dann sollte man es nicht verwenden
- wenn man Definitionen in der FHEMWEB Detailansicht aendert, dann braucht man kein \, bei 99_myUtils.pm auch nicht. Ergo ersetzt du fhem.cfg, und das will ich nicht weiter optimieren, da es auch andere Probleme hat.
Hallo Rudi,
fällt mir etwas schwer das nachzuvollziehen. Letztendlich gestatten alle Editor das Einfügen von Tabulatoren und dieser Fehler sollte immer dann auftreten, wenn cfg-Datei(en) extern erzeugt werden.
Aber OK. :( Dann halten wir hier für andere Verzweifelt-nach-dem-Fehler-Suchende fest, dass für mehrzeilige PERL-Scripte in CFG-Dateien (z.B. hinter notify) folgendes gilt:
1. FHEM kommt mit Tabulatoren am Zeilenanfang von mehrzeiligen PERL-Scripten in CFG-Dateien zurecht.
2. FHEM akzeptiert Leerzeichen am Zeilenende in der Form: ;;\{SPACE}{LineFeed}
3. FHEM akzeptiert keine Tabulatoren am Zeilenende in der Form: ;;\{TAB}{LineFeed}
4. Es gibt keine Debug-Info, die diesen Fehler (3) aufzeigt. Also besser beim Erzeugen der cfg-Datei(en) in externen Editoren die Steuerzeichen einblenden und auf Tabulatoren am Zeilenende achten.
Gruß
Tupol