NEWS
Парсинг состояний MQTT
-
Прошу прощения за нубский вопрос, но как правильно осуществляется парсинг состояний MQTT из строки JSON:
Есть несколько ламп Milight, на ESP8266 крутится самодельный шлюз
https://github.com/sidoh/esp8266_milight_hub
Настройки следующие
Результат в iobroker:
Все работает, обновляется, но все статусы в виде JSON-строки. Вопрос - что я делаю не так?
-
@Den-Kudryashov, насколько я понял, Вам надо иметь доступ к параметрам в JavaScript? Я, честно говоря, пока не знаю, как будет представлено это свойство в iobroker адаптере JavaScript - как объект или как строка.
Если объект - то просто обращаетесь через точку. Если строка - то сделайте десериализацию, примерно вот так:
var data = JSON.parse(parameter);После чего можно спокойно работать с data как с объектом, указывая поля через точку.
Свойство читается как-то так: getState('milight/states/0x1/rgbw/1')
Я сам пока только начал ковырять брокер, так что 100% рабочий вариант не подскажу, но скоро попробую Вижу, что JSON контейнер довольно похож на контейнер, который рассылает по UDP шлюз Xiaomi.Если что - на гите есть справка по JavaScript в рамках брокера: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#getstate