sergejey / majordomo-mqtt

6 stars 13 forks source link

многоуровневый json #7

Closed dtvims closed 6 years ago

dtvims commented 6 years ago

использую Sonoff-Tasmota для Sonoff pow. Там для сенсоров используется сложная команда вида:

tele/sonoff/STATE = {"Time":"2018-02-01T10:51:33","Uptime":1,"Vcc":3.066,"POWER":"ON","Wifi":{"AP":1,"SSId":"DTViMS","RSSI":100,"APMac":"AE:C1:EE:XX:XX:XX"}} Первый уровень разбирается на путь-значение, а второй уровень получается путь-массив и вызывает warning в modules/mqtt/mqtt.class.php в строке 263, что $value не может быть массивом. Более того, обработать потом значения сенсоров не возможно. Собственно простейшее решение, для реализации рабочего функционала, перед строкой 263 поставить if (is_array($value)){ $value=json_encode($value) } Тогда далее идет все штатно, по рекурсии, без ошибок и можно уже работать с сенсорами.

sergejey commented 6 years ago

Спасибо, внесу изменение.