Status eines ITEM speichern und wiederherstellen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

domjo75
Beiträge: 159
Registriert: 22. Jan 2019 11:10
Answers: 0

Status eines ITEM speichern und wiederherstellen

Beitrag von domjo75 »

Hallo zusammen,

ich habe gerade mal wieder Zeit und versuche meine diversen Rules zu optimieren.

Über eine Sache stolpere ich immer wieder und finde keine Lösung bzw. steh da auf dem Schlauch.

Ich habe bzw. eine Rule, die mir ein Rollo auf Tilt fährt, wenn die Illuminance > 4500 oder isNight == ON ist und ich den TV einschalte.
Funktioniert soweit super.
Aber, wenn ich den Fernseher wieder ausschalte bleibt das Rollo natürlich auf Tilt. Ich würde es schön finden, wenn das Rollo wieder in den letzten Zustand zurückfährt.
Dazu müsste ich ja eigentlich den letzten Zustand abfragen.

Ich hatte erstmal an ein ITEM gedacht, was ich beim Starten der dem Wert befülle und später wieder auslese.

Leider möchte ich das gerne auch auf Lichter anwenden, die dann wieder ihren Status annehmen.
Das werden ganz schön viele Speicher-Items.

Gibt es da keine Out-Off-The-Box Lösung ?

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von sihui »

domjo75 hat geschrieben: 21. Jan 2022 11:42 Gibt es da keine Out-Off-The-Box Lösung ?
Persistence und previousState:

https://www.openhab.org/docs/configurat ... -and-rules
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

domjo75
Beiträge: 159
Registriert: 22. Jan 2019 11:10
Answers: 0

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von domjo75 »

ahh, ok. Dann muss ich mir das mal genauer anschauen. Die Persistences müssen erst eingerichtet werden, oder?

Dann wäre das ja das was ich brauche
<item>.previousState()

Danke

domjo75
Beiträge: 159
Registriert: 22. Jan 2019 11:10
Answers: 0

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von domjo75 »

ich habe das jetzt mal schnell eingerichtet. Einfach per default als rrd4j Persistence (spricht was dagegen die rrd4j zu nutzen?)
Dann eine rrd4j.persist angelegt, mit diesem Inhalt:

Code: Alles auswählen

Strategies {
        everyHour : "0 0 * * * ?"
        everyDay  : "0 0 0 * * ?"

        // if no strategy is specified for an Item entry below, the default list will be used
       default = everyChange
}

Items {
        // persist the Item state of Heating_Mode and Notifications_Active on every change and restore them from the db at startup
        Wohnzimmer_Rollo2_Level: strategy = everyChange, restoreOnStartup

        // additionally, persist all temperature and weather values every hour
        // Temperature*, Weather* : strategy = everyHour
}
Das war´s dann schon und ich kann den Status mit Wohnzimmer_Rollo2_Level.previousState.state abfragen? Das wäre ja fast zu einfach :lol:

Edit: Ganz so leicht ist es dann doch nicht. Grundsätzlich merkt er sich schon den letzten Status. Wenn ich den Fernseher aber nun ausschalte setzt er den letzten Status auf TILT. Ich bräuchte also den Vorletzten Status :cry:
Oder habe ich da was falsch verstanden ?

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von KellerK1nd »

Ich würde diesen Fall in einem Proxy Item speichern, das heißt wenn dein TV einschaltet wird in dem Moment der Status in dem Proxy gespeichert. Sobald der TV wieder ausschaltet wird das ProxyItem mit dem Status abgefragt.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

domjo75
Beiträge: 159
Registriert: 22. Jan 2019 11:10
Answers: 0

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von domjo75 »

Also so wie ich es ursprünglich gedacht habe, einfach ein ITEM Wohnzimmer_Rollo2_LastLevel bauen und da reinschreiben?!
Wird halt ziemlich unübersichtlich irgendwann.

Benutzeravatar
peter-pan
Beiträge: 2759
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von peter-pan »

Ich hab mich zwar mit den Datenbanken und der Persistence noch nicht so richtig beschäftigt, aber ich galube das es so eine Statusabfrage nicht gibt:

Code: Alles auswählen

Wohnzimmer_Rollo2_Level.previousState.state
domjo75 hat geschrieben: 21. Jan 2022 12:50 Oder habe ich da was falsch verstanden ?
Vielleicht habe ich es ja auch nicht richtig verstanden, aber wenn du den TV einschaltest (ON) soll der Rollo auf "TILT" fahren (Ich nehme an von "OPEN").
In meiner Vorstellung wäre dann "TILT" aktueller Status und "OPEN" der vorherige Status.

Das würde bedeuten, wenn du den TV ausschaltest (OFF), dann soll der Rollo wieder auf "OPEN" fahren.

Dann würde ich es mal so in der Rule probieren:

Code: Alles auswählen

....
Wohnzimmer_Rollo2_Level.sendCommand(Wohnzimmer_Rollo2_Level.previousState())
...
...ohne Gewä(e)hr... ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

domjo75
Beiträge: 159
Registriert: 22. Jan 2019 11:10
Answers: 0

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von domjo75 »

peter-pan hat geschrieben: 21. Jan 2022 14:47

Code: Alles auswählen

....
Wohnzimmer_Rollo2_Level.sendCommand(Wohnzimmer_Rollo2_Level.previousState())
...
...ohne Gewä(e)hr... ;)
Die Idee hatte ich auch. Ich gebe mir den PreviousState im Log aus.
In dem Moment wo ich den Fernseher ausschalte hat schon ein Change stattgefunden und der previousState wird mit dem aktuellen Wert überschrieben. Damit ist mein gemerkter Wert weg.

Benutzeravatar
peter-pan
Beiträge: 2759
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von peter-pan »

Wie sieht denn deine Regel aus ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Status eines ITEM speichern und wiederherstellen

Beitrag von sihui »

domjo75 hat geschrieben: 21. Jan 2022 12:50 ich habe das jetzt mal schnell eingerichtet.
Schnell ist immer schlecht:

Du musst für rrd4j zwingend

Code: Alles auswählen

everyMinute 
hinzufügen, sonst funktioniert es nicht.

https://www.openhab.org/addons/persiste ... rsist-file
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Antworten