Hauptmenü

Komisches Verhalten von Fhem

Begonnen von Audi_Coupe_S, 13 Oktober 2025, 10:34:43

Vorheriges Thema - Nächstes Thema

Audi_Coupe_S

Hallo,

ich sehe mich zwar nicht als Anfänger, aber auch nicht als Profi und habe jetzt schon mehrfach ein komisches Verhalten von Fhem festgestellt, welches ich mir nicht erklären kann. Vielleicht hat jemand eine Idee...

Ich habe eine ziemlich umfängliche Fhem-Installation laufen mit einigen Arduinos mit ConfigurableFirmata, mit denen ich Heizung, Alarmanlage, viele Lichter und Rolladen usw. steuere.

Ich benutze viele Notifys und At´s, keine Ifs. In den Notifys bewege ich mich häufig auf der Perl-Ebene.

Jetzt ist mir folgende (ähnliche) Situation schon mehrfach begegnet:

Gestern habe ich das Notify geändert, welches meine Heizkreispumpe ansteuert. Das Starten und Stoppen der Pumpe hängt von vielen Temperaturen und Zuständen von Dummys und Schaltern ab. Dieses Notify funktioniert seit Jahren problemlos. Ich habe in dem If im Notify NUR EINE Bedingung geändert. Also nur eine marginale Änderung.

Heute morgen habe ich festgestellt, das die Heizkreispumpe nicht an war. Also die Bedingungen samt Klammerebenen nochmals geprüft, alles OK. die Änderung rückgängig gemacht, funktioniert weiterhin nicht. Im Log findet sich die Fehlermeldung

n_Heizkreispumpe return value: Missing right curly or square bracket at (eval 16744967) line 7, at end of line
syntax error at (eval 16744967) line 7, at EOF

welche definitiv nicht stimmt. Alle Klammern und Klammerebenen sind OK.

Da ich ähnliche Probleme schon mehrfach hatte, bin ich dann hin gegangen und habe den Inhalt des Notifys per copy and past in einen Texteditor kopiert, das Notify geleert und den Inhalt des Texteditors ungeändert wieder in das Notify kopiert.

Danach funktionierte das Notify wieder problemlos, ohne Fehlermeldung.

Kennt das jemand? was mache ich falsch?

Danke 
 

 

betateilchen

Zitat von: Audi_Coupe_S am 13 Oktober 2025, 10:34:43Kennt das jemand?

Ja. Solche Probleme können entstehen, wenn die Konfiguration extern bearbeitet wird.

Zitat von: Audi_Coupe_S am 13 Oktober 2025, 10:34:43was mache ich falsch?

Wie bearbeitest Du normalerweise Deine notify? Wenn Du den internen Editor von FHEM dafür verwendest, findet direkt beim Speichern eine Syntaxprüfung statt.

Noch ein Tipp: Umfangreiche Codeblöcke mit vielen Abfragen und Vergleichen sollte man besser nicht direkt in das notify schreiben, sondern in eine Funktion in der 99_myUtils.pm auslagern und dann im notify lediglich die Funktion selbst aufrufen. Das erhöht die Lesbarkeit und Wartbarkeit enorm.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Audi_Coupe_S

Hallo betateilchen,

ich bearbeite alles mit dem internen Editor und der hat beim Speichern keinen Syntaxfehler erkannt. die Fehler kommen erst beim ausführen im LOG.

Gruß