Status eines ITEM speichern und wiederherstellen
-
- Beiträge: 159
- Registriert: 22. Jan 2019 11:10
Status eines ITEM speichern und wiederherstellen
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 ?
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 ?
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Status eines ITEM speichern und wiederherstellen
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 159
- Registriert: 22. Jan 2019 11:10
Re: Status eines ITEM speichern und wiederherstellen
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
Dann wäre das ja das was ich brauche
<item>.previousState()
Danke
-
- Beiträge: 159
- Registriert: 22. Jan 2019 11:10
Re: Status eines ITEM speichern und wiederherstellen
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:
Das war´s dann schon und ich kann den Status mit Wohnzimmer_Rollo2_Level.previousState.state abfragen? Das wäre ja fast zu einfach 
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
Oder habe ich da was falsch verstanden ?
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
}

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

Oder habe ich da was falsch verstanden ?
- KellerK1nd
- Beiträge: 432
- Registriert: 17. Jun 2019 16:45
- Wohnort: Griesheim
Re: Status eines ITEM speichern und wiederherstellen
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
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
-
- Beiträge: 159
- Registriert: 22. Jan 2019 11:10
Re: Status eines ITEM speichern und wiederherstellen
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.
Wird halt ziemlich unübersichtlich irgendwann.
- peter-pan
- Beiträge: 2759
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Status eines ITEM speichern und wiederherstellen
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:
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:
...ohne Gewä(e)hr... 
Code: Alles auswählen
Wohnzimmer_Rollo2_Level.previousState.state
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())
...

Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 159
- Registriert: 22. Jan 2019 11:10
Re: Status eines ITEM speichern und wiederherstellen
Die Idee hatte ich auch. Ich gebe mir den PreviousState im Log aus.peter-pan hat geschrieben: ↑21. Jan 2022 14:47...ohne Gewä(e)hr...Code: Alles auswählen
.... Wohnzimmer_Rollo2_Level.sendCommand(Wohnzimmer_Rollo2_Level.previousState()) ...
![]()
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.
- peter-pan
- Beiträge: 2759
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Status eines ITEM speichern und wiederherstellen
Wie sieht denn deine Regel aus ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Status eines ITEM speichern und wiederherstellen
Schnell ist immer schlecht:
Du musst für rrd4j zwingend
Code: Alles auswählen
everyMinute
https://www.openhab.org/addons/persiste ... rsist-file
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.