Hauptmenü

DOIF Fehler

Begonnen von Franzel007, 24 Dezember 2025, 11:19:54

Vorheriges Thema - Nächstes Thema

Franzel007

Hallo zusammen,

ich möchte über DOIF durch die Außentemperatur meine Heizungsnachtabsenkung ausschalten. Die Temperatur wird auch angezeigt und der state ändert sich auch temperaturabhängig zwischen cmd_1 und cmd_2. Soweit müsste es passen.
Ich bekomme es aber einfach nicht hin, dass DO "set Zentralheizung_sperren on" ausgeführt wird. Es kommt dann im im error "set n_Zentralheizung_sperren_off on: Unknown argument on, choose one of active:noArg addRegexpPart inactive:noArg removeRegexpPart"
Wenn ich den Befehl "set Zentralheizung_sperren off" oder "set Zentralheizung_sperren on" direkt eingebe, macht fhem genau was ich möchte.
Im DOIF kommt immer der Fehler.

fhem.cfg Eintrag:
define Heizungsnachtabsenkung_entsperren DOIF ([Umgebungsfuehler:temperature] < 1) (set Zentralheizung_sperren off)  DOELSEIF ([Umgebungsfuehler:temperature] > 3) (set Zentralheizung_sperren on)

Könnt ihr mir bitte hier weiterhelfen.

Gruß
Fanzel




rabehd

ist denn "set n_Zentralheizung_sperren_off on" der richtige Befehl?
Zitat von: Franzel007 am 24 Dezember 2025, 11:19:54Wenn ich den Befehl "set Zentralheizung_sperren off" oder "set Zentralheizung_sperren on" direkt eingebe, macht fhem genau was ich möchte.
Das ist ja was anderes.
Warum verwendest Du "set Zentralheizung_sperren off" nicht im DOIF?
Auch funktionierende Lösungen kann man hinterfragen.

Franzel007

Hallo rabehd,

das habe ich zu erst probiert und dann hatte ich noch mehr errors.
Das Problem habe ich jetzt gelöst in dem ich alle Einträge zu diesem doif in der fhem.cfg gelöscht und dann alles neu erstellt habe. Es sieht auf den ersten Blick gleich aus, scheint aber jetzt mit "set Zentralheizung_sperren off" zu funktionieren.

Danke nochmals für die Hilfe, manchmal sieht man den Wald vor lauter Bäumen nicht mehr :-)

Gruß
Franzel

rabehd

Da Du wenig Infos geliefert hast, muss ich vermuten das Problem sitzt vor Deinem Monitor.
Laut Deinem ersten Beitrag müßte es 2 Device geben:
 n_Zentralheizung_sperren_off  und  Zentralheizung_sperren
Der Sinn ist nur zu erraten.
Auch funktionierende Lösungen kann man hinterfragen.

clashslovenly

#4
Hallo Fanzel,
das Problem liegt nicht an DOIF selbst, sondern daran, dass im DOIF-Kontext offenbar ein anderes Device (n_Zentralheizung_sperren_off) angesprochen wird bzw. der Befehl falsch aufgelöst wird.

Den Beitrag hat ein Bot geschrieben Der Bot ist gebannt, der Beitrag erhalten :)

Franzel007



Hallo clashslovenly,
ok, da ich nicht so versiert in fhem bin, verstehe ich deine Antwort nicht so richtig. Könntest du das bitte für eine Laien erklären. Ich versuche mal meine Interpretation:
Wäre es besser den notify "n_Zentralheizung_sperren_off" direkt statt den dummy "set Zentralheizung_sperren off" von DOIf ansprechen zu lassen?

Gruß
Franzel

Franzel007

Hallo nochmal,
mir ist gerade noch eine Frage eingefallen. Wird DOIF regelmäßig abgefragt oder der nur einmal solange sich die Bedingung nicht ändert?
Zu meinem Problem:
Ich schalte die Nachtabsenkung mit einem at um 21°° Uhr ein und um 4°° Uhr wieder aus. Das funktioniert auch seit über 3 Jahren super.
Nun wollte ich eine Automation reinbringen, dass wenn die Nachtabsenkung um 21°° Uhr über den at eingeschaltet wird, bei Minusgraden (Außentemperatur) wieder ausgeschaltet wird. Bei Plusgrade (Außentemperatur) soll die Nachtabsenkung eingeschaltet bleiben. Ist dafür DOIF überhaut die richtige Vorgehensweise oder bin ich auf den Holzweg?

Gruß
Franzel

Damian

DOIF abfragt nichts selbstständig ab, sondern immer dann, wenn es durch ein passendes Event getriggert wird. Standardmäßig wird ein Befehl auch nicht wiederholt. Da musst du dir die Commandref zum DOIF noch mal durchlesen.

DOIF kann selbst mit Zeittiggern umgehen und weiß dann auch wann ein Zeittrigger stattgefunden hat. Daher solltest du vorher für dich überlegen, ob du mit at und notify arbeiten willst oder nur mit DOIF.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF