Hauptmenü

Variable Escapen

Begonnen von zimb0, 27 Oktober 2019, 09:51:40

Vorheriges Thema - Nächstes Thema

zimb0

Moin zusammen,
verzweifle gerade an einer relativ einfachen Bedingung.
Ein Notify löst aus und erstellt ein AT in +5min, welches den gleichen Status nochmals prüfen soll.
HUEDevice16:onoff.* IF ([HUEDevice16:onoff] eq "1") (defmod AT_DUSCHEN_TEMP2 at +00:05:00 IF ('[HUEDevice16:onoff]' eq "1") (LueftungBad()))
Leider wird das [HUEDevice16:onoff] bereits im Notify aufgelöst und an das AT übergeben, somit steht das später IF 1 eq 1.
Kann ich das irgendwie escapen?
Andere Frage: Kann ich verhindern, dass ein AT nach Ausführung gelöscht wird? Dann könnte ich einfach die AT-Time per Notify anpassen..

Schönen Sonntag,
zimb0
THZ504

amenomade

Zitat von: zimb0 am 27 Oktober 2019, 09:51:40
Leider wird das [HUEDevice16:onoff] bereits im Notify aufgelöst und an das AT übergeben, somit steht das später IF 1 eq 1.
Das glaube ich nicht

IF => dann define ein at. Die Definition des ATs ist völlig unabhängig. Die Hochkommas sollten sogar unnötig sein.

Teste mal einfach indem Du dieses "defmod" in der Kommandozeile eingibst. Was kommt dan in der Definition des ATs?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Byte09

#2
doch , ist genau so wie der TE schreibt glaube ich .
setmagic wird sofort ersetzt und nicht erst bei ausführung des At.


gruss Byte09

Byte09

#3
sollte aber gehen , wenn du im at das entsprechende Reading abfragst und nicht über setmagic gehst.



gruss Byte09

Damian

In so einem Fall wird man sich wohl mit ReadingsVal behelfen müssen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Byte09

alternativ kannst du auch mit einem MSwitch arbeiten , da ist entsprechende Funktion vorhanden und du brauchst nur ein device .

gruss Byte09

amenomade

Zitat von: Byte09 am 27 Oktober 2019, 11:07:50
doch , ist genau so wie der TE schreibt glaube ich .
setmagic wird sofort ersetzt und nicht erst bai ausführung des At.


gruss Byte09

OK, wusste ich nicht ;) Schon wieder was gelernt
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Damian

Zitat von: Byte09 am 27 Oktober 2019, 11:07:50
doch , ist genau so wie der TE schreibt glaube ich .
setmagic wird sofort ersetzt und nicht erst bai ausführung des At.


gruss Byte09

stimmt nicht ganz, set magic kommt hier erst gar nicht zum Zuge, weil der Befehl IF es bereits vorher ersetzt, die Auswirkung ist aber die gleiche.

PS: Ich würde es auch mit einem Modul realisieren ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Byte09

Zitat von: Damian am 27 Oktober 2019, 11:47:53
stimmt nicht ganz, set magic kommt hier erst gar nicht zum Zuge, weil der Befehl IF es bereits vorher ersetzt, die Auswirkung ist aber die gleiche.

PS: Ich würde es auch mit einem Modul realisieren ;)
so war es gemeint [emoji12]

Gesendet von meinem ELE-L29 mit Tapatalk


zimb0

danke für Eure Beiträge, habe es jetzt über ein Modul gelöst.
Notify Triggert ein Modul, welches in X Minuten startet, dieses prüft dann nochmal den Zustand des HUEDevices und führt bei TRUE die entsprechende Anforderung aus.
Manchmal sieht man einfach den Wald vor lauter Bäumen nicht ;)
THZ504