[Модуль] Tuya

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

odinvolk
Сообщения: 52
Зарегистрирован: Ср май 31, 2017 3:06 am
Откуда: odinwolk@gmail.com
Благодарил (а): 191 раз
Поблагодарили: 18 раз

Re: [Модуль] Tuya

Сообщение odinvolk » Вт май 16, 2023 6:15 pm

Вышел из положения таким образом

сделал свойство 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');
}
а вот как фотки получить пока не знаю
За это сообщение автора odinvolk поблагодарил:
grifindorec (Вт май 16, 2023 10:08 pm)
Рейтинг: 1.16%
Connect ---- Telegram
Яндекс.Деньги для благодарностей за помощь или нажмите кнопку "Спасибо"!!!
grifindorec
Сообщения: 72
Зарегистрирован: Вт фев 02, 2021 12:54 pm
Благодарил (а): 18 раз
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение grifindorec » Вт май 16, 2023 10:32 pm

odinvolk писал(а):
Вт май 16, 2023 6:15 pm
Вышел из положения таким образом

сделал свойство 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');
}
а вот как фотки получить пока не знаю
Супер, спасибо. Не догадался бы, что оно закодировано.
По поводу фоток, не думали реализовать через webrtc?
https://developer.tuya.com/en/docs/iot/ ... sd4x2hl0se
odinvolk
Сообщения: 52
Зарегистрирован: Ср май 31, 2017 3:06 am
Откуда: odinwolk@gmail.com
Благодарил (а): 191 раз
Поблагодарили: 18 раз

Re: [Модуль] Tuya

Сообщение odinvolk » Вт май 16, 2023 11:46 pm

В webrtc пока не разбирался
Есть мысли как реализовать? Буду благодарен
Connect ---- Telegram
Яндекс.Деньги для благодарностей за помощь или нажмите кнопку "Спасибо"!!!
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Сб май 20, 2023 10:55 pm

grifindorec писал(а):
Вт май 16, 2023 12:35 pm
fandaymon писал(а):
Ср май 10, 2023 3:36 pm
grifindorec писал(а):
Ср май 10, 2023 10:12 am
fandaymon писал(а):
Пн май 08, 2023 1:26 am
grifindorec писал(а):
Чт май 04, 2023 7:17 pm
Добрый день.
Можете подсказать, где в sql хранится длина строк данного модуля?
Дело в том, что данные от устройства полностью не помещаются в необходимый мне столбец.
Что-то такое длина строк?! Что за устройство, что за данные?
Тип устройства sp. Дверной звонок. При нажатии на сам звонок никакие свойства устройства не меняются, кроме "185". Опытным путем в ЛК tuya iot было выяснено, что при нажатии на звонок последние 4 знака данных всегда одинаковые. Проблема в том, что данные в это свойство 185 полность не помещается как раз на эти 4 знака.
Мммм... Интересно - такое мне ещё не попадалось... А когда звонок не нажат, то 4 знака разные?

Значения хранятся в таблице tucommands в поле VALUE varchar(255) NOT NULL DEFAULT ''
Вот к примеру, если нажать на звонок с разницей в минуту.
eyJ2IjoiNS4wIiwiY21kIjoiaXBjX2Rvb3JiZWxsIiwidHlwZSI6ImltYWdlIiwid2l0aCI6InJlc291cmNlcyIsImZpbGVzIjpbWyJ0eS1ldS1zdG9yYWdlMzAtcGljIiwiL2NjZGQzYi00MDIyMTAyNC1od3hkNzU0NzEwM2U0ODZkYjQ4ZS9kZXRlY3QvMTY4MjkzNjUyNi5qcGVnIiwiYmJmYWE0ZDRiNGFhYjRkNCIsIjE2ODU1Mjg1MjgiXV19

eyJ2IjoiNS4wIiwiY21kIjoiaXBjX2Rvb3JiZWxsIiwidHlwZSI6ImltYWdlIiwid2l0aCI6InJlc291cmNlcyIsImZpbGVzIjpbWyJ0eS1ldS1zdG9yYWdlMzAtcGljIiwiL2NjZGQzYi00MDIyMTAyNC1od3hkNzU0NzEwM2U0ODZkYjQ4ZS9kZXRlY3QvMTY4Mjg3NjU1My5qcGVnIiwiOGY4OTIzNjlhOTg1ZWY4OCIsIjE2ODU0Njg1NTYiXV19
Как видно, последние символы XV19 совпадают.
Вот что приходит, если у звонка сработал датчик движения:
eyJ2IjoiNS4wIiwiY21kIjoiaXBjX21vdGlvbiIsInR5cGUiOiJpbWFnZSIsIndpdGgiOiJyZXNvdXJjZXMiLCJmaWxlcyI6W1sidHktZXUtc3RvcmFnZTMwLXBpYyIsIi9jY2RkM2ItNDAyMjEwMjQtaHd4ZDc1NDcxMDNlNDg2ZGI0OGUvZGV0ZWN0LzE2ODQyMjgyNzcuanBlZyIsIjc2NjY0MmY2NTI1MGYwMDYiLCIxNjg2ODIwMjc5Il1dfQ==

eyJ2IjoiNS4wIiwiY21kIjoiaXBjX21vdGlvbiIsInR5cGUiOiJpbWFnZSIsIndpdGgiOiJyZXNvdXJjZXMiLCJmaWxlcyI6W1sidHktZXUtc3RvcmFnZTMwLXBpYyIsIi9jY2RkM2ItNDAyMjEwMjQtaHd4ZDc1NDcxMDNlNDg2ZGI0OGUvZGV0ZWN0LzE2ODQyMjc3NDMuanBlZyIsIjYxZmI1NzlmMTJmMDViYjAiLCIxNjg2ODE5NzQ1Il1dfQ==
Тут как видно, тоже совпадает.

Изменил на VALUE varchar(300) utf8_general_ci. Данные все равно отобразились неполные. Возможно дело не в длине.
Приложу скрин, что в Tuya Iot показывает.
Как верно указал товарищ Одинволк, тут действительно кодируется base64

{"v":"5.0","cmd":"ipc_doorbell","type":"image","with":"resources","files":[["ty-eu-storage30-pic","/ccdd3b-40221024-hwxd7547103e486db48e/detect/1682936526.jpeg","bbfaa4d4b4aab4d4","1685528528"]]}

последние цифры это скорее всего просто текущее время. Я смотрю, что тут содержится ссылка на снимок. Только не очень понятно по какому адресу обращаться - может быть к локальному камеры?

А когда есть движение, то выдаёт

{"v":"5.0","cmd":"ipc_motion","type":"image","with":"resources","files":[["ty-eu-storage30-pic","/ccdd3b-40221024-hwxd7547103e486db48e/detect/1684227743.jpeg","61fb579f12f05bb0","1686819745"]]}
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Сб май 20, 2023 11:15 pm

odinvolk писал(а):
Вт май 16, 2023 11:46 pm
В webrtc пока не разбирался
Есть мысли как реализовать? Буду благодарен
У туи на IOT раньше была ссылка на програмку под GO (возможно и сейчас есть, но я что-то не вижу) - она представляет из себя веб-сервер на котором крутится страничка с выводом камеры. Там на самом деле довольно сложно всё реализовано

ПО кнопке идёт запрос к IOT облаку за конфигурацией WebRTC. Из этой конфигурации мы получаем по какому ключу надо обращаться к MQTT, далее запрашиваем по MQTT адрес, постим команду начать трансляцию и получаем в video html страницы видео с камеры...
Я пытался во всём это разобраться, но какая-то часть реализована на go, какая-то на js - на языках которые я очень плохо знаю, и в связи с нехваткой времени как-то всё это заглохло. Но откомпилировать и запустить программу удалось - действительно всё работает

HLS/RTSP получить гораздо проще -

Что-то типа такого

Код: Выделить всё

$uid = $tuya_module->config['TUYA_UID'];
$device_id = 'тут локальный ид камеры';
$data =    array(
        'type' => 'hls',
    );

$r_c = $tuya_module->Tuya_IOT_POST('/v1.0/users/'.$uid.'/devices/'.$device_id.'/stream/actions/allocate', $data,  0);
получаем Json

{
"result": {
"url": "https://wework1.****.com:554/hls/6c08578d89****411afye1/c146ioh525qd7j2l1590315x7E7xNu6PW3kXSfQL.m3u8?signInfo=PnwWBVmaoNSubTJ7Fb1cjsJNXZeuXn%2F2k2FFwNS6EuYlD5f3UtciKvNxIyYUHsKvODeI6nmDP3y51sWbXVfqbFu6q9PDNDG005cRkSWnfzA%2BxYuq1JMeJoJvWb8uJd5YNtMlbGcsQ81knGoMXCDtJC9fyY%2FPkEyXQyGntlHzVd0%3D"
},
"t": 1615358306701,
"success": true
}

url загоняем в какой-нибудь vlc - и видим поток с камеры. Но! Задержка несколько секунд, потому что этот поток идёт через облако
За это сообщение автора fandaymon поблагодарили (всего 2):
odinvolk (Вс май 21, 2023 9:18 pm) • grifindorec (Вт июн 06, 2023 9:41 pm)
Рейтинг: 2.33%
grifindorec
Сообщения: 72
Зарегистрирован: Вт фев 02, 2021 12:54 pm
Благодарил (а): 18 раз
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение grifindorec » Сб июн 03, 2023 8:11 pm

fandaymon писал(а):
Сб май 20, 2023 10:55 pm
grifindorec писал(а):
Вт май 16, 2023 12:35 pm
fandaymon писал(а):
Ср май 10, 2023 3:36 pm
grifindorec писал(а):
Ср май 10, 2023 10:12 am
fandaymon писал(а):
Пн май 08, 2023 1:26 am
grifindorec писал(а):
Чт май 04, 2023 7:17 pm
Добрый день.
Можете подсказать, где в sql хранится длина строк данного модуля?
Дело в том, что данные от устройства полностью не помещаются в необходимый мне столбец.
Что-то такое длина строк?! Что за устройство, что за данные?
Тип устройства sp. Дверной звонок. При нажатии на сам звонок никакие свойства устройства не меняются, кроме "185". Опытным путем в ЛК tuya iot было выяснено, что при нажатии на звонок последние 4 знака данных всегда одинаковые. Проблема в том, что данные в это свойство 185 полность не помещается как раз на эти 4 знака.
Мммм... Интересно - такое мне ещё не попадалось... А когда звонок не нажат, то 4 знака разные?

Значения хранятся в таблице tucommands в поле VALUE varchar(255) NOT NULL DEFAULT ''
Вот к примеру, если нажать на звонок с разницей в минуту.
eyJ2IjoiNS4wIiwiY21kIjoiaXBjX2Rvb3JiZWxsIiwidHlwZSI6ImltYWdlIiwid2l0aCI6InJlc291cmNlcyIsImZpbGVzIjpbWyJ0eS1ldS1zdG9yYWdlMzAtcGljIiwiL2NjZGQzYi00MDIyMTAyNC1od3hkNzU0NzEwM2U0ODZkYjQ4ZS9kZXRlY3QvMTY4MjkzNjUyNi5qcGVnIiwiYmJmYWE0ZDRiNGFhYjRkNCIsIjE2ODU1Mjg1MjgiXV19

eyJ2IjoiNS4wIiwiY21kIjoiaXBjX2Rvb3JiZWxsIiwidHlwZSI6ImltYWdlIiwid2l0aCI6InJlc291cmNlcyIsImZpbGVzIjpbWyJ0eS1ldS1zdG9yYWdlMzAtcGljIiwiL2NjZGQzYi00MDIyMTAyNC1od3hkNzU0NzEwM2U0ODZkYjQ4ZS9kZXRlY3QvMTY4Mjg3NjU1My5qcGVnIiwiOGY4OTIzNjlhOTg1ZWY4OCIsIjE2ODU0Njg1NTYiXV19
Как видно, последние символы XV19 совпадают.
Вот что приходит, если у звонка сработал датчик движения:
eyJ2IjoiNS4wIiwiY21kIjoiaXBjX21vdGlvbiIsInR5cGUiOiJpbWFnZSIsIndpdGgiOiJyZXNvdXJjZXMiLCJmaWxlcyI6W1sidHktZXUtc3RvcmFnZTMwLXBpYyIsIi9jY2RkM2ItNDAyMjEwMjQtaHd4ZDc1NDcxMDNlNDg2ZGI0OGUvZGV0ZWN0LzE2ODQyMjgyNzcuanBlZyIsIjc2NjY0MmY2NTI1MGYwMDYiLCIxNjg2ODIwMjc5Il1dfQ==

eyJ2IjoiNS4wIiwiY21kIjoiaXBjX21vdGlvbiIsInR5cGUiOiJpbWFnZSIsIndpdGgiOiJyZXNvdXJjZXMiLCJmaWxlcyI6W1sidHktZXUtc3RvcmFnZTMwLXBpYyIsIi9jY2RkM2ItNDAyMjEwMjQtaHd4ZDc1NDcxMDNlNDg2ZGI0OGUvZGV0ZWN0LzE2ODQyMjc3NDMuanBlZyIsIjYxZmI1NzlmMTJmMDViYjAiLCIxNjg2ODE5NzQ1Il1dfQ==
Тут как видно, тоже совпадает.

Изменил на VALUE varchar(300) utf8_general_ci. Данные все равно отобразились неполные. Возможно дело не в длине.
Приложу скрин, что в Tuya Iot показывает.
Как верно указал товарищ Одинволк, тут действительно кодируется base64

{"v":"5.0","cmd":"ipc_doorbell","type":"image","with":"resources","files":[["ty-eu-storage30-pic","/ccdd3b-40221024-hwxd7547103e486db48e/detect/1682936526.jpeg","bbfaa4d4b4aab4d4","1685528528"]]}

последние цифры это скорее всего просто текущее время. Я смотрю, что тут содержится ссылка на снимок. Только не очень понятно по какому адресу обращаться - может быть к локальному камеры?

А когда есть движение, то выдаёт

{"v":"5.0","cmd":"ipc_motion","type":"image","with":"resources","files":[["ty-eu-storage30-pic","/ccdd3b-40221024-hwxd7547103e486db48e/detect/1684227743.jpeg","61fb579f12f05bb0","1686819745"]]}
Да, жалко только, что где-то она обрезается и при разной длине нужно добавлять разное количество символов в конце. Т.е. "]]} и ]} соответственно.
grifindorec
Сообщения: 72
Зарегистрирован: Вт фев 02, 2021 12:54 pm
Благодарил (а): 18 раз
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение grifindorec » Сб июн 03, 2023 9:10 pm

fandaymon писал(а):
Сб май 20, 2023 11:15 pm
odinvolk писал(а):
Вт май 16, 2023 11:46 pm
В webrtc пока не разбирался
Есть мысли как реализовать? Буду благодарен
У туи на IOT раньше была ссылка на програмку под GO (возможно и сейчас есть, но я что-то не вижу) - она представляет из себя веб-сервер на котором крутится страничка с выводом камеры. Там на самом деле довольно сложно всё реализовано

ПО кнопке идёт запрос к IOT облаку за конфигурацией WebRTC. Из этой конфигурации мы получаем по какому ключу надо обращаться к MQTT, далее запрашиваем по MQTT адрес, постим команду начать трансляцию и получаем в video html страницы видео с камеры...
Я пытался во всём это разобраться, но какая-то часть реализована на go, какая-то на js - на языках которые я очень плохо знаю, и в связи с нехваткой времени как-то всё это заглохло. Но откомпилировать и запустить программу удалось - действительно всё работает

HLS/RTSP получить гораздо проще -

Что-то типа такого

Код: Выделить всё

$uid = $tuya_module->config['TUYA_UID'];
$device_id = 'тут локальный ид камеры';
$data =    array(
        'type' => 'hls',
    );

$r_c = $tuya_module->Tuya_IOT_POST('/v1.0/users/'.$uid.'/devices/'.$device_id.'/stream/actions/allocate', $data,  0);
получаем Json

{
"result": {
"url": "https://wework1.****.com:554/hls/6c08578d89****411afye1/c146ioh525qd7j2l1590315x7E7xNu6PW3kXSfQL.m3u8?signInfo=PnwWBVmaoNSubTJ7Fb1cjsJNXZeuXn%2F2k2FFwNS6EuYlD5f3UtciKvNxIyYUHsKvODeI6nmDP3y51sWbXVfqbFu6q9PDNDG005cRkSWnfzA%2BxYuq1JMeJoJvWb8uJd5YNtMlbGcsQ81knGoMXCDtJC9fyY%2FPkEyXQyGntlHzVd0%3D"
},
"t": 1615358306701,
"success": true
}

url загоняем в какой-нибудь vlc - и видим поток с камеры. Но! Задержка несколько секунд, потому что этот поток идёт через облако
Локальный ID это то, что в этом столбце указано?
Что-то мне выдает error.
Попробовал ID из таблички tudevices, тоже самое.
Вложения
Снимок экрана 2023-06-03 210706.png
Снимок экрана 2023-06-03 210706.png (6.89 КБ) 749 просмотров
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Вс июн 04, 2023 3:17 pm

grifindorec писал(а):
Сб июн 03, 2023 9:10 pm
fandaymon писал(а):
Сб май 20, 2023 11:15 pm
odinvolk писал(а):
Вт май 16, 2023 11:46 pm
В webrtc пока не разбирался
Есть мысли как реализовать? Буду благодарен
У туи на IOT раньше была ссылка на програмку под GO (возможно и сейчас есть, но я что-то не вижу) - она представляет из себя веб-сервер на котором крутится страничка с выводом камеры. Там на самом деле довольно сложно всё реализовано

ПО кнопке идёт запрос к IOT облаку за конфигурацией WebRTC. Из этой конфигурации мы получаем по какому ключу надо обращаться к MQTT, далее запрашиваем по MQTT адрес, постим команду начать трансляцию и получаем в video html страницы видео с камеры...
Я пытался во всём это разобраться, но какая-то часть реализована на go, какая-то на js - на языках которые я очень плохо знаю, и в связи с нехваткой времени как-то всё это заглохло. Но откомпилировать и запустить программу удалось - действительно всё работает

HLS/RTSP получить гораздо проще -

Что-то типа такого

Код: Выделить всё

$uid = $tuya_module->config['TUYA_UID'];
$device_id = 'тут локальный ид камеры';
$data =    array(
        'type' => 'hls',
    );

$r_c = $tuya_module->Tuya_IOT_POST('/v1.0/users/'.$uid.'/devices/'.$device_id.'/stream/actions/allocate', $data,  0);
получаем Json

{
"result": {
"url": "https://wework1.****.com:554/hls/6c08578d89****411afye1/c146ioh525qd7j2l1590315x7E7xNu6PW3kXSfQL.m3u8?signInfo=PnwWBVmaoNSubTJ7Fb1cjsJNXZeuXn%2F2k2FFwNS6EuYlD5f3UtciKvNxIyYUHsKvODeI6nmDP3y51sWbXVfqbFu6q9PDNDG005cRkSWnfzA%2BxYuq1JMeJoJvWb8uJd5YNtMlbGcsQ81knGoMXCDtJC9fyY%2FPkEyXQyGntlHzVd0%3D"
},
"t": 1615358306701,
"success": true
}

url загоняем в какой-нибудь vlc - и видим поток с камеры. Но! Задержка несколько секунд, потому что этот поток идёт через облако
Локальный ID это то, что в этом столбце указано?
Что-то мне выдает error.
Попробовал ID из таблички tudevices, тоже самое.
Да - ID именно тот
Кажется в облаке надо было ещё API камер включить...
За это сообщение автора fandaymon поблагодарил:
grifindorec (Вт июн 06, 2023 9:41 pm)
Рейтинг: 1.16%
grifindorec
Сообщения: 72
Зарегистрирован: Вт фев 02, 2021 12:54 pm
Благодарил (а): 18 раз
Поблагодарили: 6 раз

Re: [Модуль] Tuya

Сообщение grifindorec » Вс июн 04, 2023 4:36 pm

fandaymon писал(а):
Вс июн 04, 2023 3:17 pm
grifindorec писал(а):
Сб июн 03, 2023 9:10 pm
fandaymon писал(а):
Сб май 20, 2023 11:15 pm
odinvolk писал(а):
Вт май 16, 2023 11:46 pm
В webrtc пока не разбирался
Есть мысли как реализовать? Буду благодарен
У туи на IOT раньше была ссылка на програмку под GO (возможно и сейчас есть, но я что-то не вижу) - она представляет из себя веб-сервер на котором крутится страничка с выводом камеры. Там на самом деле довольно сложно всё реализовано

ПО кнопке идёт запрос к IOT облаку за конфигурацией WebRTC. Из этой конфигурации мы получаем по какому ключу надо обращаться к MQTT, далее запрашиваем по MQTT адрес, постим команду начать трансляцию и получаем в video html страницы видео с камеры...
Я пытался во всём это разобраться, но какая-то часть реализована на go, какая-то на js - на языках которые я очень плохо знаю, и в связи с нехваткой времени как-то всё это заглохло. Но откомпилировать и запустить программу удалось - действительно всё работает

HLS/RTSP получить гораздо проще -

Что-то типа такого

Код: Выделить всё

$uid = $tuya_module->config['TUYA_UID'];
$device_id = 'тут локальный ид камеры';
$data =    array(
        'type' => 'hls',
    );

$r_c = $tuya_module->Tuya_IOT_POST('/v1.0/users/'.$uid.'/devices/'.$device_id.'/stream/actions/allocate', $data,  0);
получаем Json

{
"result": {
"url": "https://wework1.****.com:554/hls/6c08578d89****411afye1/c146ioh525qd7j2l1590315x7E7xNu6PW3kXSfQL.m3u8?signInfo=PnwWBVmaoNSubTJ7Fb1cjsJNXZeuXn%2F2k2FFwNS6EuYlD5f3UtciKvNxIyYUHsKvODeI6nmDP3y51sWbXVfqbFu6q9PDNDG005cRkSWnfzA%2BxYuq1JMeJoJvWb8uJd5YNtMlbGcsQ81knGoMXCDtJC9fyY%2FPkEyXQyGntlHzVd0%3D"
},
"t": 1615358306701,
"success": true
}

url загоняем в какой-нибудь vlc - и видим поток с камеры. Но! Задержка несколько секунд, потому что этот поток идёт через облако
Локальный ID это то, что в этом столбце указано?
Что-то мне выдает error.
Попробовал ID из таблички tudevices, тоже самое.
Да - ID именно тот
Кажется в облаке надо было ещё API камер включить...
Скорей всего дело в чем то другом, через webrtc показывает.

Пишу:
include_once(DIR_MODULES . 'tuya/tuya.class.php');
$tuya_module = new tuya();
$uid = $tuya_module->config['TUYA_UID'];
echo $uid;
Но он ничего не выводит.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [Модуль] Tuya

Сообщение fandaymon » Пн июн 05, 2023 8:46 am

grifindorec писал(а):
Вс июн 04, 2023 4:36 pm

Скорей всего дело в чем то другом, через webrtc показывает.

Пишу:
include_once(DIR_MODULES . 'tuya/tuya.class.php');
$tuya_module = new tuya();
$uid = $tuya_module->config['TUYA_UID'];
echo $uid;
Но он ничего не выводит.

Код: Выделить всё

include_once(DIR_MODULES . 'tuya/tuya.class.php');
$tuya_module = new tuya();
$tuya_module->getConfig();  // Забыл эту строчку скопировать...
$uid = $tuya_module->config['TUYA_UID'];
echo $uid;
Ответить