Widget UNDEF entfernen
- lenschith
- Beiträge: 313
- Registriert: 11. Dez 2020 22:36
Re: Widget UNDEF entfernen
Das ist korrekt, in den Eingabeparametern wähle ich dann das Item aus das den Wert 'UNDEF' hat. Auch wenn ich das Item direkt in das Widget eingebe bekomme ich den Wert 'UNDEF'
Ich habe jetzt Testweise ein anderes Item eingefügt weil der DWD gerade ein Datum zur Unwetterwarnung gesendet hat. Aber auch hier ist das verhalten dasselbe.
Item: Widget: Es ist zwar nur eine kosmetische Sache, aber wäre schön wenn das ordentlich aussehen würde.
Hab ich da irgendwo ein generelles Problem?
Das ist ein Custom Widget - selbst erstellt.
Ich habe jetzt Testweise ein anderes Item eingefügt weil der DWD gerade ein Datum zur Unwetterwarnung gesendet hat. Aber auch hier ist das verhalten dasselbe.
Item: Widget: Es ist zwar nur eine kosmetische Sache, aber wäre schön wenn das ordentlich aussehen würde.
Hab ich da irgendwo ein generelles Problem?
Das ist ein Custom Widget - selbst erstellt.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Widget UNDEF entfernen
Ich hab das nochmal mit einem Standard "oh-label-item" getestet.
Das Ergebnis ist eigentlich ganz einfach:
In deinem "item" steht natürlich dein Item, das den "UNDEF" - Wert ausgibt. Nun nimmst du noch eine Zeile hinzu (after) und da gibst du dann deine expression ein. Vielleicht änderst du die Bedingung noch etwas ab (!= "UNDEF"), dann kannst du nach dem" ?" dein Item eingeben und nach dem ":" deine Leerzeichen.
Das Ergebnis ist eigentlich ganz einfach:
Code: Alles auswählen
component: oh-label-item
config:
item: garbage_wastepaper_Title
title: Das ist ein Undef - Test
after: '=items.garbage_wastepaper_Title.state == "UNDEF" ? "undef" : "nicht undef"'
slots: null
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- lenschith
- Beiträge: 313
- Registriert: 11. Dez 2020 22:36
Re: Widget UNDEF entfernen
Super, vielen Dank. So wie das aussieht klappt das jetzt bei mir. Wo bekommt ihr denn immer diese Infos her. Ich habe ohne Ende gesucht aber diese Lösung hab ich nirgendwo gesehen. Gibts denn da irgendwo Tutorials um das zu lernen bzw. besser zu verstehen?
So sieht mein Script jetzt aus:
Ich hoffe ich habe das richtig angepasst. Bei meinen Tests hat es funktioniert.
So sieht mein Script jetzt aus:
Code: Alles auswählen
- component: oh-label-item
config:
icon: f7:clock_fill
iconColor: green
item: =(props.validTo)
after: '=items[props.validTo].state != "UNDEF" ? items[props.validTo].displayState : " "'
title: "Gültig bis: "
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Widget UNDEF entfernen
Ja, so in etwa sollte es funktionieren. Ich weiss jetzt nicht, ob du das ".displayState" unbedingt hier brauchst. Hast du eine Formatierung (Pattern-Metadata) in diesem Item ?
Es gibt schon ein paar Dokus, z.B. hier und hier. Wenn es um CSS geht, findest du hier vielleicht noch einen Rat.
Ich versuch halt das ein oder andere aus den Yaml-Codes der Standard-Widgets abzuleiten. Dann schau ich auch oft im internationalen Forum vorbei und probier dann halt mit dem was ich da finde das ein oder andere aus.
Aber ich muss erlich sagen, so richtig verstanden habe ich das nicht. Ich mach's halt auch mit "Try and Error".
Edit: Wie sieht denn eigentlich dein Eingabe-Feld (Eingabe-Parameter) für dein "props...." aus ? Irgendwie kommt mir das noch etwas komisch vor.
Es gibt schon ein paar Dokus, z.B. hier und hier. Wenn es um CSS geht, findest du hier vielleicht noch einen Rat.
Ich versuch halt das ein oder andere aus den Yaml-Codes der Standard-Widgets abzuleiten. Dann schau ich auch oft im internationalen Forum vorbei und probier dann halt mit dem was ich da finde das ein oder andere aus.
Aber ich muss erlich sagen, so richtig verstanden habe ich das nicht. Ich mach's halt auch mit "Try and Error".
Edit: Wie sieht denn eigentlich dein Eingabe-Feld (Eingabe-Parameter) für dein "props...." aus ? Irgendwie kommt mir das noch etwas komisch vor.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- lenschith
- Beiträge: 313
- Registriert: 11. Dez 2020 22:36
Re: Widget UNDEF entfernen
ja, das displayState brauche ich an der Stelle, weil ich die DateTime in der StateDescription ändere, damit das lesbarer ist.
Was meinst du mit den props?
ich kann hier mal mein Widget Script posten damit du das ganze siehst. Bin dankbar für Tipps falls ich da was falsch habe.
Aber ich wähle dann einfach das Item mit dem DateTime Wert aus. Vom DWD Unwetter Binding.
Was meinst du mit den props?
ich kann hier mal mein Widget Script posten damit du das ganze siehst. Bin dankbar für Tipps falls ich da was falsch habe.
Aber ich wähle dann einfach das Item mit dem DateTime Wert aus. Vom DWD Unwetter Binding.
Code: Alles auswählen
- context: item
description: Warnung Gültig bis
label: Valid to
name: validTo
required: false
type: TEXT
Code: Alles auswählen
uid: Unwetter-Wetter
tags:
- dwd
- lenschi.th
- unwetterwarnung
- wettervorhersage
props:
parameters:
- context: item
description: Warnung Titel
label: Headline
name: headline
required: true
type: TEXT
- context: item
description: Warnung Type
label: Type
name: type
required: true
type: TEXT
- context: item
description: Warnung Schweregrad
label: Severity
name: severity
required: true
type: TEXT
- context: item
description: Warnung Gültig ab
label: Valid from
name: validFrom
required: false
type: TEXT
- context: item
description: Warnung Gültig bis
label: Valid to
name: validTo
required: false
type: TEXT
- context: item
description: Warnung Beschreibung
label: Description
name: description
required: true
type: TEXT
- context: item
description: Anweisung
label: Instruction
name: anweisung
required: false
type: TEXT
parameterGroups: []
timestamp: Dec 2, 2022, 3:48:09 PM
component: f7-card
config:
style:
border-radius: 5px
box-shadow: 5px 5px 10px 1px rgba(0,0,0,0.1)
class:
- padding: 0px
margin-left: 0px
margin-right: 0px
noShadow: false
title: =(items[props.headline].state).replace('keine Warnung','Wetter')
slots:
content:
- component: oh-list-card
config:
noBorder: true
noShadow: true
outline: true
slots:
default:
- component: oh-list-item
config:
badge: =(Math.round(items.OneCallAPIweatherandforecast_ForecastToday_Mintemperature.state.split(' ')[0] * 1) / 1 + '° / ' + Math.round(items.OneCallAPIweatherandforecast_ForecastToday_Maxtemperature.state.split(' ')[0] * 1) / 1 + '°')
badgeColor: gray
icon: "=(items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '01d') ? 'f7:sun_max' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '01n') ? 'f7:moon_stars' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '02d') ? 'f7:cloud_sun' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '02n') ? 'f7:cloud_moon' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '03d') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '03n') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '04d') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '04n') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '09d') ? 'f7:cloud_heavyrain' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '09n') ? 'f7:cloud_heavyrain' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '10d') ? 'f7:cloud_sun_rain' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '10n') ? 'f7:cloud_moon_rain' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '11d') ? 'f7:cloud_sun_bolt' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '11n') ? 'f7:cloud_moon_bolt' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '13d') ? 'f7:cloud_snow' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '13n') ? 'f7:cloud_snow' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '50d') ? 'f7:cloud_fog' : (items.OneCallAPIweatherandforecast_ForecastToday_Iconid.state === '50n') ? 'f7:cloud_fog' : '?'"
iconColor: gray
title: Wetter heute
- component: oh-list-item
config:
badge: =(Math.round(items.OneCallAPIweatherandforecast_ForecastTomorrow_Mintemperature.state.split(' ')[0] * 1) / 1 + '° / ' + Math.round(items.OneCallAPIweatherandforecast_ForecastTomorrow_Maxtemperature.state.split(' ')[0] * 1) / 1 + '°')
badgeColor: gray
icon: "=(items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '01d') ? 'f7:sun_max' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '01n') ? 'f7:moon_stars' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '02d') ? 'f7:cloud_sun' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '02n') ? 'f7:cloud_moon' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '03d') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '03n') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '04d') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '04n') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '09d') ? 'f7:cloud_heavyrain' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '09n') ? 'f7:cloud_heavyrain' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '10d') ? 'f7:cloud_sun_rain' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '10n') ? 'f7:cloud_moon_rain' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '11d') ? 'f7:cloud_sun_bolt' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '11n') ? 'f7:cloud_moon_bolt' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '13d') ? 'f7:cloud_snow' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '13n') ? 'f7:cloud_snow' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '50d') ? 'f7:cloud_fog' : (items.OneCallAPIweatherandforecast_ForecastTomorrow_Iconid.state === '50n') ? 'f7:cloud_fog' : '?'"
iconColor: gray
title: Wetter morgen
- component: oh-list-item
config:
badge: =(items[props.severity].state).replace('keine Warnung','')
badgeColor: '=items[props.severity].state === "LEICHT" ? "yellow" : items[props.severity].state === "MITTEL" ? "violett" : items[props.severity].state === "SCHWER" ? "orange" : items[props.severity].state === "SEHR SCHWER!" ? "red" : items[props.severity].state === "keine Warnung" ? "blue" : "white"'
icon: "=(items.OneCallAPIweatherandforecast_Current_Iconid.state === '01d') ? 'f7:sun_max' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '01n') ? 'f7:moon_stars' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '02d') ? 'f7:cloud_sun' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '02n') ? 'f7:cloud_moon' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '03d') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '03n') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '04d') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '04n') ? 'f7:cloud' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '09d') ? 'f7:cloud_heavyrain' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '09n') ? 'f7:cloud_heavyrain' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '10d') ? 'f7:cloud_sun_rain' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '10n') ? 'f7:cloud_moon_rain' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '11d') ? 'f7:cloud_sun_bolt' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '11n') ? 'f7:cloud_moon_bolt' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '13d') ? 'f7:cloud_snow' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '13n') ? 'f7:cloud_snow' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '50d') ? 'f7:cloud_fog' : (items.OneCallAPIweatherandforecast_Current_Iconid.state === '50n') ? 'f7:cloud_fog' : items[props.severity].state === 'keine Warnung' ? 'f7:checkmark_2' : '?'"
iconColor: '=items[props.severity].state === "LEICHT" ? "yellow" : items[props.severity].state === "MITTEL" ? "violett" : items[props.severity].state === "SCHWER" ? "orange" : items[props.severity].state === "SEHR SCHWER!" ? "red" : items[props.severity].state === "keine Warnung" ? "blue" : "white"'
title: =items[props.type].state
- component: oh-label-item
config:
icon: f7:clock
iconColor: red
item: =(props.validFrom)
after: '=items[props.validFrom].state != "UNDEF" ? items[props.validFrom].displayState : " "'
title: "Gültig ab:"
- component: oh-label-item
config:
icon: f7:clock_fill
iconColor: green
item: =(props.validTo)
after: '=items[props.validTo].state != "UNDEF" ? items[props.validTo].displayState : " "'
title: "Gültig bis: "
- component: f7-card
config:
content: =(items[props.description].state).replace('keine Warnung','')
noBorder: false
noShadow: true
outline: false
- component: f7-card-footer
slots:
default:
- component: Label
config:
style:
color: red
font-size: 15px
font-weight: 800
text-align: center
text: =(items[props.anweisung].state).replace('keine Warnung','')
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Widget UNDEF entfernen
Passt alles. Da hab ich mich wohl vertan.
Wie steuerst du denn deine AVM-Thermostate ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- lenschith
- Beiträge: 313
- Registriert: 11. Dez 2020 22:36
Re: Widget UNDEF entfernen
Die Thermostate steuere ich eigentlich kaum über OH. Ich nutze hier hauptsächlich die Vorlagen die ich auf der Fritz!Box erstellt habe und schalte die über die Sitemap. Oder ändere mal den Modus über die Sitemap.
Lese zum Großteil nur die Temperatur, Batterie Status oder Fenster auf aus und versende dann Notifications beim über/unterschreiten von Schwellwerten.
Lese zum Großteil nur die Temperatur, Batterie Status oder Fenster auf aus und versende dann Notifications beim über/unterschreiten von Schwellwerten.
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Re: Widget UNDEF entfernen
ich habe mal diesen Beitrag nochmal hervorgeholt. Auch in der UI erstellte items kann man mit dieser funktion sehr gut beeinflussen.scotty hat geschrieben: ↑1. Dez 2022 15:22 diese Function ändert UNDEF in "-"
Code: Alles auswählen
(function(i) { var state = "" var value = i if(value == "UNDEF") { state = "-"; } else { state = value; } return state; })(input)
1) js file in TRANSFORM mit name file.js erstellen
2) in der UI das gewünschte item aufrufen und dann den angezeigten entsprechenden channel link aufrufen
3) das Profil JS anklicken. Wenn man weiter unten mit dem Mauszeiger auf das Feld Dateiname klickt, werden einem die vorhandenen Files.js angezeigt und das gewünschte kann ausgewählt werden.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II