Seite 1 von 1

Zustand eines Items merken

Verfasst: 13. Apr 2018 22:43
von tim.dreier
Hey,
ich habe mich vor kurzem für OpenHAB entschieden.
Ich Steuere einige Geräte mithilfe des EXEC-Bindings, was auch soweit gut funktioniert. Allerdings wird der Status eines Items beim Neuladen der Seite immer wieder zurück gesetzt. Also bei allen Geräten die mit dem EXEC-Binding angesteuert werden stehen die Switche in der basicUI wieder auf OFF.
Was muss ich daran ändern damit der Zustand gespeichert wird?

Mein aktueller Code ist:

.items

Code: Alles auswählen

//Staubsauger IR send
String staubsauger "Staubsauger" { channel="exec:command:staubsauger:input", autoupdate="false" }

//XBOX Steuerung
String xbox "XBOX" { channel="exec:command:xbox:input", autoupdate="false" }

//AV - Reciever
String lghts "AV - Reciever" { channel="exec:command:lghts:input", autoupdate="false" }
.things

Code: Alles auswählen

//Staubsauger IR SEND
Thing exec:command:staubsauger [ command="/home/tim/openhab/conf/scripts/staubsauger.sh %2$s", interval=0, autorun=true ]

//XBOX Steuerung
Thing exec:command:xbox [ command="/home/tim/openhab/conf/scripts/xbox.sh %2$s", interval=0, autorun=true ]

//AV - Reciever
Thing exec:command:lghts [ command="/home/tim/openhab/conf/scripts/lghts.sh %2$s", interval=0, autorun=true ]

.sitemap

Code: Alles auswählen

sitemap default label="Home"
{
	
	Frame label="Geräte"
	{
	Switch item=staubsauger icon="cleaning"
	Switch item=xbox icon="xbox"
	}

	Frame label="Audio"
	{
		Switch item=lghts icon="receiver"
		
	}

}
Grüße,
Tim

Re: Zustand eines Items merken

Verfasst: 15. Apr 2018 02:08
von udo1toni
Entweder, Du setzt autoupdate auf true (dann setzt openHAB den State des Items passend zum letzten gesendeten Befehl) oder Du musst das Script erweitern, damit openHAB auch den Zustand erfragen kann - mit zusätzlichem Channel und eventuell passender Rule (das hab ich auch noch nicht ausprobiert...)

Re: Zustand eines Items merken

Verfasst: 18. Apr 2018 10:10
von Cyrelian
Hi Tim,

für das Speichern des Zustandes kannst du eine "persistence" nutzen.

Hier mal ein Beispiel:

Code: Alles auswählen

AutoHoliday: strategy = everyChange, everyMinute, restoreOnStartup
Dann hast Du den Zustand auch nach einem Neustart wieder.

CU
Cyrelian