I believe there is an easy solution to conversion a var to integer in a rule but I haven’t figured it out yet. So, my rule is:
configuration: {}
triggers:
- id: "1"
configuration:
itemName: IV1_puhallin_nopeus
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: >
var iv1_Nopeus = IV1_puhallin_nopeus.state as Number
var iv1_Ilmamaara = (-0.0005*iv1_Nopeus*iv1_Nopeus+0.1036*iv1_Nopeus-2.9167)/2.15*114.3
IV1_Tulo_ilmamaara.sendCommand(iv1_Ilmamaara)
type: script.ScriptAction
This works but I would like to convert var iv1_Ilmamaara to integer. So, I tried with code:
configuration: {}
triggers:
- id: "1"
configuration:
itemName: IV1_puhallin_nopeus
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: >
var iv1_Nopeus = IV1_puhallin_nopeus.state as Number
var Integer iv1_Ilmamaara = (-0.0005*iv1_Nopeus*iv1_Nopeus+0.1036*iv1_Nopeus-2.9167)/2.15*114.3
IV1_Tulo_ilmamaara.sendCommand(iv1_Ilmamaara)
type: script.ScriptAction
I just added Integer in the 2nd line in the script. This didn’t work so next trial was:
configuration: {}
triggers:
- id: "1"
configuration:
itemName: IV1_puhallin_nopeus
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: >
var iv1_Nopeus = IV1_puhallin_nopeus.state as Number
var iv1_Ilmamaara = (-0.0005*iv1_Nopeus*iv1_Nopeus+0.1036*iv1_Nopeus-2.9167)/2.15*114.3
IV1_Tulo_ilmamaara.sendCommand(iv1_Ilmamaara.state as Integer)
type: script.ScriptAction
In this case I modified the 3rd line n the script. Didn’t work either. In the last case I get an error:
The method or field state is undefined for the type double; line 3, column 186, length 5
2022-01-13 06:19:26.461 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '3d92ee6a62' failed: var iv1_Nopeus = IV1_puhallin_nopeus.state as Number
var iv1_Ilmamaara = (-0.0005*iv1_Nopeus*iv1_Nopeus+0.1036*iv1_Nopeus-2.9167)/2.15*114.3
IV1_Tulo_ilmamaara.sendCommand(iv1_Ilmamaara.state as Integer)
The method or field state is undefined for the type double; line 3, column 186, length 5
So, what I’m missing?