Thing Status in Widget

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

Antworten
loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Thing Status in Widget

Beitrag 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!
von oh73 » 20. Feb 2023 15:11
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.
Gehe zur vollständigen Antwort

oh73
Beiträge: 286
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Thing Status in Widget

Beitrag 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.
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Re: Thing Status in Widget

Beitrag 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!

Benutzeravatar
udo1toni
Beiträge: 13996
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Thing Status in Widget

Beitrag 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.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Re: Thing Status in Widget

Beitrag von loewes »

Ah, okay, Danke für die Erklärung! Dann versteh ich das auch...
Und ja, ich meinte natürlich Items ;)

Antworten