Seite 1 von 1

Thing Status in Widget

Verfasst: 20. Feb 2023 08:12
von loewes
Hallo,

ich möchte gerne den Online/Offline Status von meinen Zigbee Geräten direkt auf der Übersichtsseite anzeigen lassen. Also eigentlich genau das, was unter Einstellungen --> Things zu sehen ist, aber für ein paar ausgewählte Geräte. Dafür wollte ich mir ein kleines Widget selbst erstellen, aber irgendwie kann ich nicht auf den Thing-Status zugreifen (in den Properties können nur Items ausgewählt werden?). Ich möchte ja eigentlich nur zu den Things das online/offline Symbol daneben haben (eben so wie in der Thing-Übersicht). Gibt es da eine einfache Abfrage, die ich im Widget verwenden kann? Vielleicht gibt es da auch ein fertiges Widget dafür, das ich nicht gefunden hab?
Vielen Dank!

Re: Thing Status in Widget

Verfasst: 20. Feb 2023 15:11
von oh73
das geht mit einem kleinen Umweg,

ich hab dazu eine Rule wo der Status von dem Thing abgefragt und in ein Item geschrieben wird.

Code: Alles auswählen

rule"Things testen"
when 
	Thing "avmfritz:FRITZ_DECT_200:192_168_178_3:087610076498" changed or			//
	Thing "avmfritz:FRITZ_DECT_200:192_168_178_3:087610144480" changed or			//
	Thing "deconz:onofflight:00212EFFFF072015:84182600000ee37a03" changed or		// Osram 1
		// deconz:onofflight:00212EFFFF072015:84182600000ee37a03
	Thing "deconz:onofflight:00212EFFFF072015:7cb03eaa0a01f19a03" changed or		// Osram 2
	Thing "deconz:onofflight:00212EFFFF072015:7cb03eaa0a032a9c03" changed or		// Osram 3
	Thing "deconz:onofflight:00212EFFFF072015:7cb03eaa0a02a4e803" changed or		// Osram 4
	Thing "deconz:onofflight:00212EFFFF072015:5c0272fffecbc8b501" changed or		// Ikea
	Thing "deconz:onofflight:00212EFFFF072015:00124b001cd5f9dc01" changed or		// eMylo 1
	Thing "deconz:onofflight:00212EFFFF072015:00124b001cd5f9dc02" changed or		// eMylo 2
	Thing "deconz:onofflight:00212EFFFF072015:5c0272fffe287d630b" changed or		// Lidl 1
	Thing "deconz:onofflight:00212EFFFF072015:5c0272fffe88efa80b" changed or		// Lidl 2
	Thing "deconz:onofflight:00212EFFFF072015:84ba20fffe65527d01" changed or		// Blitzwolf 1
	Thing "deconz:onofflight:00212EFFFF072015:84ba20fffe6abc7f01" changed or		// Blitzwolf 2
	Thing "deconz:presencesensor:00212EFFFF072015:847127fffe27f0eb010500" changed or
	Thing "deconz:presencesensor:00212EFFFF072015:847127fffe238dc9010500" changed or
	Item teste_thing changed
then
	var Status = getThingStatusInfo("avmfritz:FRITZ_DECT_200:192_168_178_3:087610076498").getStatus()
	Thing_Steckdose1.postUpdate(Status.toString())

	Status = getThingStatusInfo("avmfritz:FRITZ_DECT_200:192_168_178_3:087610144480").getStatus()
	Thing_Steckdose2.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:84182600000ee37a03").getStatus()
								//   deconz:onofflight:00212EFFFF072015:84182600000ee37a03
	Thing_osram1.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:7cb03eaa0a01f19a03").getStatus()
	Thing_osram2.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:7cb03eaa0a032a9c03").getStatus()
	Thing_osram3.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:7cb03eaa0a02a4e803").getStatus()
	Thing_osram4.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:5c0272fffecbc8b501").getStatus()
	Thing_ikea.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:00124b001cd5f9dc01").getStatus()
	Thing_emylo1.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:00124b001cd5f9dc02").getStatus()
	Thing_emylo2.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:5c0272fffe287d630b").getStatus()
	Thing_lidl1.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:5c0272fffe88efa80b").getStatus()
	Thing_lidl2.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:84ba20fffe65527d01").getStatus()
	Thing_blitzwolf1.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:onofflight:00212EFFFF072015:84ba20fffe6abc7f01").getStatus()
	Thing_blitzwolf2.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:presencesensor:00212EFFFF072015:847127fffe27f0eb010500").getStatus()
	Thing_Sensor1.postUpdate(Status.toString())

	Status = getThingStatusInfo("deconz:presencesensor:00212EFFFF072015:847127fffe238dc9010500").getStatus()
	Thing_Sensor2.postUpdate(Status.toString())

end
ging vielleicht noch was einfacher zu machen, aber funktioniert!

die UID des Things findet man auf der Thing Übersichtsseite.

Re: Thing Status in Widget

Verfasst: 20. Feb 2023 15:14
von loewes
Danke!
Ich dachte, es könnte auch ohne den "Umweg" über eigene Things gehen... Aber so werd ich es dann wohl machen.
Vielen Dank!

Re: Thing Status in Widget

Verfasst: 21. Feb 2023 02:01
von udo1toni
Du meinst Items :) Es werden ja keine zusätzlichen Things benötigt, lediglich Items, welche den Status der Things widerspiegeln.

Die UI (also die normale Benutzeroberfläche) greift für jegliche Anzeige auf den openHAB (B)us zu.
Der Bus in openHAB verwendet Items, um die Status zu speichern.
Weiterhin kann man Events über den Bus bekommen, auch solche, die Things betreffen.
Diese Events haben aber keinen Status, somit kann openHAB auch den aktuellen Zustand nicht ermitteln.
Die UI hat andererseits nicht die Aufgabe, beliebige Datenpunkte dauerhaft zu überwachen und deren Status zu speichern, sie greift also auf den Bus zu und schaut dort nach, deshalb braucht es zwingend ein Item, welches den Zustand speichert.

Re: Thing Status in Widget

Verfasst: 21. Feb 2023 08:00
von loewes
Ah, okay, Danke für die Erklärung! Dann versteh ich das auch...
Und ja, ich meinte natürlich Items ;)