Hello,
I get an error that I couldn’t solve. Maybe someone could help me?
I use a Bash script that reads “sunshine hours” from an online weather service and passes them to openhab vie REST api. I also have a rule that calculates the maximum sunshine hours (sunrise to sunset). Both seem to work.
Then I use a rule for each day that calculates the percentage (forecast_sunshine_hours / max_possible_sunshine_hours) - sounds easy, but only works if the forecast sunshine hours is >= 10.0 hours.
My items:
Number DWD_Vorhersage_d_Sonnenstunden_0 (gWettervorhersage)
Number DWD_Vorhersage_d_Sonnenstunden_1 (gWettervorhersage)
Number DWD_Vorhersage_d_Sonnenstunden_2 (gWettervorhersage)
Number DWD_Vorhersage_d_Sonnenstunden_3 (gWettervorhersage)
Number DWD_Vorhersage_d_Sonnenstunden_4 (gWettervorhersage)
Number DWD_Vorhersage_d_Sonnenstunden_5 (gWettervorhersage)
Number DWD_Vorhersage_d_SonnenstundenProzent_0 (gWettervorhersage)
Number DWD_Vorhersage_d_SonnenstundenProzent_1 (gWettervorhersage)
Number DWD_Vorhersage_d_SonnenstundenProzent_2 (gWettervorhersage)
Number DWD_Vorhersage_d_SonnenstundenProzent_3 (gWettervorhersage)
Number DWD_Vorhersage_d_SonnenstundenProzent_4 (gWettervorhersage)
Number DWD_Vorhersage_d_SonnenstundenProzent_5 (gWettervorhersage)
DateTime Sonnenaufgang_Ende "Sonnenaufgang [%1$tH:%1$tM]" { channel="astro:sun:local:rise#end" }
DateTime Sonnenuntergang_Anfang "Sonnenuntergang [%1$tH:%1$tM]" { channel="astro:sun:local:set#start" }
Number Sonnenscheindauer_max "maximale Sonnenscheindauer [%.1f °C]"
and the rule with the problem (1 of the 6 identical rules)
rule "SonnenstundenProzent Tag 0 berechnen"
when
Item Sonnenscheindauer_max changed or
Item DWD_Vorhersage_d_Sonnenstunden_0 changed or
Item DelayedStartup changed from OFF to ON
then
logInfo("astro_wetter.rules", "SonnenstundenProzent Tag 0 berechnen")
val Number valVorhersage=(DWD_Vorhersage_d_Sonnenstunden_0.state as DecimalType).doubleValue
val Number valMax=(Sonnenscheindauer_max.state as DecimalType).doubleValue
var Number varProzent=100*valVorhersage/valMax
if (varProzent > 100) {
varProzent = 100
}
DWD_Vorhersage_d_SonnenstundenProzent_0.postUpdate(varProzent)
end
Sonnenscheindauer_max has a value of 13.933333 at the moment.
If DWD_Vorhersage_d_Sonnenstunden_0 is 10.0 or 11.7 there is no problem.
If DWD_Vorhersage_d_Sonnenstunden_0 is 4.7 or 7.7 or 4.1 I get this error:
2018-08-20 11:08:31.202 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'SonnenstundenProzent Tag 3 berechnen': Could not cast 7.7 to org.eclipse.smarthome.core.library.types.DecimalType; line 72, column 28, length 53
So I think it’s related to the number of digits - but I can not see what causes this problem.
Thank you for your help!
Ah, if it’s important: I run OH 2.3 on openhabianpi