Icons über eine Regel steuern

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Torti
Beiträge: 40
Registriert: 24. Mär 2019 09:42
Answers: 0

Icons über eine Regel steuern

Beitrag von Torti »

Hallo, ich versuche gerade meine Garagentor Sitemap zu verschönern.
Ich habe an meinem Antrieb einen Sonoffsv und 2 Magnetkontakte.
Wenn der Kontakt zum unteren hergestellt ist, sagt der Switch3 (ON) dieses habe ich über Mapping dann auf so eingestellt, dass er von AUF nach ZU gestellt wird.
Beim oberen Kontakt dann eben anders herum.
Funzt auch super.
Mich stört nur die Optik.
Am liebsten hätte ich nur ein Icon (Garagedoor-open) wenn der obere Switch aktiv ist.
und dann natürlich (-close) wenn zu.
kann man das in nur einem sichtbaren Item in der Sitemap per Rule herstellen?

Code: Alles auswählen

            Text label="Seat"            icon="garage_detached" {
            Frame label="Garagenöffnung" {
                    Switch      item=Garage2                                     label="Seat  []  "              icon="garage_detached_selected"                   mappings=[ ON="Power" ]
                    Switch      item=Garage2_zu                                  label="Garagenzustand [] "       icon="Garagedoor"                                mappings=[ ON="Zu", OFF="Auf"]
                    Switch      item=Garage2_auf                                 label="Garage Auf [] "           icon="Garagedoor"                                                                        mappings=[ON="Auf", OFF="ZU?"]
So habe ich es im Moment
Danke

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Icons über eine Regel steuern

Beitrag von peter-pan »

...meinst du vielleicht so:

Code: Alles auswählen

Text label="Seat"            icon="garage_detached" {
Frame label="Garagenöffnung" {
        Switch      item=Garage2              label="Seat  []  "              icon="garage_detached_selected"   mappings=[ ON="Power" ]
        Switch      item=Garage2_zu           label="Garagenzustand [] "      icon="Garagedoor"                 mappings=[ ON="Zu", OFF="Auf"]  visibility=[Garage2_zu==OFF]
        Switch      item=Garage2_auf          label="Garage Auf [] "          icon="Garagedoor"                 mappings=[ON="Auf", OFF="ZU?"]  visibility=[Garage2_auf==ON]
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Icons über eine Regel steuern

Beitrag von int5749 »

Also ich habe auch 2 Kontakte die auf einem Binäreingang liegen, möchte die Garage aber (fast) ausschließlich ohne OpenHab fahren, lasse mir aber den Status in der Sitemap anzeigen, ob das Garagentor geöffnet oder geschlossen ist, falls es fährt.
Darüber hinaus blende ich einen Schalter ein, wenn das Garagentor länger als 5 Minuten offen steht (vergessen wurde) um es dann schliessen zu können.

Items

Code: Alles auswählen

	/* Garage */
Contact Tor_Garage_o 	{channel="knx:device:bridge:0_8_15:ch2"}
Contact Tor_Garage_u 	{channel="knx:device:bridge:0_8_15:ch1"}
String Tor_Garage		"Garagentor [MAP(de.map):%s]"		<garagedoor>	(Garage)
Switch Garagentor		"Garagentor"	<garagedoor>		{channel="knx:device:bridge:0_8_16:ch11",autoupdate="false"}
Switch myGarageSwitchVis
Das dynamische Icon "garagentor" ist dann je nach Status geöffnet oder geschlossen.

Rules

Code: Alles auswählen

var Timer garageOpen = null

	// Garage
rule Garagentor
when
	Item Tor_Garage_o changed or
	Item Tor_Garage_u changed or
	System started
then
	if (Tor_Garage_o.state == CLOSED && Tor_Garage_u.state == OPEN) {
		Tor_Garage.postUpdate("OPEN")
	} else if (Tor_Garage_o.state == OPEN && Tor_Garage_u.state == CLOSED) {
		Tor_Garage.postUpdate("CLOSED")
	} else {
		Tor_Garage.postUpdate("MOVE")
	}
end

rule Garage
when
	Item Tor_Garage changed
then
	if (Tor_Garage.state == "MOVE" && previousState == "CLOSED") {
		pushNotification("Information", "Garagentor fährt auf: " + now)
		// Garagentorwaechter
		if(garageOpen===null){
		garageOpen = createTimer(now.plusMinutes(5)) [|
			myGarageSwitchVis.postUpdate(ON)
			pushNotification("Achtung", "Garagentor steht offen: " + now)
			]
		}
	}
	else if (Tor_Garage.state == "OPEN" && previousState == "MOVE") {
	}
	else if (Tor_Garage.state == "MOVE" && previousState == "OPEN") {
	}
	else if (Tor_Garage.state == "CLOSED" && previousState == "MOVE") {
		garageOpen.cancel
		garageOpen = null
		if (myGarageSwitchVis.state == ON) {
			pushNotification("Information", "Garagentor wurde geschlossen: " + now)
		} else {
		}
		myGarageSwitchVis.postUpdate(OFF)
	}
end
Sitemap

Code: Alles auswählen

Text item=Tor_Garage visibility=[myGarageSwitchVis=="OFF"]
Switch item=Garagentor visibility=[myGarageSwitchVis=="ON"] mappings=[ON="Garagentor schliessen"]
Durch das Item myGarageSwitchVis ist dann immer nur einer der beiden Einträge sichtbar
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Torti
Beiträge: 40
Registriert: 24. Mär 2019 09:42
Answers: 0

Re: Icons über eine Regel steuern

Beitrag von Torti »

Hallo und vielen Dank euch beiden.
Peter-Pan, die einfachen Dinge genau vor den Augen und dann nicht darauf kommen. ;))
Int5749 das ist ja super komplex, genial gelöst. Deine Idee werde ich als neues Projekt im nächsten Schritt verwirklichen. Anfangen werde ich wohl aber mir dem einfügen vom Visibility in der vorhanden map.
Danke für die unglaublich schnelle Antwort.
Ich melde mich aber noch mal wenn ich auch die 2te Version umgesetzt habe.
Gruß Thorsten

Antworten