I want to trigger an event when the battery level of a devices is below a certain value
the item is DevoloMT02648ZWaveNode3_Battery
type is according to PaperUI Number:Dimensionless
for testing i use a Mi Button to activate the rule
with this rule i only see the “rule triggered” output to the log
rule "battery trigger"
when
Channel "mihome:sensor_switch:158d0001ffff6a:button" triggered
then
logWarn("myLog", "rule triggered")
if ( DevoloMT02648ZWaveNode3_Battery.state < 50 ) {
logWarn("myLog", "<50")
}
if ( DevoloMT02648ZWaveNode3_Battery.state > 50 ) {
logWarn("myLog", ">50")
}
end
then i tried
rule "battery trigger"
when
Channel "mihome:sensor_switch:158d0001ffff6a:button" triggered
then
logWarn("myLog", "rule triggered")
if ( (DevoloMT02648ZWaveNode3_Battery.state as DecimalType) < 50 ) {
logWarn("myLog", "<50")
}
if ( (DevoloMT02648ZWaveNode3_Battery.state as DecimalType) > 50 ) {
logWarn("myLog", ">50")
}
end
but that gave me this error:
2018-04-29 17:03:27.122 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'battery trigger': Could not cast 100.0 % to org.eclipse.smarthome.core.library.types.DecimalType; line 38, column 10, length 59
after this I tried
if ( (Double::parseDouble((DevoloMT02648ZWaveNode3_Battery.state.toString).replace(" %",""))) < 50 ) {
ending in
2018-04-29 17:25:34.698 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'battery trigger': Conversion = ')'
the question how can i access the number value without the %?
Thank you.
for the sake of completeness
- openHAB 2.3.0~20180429034940-1 (Build #1265
- raspberry Pi 3b+ with openHABian