Openhab сравнивает данные по теме MQTT со строкой

Я пытаюсь сравнить значение в теме 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

person Ethan Richardson    schedule 20.10.2015    source источник


Ответы (1)


У меня было определение элемента, определенное как строка, а не число

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

Number feedingsensor {mqtt="<[home:{topic}:state:default]"}
person Ethan Richardson    schedule 21.10.2015