2015-10-20 2 views
0

Я пытаюсь сравнить значение в теме MQTT. Я успешно смогу захватить значение и вывести значение на консоль с помощью вызова logInfo().Openhab, сравнивая данные по теме MQTT с строкой

То, что я пытаюсь сделать, это сравнить то, что находится в теме 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 

ответ

0

Я имел определение элемента определяется как строка, а не Номер

правильное определение

Number feedingsensor {mqtt="<[home:{topic}:state:default]"} 
Смежные вопросы