Farbanweisungen in openHAB 3 - Custom-Widgets
-
- Beiträge: 135
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Farbanweisungen in openHAB 3 - Custom-Widgets
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
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
openHAB 4.3 im Synology NAS Docker-Container.
-
- Beiträge: 135
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Farbanweisungen in openHAB 3 - Custom-Widgets
Hat denn keiner der Spezial-Wissenden einen Vorschlag?
Schöne Grüße. PJH
Schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Farbanweisungen in openHAB 3 - Custom-Widgets
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" : ""
Code: Alles auswählen
=items.HmIP_SWDO_I_E754_1STATECONTACT.state == "CLOSED" ? "orange" : "green"
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 135
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Farbanweisungen in openHAB 3 - Custom-Widgets
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.
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.
openHAB 4.3 im Synology NAS Docker-Container.
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Farbanweisungen in openHAB 3 - Custom-Widgets
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.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 135
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Farbanweisungen in openHAB 3 - Custom-Widgets
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.
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.
openHAB 4.3 im Synology NAS Docker-Container.
-
- Beiträge: 302
- Registriert: 7. Mär 2021 14:49
Re: Farbanweisungen in openHAB 3 - Custom-Widgets
ich hätte da auch noch einen Code Schnipsel,
damit kann ich meinem Button 3 versch. Hintergrund Farben geben!
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'
}});"
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux
-
- Beiträge: 135
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Farbanweisungen in openHAB 3 - Custom-Widgets
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
Ich bin noch nicht dazu gekommen ihn auszuprobieren, mache es aber noch.
Vielen Dank und einen schönen Gruß.
PJH
openHAB 4.3 im Synology NAS Docker-Container.