make-all / tuya-local

Local support for Tuya devices in Home Assistant
MIT License
1.21k stars 487 forks source link

Request support for energy monitor #2051

Open dsus4wang opened 2 months ago

dsus4wang commented 2 months ago

Log Message

if I use Auto protocol 
Test protocol error 901: Network Error: Unable to Connect
Test protocol error 904: Unexpected Payload from Device

If I set the protocol to 3.4
Device matches tediton_k7_doorlock with quality of 17%. DPS: {"updated_at": 1719241794.207709, "1": 24, "9": 0, "11": false, "13": 0, "16": true, "38": "on", "87": 0, "103": 63, "104": 50, "106": true, "115": true, "118": true, "119": 270, "121": 265, "122": true, "123": 170, "125": 175, "127": 10}

Information about DPS mappings

``` { "result": { "model": "{\"modelId\":\"elmd0w\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[{\"abilityId\":1,\"accessMode\":\"ro\",\"code\":\"forward_energy_total\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_lightning\",\"attribute\":\"1280\"},\"name\":\"正向总有功电量\",\"typeSpec\":{\"type\":\"value\",\"max\":99999999,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"kW·h\"}},{\"abilityId\":6,\"accessMode\":\"ro\",\"code\":\"phase_a\",\"description\":\"1,格式\\n{\\\"unit\\\":\\\"V\\\",\\\"min\\\":0,\\\"max\\\":9999,\\\"scale\\\":1,\\\"step\\\":1,\\\"type\\\":\\\"value\\\"} \\n{\\\"unit\\\":\\\"A\\\",\\\"min\\\":0,\\\"max\\\":999999,\\\"scale\\\":3\\\"step\\\":1,\\\"type\\\":\\\"value\\\"}\\n{\\\"unit\\\":\\\"KW\\\",\\\"min\\\":0,\\\"max\\\":999999,\\\"scale\\\":3,\\\"step\\\":1,\\\"type\\\":\\\"value\\\"}\\n{\\\"unit\\\":\\\"A\\\",\\\"min\\\":0,\\\"max\\\":1000,\\\"scale\\\":3\\\"step\\\":1,\\\"type\\\":\\\"value\\\"}\\n2,HEX格式,11个字节\\n3,单位精度:电压,2字节,单位0.1V。电流,3字节,上报 mA值面板换算展示单位0.001A。有功功率,3字节,单位0.001kW;剩余电流,3字节,上报 mA值面板换算展示单位0.001A。\",\"extensions\":{\"iconName\":\"icon-dp_lightning\",\"attribute\":\"1152\"},\"name\":\"上报A相电压,电流、功率及剩余电流\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},{\"abilityId\":9,\"accessMode\":\"ro\",\"code\":\"fault\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-baojing\",\"attribute\":\"1280\"},\"name\":\"故障告警\",\"typeSpec\":{\"type\":\"bitmap\",\"label\":[\"short_circuit_alarm\",\"surge_alarm\",\"overload_alarm\",\"leakagecurr_alarm\",\"temp_dif_fault\",\"fire_alarm\",\"high_power_alarm\",\"self_test_alarm\",\"ov_cr\",\"unbalance_alarm\",\"ov_vol\",\"undervoltage_alarm\",\"miss_phase_alarm\",\"outage_alarm\",\"magnetism_alarm\",\"credit_alarm\",\"no_balance_alarm\"],\"maxlen\":17}},{\"abilityId\":11,\"accessMode\":\"rw\",\"code\":\"prepayment_switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_money\",\"attribute\":\"1152\"},\"name\":\"预付费开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":12,\"accessMode\":\"rw\",\"code\":\"clear_energy\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_lightning\",\"attribute\":\"1280\"},\"name\":\"电量清零\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":13,\"accessMode\":\"ro\",\"code\":\"balance_energy\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_lightning\"},\"name\":\"剩余可用电量\",\"typeSpec\":{\"type\":\"value\",\"max\":5000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"kW·h\"}},{\"abilityId\":14,\"accessMode\":\"rw\",\"code\":\"energy_charge\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_money\",\"attribute\":\"1280\",\"trigger\":\"direct\"},\"name\":\"电量充值\",\"typeSpec\":{\"type\":\"value\",\"max\":5000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"kW·h\"}},{\"abilityId\":16,\"accessMode\":\"rw\",\"code\":\"switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power2\",\"attribute\":\"1157\"},\"name\":\"开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":38,\"accessMode\":\"rw\",\"code\":\"relay_status\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-zhuangtai\",\"attribute\":\"1248\"},\"name\":\"上电状态\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"off\",\"on\",\"memory\"]}},{\"abilityId\":87,\"accessMode\":\"ro\",\"code\":\"realtime_data\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-tongji2\",\"attribute\":\"1152\"},\"name\":\"可用电量\",\"typeSpec\":{\"type\":\"value\",\"max\":65500,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},{\"abilityId\":99,\"accessMode\":\"wr\",\"code\":\"switch_state\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-zhuangtai\",\"attribute\":\"1280\"},\"name\":\"面板心跳\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":103,\"accessMode\":\"rw\",\"code\":\"over_current\",\"description\":\"\",\"name\":\"过流保护值\",\"typeSpec\":{\"type\":\"value\",\"max\":63,\"min\":1,\"scale\":0,\"step\":1,\"unit\":\"A\"}},{\"abilityId\":104,\"accessMode\":\"rw\",\"code\":\"leakage_current_set\",\"description\":\"\",\"name\":\"漏电保护值\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":10,\"scale\":0,\"step\":1,\"unit\":\"mA\"}},{\"abilityId\":106,\"accessMode\":\"rw\",\"code\":\"trip\",\"description\":\"\",\"name\":\"漏电保护开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":115,\"accessMode\":\"rw\",\"code\":\"tripping_over_current\",\"description\":\"\",\"name\":\"过流保护开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":118,\"accessMode\":\"rw\",\"code\":\"tripping_1\",\"description\":\"\",\"name\":\"过压保护开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":119,\"accessMode\":\"rw\",\"code\":\"data_set_1\",\"description\":\"\",\"name\":\"过压保护值\",\"typeSpec\":{\"type\":\"value\",\"max\":300,\"min\":230,\"scale\":0,\"step\":1,\"unit\":\"V\"}},{\"abilityId\":121,\"accessMode\":\"rw\",\"code\":\"data_set_2\",\"description\":\"\",\"name\":\"过压恢复值\",\"typeSpec\":{\"type\":\"value\",\"max\":295,\"min\":225,\"scale\":0,\"step\":1,\"unit\":\"V\"}},{\"abilityId\":122,\"accessMode\":\"rw\",\"code\":\"tripping_3\",\"description\":\"\",\"name\":\"欠压保护开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":123,\"accessMode\":\"rw\",\"code\":\"data_set_3\",\"description\":\"\",\"name\":\"欠压保护值\",\"typeSpec\":{\"type\":\"value\",\"max\":210,\"min\":85,\"scale\":0,\"step\":1,\"unit\":\"V\"}},{\"abilityId\":125,\"accessMode\":\"rw\",\"code\":\"data_set_4\",\"description\":\"\",\"name\":\"欠压恢复值\",\"typeSpec\":{\"type\":\"value\",\"max\":215,\"min\":90,\"scale\":0,\"step\":1,\"unit\":\"V\"}},{\"abilityId\":127,\"accessMode\":\"rw\",\"code\":\"data_set_5\",\"description\":\"\",\"name\":\"上电保护延时\",\"typeSpec\":{\"type\":\"value\",\"max\":500,\"min\":1,\"scale\":0,\"step\":1,\"unit\":\"s\"}}]}]}" }, "success": true, "t": 1719319679824, "tid": "272c854132f111ef88f4561f165cfdb8" } ```

I translate that to English:

{
"result": {
"model": "{\"modelId\":\"elmd0w\",\"services\":[{\"actions\":[],\"code\":\"\ ",\"description\":\"\",\"events\":[],\"name\":\"Default service\",\"properties\":[
{\"abilityId\":1 ,\"accessMode\":\"ro\",\"code\":\"forward_energy_total\",\"description\":\"\",\"extensions\":{\"iconName\":\ "icon-dp_lightning\",\"attribute\":\"1280\"},\"name\ ":\"Forward total active power\",\"typeSpec\":{\"type\":\"value\",\"max\":99999999,\"min\":0,\"scale \":1,\"step\":1,\"unit\":\"kW·h\"}},
{\"abilityId\":6,\"accessMode\":\"ro\", \"code\":\"phase_a\",\"description\":\"1, format\\n{\\\"unit\\\":\\\"V\\\",\\\ "min\\":0,\\\"max\\\":9999,\\\"scale\\":1,\\\"step\\\":1,\\\"type \\\":\\\"value\\\"} \\n{\\\"unit\\\":\\\"A\\",\\\"min\\\\":0,\\\"max\\\":999999,\\ \"scale\\\":3\\\"step\\\":1,\\\"type\\\":\\\"value\\\"}\\n{\\\"unit \\\":\\\"KW\\\",\\\"min\\\":0,\\\"max\\\":999999,\\\"scale\\\":3 ,\ \\"step\\":1,\\\"type\\":\\\"value\\"}\\n{\\\"unit\\\":\\\"A \\\",\\\"min\\\":0,\\\"max\\\":1000,\\\"scale\\\":3\\\"step\\\": 1,\\\"type\\\":\\\"value\\\"}\\n2, HEX format, 11 bytes\\n3, Unit precision: voltage, 2 bytes, unit 0.1V. Current, 3 bytes, reported mA value panel conversion display unit 0.001A. Active power, 3 bytes, unit 0.001kW; Residual current, 3 bytes, reported mA value panel conversion display unit 0.001A. \",\"extensions\":{\"iconName\":\"icon-dp_lightning\",\"attribute\":\"1152\"},\"name\":\"Report phase A voltage, Current, power and residual current\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},
{\"abilityId\":9,\"accessMode \":\"ro\",\"code\":\"fault\",\"description\":\"\",\"exte nsions\":{\"iconName\":\"icon-baojing\",\"attribute\":\"1280\"},\"name\":\"fault alarm\",\"typeSpec\" :{\"type\":\"bitmap\",\"label\":[\"short_circuit_alarm\",\"surge_alarm\",\"overload_alarm\",\"leakagecurr_alarm\",\"temp_dif_fault\" ,\"fire_alarm\", \"high_power_alarm\",\"self_test_alarm\",\"ov_cr\",\"unbalance_alarm\",\"ov_vol\",\"undervoltage_alarm\",\"miss_phase_alarm\",\"outage_alarm\",\" magnetism_alarm\",\"credit_alarm\",\"no_balance_alarm\"],\"maxlen\":17}},
{\"abilityId\":11,\"acce ssMode\":\"rw\",\"code\":\"prepayment_switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon- dp_money\",\"attribute\":\"1152\"},\"name\":\"Prepayment switch\",\"typeSpec\":{\"type\":\"bool\"} },
{\"abilityId\":12,\"accessMode\":\"rw\",\"code\":\ "clear_energy\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_lightning\",\"attribute\":\"1280\"}, \"name\":\"Battery reset\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":13,\"accessMode\": \"ro\",\"code\":\"balance_energy\",\"descript ion\":\"\",\"extensions\":{\"iconName\":\"icon-dp_lightning\"},\"name\":\"Remaining available power\",\"typeSpec\" :{\"type\":\"value\",\"max\":5000,\"min\":0,\"scale\":1,\"step\":1,\"unit\ ":\"kW·h\"}},
{\"abilityId\":14,\"accessMode\":\"rw\",\"code\":\"energy_ch arge\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_money\",\"attribute\":\"1280\",\" trigger\":\"direct\"},\"name\":\"Battery recharge\",\"typeSpec\":{\"type\":\"value\",\"max\":5000 ,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"kW·h\"}},
{\" abilityId\":16,\"accessMode\":\"rw\",\"code\":\"switch\",\"description\":\"\",\"extensions\":{\" iconName\":\"icon-dp_power2\",\"attribute\":\"1157\"},\"name\":\"switch\",\"typeSpec\":{\"type\": \"bool\"}},
{\"abilityId\":38,\"accessMode\":\"rw\",\" code\":\"relay_status\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-zhuangtai\",\"attribute\":\" 1248\"},\"name\":\"Power-on status\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"off\",\"on\",\"memory\"]}},
{\"abilityId\":87,\"accessMode\":\" ro\",\"code\":\"realtime_data\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-tongji2\",\" attribute\":\"1152\"},\"name\":\"Available Power\",\"typeSpec\":{\"type\":\"value\",\"max\":65500 ,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":99,\"accessMode\":\"wr\",\"code\":\"switch_state\",\"description\":\"\",\"extensions\":{\" iconName\":\"icon-zhuangtai\",\"attribute\":\"1280\"},\"name\":\"Panel heartbeat\",\"typeSpec\":{\"type\" :\"bool\"}},
{\"abilityId\":103,\"accessMode\":\" rw\",\"code\":\"over_current\",\"description\":\"\",\"name\":\"Overcurrent protection value\",\"typeSpec\":{\ "type\":\"value\",\"max\":63,\"min\":1,\"scale\":0,\"step\":1,\"unit\":\ "A\"}},
{\"abilityId\":104,\"accessMode\":\"rw\",\"code\":\"leakage_current_set\",\"d escription\":\"\",\"name\":\"Leakage protection value\",\"typeSpec\":{\"type\":\"value\",\"max\":100, \"min\":10,\"scale\":0,\"step\":1,\"unit\":\"mA\"}},
{\"abilityId\":106,\"accessMode \":\"rw\",\"code\":\"trip\",\"description\":\"\",\"name\":\"leakage protection switch\",\"typeSp ec\":{\"type\":\"bool\"}},
{\"abilityId\":115,\"accessMode\":\"rw\",\"code\":\"tripping_over_current\ ",\"description\":\"\",\"name\":\"Overcurrent protection switch\",\"typeSpec\":{\"type\":\"bool\"}},
{ \"abilityId\":118,\"accessMode\":\"rw\",\"code\":\"tripping_1\", \"description\":\"\",\"name\":\"Overvoltage protection switch\",\"typeSpec\":{\"type\":\"bool\"}},
{\" abilityId\":119,\"accessMode\":\"rw\",\"code\":\"data_set_1\",\"description\":\"\",\"name\":\" Pressure protection value\",\"typeSpec\":{\"type\":\"value\",\"max\":300,\"min\":230,\"sca le\":0,\"step\":1,\"unit\":\"V\"}},
{\"abilityId\":121,\"accessMode\":\"rw\",\ "code\":\"data_set_2\",\"description\":\"\",\"name\":\"Overvoltage recovery value\",\"typeSpec\":{\"type\": \"value\",\"max\":295,\"min\":225,\"scale\":0,\"step\":1,\"unit\":\"V\"} },
{\"abilityId\":122,\"accessMode\":\"rw\",\"code\":\"tripping_3\",\"description\":\"\",\"name\":\"Undervoltage protection switch\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":123,\"accessMode\":\"rw\",\"code\":\"data_set_3\",\"description\":\"\",\"name\":\"Undervoltage protection value\",\"typeSpec\":{\"type\":\"value\",\"max\":210,\"min\":85,\"scale\":0,\"step\":1,\"unit\":\"V\"}},
{\"abilityId\":125,\"accessMode\":\" rw\",\"code\":\"data_set_4\",\"description\":\"\",\"name\":\"Undervoltage recovery value\",\"typeSpec\":{\"type\":\"value\",\"max\":215,\"min\":90,\"scale\":0,\"step\":1,\"unit\":\"V\"}},
{\"abilityId\":127,\"accessMode\":\"rw\",\"code\":\"data_set_5\",\"description\":\"\",\"name\":\"Power-on protection delay\",\"typeSpec\":{\"type\":\"value\",\"max\":500,\"min\":1,\"scale\":0,\"step\":1,\"unit\":\"s\"}}]}]}"
},
"success": true,
"t": 1719319679824,
"tid": "272c854132f111ef88f4561f165cfdb8"
}

Product ID

l1ajiy5jy5uy4cfy

Information about how the device functions

Hi! it is a AC leakage protector and it also can monitor electricty use.

make-all commented 1 month ago

Need some info about manufacturer and model so this can be differentiated from other similar devices.