сделал свойство initiative_message
сделал метод initiative_message_decode
и привязал метод к свойству
Код метода initiative_message_decode
Код: Выделить всё
$ot = $this->object_title; // название объекта
$message = $this->getProperty('initiative_message'); // берём из свойства объекта, который привязан к модулю tuya
$dop = '"]]}'; // дописываем недостающие символы иначе json получается битый
sg($ot.'.initiative_message_d',base64_decode($message).$dop); // вставляем в свойство декодированное сообщение
// дальше если нужно. декодируем и разбираем сообщение по параметрам и вставляем в свойства
$base = base64_decode($message).$dop; // декодируем из base64 и добавляем недостающие символы
// должны получить такую строку
//{"v":"4.0","bucket":"ty-eu-storage30","cmd":"ipc_motion","type":"image","with":"resource","alarm":true,"time":1682386398,"files":[["/052910-12289210-szjs5ad413616ba205b3/unify/1682386398.jpeg"]]} должны получить такую строку
//----------------------- Вытягиваем данные
$json = json_decode($base, true);
$ver = $json['v'];
$bucket = $json['bucket'];
$cmd = $json['cmd'];
$type = $json['type'];
$with = $json['with'];
$alarm = $json['alarm'];
$time = $json['time'];
$files = $json['files'][0]['0'];
//----------------------- Записываем данные в свойства объекта
sg($ot.'.v',$ver);
sg($ot.'.bucket',$bucket);
sg($ot.'.cmd',$cmd);
sg($ot.'.type',$type);
sg($ot.'.alarm',intval($alarm));
sg($ot.'.time',date('H:i:s d-m-Y', $time));
sg($ot.'.file',$files);
// ----------------------------------запускаем аларм метод
if ($alarm) {
$this->callMethod('motionDetected');
}