Ich stehe ein bisschen auf dem Schlauch und hoffe, dass mit jemand helfen kann:
Ich habe folgendes definiert:
# Eigene Variablen
define Enable_Auto_Bad_Dimmen dummy
set Enable_Auto_Bad_Dimmen 1
Was in folgendem Watchdog verwendet wird, um das automatische Dimmen einer Badlampe zu realisieren.
define wd_BewegungErkannt watchdog Sensor_Bewegung_Bad:motion 00:01:00 SAME { if (ReadingsVal("Enable_Auto_Bad_Dimmen","state", "") eq "1") { fhem("set HUEDevice17 rgb 502020 ;; set telegram message Watchdog Bad - Dimmen On ;; ") } else { fhem("set telegram message Watchdog Bad - Dimmen Off;; ") } } ;; setstate wd_BewegungErkannt defined
Die vorhergehende always-on Variante:
define wd_BewegungErkannt watchdog Sensor_Bewegung_Bad:motion 00:01:00 SAME set HUEDevice17 rgb 502020 ;; set telegram message Watchdog Test ;; setstate wd_BewegungErkannt defined
funktioniert problemlos. Bei dem neuen Watchdog mit If/Else bekomme ich zwar die korrekte Telegram Nachricht ("...Dimmen On..."), aber das Licht ändert sich nicht. Was mache ich falsch? ???
Hallo, gibt es generell eine Möglichkeit derlei Code zu checken welche über Syntax-Highlighting ala Notepad++ hinausgeht? Eine Art Compiler? Ich finde das Debuggen sonst reichlich schwierig... oder wie macht ihr das?
Wenn Du den Code in der DEF bearbeitest, dann erfolgt zu mindest ein kleiner Syntaxcheck. Du kannst auch Codemirror aktivieren.
Problem wurde gelöst durch massives und langes rumprobieren :-\
Korrekt ist (mit ";;;;"):
define wd_BewegungErkannt watchdog Sensor_Bewegung_Bad:motion 00:01:00 SAME { if (ReadingsVal("Enable_Auto_Bad_Dimmen","state", "") eq "1") { fhem("set HUEDevice17 rgb 502020 ;;;; set telegram message Watchdog Bad - Dimmen On ;; ") } else { fhem("set telegram message Watchdog Bad - Dimmen Off;; ") } } ;; setstate wd_BewegungErkannt defined
Dann scheinst Du direkt das cfg File zu bearbeiten.
Ja, mache ich. Ich weiss schon, ohne Syntaxprüfung ist das eigentlich nicht so toll, aber ich persönlich finde es übersichtlicher mir die fhem.cfg selbst zu formatieren und kommentieren, als alles über die UI zu machen.
Nur damit es später nicht heißt es wurde Dir nie gesagt.
So gut wie jeder Helfende hier wird Dir Syntax und/oder Code nur für das DEF des Frontends geben. Bedeutet auch das wenn Du Fehlermeldungen hast wird es für die Helfenden schwer Dir Tips zu geben.
Mal ab von den nicht einzuschätzenden Seiteneffekten wenn man die CFG selbst editiert statt es dem System zu überlassen.