Hauptmenü

DoIf Timer unterbrechen

Begonnen von Harri_s, 11 Oktober 2021, 11:58:08

Vorheriges Thema - Nächstes Thema

Harri_s

Ein herzliches Hallo aus Kärnten, Österreich :)

Ich hoffe, ihr könnt mir bei folgendem Problem helfen:

Mein FHEM ist via Connector mit Alexa verbunden.
Meine Idee war, erstmals einen Fensterkontakt proactive schalten und eine Routine mit einem Wait-Timer von 10min erstellen, damit mich meine Alexa nach 10min daran erinnert, das Fenster wieder zuzumachen. Funktioniert perfekt. Nur..... wenn ich innerhalb der 10 min das Fenster schließe, erinnert mich Alexa trotzdem nach 10 min, da ich die Routine nicht unterbrechen kann.

Jetzt hab ich mir gedacht, dass ich das schon im Vorhinein in Fhem lösen könnte, jedoch fehlt mir die Fantasie, wie ich im DoIf den Timer unterbrechen kann, wenn ich das Fenster innerhalb der 10min schließe.

Vielen Dank im Vorraus für eure Tips.

rabehd

Ein neuer Event, der das DOIF triggert, bricht auch den aktuellen Timer ab.
Da Du keinen List oder Code zeigst kann ich nicht mehr sagen.
Auch funktionierende Lösungen kann man hinterfragen.

Harri_s

Vielen Dank - das ist ein guter Tip - werde es probieren.

Da ich nicht wusste, wie ich es anstellen soll, hab ich auch noch keinen Code.
Heute abend stell ich den Code mal rein :)

Harri_s

#3
Nur so aus dem Gedächtnis, ohne es probieren zu können:

Define AlexaWindowInfo DOIF ([Fenster-WC] eq "closed") (set InfoWindow off)
DOELSEIF ([Fenster-WC] eq "opened" and [Vito:tempAussen] < 10.0) (set InfoWindow on)
attr AlexaWindowInfo wait 0:600


Sollte es so funktionieren?

rabehd

Lieber "Neuling",

es wird hier gern gesehen, wenn Du Code auch entsprechend darstellst. Dir sind vielleicht schon die kleinen Buttons über dem Eingabefenster eingefallen? Nimm mal den mit dem #   8)

Grundsätzlich sollte das so funktionieren.
Aber,...
der Bindestrich in [Fenster-WC] könnte zum Problem werden. Bindestrich ist nie gut in Namen.
Der Syntax der Bedingungen ist optimierungsfähig, einfach mal die commandref lesen.
[Vito:tempAussen] würde triggern, wenn kleiner als 10. Besser [?Vito:tempAussen], dann wird das nur geprüft.

Was ist wenn Fenster offen und Temperatur >10? Welcher Zweig gilt dann?
Ein DOELSE () löst das.
Auch funktionierende Lösungen kann man hinterfragen.

Harri_s

#5
Define AlexaWindowInfo DOIF ([Fenster_WC:"closed"] ) (set InfoWindow off)
DOELSEIF ([Fenster_WC:"opened"]  and [?Vito:tempAussen] < 10.0) (set InfoWindow on)
DOELSE ()

attr AlexaWindowInfo wait 0:600:0



Sorry... hab das mit dem Code übersehen  :-\

rabehd

Sieht gut aus, jetzt bist Du dran.

Die Device sind hoffentlich so vorhanden  ???

Noch eine Anmerkung.
Du setzt einen Dummy, der dann eine Meldung triggert? Warum ein Dummy, warum nicht direkt?
Auch funktionierende Lösungen kann man hinterfragen.

Harri_s

Der Dummy wird in der Alexa-App eingebunden, damit ich eine Routine erstellen kann.


Da Alexa nur gewisse genericDevices erkennt, muss ich das über einen Dummy machen.

Natürlich kann ich den Shuttercontact direkt einbinden, dann hab ich aber wieder das Problem, dass ich die Routine bei Alexa nicht abbrechen kann.

rabehd

Auch funktionierende Lösungen kann man hinterfragen.

Harri_s

Dieses Modul kannte ich noch nicht - schau ich mir heute noch an.

Vielen Dank für deine Hilfe !

lg. Harri

Harri_s

Hallo  ;D

DOIF funktioniert - Vielen Dank!
Echodevice wurde installiert - werde die Benachrichtigung nun direkt über das DOIF machen - ohne Dummy.

Danke für den Link!