我试图比较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
答案 0 :(得分:0)
我将项目定义定义为String而不是Number
正确的定义是
Number feedingsensor {mqtt="<[home:{topic}:state:default]"}