Wetterdaten vom Deutschen Wetter Dienst

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

JohnDoe2000
Beiträge: 14
Registriert: 13. Sep 2021 15:27
Answers: 0

Wetterdaten vom Deutschen Wetter Dienst

Beitrag von JohnDoe2000 »

Hi zusammen,

ich verzweifle mal wieder an einem Thema. Ich persönlich finde, dass die Wettervorhersagen und generell alle Wetterinformationen zumindest für Essen sehr genau sind und fand es immer schade, dass die Einbindung der Wetterdaten in openHAB nicht möglich ist.

Als ich letztens aber mal etwas Zeit hatte, habe ich mir das noch einmal etwas genauer angeschaut und habe doch einen Weg gefunden die Daten einzubinden. Hier (https://listed.to/@DieSieben/7851/api-d ... erdienstes) ist eigentlich sehr gut beschrieben wie man an Wetterdaten für seinen Ort kommt. Ich beschreibe das mal etwas ausführlicher falls noch andere Leute die Daten vom DWD einbinden wollen und diese nicht ebenfalls so lange überlegen müssen wie ich.

Meine Things sehen wie folgt aus:

Code: Alles auswählen

Thing http:url:dwd "DWD" [
    baseURL="https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/forecast_mosmix_H423.json",
    refresh=15] {
        Channels:
         //heute
         Type string : TemperatureMaxDay0 "TemperatureMaxDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMax" ]
         Type string : TemperatureMinDay0 "TemperatureMinDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMin" ]
         Type string : SunriseDay0 "SunriseDay0" [ stateTransformation="JSONPATH:$.days[0].sunrise" ]
         Type string : SunsetDay0 "SunsetDay0" [ stateTransformation="JSONPATH:$.days[0].sunset" ]
         Type string : SunHoursDay0 "SunHoursDay0" [ stateTransformation="JSONPATH:$.days[0].sunshine" ]
         
         //morgen
         Type string : TemperatureMaxDay1 "TemperatureMaxDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMax" ]
         Type string : TemperatureMinDay1 "TemperatureMinDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMin" ]
         Type string : SunriseDay1 "SunriseDay1" [ stateTransformation="JSONPATH:$.days[1].sunrise" ]
         Type string : SunsetDay1 "SunsetDay1" [ stateTransformation="JSONPATH:$.days[1].sunset" ]
         Type string : SunHoursDay1 "SunHoursDay1" [ stateTransformation="JSONPATH:$.days[1].sunshine" ]
}
Da die Daten noch etwas formatiert werden müssen, habe ich zu jedem der Items aus den Things noch ein schön formatiertes Item angelegt. Hier meine Items:

Code: Alles auswählen

Group:String          gDWD                          "Wetterdaten DWD"

//heute
String                DWDTemperatureMinDay0_text    "Temperature min day0 [%s]"                        (gDWD)    {channel="http:url:dwd:TemperatureMinDay0"}
Number:Temperature    DWDTemperatureMinDay0         "Temp min (heute) [%.1f °C]"      <temperature>    (gDWD)

String                DWDTemperatureMaxDay0_text    "Temperature max day0 [%s]"                        (gDWD)    {channel="http:url:dwd:TemperatureMaxDay0"}
Number:Temperature    DWDTemperatureMaxDay0         "Temp max (heute) [%.1f °C]"      <temperature>    (gDWD)

String                DWDSunriseDay0_text           "Sunrise day0 [%s]"                                (gDWD)    {channel="http:url:dwd:SunriseDay0"}
String                DWDSunriseDay0                "Sunrise day0 [%s]"                                (gDWD)
String                DWDSunsetDay0_text            "Sunset day0 [%s]"                                 (gDWD)    {channel="http:url:dwd:SunsetDay0"}

String                DWDSunHoursDay0_text          "Sun hours day0 [%s]"                              (gDWD)    {channel="http:url:dwd:SunHoursDay0"}
Number                DWDSunHoursDay0               "Sonnenstd. (heute) [%.1f h]"           <time>           (gDWD)




//morgen
String                DWDTemperatureMinDay1_text    "Temperature min day1 [%s]"                        (gDWD)    {channel="http:url:dwd:TemperatureMinDay1"}
Number:Temperature    DWDTemperatureMinDay1         "Temp min (morgen) [%.1f °C]"     <temperature>    (gDWD)

String                DWDTemperatureMaxDay1_text    "Temperature max day1 [%s]"                        (gDWD)    {channel="http:url:dwd:TemperatureMaxDay1"}
Number:Temperature    DWDTemperatureMaxDay1         "Temp max (morgen) [%.1f °C]"     <temperature>    (gDWD)

String                DWDSunHoursDay1_text             "Sun hours day1 [%s]"                              (gDWD)    {channel="http:url:dwd:SunHoursDay1"}
Number                DWDSunHoursDay1                  "Sonnenstd. (morgen) [%.1f h]"       <time>              (gDWD)
In den rules, die auf Änderung des nicht formatieren Items reagieren (*_text), berechne ich das schön formatierte item neu (zB DWDTemperatureMinDay1). Die Daten sind nämlich leider nicht sofort verwendbar.

Temperaturen werden ohne Einheit und Komma übertragen. zB für 10,5 °C wird 105 übertragen.
Die Sonnenstunden werden als Stundenanzahl in Sekunden übertragen zB für 15,2 Std. wird 9120 übertragen.
Die Zeit für den Sonnenaufgang wird (wenn ich das richtig recherchiert habe) als UNIX Timestamp übertragen. zB für 05:15 wird 1686366948000 übertragen.

Die Rule zu der heutigen Mindesttemperatur sieht zB so aus:

Code: Alles auswählen

rule "TemperatureMinDay0_text updated"
when
    Item DWDTemperatureMinDay0_text received update
then
    var Number oldValue = new DecimalType(DWDTemperatureMinDay0_text.state.toString)
    DWDTemperatureMinDay0.postUpdate(oldValue/10)
end
und die rule für die heutigen Sonnenstunden so:

Code: Alles auswählen

rule "DWDSunHoursDay0_text updated"
when
    Item DWDSunHoursDay0_text received update
then
    var Number oldValue = new DecimalType(DWDSunHoursDay0_text.state.toString)
    DWDSunHoursDay0.postUpdate(oldValue/600)
end
Wie Ihr oben bestimmt bereits vermutet habt, habe ich mit den Uhrzeiten ein Problem. Ich habe etwas rumexperiment und herausgefunden, dass wenn ich die aktuellen Millis vom heutigen Tag um 00:00 Uhr von den Millis für den Sonnenaufgang abziehe und die verbleibenden Millis in Stunden und Minuten umreche, die korrekte Uhrzeit herausbekomme. ...eventuell habe Ihr noch eine bessere Lösung. Ich scheidere aber kläglich bei der Umsetzung. Ich kann einfach nicht mit den Millis umgehen. Gibt es eine Möglichkeit die Millis von Java in eine Zeit umrechnen zu lassen.

Danke für Eure Hilfe.

Christian

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

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von udo1toni »

Unter der Voraussetzung, dass Du eine einigermaßen aktuelle Version von openHAB nutzt, kannst Du die Einheit manuell setzen (advanced options bzw. über *.things Datei der Parameter unit.
Die Einheit ist hier übrigens d°C, also Dezi Grad Celsius. Damit entfällt eine Umrechnung. (ja, muss man erst mal drauf kommen...)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

JohnDoe2000
Beiträge: 14
Registriert: 13. Sep 2021 15:27
Answers: 0

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von JohnDoe2000 »

udo1toni hat geschrieben: 10. Jun 2023 12:21 Die Einheit ist hier übrigens d°C, also Dezi Grad Celsius. Damit entfällt eine Umrechnung. (ja, muss man erst mal drauf kommen...)
Danke für den Tipp. Das probiere ich heute Abend mal aus.

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

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von udo1toni »

Ach so... gerade gesehen... unit steht nur für number Channel zur Verfügung, aber es geht hier ja ohnehin um Zahlen, nicht um Text.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

JohnDoe2000
Beiträge: 14
Registriert: 13. Sep 2021 15:27
Answers: 0

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von JohnDoe2000 »

udo1toni hat geschrieben: 10. Jun 2023 21:17 Ach so... gerade gesehen... unit steht nur für number Channel zur Verfügung, aber es geht hier ja ohnehin um Zahlen, nicht um Text.
Ich bekomme das irgendwie nicht hin. Könntest Du mir ein Beispiel dazu schicken?

Hast du auch eine Idee zur Lösung meines Zeitproblems?

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

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von udo1toni »

Code: Alles auswählen

Thing http:url:dwd "DWD" [
    baseURL="https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/forecast_mosmix_H423.json",
    refresh=15 ] {
        Channels:
         //heute
         Type number : TemperatureMaxDay0 "TemperatureMaxDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMax",unit="d°C" ]
         Type number : TemperatureMinDay0 "TemperatureMinDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMin",unit="d°C" ]
         Type string : SunriseDay0 "SunriseDay0" [ stateTransformation="JSONPATH:$.days[0].sunrise" ]
         Type string : SunsetDay0 "SunsetDay0" [ stateTransformation="JSONPATH:$.days[0].sunset" ]
         Type number : SunHoursDay0 "SunHoursDay0" [ stateTransformation="JSONPATH:$.days[0].sunshine",unit="s" ]
         
         //morgen
         Type number : TemperatureMaxDay1 "TemperatureMaxDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMax",unit="d°C" ]
         Type number : TemperatureMinDay1 "TemperatureMinDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMin",unit="d°C" ]
         Type string : SunriseDay1 "SunriseDay1" [ stateTransformation="JSONPATH:$.days[1].sunrise" ]
         Type string : SunsetDay1 "SunsetDay1" [ stateTransformation="JSONPATH:$.days[1].sunset" ]
         Type number : SunHoursDay1 "SunHoursDay1" [ stateTransformation="JSONPATH:$.days[1].sunshine",unit="s" ]
}
Und dazu die passenden Items:

Code: Alles auswählen

Number:Temperature DWDTemperatureMaxDay0 "Temperature max day0 [%.1f °C]"   {channel="http:url:dwd:TemperatureMaxDay0"}
Number:Temperature DWDTemperatureMinDay0 "Temperature min day0 [%.1f °C]"   {channel="http:url:dwd:TemperatureMinDay0"}
DateTime           DWDSunriseDay0        "Sunrise day0"           {channel="http:url:dwd:SunriseDay0"}
DateTime           DWDSunsetDay0         "Sunset day0"            {channel="http:url:dwd:SunsetDay0"}
Number:Time        DWDSunHoursDay0       "Sun hours day0 [%.1f h]"         {channel="http:url:dwd:SunHoursDay0"}
Number:Temperature DWDTemperatureMaxDay1 "Temperature max day1 [%.1f °C]"   {channel="http:url:dwd:TemperatureMaxDay1"}
Number:Temperature DWDTemperatureMinDay1 "Temperature min day1 [%.1f °C]"   {channel="http:url:dwd:TemperatureMinDay1"}
DateTime           DWDSunriseDay1        "Sunrise day1"           {channel="http:url:dwd:SunriseDay1"}
DateTime           DWDSunsetDay1         "Sunset day1"            {channel="http:url:dwd:SunsetDay1"}
Number:Time        DWDSunHoursDay1       "Sun hours day1 [%.1f h]"         {channel="http:url:dwd:SunHoursDay1"}
Wobei das mit den Sonnenstunden nicht stimmen kann.
Sonnenaufgang und Sonnenuntergang bekommst Du leichter über das Astro Binding und das bringt noch eine Menge Zusatzfunktionen mit.
Bleiben also die Temperaturwerte, die mit obiger Konfiguration ohne weitere Umrechnung sauber angezeigt werden sollten (zumindest funktioniert es in meinem Testsystem auf Anhieb)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

JohnDoe2000
Beiträge: 14
Registriert: 13. Sep 2021 15:27
Answers: 0

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von JohnDoe2000 »

udo1toni hat geschrieben: 10. Jun 2023 22:56

Code: Alles auswählen

Thing http:url:dwd "DWD" [
    baseURL="https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/forecast_mosmix_H423.json",
    refresh=15 ] {
        Channels:
         //heute
         Type number : TemperatureMaxDay0 "TemperatureMaxDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMax",unit="d°C" ]
         Type number : TemperatureMinDay0 "TemperatureMinDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMin",unit="d°C" ]
         Type string : SunriseDay0 "SunriseDay0" [ stateTransformation="JSONPATH:$.days[0].sunrise" ]
         Type string : SunsetDay0 "SunsetDay0" [ stateTransformation="JSONPATH:$.days[0].sunset" ]
         Type number : SunHoursDay0 "SunHoursDay0" [ stateTransformation="JSONPATH:$.days[0].sunshine",unit="s" ]
         
         //morgen
         Type number : TemperatureMaxDay1 "TemperatureMaxDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMax",unit="d°C" ]
         Type number : TemperatureMinDay1 "TemperatureMinDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMin",unit="d°C" ]
         Type string : SunriseDay1 "SunriseDay1" [ stateTransformation="JSONPATH:$.days[1].sunrise" ]
         Type string : SunsetDay1 "SunsetDay1" [ stateTransformation="JSONPATH:$.days[1].sunset" ]
         Type number : SunHoursDay1 "SunHoursDay1" [ stateTransformation="JSONPATH:$.days[1].sunshine",unit="s" ]
}
Und dazu die passenden Items:

Code: Alles auswählen

Number:Temperature DWDTemperatureMaxDay0 "Temperature max day0 [%.1f °C]"   {channel="http:url:dwd:TemperatureMaxDay0"}
Number:Temperature DWDTemperatureMinDay0 "Temperature min day0 [%.1f °C]"   {channel="http:url:dwd:TemperatureMinDay0"}
DateTime           DWDSunriseDay0        "Sunrise day0"           {channel="http:url:dwd:SunriseDay0"}
DateTime           DWDSunsetDay0         "Sunset day0"            {channel="http:url:dwd:SunsetDay0"}
Number:Time        DWDSunHoursDay0       "Sun hours day0 [%.1f h]"         {channel="http:url:dwd:SunHoursDay0"}
Number:Temperature DWDTemperatureMaxDay1 "Temperature max day1 [%.1f °C]"   {channel="http:url:dwd:TemperatureMaxDay1"}
Number:Temperature DWDTemperatureMinDay1 "Temperature min day1 [%.1f °C]"   {channel="http:url:dwd:TemperatureMinDay1"}
DateTime           DWDSunriseDay1        "Sunrise day1"           {channel="http:url:dwd:SunriseDay1"}
DateTime           DWDSunsetDay1         "Sunset day1"            {channel="http:url:dwd:SunsetDay1"}
Number:Time        DWDSunHoursDay1       "Sun hours day1 [%.1f h]"         {channel="http:url:dwd:SunHoursDay1"}
Die Temperaturwerte passen nicht. Habe Deinen Code kopiert und bei mir überschrieben. Er teilt nicht durch 10.

Code: Alles auswählen

2023-06-11 06:12:03.302 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'DWDTemperatureMaxDay0' changed from NULL to 307 °C
Wobei das mit den Sonnenstunden nicht stimmen kann.
Sonnenaufgang und Sonnenuntergang bekommst Du leichter über das Astro Binding und das bringt noch eine Menge Zusatzfunktionen mit.
Bleiben also die Temperaturwerte, die mit obiger Konfiguration ohne weitere Umrechnung sauber angezeigt werden sollten (zumindest funktioniert es in meinem Testsystem auf Anhieb)
Genau. die Sonnenstunden müssten noch durch 600 bzw. durch 60 geteilt werden. Das Astro Binding hatte ich auch mal. Das geriet bei mir in die Vergessenheit. Das könnte ich wirklich machen wobei mich das mit der Umrechnung der Millis schon interessieren würde...

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

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von udo1toni »

Wie gesagt, ich habe es bei mir getestet, ich kann Dir also versichern, dass es funktioniert.
Welche exakte Version von openHAB nutzt Du?
Hast Du openHAB mal neu gestartet? Wenn man über Dateikonfiguration arbeitet, kommt es gerne mal vor, dass die Konfiguration nicht korrekt übernommen wird (insbesondere, wenn sich die UID nicht ändert) Schau in die UI (Channeleigenschaften/Advanced Options) ob dort die Unit korrekt auf d°C gesetzt ist. Falls der Parameter unit nicht auftaucht, ist Deine openHAB Version zu alt.
JohnDoe2000 hat geschrieben: 11. Jun 2023 06:18 die Sonnenstunden müssten noch durch 600 bzw. durch 60 geteilt werden.
durch 600 könnte hinkommen. Ich fürchte, Zehntelminuten werden vermutlich nicht unterstützt, aber einen Versuch wäre es wert... die Unit für den Sonnenstundenchannel wäre dann dm (also deziminuten). Ich kann das gerne heute Abend mal ausprobieren.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

JohnDoe2000
Beiträge: 14
Registriert: 13. Sep 2021 15:27
Answers: 0

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von JohnDoe2000 »

udo1toni hat geschrieben: 11. Jun 2023 09:45 Wie gesagt, ich habe es bei mir getestet, ich kann Dir also versichern, dass es funktioniert.
Das hatte ich überlesen.
udo1toni hat geschrieben: 11. Jun 2023 09:45 Welche exakte Version von openHAB nutzt Du?
3.1.0
udo1toni hat geschrieben: 11. Jun 2023 09:45 Hast Du openHAB mal neu gestartet? Wenn man über Dateikonfiguration arbeitet, kommt es gerne mal vor, dass die Konfiguration nicht korrekt übernommen wird (insbesondere, wenn sich die UID nicht ändert)
Das war's. Ein Neustart hat geholfen. Jetzt sieht es gut aus. ...allerdings nur auf der Basic UI. Ich übergebe den Wert auch noch an ein Phyton Skript, dass diesen Wert auf einem ePaper Display anzeigt. ...und dort hätte ich gern gerundet. Hier kommt jetzt aber die zB 307 für 30.7 an. Kann ich da aber machen.

Alternative ich runde in openhab. Wie würde das gehen? Also aus der 307 eine 31 machen?
udo1toni hat geschrieben: 11. Jun 2023 09:45 durch 600 könnte hinkommen. Ich fürchte, Zehntelminuten werden vermutlich nicht unterstützt, aber einen Versuch wäre es wert... die Unit für den Sonnenstundenchannel wäre dann dm (also deziminuten). Ich kann das gerne heute Abend mal ausprobieren.
Das wäre sehr nett. ich probiere das gleich auch mal wenn ich vom Babyschwimmen wieder da bin. Mach Dir keinen Stress und ...vielen, vielen Dank für Deine Unterstützung.

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

Re: Wetterdaten vom Deutschen Wetter Dienst

Beitrag von udo1toni »

Wie ich befürchtet habe, funktioniert die Deziminute als Zeiteinheit leider nicht.
Ehrlich gesagt ist das aber auch eine saudumme Einteilung.
Dem Programmierer, der das verzapft hat gehört ein kräftiger Tritt in den Allerwertesten.

Deshalb hier die sehr unschöne Lösung (sie aber funktioniert):
Thing:

Code: Alles auswählen

Thing http:url:dwd "DWD" [
    baseURL="https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/forecast_mosmix_H423.json",
    refresh=15 ] {
        Channels:
        Type string : json "JSON"
         //heute
         Type number : TemperatureMaxDay0 "TemperatureMaxDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMax",unit="d°C" ]
         Type number : TemperatureMinDay0 "TemperatureMinDay0" [ stateTransformation="JSONPATH:$.days[0].temperatureMin",unit="d°C" ]
         Type string : SunriseDay0 "SunriseDay0" [ stateTransformation="JSONPATH:$.days[0].sunrise" ]
         Type string : SunsetDay0 "SunsetDay0" [ stateTransformation="JSONPATH:$.days[0].sunset" ]
         Type number : SunHoursDay0 "SunHoursDay0" [ stateTransformation="JSONPATH:$.days[0].sunshine∩JS:divby10.js",unit="min" ]
         
         //morgen
         Type number : TemperatureMaxDay1 "TemperatureMaxDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMax",unit="d°C" ]
         Type number : TemperatureMinDay1 "TemperatureMinDay1" [ stateTransformation="JSONPATH:$.days[1].temperatureMin",unit="d°C" ]
         Type string : SunriseDay1 "SunriseDay1" [ stateTransformation="JSONPATH:$.days[1].sunrise" ]
         Type string : SunsetDay1 "SunsetDay1" [ stateTransformation="JSONPATH:$.days[1].sunset" ]
         Type number : SunHoursDay1 "SunHoursDay1" [ stateTransformation="JSONPATH:$.days[1].sunshine∩JS:divby10.js",unit="min" ]
}
Items:

Code: Alles auswählen

Number:Temperature DWDTemperatureMaxDay0 "Temperature max day0 [%.1f °C]"   {channel="http:url:dwd:TemperatureMaxDay0"}
Number:Temperature DWDTemperatureMinDay0 "Temperature min day0 [%.1f °C]"   {channel="http:url:dwd:TemperatureMinDay0"}
DateTime           DWDSunriseDay0        "Sunrise day0"           {channel="http:url:dwd:SunriseDay0"}
DateTime           DWDSunsetDay0         "Sunset day0"            {channel="http:url:dwd:SunsetDay0"}
Number:Time        DWDSunHoursDay0       "Sun hours day0 [%.1f h]"         {channel="http:url:dwd:SunHoursDay0"}
Number:Temperature DWDTemperatureMaxDay1 "Temperature max day1 [%.1f °C]"   {channel="http:url:dwd:TemperatureMaxDay1"}
Number:Temperature DWDTemperatureMinDay1 "Temperature min day1 [%.1f °C]"   {channel="http:url:dwd:TemperatureMinDay1"}
DateTime           DWDSunriseDay1        "Sunrise day1"           {channel="http:url:dwd:SunriseDay1"}
DateTime           DWDSunsetDay1         "Sunset day1"            {channel="http:url:dwd:SunsetDay1"}
Number:Time        DWDSunHoursDay1       "Sun hours day1 [%.1f h]"         {channel="http:url:dwd:SunHoursDay1"}
Und eine Datei divby10.js (abzuspeichern im Verzeichnis $OPENHAB_CONF/transform/):

Code: Alles auswählen

(function(i) {
    return i/10; // divide by 10
  })(input)
Die JavaScript Datei teilt die übergebene Zahl durch 10, als Einheit wird min für Minute gesetzt, in der Anzeige dann h für Stunden.

Voraussetzung: http Binding, JSONPATH und JavaScript Transformation Service müssen installiert sein.
Das Zeichen ∩ stammt aus dem Hilfstext zur stateTransformation (das ist das Zeichen für Schnittmenge, welches im Windows Zeichensatz als "Durchschnitt" benannt ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten