Apollon77 / ioBroker.tuya

ioBroker adapter to connect to several small and cheap Wifi devices that care connected to the Tuya Cloud and mostly use the Smartlife App/Alexa-Skill
MIT License
87 stars 21 forks source link

Camera support (non RTS stream) #566

Open c1328 opened 5 months ago

c1328 commented 5 months ago

Is your feature request related to a problem? Please describe. Alle meine Tuya devices werden erkannt und bieten einen tollen Funktionsumfang - Danke dafür! Testweise habe ich mal Homeassistant mit dem Tuyaadapter ausprobiert und gesehen, dass meine Tuya Cameras sofort ein Bild lieferten und sogar zur Wiedergabe eines Streams zu bewegen waren, obwohl bisher alle versuche ihnen einen RTS Stream zu entlocken bisher scheiterten.

Describe the solution you'd like Ähnlichen Zugriff auf die Cameras wie in Homeassistant

Describe alternatives you've considered Ich habe versuchsweise mal mit dem Homeassistant <-> IoBroker Adapter gespielt, aber komme da aktuell nicht weiter, bzw. bekomme keinen Stream. Alternativ könnte man sich ein Bild von der Homeassistent API holen. Aber eigentlich will ich nur deswegen keinen Homeassistant laufen haben.

Additional context Add any other context or screenshots about the feature request here.

Apollon77 commented 5 months ago

Ok basically that means that the tuya python library somehow supports video, so need to find out what they do and how ... but without having such a device (and the time) that might need some time ...

Apollon77 commented 5 months ago

what exactly it is for a device. please share the schema and all infos - can be taken from the device objects from iobrtoker. please also show the created objects

c1328 commented 5 months ago

Hi! Of course, lets collect some information regarding my device: Model: SIRO SMART PTZ Kamera -> https://smart-life24.de/produktwelt/wlan-ptz-kamera/

Schema (I masked some IDs):

{
  "type": "device",
  "common": {
    "name": "Cam",
    "read": true
  },
  "native": {
    "virtual": false,
    "lon": "3.1500",
    "ownerId": "66666666",
    "uuid": "66666666666666",
    "skills": {
      "p2pType": 4
    },
    "accessType": 0,
    "otaInfo": {
      "supportAuto": true,
      "otaUpgradeModes": [
        0
      ],
      "otaModuleMap": {
        "wifi": {
          "upgradeStatus": 0,
          "cdv": "1.0.0",
          "bv": "30.01",
          "verSw": "2.1.56.580"
        },
        "mcu": {
          "upgradeStatus": 0,
          "cdv": "",
          "verSw": "2.1.56.580"
        }
      }
    },
    "iconUrl": "https://images.tuyaeu.com/smart/icon/ay1519800722250B425i/6666666666666.png",
    "communication": {
      "communicationNode": "66666666666666",
      "communicationModes": [
        {
          "pv": "",
          "type": 0
        },
        {
          "pv": "2.2",
          "type": 1
        }
      ],
      "connectionStatus": 1,
      "mqttTopicAttr": 1,
      "dataModel": 1
    },
    "gatewayVerCAD": "1.0.1",
    "lat": "66.66666",
    "runtimeEnv": "prod",
    "devId": "666666666",
    "productId": "666666666",
    "activeTime": 1685106869,
    "cloudOnline": true,
    "baseAttribute": 1024,
    "devAttribute": 15,
    "dataPointInfo": {
      "dpMaxTime": 1706306400621,
      "dpName": {},
      "dps": {
        "103": true,
        "104": true,
        "105": false,
        "106": 1,
        "109": "62488768|54494720|7994048",
        "110": 1,
        "111": true,
        "113": false,
        "115": "<removed base64 encoded string>",
        "116": true,
        "117": 0,
        "119": 2,
        "120": false,
        "123": 50,
        "132": true,
        "134": true,
        "139": false,
        "140": 0,
        "150": true,
        "151": 0,
        "159": false,
        "161": true,
        "162": true,
        "168": false,
        "169": "{\"num\":1,\"region0\":{\"x\":6,\"y\":14,\"xlen\":88,\"ylen\":86}}",
        "170": true,
        "185": "<removed base64 encoded string>",
        "192": 50,
        "193": 50,
        "195": 80,
        "198": true
      },
      "dpsTime": {
        "103": 1702851622251,
        "104": 1702851622314,
        "105": 1702851622150,
        "106": 1702851622447,
        "109": 1702851626703,
        "110": 1706098162980,
        "111": 1686774170290,
        "113": 1685106869749,
        "115": 1685107137849,
        "116": 1705655984953,
        "117": 1702851626970,
        "119": 1705655984387,
        "120": 1701936098323,
        "123": 1702851627262,
        "132": 1691409303908,
        "134": 1706306400621,
        "139": 1706172958641,
        "140": 1702851627087,
        "150": 1702851626820,
        "151": 1702851626887,
        "159": 1702851627142,
        "161": 1685109181190,
        "162": 1685107567919,
        "168": 1702851622542,
        "169": 1702851622623,
        "170": 1685107247167,
        "185": 1706172895608,
        "192": 1702851627319,
        "193": 1702851627373,
        "195": 1685979563049,
        "198": 1702851622709,
        "212": 1685106869749
      }
    },
    "meta": {},
    "name": "Cam",
    "timezoneId": "Europe/Berlin",
    "deviceTopo": {},
    "localKey": "_!+ZV.xi+Jiy^(fT",
    "dpName": {},
    "groudId": 156811361,
    "schema": [
      {
        "code": "basic_flip",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面翻转",
        "property": {
          "type": "bool"
        },
        "id": 103,
        "editPermission": false
      },
      {
        "code": "basic_osd",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "时间水印",
        "property": {
          "type": "bool"
        },
        "id": 104,
        "editPermission": false
      },
      {
        "code": "basic_private",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "隐私模式",
        "property": {
          "type": "bool"
        },
        "id": 105,
        "editPermission": false
      },
      {
        "code": "motion_sensitivity",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "移动侦测灵敏度",
        "property": {
          "range": [
            "0",
            "1",
            "2"
          ],
          "type": "enum"
        },
        "id": 106,
        "editPermission": false
      },
      {
        "code": "sd_storge",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "获取存储卡容量",
        "property": {
          "type": "string",
          "maxlen": 255
        },
        "id": 109,
        "editPermission": false
      },
      {
        "code": "sd_status",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "存储卡状态",
        "property": {
          "min": 1,
          "max": 5,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 110,
        "editPermission": false
      },
      {
        "code": "sd_format",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "存储卡格式化",
        "property": {
          "type": "bool"
        },
        "id": 111,
        "editPermission": false
      },
      {
        "code": "motion_record",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "SD卡录像模式",
        "property": {
          "type": "bool"
        },
        "id": 113,
        "editPermission": false
      },
      {
        "code": "movement_detect_pic",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "raw",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "检测到移动",
        "id": 115,
        "editPermission": false
      },
      {
        "code": "ptz_stop",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "停止转动",
        "property": {
          "type": "bool"
        },
        "id": 116,
        "editPermission": false
      },
      {
        "code": "sd_format_state",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "格式化状态",
        "property": {
          "min": -20000,
          "max": 200000,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 117,
        "editPermission": false
      },
      {
        "code": "ptz_control",
        "defaultValue": "1",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "云台转动",
        "property": {
          "range": [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "0"
          ],
          "type": "enum"
        },
        "id": 119,
        "editPermission": false
      },
      {
        "code": "ipc_auto_siren",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-sound",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "触发蜂鸣器",
        "property": {
          "type": "bool"
        },
        "id": 120,
        "editPermission": true
      },
      {
        "code": "ipc_sharp",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面锐度",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 123,
        "editPermission": true
      },
      {
        "code": "ptz_calibration",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "云台校准",
        "property": {
          "type": "bool"
        },
        "id": 132,
        "editPermission": true
      },
      {
        "code": "motion_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "移动报警开关",
        "property": {
          "type": "bool"
        },
        "id": 134,
        "editPermission": false
      },
      {
        "code": "decibel_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "声音侦测报警开关",
        "property": {
          "type": "bool"
        },
        "id": 139,
        "editPermission": true
      },
      {
        "code": "decibel_sensitivity",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "声音侦测灵敏度",
        "property": {
          "range": [
            "0",
            "1"
          ],
          "type": "enum"
        },
        "id": 140,
        "editPermission": true
      },
      {
        "code": "record_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "SD卡录像开关",
        "property": {
          "type": "bool"
        },
        "id": 150,
        "editPermission": false
      },
      {
        "code": "record_mode",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "录像模式",
        "property": {
          "range": [
            "1",
            "2"
          ],
          "type": "enum"
        },
        "id": 151,
        "editPermission": false
      },
      {
        "code": "siren_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "警笛",
        "property": {
          "type": "bool"
        },
        "id": 159,
        "editPermission": true
      },
      {
        "code": "motion_tracking",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "移动追踪开关",
        "property": {
          "type": "bool"
        },
        "id": 161,
        "editPermission": false
      },
      {
        "code": "device_restart",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "远程重启",
        "property": {
          "type": "bool"
        },
        "id": 162,
        "editPermission": true
      },
      {
        "code": "motion_area_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "报警区域开关",
        "property": {
          "type": "bool"
        },
        "id": 168,
        "editPermission": false
      },
      {
        "code": "motion_area",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "报警区域",
        "property": {
          "type": "string",
          "maxlen": 255
        },
        "id": 169,
        "editPermission": false
      },
      {
        "code": "humanoid_filter",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "人型过滤",
        "property": {
          "type": "bool"
        },
        "id": 170,
        "editPermission": true
      },
      {
        "code": "alarm_message",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "raw",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "告警消息上报",
        "id": 185,
        "editPermission": true
      },
      {
        "code": "ipc_contrast",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面对比度",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 192,
        "editPermission": true
      },
      {
        "code": "ipc_bright",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面亮度",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 193,
        "editPermission": true
      },
      {
        "code": "ipc_object_outline",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "智能画框",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "bool"
        },
        "id": 198,
        "editPermission": true
      },
      {
        "code": "initiative_message",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "raw",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "主动消息推送",
        "property": {
          "type": "bool"
        },
        "id": 212,
        "editPermission": false
      },
      {
        "code": "initiative_message",
        "defaultValue": "",
        "canTrigger": true,
        "type": "raw",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "主动消息推送",
        "id": 212,
        "editPermission": false
      }
    ],
    "productKey": "6666666666666",
    "schemaExt": [],
    "version": "",
    "dpCodes": {
      "basic_flip": {
        "code": "basic_flip",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面翻转",
        "property": {
          "type": "bool"
        },
        "id": 103,
        "editPermission": false
      },
      "basic_osd": {
        "code": "basic_osd",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "时间水印",
        "property": {
          "type": "bool"
        },
        "id": 104,
        "editPermission": false
      },
      "basic_private": {
        "code": "basic_private",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "隐私模式",
        "property": {
          "type": "bool"
        },
        "id": 105,
        "editPermission": false
      },
      "motion_sensitivity": {
        "code": "motion_sensitivity",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "移动侦测灵敏度",
        "property": {
          "range": [
            "0",
            "1",
            "2"
          ],
          "type": "enum"
        },
        "id": 106,
        "editPermission": false
      },
      "sd_storge": {
        "code": "sd_storge",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "获取存储卡容量",
        "property": {
          "type": "string",
          "maxlen": 255
        },
        "id": 109,
        "editPermission": false
      },
      "sd_status": {
        "code": "sd_status",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "存储卡状态",
        "property": {
          "min": 1,
          "max": 5,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 110,
        "editPermission": false
      },
      "sd_format": {
        "code": "sd_format",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "存储卡格式化",
        "property": {
          "type": "bool"
        },
        "id": 111,
        "editPermission": false
      },
      "motion_record": {
        "code": "motion_record",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "SD卡录像模式",
        "property": {
          "type": "bool"
        },
        "id": 113,
        "editPermission": false
      },
      "movement_detect_pic": {
        "code": "movement_detect_pic",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "raw",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "检测到移动",
        "id": 115,
        "editPermission": false
      },
      "ptz_stop": {
        "code": "ptz_stop",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "停止转动",
        "property": {
          "type": "bool"
        },
        "id": 116,
        "editPermission": false
      },
      "sd_format_state": {
        "code": "sd_format_state",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "格式化状态",
        "property": {
          "min": -20000,
          "max": 200000,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 117,
        "editPermission": false
      },
      "ptz_control": {
        "code": "ptz_control",
        "defaultValue": "1",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "云台转动",
        "property": {
          "range": [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "0"
          ],
          "type": "enum"
        },
        "id": 119,
        "editPermission": false
      },
      "ipc_auto_siren": {
        "code": "ipc_auto_siren",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-sound",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "触发蜂鸣器",
        "property": {
          "type": "bool"
        },
        "id": 120,
        "editPermission": true
      },
      "ipc_sharp": {
        "code": "ipc_sharp",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面锐度",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 123,
        "editPermission": true
      },
      "ptz_calibration": {
        "code": "ptz_calibration",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "云台校准",
        "property": {
          "type": "bool"
        },
        "id": 132,
        "editPermission": true
      },
      "motion_switch": {
        "code": "motion_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "移动报警开关",
        "property": {
          "type": "bool"
        },
        "id": 134,
        "editPermission": false
      },
      "decibel_switch": {
        "code": "decibel_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "声音侦测报警开关",
        "property": {
          "type": "bool"
        },
        "id": 139,
        "editPermission": true
      },
      "decibel_sensitivity": {
        "code": "decibel_sensitivity",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "声音侦测灵敏度",
        "property": {
          "range": [
            "0",
            "1"
          ],
          "type": "enum"
        },
        "id": 140,
        "editPermission": true
      },
      "record_switch": {
        "code": "record_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "SD卡录像开关",
        "property": {
          "type": "bool"
        },
        "id": 150,
        "editPermission": false
      },
      "record_mode": {
        "code": "record_mode",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "录像模式",
        "property": {
          "range": [
            "1",
            "2"
          ],
          "type": "enum"
        },
        "id": 151,
        "editPermission": false
      },
      "siren_switch": {
        "code": "siren_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "警笛",
        "property": {
          "type": "bool"
        },
        "id": 159,
        "editPermission": true
      },
      "motion_tracking": {
        "code": "motion_tracking",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "移动追踪开关",
        "property": {
          "type": "bool"
        },
        "id": 161,
        "editPermission": false
      },
      "device_restart": {
        "code": "device_restart",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "远程重启",
        "property": {
          "type": "bool"
        },
        "id": 162,
        "editPermission": true
      },
      "motion_area_switch": {
        "code": "motion_area_switch",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "报警区域开关",
        "property": {
          "type": "bool"
        },
        "id": 168,
        "editPermission": false
      },
      "motion_area": {
        "code": "motion_area",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "报警区域",
        "property": {
          "type": "string",
          "maxlen": 255
        },
        "id": 169,
        "editPermission": false
      },
      "humanoid_filter": {
        "code": "humanoid_filter",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "人型过滤",
        "property": {
          "type": "bool"
        },
        "id": 170,
        "editPermission": true
      },
      "alarm_message": {
        "code": "alarm_message",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "raw",
        "executable": true,
        "mode": "ro",
        "defaultRecommend": false,
        "name": "告警消息上报",
        "id": 185,
        "editPermission": true
      },
      "ipc_contrast": {
        "code": "ipc_contrast",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面对比度",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 192,
        "editPermission": true
      },
      "ipc_bright": {
        "code": "ipc_bright",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "画面亮度",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 193,
        "editPermission": true
      },
      "ipc_siren_volume": {
        "code": "ipc_siren_volume",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "蜂鸣器音量",
        "property": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1,
          "type": "value"
        },
        "id": 195,
        "editPermission": true
      },
      "ipc_object_outline": {
        "code": "ipc_object_outline",
        "defaultValue": "",
        "canTrigger": true,
        "iconname": "icon-setting",
        "type": "obj",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "智能画框",
        "property": {
          "type": "bool",
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1
        },
        "id": 198,
        "editPermission": true
      },
      "initiative_message": {
        "code": "initiative_message",
        "defaultValue": "",
        "canTrigger": true,
        "type": "raw",
        "executable": true,
        "mode": "rw",
        "defaultRecommend": false,
        "name": "主动消息推送",
        "id": 212,
        "editPermission": false
      }
    },
    "ip": "666.666.666.666",
    "virtualExperience": false,
    "mac": "",
    "devKey": ""
  },
  "from": "system.adapter.tuya.0",
  "user": "system.user.admin",
  "ts": 66666666666,
  "_id": "tuya.0.666666666666666",
  "acl": {
    "object": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator"
  }
}

Some Homeassistant info: Statusattributes:

access_token: 6666666666666
model_name: Smart Camera
brand: Tuya
frontend_stream_type: hls
entity_picture: >-
  /api/camera_proxy/camera.cam_garage?token=6666666666666
friendly_name: Cam
supported_features: 2

If any further info could be helpful please let me know. Thanks!

Apollon77 commented 5 months ago

ID 115 could be an image ... try to decide the base64 string and store into a file and checks whats the content

c1328 commented 5 months ago

I already checked ID 115 and 185 and it's not an image. It is a string like what as I know is some Tuya internal saving path - but not sure about that. {"v":"3.0","bucket":"ty-eu-storage30-pic","files":[["/666666-666666-666666666/detect/66666666.jpeg","6666666666"]]}

Maybe the "files":[["/666666-666666-666666666/detect/66666666.jpeg" string can somehow combined with local IP also?

Apollon77 commented 4 months ago

Ok, I diffed a bit into the topic ...

https://developer.tuya.com/en/docs/iot/rtsp?id=Kacsdjcqllyql ... but no idea if this API is callable with the standard cloud account we use for fre ... ok seems to be another of their services which allows 1year free trial ... no idea what it costs afterwards "IoT Video Live Stream"

Home assistant has a special "own" way because they have some agreement with tuya as it seems where they have an own client id and secret in any case ... And Home assistant intregation is 100% cloud based as I know. No idea what they pay or if ... https://github.com/tuya/tuya-device-sharing-sdk/blob/main/tuya_sharing/manager.py#L109 ...

Apollon77 commented 4 months ago

So yes I could integrate this, but then you need to subscribe to this service in order for it to work ... maybe a year for "free" if you stay within the quoata/limits? No idea

Bildschirmfoto 2024-02-08 um 14 41 39

c1328 commented 4 months ago

Thanks a lot for clarification! It seems interesting, and yes I would give it a try. A monthly quota of 5GB seams to be far enough.

But which surprises me a little bit: I agree the home assistant integrations seem to be 100% cloud based. I created the IoT cloud account for home assistant integration only but I did not select the IoT Video Live Stream API (the how-To describes in detail which ones have to be activated) - and the cameras work obviously without this API in my home assistant environment.

Now - and only because the realtime aspect is quite nice to use at the moment - I use this IoT account for ioBroker too.

Apollon77 commented 4 months ago

Home assistant have an "own" Clint-id/secret from Tuya - so also a set of services that they (assumption!) havenegotiated with Tuya or got them ( no idea). so they need to hae that enabled in the background for it to work.

c1328 commented 4 months ago

Coming back to this I found a nice way to embed camera streams in my jarvis via the home assistant API "camera_proxy_stream". That means there is a dedicated HA machine running but I discovered some other nice features so this is fair enough. Thanks @Apollon77 for all your efforts!