tinytuya icon indicating copy to clipboard operation
tinytuya copied to clipboard

Dps not visible with status

Open FredrikM97 opened this issue 1 year ago • 2 comments

Hi!

I have an odd issue. I am trying to modify a pet feeder and update the meal_plan. However there is no dps info with the status query.

{'dps': {'3': 1, '11': 70, '12': False, '14': 0, '15': 1, '19': True, '101': 'ac_power_on', '103': 'real_time_mode', '112': 2, '116': '94%'}}

However if I use the following

import tinytuya

d = tinytuya.OutletDevice('DEVICEID', 'DEVICEIP', 'DEVICEKEY')
d.set_version(3.3)
d.set_socketPersistent(True)

print(" > Send Request for Status < ")
payload = d.generate_payload(tinytuya.DP_QUERY)
d.send(payload)

print(" > Begin Monitor Loop <")
while(True):
    # See if any data is available
    data = d.receive()
    print('Received Payload: %r' % data)

    # Send keyalive heartbeat
    print(" > Send Heartbeat Ping < ")
    payload = d.generate_payload(tinytuya.HEART_BEAT)
    d.send(payload)

I receive data on changes made with the smartlife app.

    Received Payload: {'Error': 'Unexpected Payload from Device', 'Err': '904', 'Payload': None}
Received Payload: None
Received Payload: None
Received Payload: {'dps': {'1': 'fwQAAgF/BgABAX8JAAEBfw8AAQF/FQACAX8XAAEBKBIAAQE='}, 't': 1726661921}
Received Payload: {'dps': {'1': 'fwQAAgF/BgABAX8JAAEBfw8AAQF/FQACAX8XAAEBKBIAAQE='}, 't': 1726661921}
Received Payload: {'dps': {'1': 'fwQAAgF/BgABAX8JAAEBfw8AAQF/FQACAX8XAAEBKBIAAQE='}, 't': 1726661921}
Received Payload: None
Received Payload: None
Received Payload: None
Received Payload: None

Is there any way to get the data to the status query?

Here is the Data Model:

{
  "result": {
    "model": "{\"modelId\":\"000004d15o\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[{\"abilityId\":1,\"accessMode\":\"rw\",\"code\":\"meal_plan\",\"description\":\"同步到设备端本地,即使设备离线,仍能正常喂食出粮,喂食计划最多支持10个\\nraw格式约定:按照“周期+时间+喂食份数+开关”来实现本地定时,具体如下\\n1,前7个比特位代表周一到周日,二进制转十六进制,占用一个字节,0代表未设置,1代表设置,如0000001,表示周日生效,转换为16进制就是01\\n2,时间按照小时分钟格式,占用2个字节,分钟和小时,十进制转16进制,如18:50,转为16进制为1232\\n3,喂食份数,占用1个字节,十进制转16进制,如12,转为16进制为0c\\n4,开关,占用1个字节,00表示关闭,01表示开启\\n上述举例,对于APP端时间下发的结果为0112320c01,表示周日,18:50,喂食12份,开启。\",\"extensions\":{\"iconName\":\"icon-dp_time3\",\"attribute\":\"1120\"},\"name\":\"喂食计划\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},{\"abilityId\":3,\"accessMode\":\"rw\",\"code\":\"manual_feed\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-icon-test13\",\"attribute\":\"1028\"},\"name\":\"手动喂食\",\"typeSpec\":{\"type\":\"value\",\"max\":20,\"min\":1,\"scale\":0,\"step\":1,\"unit\":\"\"}},{\"abilityId\":9,\"accessMode\":\"rw\",\"code\":\"factory_reset\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-a_nav_mode\",\"attribute\":\"1120\"},\"name\":\"恢复出厂\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":11,\"accessMode\":\"ro\",\"code\":\"battery_percentage\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_battery\",\"attribute\":\"1152\"},\"name\":\"电池电量\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"%\"}},{\"abilityId\":12,\"accessMode\":\"ro\",\"code\":\"charge_state\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-battery\",\"attribute\":\"1024\"},\"name\":\"充电状态\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":14,\"accessMode\":\"ro\",\"code\":\"fault\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_notice\",\"scope\":\"fault\",\"attribute\":\"1024\"},\"name\":\"故障告警\",\"typeSpec\":{\"type\":\"bitmap\",\"label\":[\"food_shortages\",\"food_jam\",\"battery_low\",\"ac_power_off\"],\"maxlen\":4}},{\"abilityId\":15,\"accessMode\":\"ro\",\"code\":\"feed_report\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_upload\",\"attribute\":\"1152\",\"id\":15,\"trigger\":\"direct\"},\"name\":\"喂食结果上报\",\"typeSpec\":{\"type\":\"value\",\"max\":20,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},{\"abilityId\":19,\"accessMode\":\"rw\",\"code\":\"light\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_light2\",\"attribute\":\"1153\"},\"name\":\"指示灯开关\",\"typeSpec\":{\"type\":\"bool\"}},{\"abilityId\":101,\"accessMode\":\"ro\",\"code\":\"power_state\",\"description\":\"\",\"name\":\"适配器状态\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"no_adapter\",\"ac_power_off\",\"ac_power_on\"]}},{\"abilityId\":103,\"accessMode\":\"ro\",\"code\":\"mode\",\"description\":\"\",\"name\":\"工作模式\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"real_time_mode\",\"eco_mode\"]}},{\"abilityId\":112,\"accessMode\":\"rw\",\"code\":\"mfeed_speech_volume\",\"description\":\"\",\"extensions\":{\"attribute\":\"4\"},\"name\":\"音量\",\"typeSpec\":{\"type\":\"value\",\"max\":3,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},{\"abilityId\":116,\"accessMode\":\"ro\",\"code\":\"battery_capacity\",\"description\":\"\",\"name\":\"电量\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}}]}]}"
  },
  "success": true,
  "t": 1726664031923,
  "tid": "0e2784da75bd11efbc016e7818a0f8a2"
}

FredrikM97 avatar Sep 18 '24 12:09 FredrikM97

you can try to activate the datapoint with d.updatedps(['1'])

shrx avatar Nov 13 '24 07:11 shrx

Sorry late reply! d.updatedps(['1']) does not work

FredrikM97 avatar Jul 04 '25 14:07 FredrikM97