Seite 1 von 1

Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 27. Jan 2022 12:47
von PJH
Hallo sehr geehrte Forumsteilnehmer.

Bei der Custom-Widget Erstellung in openHAB 3 kann man ja auch Farben nach Bedingungen konfigurieren, zumindest nach einer.

Ich habe das nach diesem Muster angelegt:

*** color: "=items[props.category].state != 'xxx' ? 'blue' : 'red'" ***

Geht das aber auch mit mehreren Bedingungen, z.B. wenn xxx=red, wenn yyy=grün, wenn zzz=schwarz, etc.?

Besten Dank im Voraus für entsprechende Hilfe.

Schöne Grüße. PJH

Re: Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 1. Feb 2022 16:16
von PJH
Hat denn keiner der Spezial-Wissenden einen Vorschlag?

Schöne Grüße. PJH

Re: Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 2. Feb 2022 15:14
von peter-pan
PJH hat geschrieben: 1. Feb 2022 16:16 Hat denn keiner der Spezial-Wissenden einen Vorschlag?
Dazu gehöre ich zwar nicht aber vielleicht kannst du mit dem Schnipsel was anfangen. Allerdings musst du bei >=, etc auf die Reihenfolge achten.

Schnipsel:

Code: Alles auswählen

=(items.esp_amica_01_dist.state > 230) ? "oh:cistern-0" : (items.esp_amica_01_dist.state > 50) ? "oh:cistern-60" : (items.esp_amica_01_dist.state > 21) ? "oh:cistern-100" : ""
oder vielleicht:

Code: Alles auswählen

=items.HmIP_SWDO_I_E754_1STATECONTACT.state == "CLOSED"  ?  "orange"  :  "green"

Re: Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 3. Feb 2022 22:57
von PJH
Hallo, ich will mich nur schnell mal melden. Die erste Zeile so in mein Widget zu übernehmen, klappt nicht.

Ich muss die Zeile mal komplett einstellen um nachzuvollziehen was sie so macht.

Die zweite Zeile ist klar, so mache ich das auch.

Erst einmal vielen Dank PP.

Re: Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 4. Feb 2022 01:01
von peter-pan
PJH hat geschrieben: 3. Feb 2022 22:57 Die erste Zeile so in mein Widget zu übernehmen, klappt nicht.
1:1 übernehmen geht ja nicht ganz ganz.

im Prinzip heisst das:

Ist der Abstand grösser 230, dann cisterne-0 (Zisterne voll)
Ist der Abstand grösser 50, dann cisterne-60
Ist der Abstand grösser 21, dann cisterne-100 (Zisterne leer)
mach gar nichts ("")

Grundsätzlich musst du aber damit anfangen deine Bedingungen mit "richtigen" Möglichkeiten abzufragen, da das alles Oder-Bedingungen sind. Das ist so ähnlich, wie in den OH2-Sitemaps. Wenn du gleich auf ungleich (!=) abfragst ist deine Bedingung ja meistens erfüllt.

Welche Bedingungen (Status) sollen denn in deiner Code-Zeile konkret abgefragt werden und welche Wert soll bei Erfüllung gesetzt werden.

Re: Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 4. Feb 2022 20:08
von PJH
Hallo PP,

das mit der Beispielzeile ist mir schon klar. aber der gibt es eben auch drei Vergleiche.

Ich habe schon einmal gesagt, dass ich mich mit dem Widget beschäftige, welches auf dem DB-Binding fusst.

Erstmal ist es ganz interessant, was auf den Bahnhöfen so los ist, aber andererseits zieh ich es zum Lernen heran.

Eine Code-Zeile sieht zum Beispiel so aus:

color: "=[items[props.category].state == 'ICE' | items[props.category].state == 'IC' | items[props.category].state == 'THA' | items[props.category].state == 'NJ' ) ? 'red ': 'blue' "

Hierbei kann ich zwei Farben wechseln, nämlich für ICE/IC/THA (und so weiter) rot, alle anderen blau.

Aber ich kann nicht sagen, bzw. weiß nicht wie, dass ICE rot, IC grün und THA gelb (usw.) sein soll.

Eine weitere Code-Zeile sieht so aus:

text: "=items[props.trip_owner].state != '80' ? 'Betreiber: ' + items[props.trip_owner].state : 'Betreiber: DB ' "

Hierbei ist zu wissen, dass die DB-API für die Angabe des Betreibers Abkürzungen, bzw. Zahlen verwendet.

Wie aus der Zeile hervorgeht, ist "80" = DB. Aber es gibt auch 80333, NRX und so weiter.

In der angegebenen Zeile kann ich also die "80" in "DB" auflösen, aber eben nur eine, wie könnte ich die anderen auflösen.

Alle Abfragen müssen in einer Code-Zeile geschehen, z.B. "Text" darf nur einmal aufscheinen, sonst könnte man ja einfach eine Zeile, eine Abfrage machen, aber das geht eben nicht.

Einen schönen Gruß. Paul

PS: Du bist der Einzige, der sich um mich Armen, Nichtwissenden kümmert, dafür vielen Dank.

Re: Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 4. Feb 2022 22:32
von oh73
ich hätte da auch noch einen Code Schnipsel,

Code: Alles auswählen

<button id="sch_b" style="top:40%;left:0%;right:0;bottom:40%; 
	background: linear-gradient(to bottom, white, {{itemValue('flamingo_') !='ON' ? 'hotpink' : 
	itemState('Flamingo') != 'ON' ? 'skyblue' : 'lime' 
	}});" 
	
damit kann ich meinem Button 3 versch. Hintergrund Farben geben!

Re: Farbanweisungen in openHAB 3 - Custom-Widgets

Verfasst: 13. Feb 2022 13:24
von PJH
Hallo oh73, ich möchte mich mich nur einmal melden und danke für den "CodeSchnipsel" sagen.

Ich bin noch nicht dazu gekommen ihn auszuprobieren, mache es aber noch.

Vielen Dank und einen schönen Gruß.

PJH