sergejey/majordomo-mqtt

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

Closed this issue · 1 comments

использую 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)
}
Тогда далее идет все штатно, по рекурсии, без ошибок и можно уже работать с сенсорами.

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