Type: Contact --> verzögert/gesammelt reagieren

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Oekel
Beiträge: 156
Registriert: 28. Aug 2021 10:34
Answers: 0

Type: Contact --> verzögert/gesammelt reagieren

Beitrag von Oekel »

Moin,

ich habe alle "Löcher" meines Hauses mit Kontakten versehen.
Ich bekomme auch über das Modell sprachlich syntaktisch korrete Nachrichten darüber:

Bsp. Haus --> EG --> Wohnzimmer --> Balkontür(Tag: door)
"Die Balkontür im Wohnzimmer wurde geöffnet"

Verlassen des Haues: "Tür/Fenster noch offen: <liste> "

Was auf dem Log/Telegram nachvollziehbar niedergeschrieben wird ist beim TTS eher nervig.
Szenario:
Mückengitter runter ziehen (Enzustand bleibt gleich)
Von Kipp zu ganz Offen und umgekehrt
Gegenstand "kurz" vor die Tür legen

Ich möchte also neben der sofortigen Ausgabe auch eine erweiterte/verzögerte Ausgabe fürs TTS konstruieren, die ggf. die letzten Zustände innerhalb von 5 Sek. auswertet und dann nur den neuesten Zustand mitteilt.
Ich habe noch keine "höherwertige" DB integiert (influx und co), die mir rückwirkend Status liefern. Bislang hat mir ein zweites TimeStamp-item zu jedem Kontat ausgereicht, welches mir die "lastChanged" und somt Zeitspanne mit in die Regeln gebracht hat.



Könnt ihr mir einige Ideen/Ansätze liefern, wie ich mein Vorhaben angehen könnte?

INFO:
Derzeit wird meine Rule mit THEN Script von allen Schaltern einzelnd getriggert WHEN: contact1, contact2, ....
Im Script frage ich dann nach dem context.getTriggeringItemName und lade mit damit das "contact1_lastCahnged" item aus der Registry für welches ich eine strikte Namenskonvention verfolge (+postfix)

LG

Harka
Beiträge: 333
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Type: Contact --> verzögert/gesammelt reagieren

Beitrag von Harka »

Moin,
Du könntest die letzten Zustände im Cache zwischenspeichern.
Das Blockly-Beispiel schickt die Ausgabe nur raus, wenn 5 Sekunden nichts mehr passiert und der Zustand ungleich der Ausgangslage ist.
Habe es nur grob getestet - ggf. noch Fehlerabsichrung einbauen.
ForumKontaktVerzögert.png
E: ein potentieller Fehler tritt beim Systemstart auf (Absicherung sAlterStatus = "null" ...)
Du kannst das ganze auch in einer Regel abwickeln. Dazu alle Items in eine Gruppe packen und die auszusprechenden Namen irgendwo hinterlegen. Ich nutze hierfür gern JSON-Objekte, Listen oder Metadaten.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten