Seite 1 von 2

OpenHAB Item Zustand

Verfasst: 22. Jul 2020 09:32
von scotty
Weiß jemand, wie man den Item-Zustand von "NULL" auf ""Off" per Regel ändert?

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 09:42
von PeterA
Hi,

Den Status eines Items kann man mit "postUpdate" manipulieren

Gruß
Peter

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 10:08
von scotty
So eventuell?

Code: Alles auswählen

Item.postUpdate("Off")
oder so

Code: Alles auswählen

postUpdate(Item, Off)
Muss dafür eine gesonderte Regel erstellt werden oder kann der Befehl als Abschluss einer vorhandenen verwendet werden bzw. wird die Änderung im Widget sofort angezeigt?

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 12:03
von PeterA
So:

Code: Alles auswählen

ItemName.postUpdate(ON) 
Und das kannst Du überall im ausführenden Teil einer Rule verwenden.

Gruß
Peter

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 13:05
von scotty
Funktioniert super, vielen Dank!

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 15:15
von eiGelbGeek
Wann genau willst du den Zustand "manipulieren"? Geht es vielleicht dadrum den alten Zustand nach Reboot wieder zu bekommen? Wenn ja dann solltest mapDB mal anschauen :D

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 16:02
von scotty
Klingt interessant, arbeitest du damit? Für mich als Neueinsteiger jedoch wieder eine Hürde. In der Doku habe ich etwas von Troubleshooting gelesen. Hast du denn noch mehr Infos zu mapDB?

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 16:39
von KellerK1nd
MapDB ist nun wirklich keine Hürde. Einmal die Persistenz in der PaperUI installieren und anschließend in der PaperUI bei den Systemsettings die Standardpersistenz auf MapDB einstellen. Ich bin auch dazu übergegangen die rules beim Systemstart verzögert zu laden. Damit habe alle Items Zeit ihren Status zu laden. Gut der Systemstart dauert länger, aber dafür hat man dieses „Problem“ nicht mehr.

OpenHAB Item Zustand

Verfasst: 22. Jul 2020 19:03
von udo1toni
Also, „dieses Problem“ ist ja mal etwas unspezifisch...


Grundsätzlich sollte man genau schauen, welche Items man in Betrieb hat, mit welchen Bindings sie verbunden sind usw.

Ich habe z.B. knx in Betrieb. Wenn man das korrekt konfiguriert, lädt es beim Start von openHAB alle Status direkt vom Bus (natürlich muss man dafür sorgen, dass die Status auch zur Verfügung stehen). Warum sollte ich diese Status also aus einer Datenbank laden, die eventuell überholte Status zur Verfügung stellt?
Gleiches gilt für Wetter-Items, Uhrzeit, Astro usw.

Man sollte also genau schauen, welche Items nach dem Start von openHAB im NULL-Status hängen bleiben, weil das entsprechende Binding keine Daten liefert. Entweder, man nutzt dann gezielt eine Rule, die per System started triggert und dafür sorgt, dass die Items mit den korrekten Status gefüllt werden, oder man holt sich die letzten bekannten Status nur für diese Items aus einer Persistence.
Für diese (und nur für diese) Aufgabe bietet sich mapdb an, weil es ausschließlich den letzten Status zur Verfügung stellt. Am besten erstellt man dann ein Group Item gROS (für groupRestoreOnStartup) und weist jedem der Items, die wiederhergestellt werden sollen, zusätzlich diese Gruppe zu.
Dann installiert man noch die mapdb Persistence und legt im Ordner $OPENHAB_CONF/persistence/ eine Datei mapdb.persist an. In dieser Datei definiert man lediglich folgendes:

Code: Alles auswählen

Items {
    gROS* : strategy = everyChange,restoreOnStartup
}

Dies sorgt dafür, dass jede Änderung eines Items, welches der Gruppe gROS angehört, in mapdb gespeichert wird. Weiterhin wird der Status dieser Items beim Systemstart aus der mapdb Persistence wiederhergestellt. Ein Setzen der default Persistence ist dazu nicht notwendig!

Prinzipiell kann man auch mit einem einfachen Stern alle Items wiederherstellen lassen, aber das ist (habe ich ja schon erläutert) keine gute Idee.


Gesendet von iPad mit Tapatalk

Re: OpenHAB Item Zustand

Verfasst: 22. Jul 2020 23:53
von scotty
Habe die Anleitung von @udo1toni befolgt. Beim Zuweisen der Items zur Group gROS gibt es gleich ein Problem. Das Item "Flag_SystemNeu" ist ein Dummy und wird scheinbar nicht akzeptiert (extraneous input 'Flag_SystemNeu' expecting EOF(org.eclipse.xtext.diagnostics.Diagnostic.Syntax)). Gibt es dafür eine Lösung?

Bild