0

我正在尝试比较 MQTT 主题的值。我已经成功地能够捕获值并通过 logInfo() 调用将值输出到控制台。

我要做的是将 MQTT 主题上的内容与一个值进行比较,然后根据主题上的值执行其他 openhab 命令。

我已经能够获取 MQTT 主题的值并使用 .toString 操作将其转换为字符串。

我的代码的结果是执行比较时我的控制台上出现转换错误。

在此处输入图像描述

可以看到该值被捕获并输出到控制台“1023”

我的代码是

import org.eclipse.xtext.xbase.lib.*
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import java.math.BigDecimal.*
import java.lang.Integer
import java.lang.Double
import java.lang.String
import java.lang.Number

var String feedingsensor_reading

rule "start processing feeding sensor"
when 
    Item feedingsensor changed 
then
     logInfo("Step", "***********") 
     logInfo("Step", "** Start **") 
     logInfo("Stap", "***********") 
     logInfo("Step", "** Step 1 **") 

    feedingsensor_reading = feedingsensor.state.toString

    logInfo("Step", feedingsensor_reading) 

    if (feedingsensor_reading == "0"){

       logInfo("DATA", "******* Do Nothing *****") 

    }else
    {
        ... other code to be executed
4

1 回答 1

0

我将项目定义定义为字符串而不是数字

正确的定义是

Number feedingsensor {mqtt="<[home:{topic}:state:default]"}
于 2015-10-21T13:02:36.953 回答