Seite 1 von 1

Verwendung von "Scale" Transformation in Rule

Verfasst: 23. Apr 2020 12:08
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 ?

Re: Verwendung von "Scale" Transformation in Rule

Verfasst: 23. Apr 2020 13:43
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

Re: Verwendung von "Scale" Transformation in Rule

Verfasst: 23. Apr 2020 21:46
von PeterA
Ok, dann benötige ich also ein Proxy Item welches dann über eine Rule mit beschrieben wird.

Re: Verwendung von "Scale" Transformation in Rule

Verfasst: 23. Apr 2020 22:29
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

Re: Verwendung von "Scale" Transformation in Rule

Verfasst: 24. Apr 2020 10:44
von peter-pan
Ok. Ich dachte nur, weil du ja eh den Wert in der Regel aufbereitest, um ihn dann zu versenden. ;)

Re: Verwendung von "Scale" Transformation in Rule

Verfasst: 24. Apr 2020 14:38
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"] }