Seite 1 von 1

OWM Item Nachkommastellen

Verfasst: 17. Okt 2021 16:57
von Subla
Hallööööchen zusammen,

das ist mein erster Beitrag hier bzw. generell mein erster Beitrag irgendwo. Meistens finde ich selbst meine Lösungen im Netz. Eigentlich immer… naja bis jetzt. Ich bin so verzweifelt und genervt, dass ich hoffe hier Hilfe zu finden.

Ich habe mich vor einiger Zeit entschschlossen unter OpenHAB 3 eine eigene Steuerzentrale zu realisieren um mehre Komponenten miteinander zu verbinden. Wie die meisten halt :D . Immer wenn ich etwas Zeit habe bastelte ich dran herrum. Ich nutze hauptsächlich das HabPanel. Relativ am Anfang wollte ich ein Wetter-Widget darstellen. Dachte mir einfach ein Customer-Widget zu nehmen. Pustekuchen.. die meistens funktionieren nicht mit OH3. Oder ich war einfach zu blöd dazu. Naja wie auch immer… Nach einer langen Suche habe ich eine einfache HTML Variante gefunden und habe die etwas angepasst. Zugegeben hatte ich vorher null Ahnung und lerne noch dazu.

NUN ZU MEINER FRAGE:

Ich versuche die ganze Zeit die Werte die von OWM ausgegeben werden so zu formatieren, dass ich die nachkommastellen selbst bestimmen kann. Wenn ich das Item als dummy anlege und im Format Feld [%.1f] Eingebe funktioniert es. Auch alle anderen Varianten im Netz habe ich versucht aber ich kriege es einfach nicht hin. Ich hoffe ihr könnt mir helfen. Hier ein Ausschnitt von Anfang bis zur aktuellen Temperatur Ausgabe:

<style>
.DayListRowBorder {
border-right: 1px solid black;
border-color: #ffffff;
text-align: center;
}

.DayListRowNoBorder {
text-align: center;
}

.TempMax {
font-style: bold;
}

.TempMin {
font-style: ;
color: ;
}

.TempCurrent {
font-size: ;
}
</style>

<table border=0 width="100%">
<tr>
<td valign="top" align="left">


<img src="http://123.160.999.99:8080/static/image ... ').replace(' ','-') | lowercase }}.png" width="100pt" height="100" />
<span style="font-size: 1.3vw">{{itemValue('OneCallAPIWeatherandForecast_Current_Condition')}} </span>
</td>


<td valign="top" align="right">
<span class="TempCurrent" style="font-size: 1.8vw">{{itemValue('OneCallAPIWeatherandForecast_Current_Temperature')}} </span><br>


Der Wert wird durch OWM mit zwei nachkommastellen angegeben, wenn ich in Items die State-Description im Pattern-Feld ändere zeigt er mir die Änderung in den items an aber übermittelt trotzdem den Wert unverändert. Schlimmer ist es bei den Windgeschwindigkeiten, die haben drei nachkommastellen.

Ich bedanke mich für jede Hilfe und Hinweis schon mal im Vorfeld.

Re: OWM Item Nachkommastellen

Verfasst: 17. Okt 2021 18:58
von sihui
Subla hat geschrieben: 17. Okt 2021 16:57 Ich bedanke mich für jede Hilfe und Hinweis schon mal im Vorfeld.
Eine Temperatur mit einer Nachkommastelle würde man wie folgt realisieren:

Code: Alles auswählen

{{'%.1f' | sprintf:itemValue('Temperature')}}°C
temp.jpg
Den Rest kannst du daraus bestimmt ableiten, viel Erfolg.

Re: OWM Item Nachkommastellen

Verfasst: 20. Okt 2021 00:04
von Subla
Hallo sihui,

erst mal vielen Dank für deine Hilfsbereitschaft und für die Zeit die du dir genommen hast um auf meine Thread zu antwortet. In der Tat hatte ich auch diesen Befehl im Netz gefunden gehabt. Doch bei der Eingabe brach dann immer alles zusammen und die Darstellung war nur noch der reine Quelltext.
Durch weitere suchen im Netz bin ich auf einen Hinweis gestoßen. Und zwar hatte noch jemand das selbe Problem wie ich und ein anderer User antwortete darauf, dass sein itemwert keine reine Zahl sei sondern noch die Einheit beinhaltet. Daraufhin schaute ich genauer hin bei den items und stellte fest, dass der Wert zwar als number angegeben wird aber mit Temperatur zusammen. Sprich OWM, insofern man das nicht ändert, belegt automatisch die items mit der dazugehörigen Einheit. Nachdem ich die Items als reine Zahl deklariert hatte und deinen Befehl eingefügt habe, hat nun alles funktioniert.

Vielen lieben Dank noch mal :) das hat mich viel Zeit und nerven gekostet, dabei war es nur eine kleine Änderung :roll: .

Re: OWM Item Nachkommastellen

Verfasst: 17. Nov 2021 11:23
von peter-pan
Subla hat geschrieben: 20. Okt 2021 00:04 Sprich OWM, insofern man das nicht ändert, belegt automatisch die items mit der dazugehörigen Einheit
Eine kleine Anmerkung hierzu am Rande(Ohne klugscheißern zu wollen).
OWM ist eigentlich die Abkürzung für OpenWeatherMap.
Das was du eigentlich meinst, ist allgemein bekannt als UoM -> Units of Measurement in openHAB.

Re: OWM Item Nachkommastellen

Verfasst: 17. Nov 2021 12:13
von peter-pan
...Es hat mir keine Ruhe gelassen. Deshalb habe ich ein bisschen experimentiert. Allerdings mit den Standard-Widgets aus OH3.

Screenshot:
temp.jpg
YamL-Code des Widgets:

Code: Alles auswählen

component: oh-label-cell
config:
  item: OneCallAPIweatherandforecast_Current_Temperature
  title: OWM - Aussentemperatur
  subtitle: =items.OneCallAPIweatherandforecast_Current_Temperature.state + " mit
    '.state '" +" - " +
    items.OneCallAPIweatherandforecast_Current_Temperature.displayState + " mit
    '.displayState'"
  footer: =Number.parseFloat(items.OneCallAPIweatherandforecast_Current_Temperature.state).toFixed(1)  +
    " ist das kalt"
  trendItem: OneCallAPIweatherandforecast_Current_Temperature
slots: null
Item-Definition (Text-File):

Code: Alles auswählen

Number:Temperature OneCallAPIweatherandforecast_Current_Temperature "Outdoor Temperature [%.1f %unit%]" <Temperature>   (gOCact)         ["Point"]  { channel="openweathermap:onecall:bridge:local:current#temperature" }                  
Im Normalfall, wird die "Pattern-Definition" im OH-Widget umgesetzt(mit dem UoM). Man kann aber auch davon abweichen (.state oder .displayState).

Oder mit einer Eigendefinition (=Number.parseFloat(items.OneCallAPIweatherandforecast_Current_Temperature.state).toFixed(1) + " ist das kalt"), in der das UoM eliminiert wird.