Openhab将MQTT主题的数据与字符串进行比较

时间:2015-10-20 13:25:52

标签: arduino mqtt openhab

我试图比较MQTT主题的价值。我已成功捕获值并通过logInfo()调用将值输出到控制台。

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

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

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

enter image description here

您可以看到该值已被捕获并输出到控制台" 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

1 个答案:

答案 0 :(得分:0)

我将项目定义定义为String而不是Number

正确的定义是

Number feedingsensor {mqtt="<[home:{topic}:state:default]"}