Verwendung von "Scale" Transformation in Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Verwendung von "Scale" Transformation in Rule

Beitrag von PeterA »

Hi zusammen,

dieses Item von OpenWeatherMap liefert mit die Aktuelle Windgeschwindigkeit in m/s:

Code: Alles auswählen

LocalWeatherAndForecast_Current_WindSpeed
Damit daraus die Windgeschwindigkeit nach Beaufort wird gehts in der Sitemap so weiter:

Code: Alles auswählen

        Text   item=LocalWeatherAndForecast_Current_WindSpeed                     label="Windstärke [SCALE(bft_ms_de.scale):%s]"
Und hier die Scale Datei:

Code: Alles auswählen

[..0.3[ = Windstille
[0.3..1.6[ = leiser Zug
[1.6..3.4[ = leichte Brise
[3.4..5.5[ = schwache Brise
[5.5..8.0[ = mäßige Brise
[8.0..10.8[ = frische Brise
[10.8..13.9[ = starker Wind
[13.9..17.2[ = steifer Wind
[17.2..20.8[ = stürmischer Wind
[20.8..24.5[ = Sturm
[24.5..28.5[ = schwerer Sturm
[28.5..32.7[ = orkanartiger Sturm
[32.7 ..] = Orkan
Nun lasse ich mir zu bestimmten Zeiten Wetterdaten "pushen" mit dieser Rule:

Code: Alles auswählen

rule "TemperaturInfo"
when
    Time cron "0 0 6,9,12,16,18,21,23 ? * * *" or
    Item Pushmessage received command ON
then
        
       
sendBroadcastNotification("Temperatur Außen: "+AussenTemp.state.toString+"°C " + "um " + now.toString("HH:mm") + " Uhr und " +LocalWeatherAndForecast_Current_WeatherCondition.state.toString+", Bewölkung Aktuell: " +LocalWeatherAndForecast_Current_Cloudiness.state.toString +"%"+", Vorhersage in 3h: "+LocalWeatherAndForecast_ForecastHours03_ForecastedTemperature.state.toString+ " und Bewölkung " +LocalWeatherAndForecast_ForecastHours03_ForecastedCloudiness.state.toString+", Durchschnitt Temp Haus " +Durchschnitt_Temperatur_Haus.state.toString+"°C"+ ", Durchschnitt Feuchte Haus " +Durchschnitt_Feuchte_Haus.state.toString+"%")
end
Wie bekomme ich denn nun, den Wert der durch die Scale Transformation zu "Text" Beaufort wird, auch als Pushmessage String ?
von PeterA » 24. Apr 2020 14:38
So scheint es fast zu funktionieren:
Das Item bekommt den Status als String zb. "schwache Brise"

Code: Alles auswählen

String LocalWeatherAndForecast_Current_WindSpeed_Msg "Windstärke" {channel="openweathermap:weather-and-forecast:cf12b36a:local:current#wind-speed" [profile="transform:SCALE", function="bft_ms_de.scale"] }
Aber dafür kommt nun eine Warnmeldung im Log:

Code: Alles auswählen

[WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting value 'schwache Brise' of item LocalWeatherAndForecast_Current_WindSpeed_Msg with format '%.1f %unit%': Conversion = 'u'
Edit:
Da war noch ein Fehler in Labelpattern "%s" fehlte. So funktioniert es nun! Und es ist keine Rule notwendig!

Code: Alles auswählen

String LocalWeatherAndForecast_Current_WindSpeed_Msg "Windstärke [%s]" {channel="openweathermap:weather-and-forecast:cf12b36a:local:current#wind-speed" [profile="transform:SCALE", function="bft_ms_de.scale"] }
Gehe zur vollständigen Antwort
- OpenHab 2.4
#PWRUP

Benutzeravatar
peter-pan
Beiträge: 2767
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Verwendung von "Scale" Transformation in Rule

Beitrag von peter-pan »

Hallo Peter,
habe diesen Beitrag von Rich im englischen Forum gefunden. Hab's zwar nicht selbst getestet, aber die Transformation sollte funktionieren. Entweder über den Weg mit der Variablen oder direkt in deinen String hinein.

https://community.openhab.org/t/how-to- ... le/34083/4

Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Verwendung von "Scale" Transformation in Rule

Beitrag von PeterA »

Ok, dann benötige ich also ein Proxy Item welches dann über eine Rule mit beschrieben wird.
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Verwendung von "Scale" Transformation in Rule

Beitrag von PeterA »

Oder, wie ich gerade gefunden habe geht das auch direkt in der Item Definition.....
https://www.openhab.org/addons/transformations/scale/

Dann ist keine Rule notwending
- OpenHab 2.4
#PWRUP

Benutzeravatar
peter-pan
Beiträge: 2767
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Verwendung von "Scale" Transformation in Rule

Beitrag von peter-pan »

Ok. Ich dachte nur, weil du ja eh den Wert in der Regel aufbereitest, um ihn dann zu versenden. ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Verwendung von "Scale" Transformation in Rule

Beitrag von PeterA »

So scheint es fast zu funktionieren:
Das Item bekommt den Status als String zb. "schwache Brise"

Code: Alles auswählen

String LocalWeatherAndForecast_Current_WindSpeed_Msg "Windstärke" {channel="openweathermap:weather-and-forecast:cf12b36a:local:current#wind-speed" [profile="transform:SCALE", function="bft_ms_de.scale"] }
Aber dafür kommt nun eine Warnmeldung im Log:

Code: Alles auswählen

[WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting value 'schwache Brise' of item LocalWeatherAndForecast_Current_WindSpeed_Msg with format '%.1f %unit%': Conversion = 'u'
Edit:
Da war noch ein Fehler in Labelpattern "%s" fehlte. So funktioniert es nun! Und es ist keine Rule notwendig!

Code: Alles auswählen

String LocalWeatherAndForecast_Current_WindSpeed_Msg "Windstärke [%s]" {channel="openweathermap:weather-and-forecast:cf12b36a:local:current#wind-speed" [profile="transform:SCALE", function="bft_ms_de.scale"] }
- OpenHab 2.4
#PWRUP

Antworten