Dynamische icons in Sitemap

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Tentazione
Beiträge: 48
Registriert: 27. Jan 2018 08:46

Dynamische icons in Sitemap

Beitrag von Tentazione »

Moin zusammen,

ich habs in irgendeinem Tutorial mal gesehen...finde es aber nicht wieder. Dort wurden Lampen in Gruppen zusammengefasst. In der Sitemap war eine leuchtende Lampe zu sehen...solange eine der Lampen an war. Wenn alle aus waren wurde das icon grau. Kann mir jemand sagen wie ich das in der Sitemap einstelle? In der Openhab-Hilfe gibt es den Punkt "Dynamische Icons"...aber da werde ich nicht schlau draus.

Danke

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

Re: Dynamische icons in Sitemap

Beitrag von udo1toni »

Du fasst alle Lampenitems in einem Group Item zusammen:

Code: Alles auswählen

Group:Switch:OR(ON,OFF) gLampen "Anzahl Lampen EIN [%d]" <light>
Switch lampe1 "Lampe 1 [%s]" <light> (gLampen) { channel="..." }
Switch lampe2 "Lampe 2 [%s]" <light> (gLampen) { channel="..." }
Auf der Sitemap sieht das dann so aus:

Code: Alles auswählen

Switch item=gLampen mappings=[OFF="Aus!"]
Das erzeugt ein Widget, welches im Label die Anzahl eingeschalteter Lampen ausweist. Das Icon ist eine Lampe, die automatisch leuchtet, sobald eines der Switch Items auf ON steht. Zusätzlich gibt es statt des Schalters nur eine Schaltfläche Aus!, um alle Lampen auf einen Schlag auszuschalten.
Wahlweise kannst Du auch ein Group Widget verwenden, dann gibt es eine Unterseite auf der alle Items der Gruppe gelistet werden.

Ich mache das bei mir so:

Code: Alles auswählen

Text item=gLampen {
    Switch item=gLampen label="Alle Lampen" mappings=[ OFF="Aus!" ]
    Switch item=lampe1 visibility=[ lampe1==ON ]
    Switch item=lampe2 visibility=[ lampe2==ON ]
}
Damit gibt es auf der Unterseite nur für eingeschaltete Lampen ein Widget - und eines, um alle Lampen auszuschalten.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Tentazione
Beiträge: 48
Registriert: 27. Jan 2018 08:46

Re: Dynamische icons in Sitemap

Beitrag von Tentazione »

Code: Alles auswählen

Group:Switch:OR(ON,OFF) gLampen "Anzahl Lampen EIN [%d]" <light>
Switch lampe1 "Lampe 1 [%s]" <light> (gLampen) { channel="..." }
Funktioniert das auch über mehrere Gruppen?

Ich habe folgende Licht-Gruppen

gLight -> alle Leuchten
gEGLight -> alle Leuchten EG
gOGLight -> alle Leuchten OG
gOGSZLight -> alle Leuchten im Schlafzimmer im OG


Wenn ich nun alle Leuchten "kontrollieren möchte...wäre es ja schön wenn die in "gLight" wären...aber eben auch in gEGLight. Verstehst Du was ich meine?

Tentazione
Beiträge: 48
Registriert: 27. Jan 2018 08:46

Re: Dynamische icons in Sitemap

Beitrag von Tentazione »

Mit Switch-Items klappt das... aber mit Group-Items wohl scheinbar nicht.

Code: Alles auswählen

Frame label="Licht" icon="light" {
	Group item=gDG_SW  mappings=[OFF="Aus!", ON="Ein"] {
		Group item=gOff_SW mappings=[OFF="Aus!", ON="Ein"] {
			Switch item=DG_Spot01_S
			Switch item=DG_Spot02_S
			Switch item=DG_Spot03_S
			Switch item=DG_Spot04_S
		}
		Group item=gDG_A_SW mappings=[OFF="Aus!", ON="Ein"] {
			Switch item=DG_Abstell_S
		}
	}
}
liefert im Log folgenden Fehler

Code: Alles auswählen

2019-03-14 21:10:14.555 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'allgemein.sitemap' has errors, therefore ignoring it: [11,21]: mismatched input 'mappings=[' expecting '}'

[12,22]: mismatched input 'mappings=[' expecting '}'

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

Re: Dynamische icons in Sitemap

Beitrag von udo1toni »

Ein Group Widget hat keine Schaltfläche! entsprechend kannst Du auch kein mapping für ein Group Widget definieren.

Ich rate immer, das Group Widget nicht zu verwenden, da man damit zwar schnell eine Sitemap zusammenbauen kann, aber keinerlei Möglichkeiten hat, irgendetwas zu beeinflussen.
Du kannst Group Items auch anderen Group Items zuordnen (aber bitte nicht zirkular...). Der gesendete Befehl sollte dann durchgereicht werden.

Code: Alles auswählen

Group:Switch:OR(ON,OFF) gAlleLichter "Alle Lichter"
    Group:Switch:OR(ON,OFF) gOG1Lichter "Lichter 1. Stock" (gAlleLichter)
        Group:Switch:OR(ON,OFF) gOG1Zimmer1 "Zimmer 1 1. Stock" (gOG1Lichter)
            Switch OG1Zimmer1Lampe1 "Lampe 1" (gOG1Zimmer1)
            Switch OG1Zimmer1Lampe2 "Lampe 2" (gOG1Zimmer1)
        Group:Switch:OR(ON,OFF) gOG1Zimmer2 "Zimmer 2 1. Stock" (gOG1Lichter)
            Switch OG1Zimmer2Lampe1 "Lampe 1" (gOG1Zimmer2)
            Switch OG1Zimmer2Lampe2 "Lampe 2" (gOG1Zimmer2)
    Group:Switch:OR(ON,OFF) gEGLichter "Lichter Erdgeschoss" (gAlleLichter)
        Group:Switch:OR(ON,OFF) gEGZimmer1 "Zimmer 1 Erdgeschoss" (gEGLichter)
            Switch EGZimmer1Lampe1 "Lampe 1" (gEGZimmer1)
            Switch EGZimmer1Lampe2 "Lampe 2" (gEGZimmer1)
        Group:Switch:OR(ON,OFF) gEGZimmer2 "Zimmer 2 Erdgeschoss" (gEGLichter)
            Switch EGZimmer2Lampe1 "Lampe 1" (gEGZimmer2)
            Switch EGZimmer2Lampe2 "Lampe 2" (gEGZimmer2)
    Group:Switch:OR(ON,OFF) gUGLichter "Lichter Untergeschoss" (gAlleLichter)
        Group:Switch:OR(ON,OFF) gUGZimmer1 "Zimmer 2 Keller" (gUGLichter)
            Switch UGZimmer1Lampe1 "Lampe 1" (gUGZimmer1)
            Switch UGZimmer1Lampe2 "Lampe 2" (gUGZimmer1)
        Group:Switch:OR(ON,OFF) gUGZimmer2 "Zimmer 2 Keller" (gUGLichter)
            Switch UGZimmer2Lampe1 "Lampe 1" (gUGZimmer2)
            Switch UGZimmer2Lampe2 "Lampe 2" (gUGZimmer2)
Das Item gAlleLichter sollte alle Leuchten schalten können. Die jeweiligen Untergruppen können dann jeweils nur einen Teil der Leuchten schalten.
In der Sitemap musst Du aber immer das Switch Widget verwenden.

Die Einrückung und Anordnung der Items ist hier nur um es optisch etwas aufzubereiten, das spielt normal keine Rolle.
es gibt noch eine andere Möglichkeit, das gleiche zu erreichen:

Code: Alles auswählen

Group:Switch:OR(ON,OFF) gAlleLichter "Alle Lichter"
Group:Switch:OR(ON,OFF) gOG1Lichter "Lichter 1. Stock"
Group:Switch:OR(ON,OFF) gEGLichter "Lichter Erdgeschoss"
Group:Switch:OR(ON,OFF) gUGLichter "Lichter Untergeschoss"
Group:Switch:OR(ON,OFF) gOG1Zimmer1 "Zimmer 1 1. Stock"
Group:Switch:OR(ON,OFF) gOG1Zimmer2 "Zimmer 2 1. Stock"
Group:Switch:OR(ON,OFF) gEGZimmer1 "Zimmer 1 Erdgeschoss"
Group:Switch:OR(ON,OFF) gEGZimmer2 "Zimmer 2 Erdgeschoss"
Group:Switch:OR(ON,OFF) gUGZimmer1 "Zimmer 2 Keller"
Group:Switch:OR(ON,OFF) gUGZimmer2 "Zimmer 2 Keller"
Switch OG1Zimmer1Lampe1 "Lampe 1" (gAlleLichter, gOG1Lichter, gOG1Zimmer1)
Switch OG1Zimmer1Lampe2 "Lampe 2" (gAlleLichter, gOG1Lichter, gOG1Zimmer1)
Switch OG1Zimmer2Lampe1 "Lampe 1" (gAlleLichter, gOG1Lichter, gOG1Zimmer2)
Switch OG1Zimmer2Lampe2 "Lampe 2" (gAlleLichter, gOG1Lichter, gOG1Zimmer2)
Switch EGZimmer1Lampe1 "Lampe 1" (gAlleLichter, gEGLichter, gEGZimmer1)
Switch EGZimmer1Lampe2 "Lampe 2" (gAlleLichter, gEGLichter, gEGZimmer1)
Switch EGZimmer2Lampe1 "Lampe 1" (gAlleLichter, gEGLichter, gEGZimmer2)
Switch EGZimmer2Lampe2 "Lampe 2" (gAlleLichter, gEGLichter, gEGZimmer2)
Switch UGZimmer1Lampe1 "Lampe 1" (gAlleLichter, gUGLichter, gUGZimmer1)
Switch UGZimmer1Lampe2 "Lampe 2" (gAlleLichter, gUGLichter, gUGZimmer1)
Switch UGZimmer2Lampe1 "Lampe 1" (gAlleLichter, gUGLichter, gUGZimmer2)
Switch UGZimmer2Lampe2 "Lampe 2" (gAlleLichter, gUGLichter, gUGZimmer2)
hier sind nun die Gruppen nicht hierarchisch definiert, stattdessen sind die Items explizit jeder der Gruppen zugewiesen.
Die Abbildung in der Sitemap muss in diesem Fall natürlich komplett händisch erfolgen, aber ich habe ja bereits oben erwähnt, dass ich das Group Widget nicht mag. :)
Funktionieren sollte beide Ansätze.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Tentazione
Beiträge: 48
Registriert: 27. Jan 2018 08:46

Re: Dynamische icons in Sitemap

Beitrag von Tentazione »

Danke für die Geduld. Ich werde dann mal am Wochenende ein wenig basteln.

Eine Frage am Rande...vielleicht weiß das jemand. Ich nutze aktuell Visual Code für die Items... ud da fiel mir auf, das einige Name weiß dargestellt werden...andere grün (siehe Anhang). Warum ist das so? Hab ich da irgendwo nen Fehler?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Dynamische icons in Sitemap

Beitrag von udo1toni »

Nein, kein Fehler. Die Farbgebung hat damit zu tun, ob der Name ausschließlich aus kleinbuchstaben, ausschließlich aus GROSSBUCHSTABEN oder aus gEmischTer Schreibweise besteht.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten