rospogrigio / localtuya

local handling for Tuya devices
GNU General Public License v3.0
2.71k stars 530 forks source link

integrate pet feeder into local tuya #1718

Open shedman214 opened 1 month ago

shedman214 commented 1 month ago

I'm trying to integrate the pet feeder I purchased from Amazon into local Tuya. I can't get the configuration correct for the entities in the home assistant. image

kem-a commented 1 month ago

First, to find DPs you have to look in iot tuya site under Cloud > API explorer > Device Control > Query Properties. Second, you need data type and possible values for each DP that you can get from Cloud > API explorer > Device Control(Standard Instruction Set) > Get the specifications and properties of the device.

For example, my relevant DPs for feeder:

 {
        "code": "quick_feed",
        "custom_name": "",
        "dp_id": 2,
        "time": 1716616662683,
        "value": false
      },
      {
        "code": "manual_feed",
        "custom_name": "",
        "dp_id": 3,
        "time": 1716499713925,
        "value": 1
      },
      {
        "code": "feed_state",
        "custom_name": "",
        "dp_id": 4,
        "time": 1716870606398,
        "value": "standby"
      },

 {
        "code": "feed_report",
        "custom_name": "",
        "dp_id": 14,
        "time": 1716870603739,
        "value": 3
      },
      {
        "code": "light",
        "custom_name": "",
        "dp_id": 17,
        "time": 1716499729396,
        "value": true
      },
      {
        "code": "slow_feed",
        "custom_name": "",
        "dp_id": 23,
        "time": 1716615356097,
        "value": false
      },
shedman214 commented 1 month ago

First, to find DPs you have to look in iot tuya site under Cloud > API explorer > Device Control > Query Properties. Second, you need data type and possible values for each DP that you can get from Cloud > API explorer > Device Control(Standard Instruction Set) > Get the specifications and properties of the device.

For example, my relevant DPs for feeder:

 {
        "code": "quick_feed",
        "custom_name": "",
        "dp_id": 2,
        "time": 1716616662683,
        "value": false
      },
      {
        "code": "manual_feed",
        "custom_name": "",
        "dp_id": 3,
        "time": 1716499713925,
        "value": 1
      },
      {
        "code": "feed_state",
        "custom_name": "",
        "dp_id": 4,
        "time": 1716870606398,
        "value": "standby"
      },

 {
        "code": "feed_report",
        "custom_name": "",
        "dp_id": 14,
        "time": 1716870603739,
        "value": 3
      },
      {
        "code": "light",
        "custom_name": "",
        "dp_id": 17,
        "time": 1716499729396,
        "value": true
      },
      {
        "code": "slow_feed",
        "custom_name": "",
        "dp_id": 23,
        "time": 1716615356097,
        "value": false
      },

This is the info I got from it:

{
  "result": {
    "category": "cwwsq",
    "functions": [
      {
        "code": "meal_plan",
        "desc": "{}",
        "name": "喂食计划",
        "type": "Raw",
        "values": "{}"
      },
      {
        "code": "quick_feed",
        "desc": "{}",
        "name": "一键喂食",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "manual_feed",
        "desc": "{\"unit\":\"\",\"min\":1,\"max\":20,\"scale\":0,\"step\":1}",
        "name": "手动喂食",
        "type": "Integer",
        "values": "{\"unit\":\"\",\"min\":1,\"max\":20,\"scale\":0,\"step\":1}"
      },
      {
        "code": "factory_reset",
        "desc": "{}",
        "name": "恢复出厂设置",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "switch",
        "desc": "{}",
        "name": "开关",
        "type": "Boolean",
        "values": "{}"
      }
    ],
    "status": [
      {
        "code": "meal_plan",
        "name": "喂食计划",
        "type": "Raw",
        "values": "{}"
      },
      {
        "code": "quick_feed",
        "name": "一键喂食",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "manual_feed",
        "name": "手动喂食",
        "type": "Integer",
        "values": "{\"unit\":\"\",\"min\":1,\"max\":20,\"scale\":0,\"step\":1}"
      },
      {
        "code": "feed_state",
        "name": "喂食状态",
        "type": "Enum",
        "values": "{\"range\":[\"standby\",\"feeding\",\"done\"]}"
      },
      {
        "code": "battery_percentage",
        "name": "电池电量",
        "type": "Integer",
        "values": "{\"unit\":\"%\",\"min\":0,\"max\":100,\"scale\":0,\"step\":1}"
      },
      {
        "code": "charge_state",
        "name": "充电状态",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "feed_report",
        "name": "喂食结果上报",
        "type": "Integer",
        "values": "{\"unit\":\"\",\"min\":0,\"max\":20,\"scale\":0,\"step\":1}"
      },
      {
        "code": "factory_reset",
        "name": "恢复出厂设置",
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "switch",
        "name": "开关",
        "type": "Boolean",
        "values": "{}"
      }
    ]
  },
  "success": true,
  "t": 1716997986945,
  "tid": "8a55360c1dd311efb9130e1a774ae1f3"
}