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 に答える