tuya-local
tuya-local copied to clipboard
Request support for <Cleverio PF100>
Log message
DPS: { "3": 1, "11": 90, "12": false, "14": 0, "15": 1, "19": true, "101": "ac_power_on", "103": "real_time_mode", "112": 3, "116": "97%" }
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2024.8.1",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.12.4",
"docker": true,
"arch": "aarch64",
"timezone": "Europe/Stockholm",
"os_name": "Linux",
"os_version": "6.6.31-haos-raspi",
"supervisor": "2024.08.0",
"host_os": "Home Assistant OS 13.0",
"docker_version": "26.1.4",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"localtuya": {
"documentation": "https://github.com/rospogrigio/localtuya/",
"version": "5.2.1",
"requirements": []
},
"browser_mod": {
"documentation": "https://github.com/thomasloven/hass-browser_mod/blob/master/README.md",
"version": "2.3.1",
"requirements": []
},
"tuya_local": {
"documentation": "https://github.com/make-all/tuya-local",
"version": "2024.7.1",
"requirements": [
"tinytuya==1.15.1",
"tuya-device-sharing-sdk>=0.1.9,<=0.2.99"
]
},
"sureha": {
"documentation": "https://github.com/benleb/sureha",
"version": "0.2.0",
"requirements": [
"surepy>=0.9.0"
]
},
"hacs": {
"documentation": "https://hacs.xyz/docs/configuration/start",
"version": "1.34.0",
"requirements": [
"aiogithubapi>=22.10.1"
]
}
},
"integration_manifest": {
"domain": "tuya_local",
"name": "Tuya Local",
"codeowners": [
"make-all"
],
"config_flow": true,
"dependencies": [],
"documentation": "https://github.com/make-all/tuya-local",
"integration_type": "device",
"iot_class": "local_push",
"issue_tracker": "https://github.com/make-all/tuya-local/issues",
"requirements": [
"tinytuya==1.15.1",
"tuya-device-sharing-sdk>=0.1.9,<=0.2.99"
],
"version": "2024.7.1",
"is_built_in": false
},
"setup_times": {
"null": {
"setup": 0.000157862999998315
},
"01J3QZAD07PX68QM19Q8WAA12M": {
"wait_import_platforms": -6.385914532000001,
"wait_base_component": -0.0024386259999999993,
"config_entry_setup": 6.618970214000001
},
"01J3QVZSGBVHPMDAB1A3PFHKXQ": {
"wait_import_platforms": -6.464395977999999,
"wait_base_component": -0.003995697000007681,
"config_entry_setup": 6.646176033000003
}
},
"data": {
"name": "Cleverio PF100",
"type": "catit_pixi_smart_feeder",
"device_id": "**REDACTED**",
"device_cid": "",
"local_key": "**REDACTED**",
"host": "**REDACTED**",
"protocol_version": 3.3,
"tinytuya_version": "1.15.1",
"api_version_set": 3.3,
"api_version_used": 3.3,
"api_working": true,
"status": {},
"cached_state": {
"updated_at": 1724424549.8291724,
"3": 1,
"11": 90,
"12": false,
"14": 0,
"15": 1,
"19": true,
"101": "ac_power_on",
"103": "real_time_mode",
"112": 3,
"116": "97%"
},
"pending_state": {},
"connected": true,
"force_dps": [],
"home_assistant": {
"name": "Cleverio PF100",
"name_by_user": null,
"disabled": false,
"disabled_by": null,
"entities": [
{
"disabled": false,
"disabled_by": null,
"entity_category": "diagnostic",
"device_class": null,
"original_device_class": "problem",
"icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "binary_sensor.pet_feeder_food_shortage",
"state": "off",
"attributes": {
"device_class": "problem",
"friendly_name": "Cleverio PF100 Food shortage"
},
"last_changed": "2024-08-23T13:58:15.175525+00:00",
"last_reported": "2024-08-23T13:58:15.175525+00:00",
"last_updated": "2024-08-23T13:58:15.175525+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": "diagnostic",
"device_class": null,
"original_device_class": "problem",
"icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "binary_sensor.pet_feeder_food_blockage",
"state": "off",
"attributes": {
"device_class": "problem",
"friendly_name": "Cleverio PF100 Food blockage"
},
"last_changed": "2024-08-23T13:58:15.176442+00:00",
"last_reported": "2024-08-23T13:58:15.176442+00:00",
"last_updated": "2024-08-23T13:58:15.176442+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": "diagnostic",
"device_class": null,
"original_device_class": "running",
"icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "binary_sensor.pet_feeder_feeding",
"state": "unknown",
"attributes": {
"device_class": "running",
"icon": "mdi:paw",
"friendly_name": "Cleverio PF100 Feeding"
},
"last_changed": "2024-08-23T13:58:15.177387+00:00",
"last_reported": "2024-08-23T13:58:15.177387+00:00",
"last_updated": "2024-08-23T13:58:15.177387+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": null,
"device_class": null,
"original_device_class": null,
"icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "button.pet_feeder_quick_feed",
"state": "2024-08-21T09:37:42.759710+00:00",
"attributes": {
"icon": "mdi:food-drumstick",
"friendly_name": "Cleverio PF100 Quick Feed"
},
"last_changed": "2024-08-23T13:58:15.172863+00:00",
"last_reported": "2024-08-23T13:58:15.172863+00:00",
"last_updated": "2024-08-23T13:58:15.172863+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": "config",
"device_class": null,
"original_device_class": "restart",
"icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "button.pet_feeder_factory_reset",
"state": "unknown",
"attributes": {
"device_class": "restart",
"friendly_name": "Cleverio PF100 Factory reset"
},
"last_changed": "2024-08-23T13:58:15.173575+00:00",
"last_reported": "2024-08-23T13:58:15.173575+00:00",
"last_updated": "2024-08-23T13:58:15.173575+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": "diagnostic",
"device_class": null,
"original_device_class": null,
"icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "sensor.pet_feeder_feed_report",
"state": "1",
"attributes": {
"icon": "mdi:paw",
"friendly_name": "Cleverio PF100 Feed report"
},
"last_changed": "2024-08-23T13:58:15.174525+00:00",
"last_reported": "2024-08-23T13:58:15.174525+00:00",
"last_updated": "2024-08-23T13:58:15.174525+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": "config",
"device_class": null,
"original_device_class": null,
"icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "number.pet_feeder_manual_feed",
"state": "1",
"attributes": {
"min": 1.0,
"max": 12.0,
"step": 1.0,
"mode": "auto",
"icon": "mdi:paw",
"friendly_name": "Cleverio PF100 Manual feed"
},
"last_changed": "2024-08-23T13:58:15.183649+00:00",
"last_reported": "2024-08-23T13:58:15.183649+00:00",
"last_updated": "2024-08-23T13:58:15.183649+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": null,
"device_class": null,
"original_device_class": "weight",
"icon": null,
"unit_of_measurement": "g",
"state": {
"entity_id": "sensor.cleverio_pf100_feeder_report_exact",
"state": "9.0",
"attributes": {
"state_class": "measurement",
"unit_of_measurement": "g",
"device_class": "weight",
"friendly_name": "Cleverio PF100 feeder report exact"
},
"last_changed": "2024-08-23T13:58:15.186951+00:00",
"last_reported": "2024-08-23T13:58:15.186951+00:00",
"last_updated": "2024-08-23T13:58:15.186951+00:00"
}
}
]
}
}
}
DPS information
{
"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": 1724424334748,
"tid": "5aa0aaef615e11ef883136d89ae34f8e"
}
Product ID
wfkzyy0evslzsmoi
Product Name
Cleverio PF100
Information about how the device functions
Cat feeder.
Have a manual feed that give one portion (6g).
Possible to set meal_plan with:
import base64
base64_input = "fwQAAgF/BgABAX8JAAEBfw8AAQF/FQACAX8XAAEBKBIAAQE="
decoded_bytes = base64.b64decode(base64_input)
meal_plan = []
for i in range(0, len(decoded_bytes), 5):
command_id = decoded_bytes[i]
time_hour = decoded_bytes[i+1]
time_minute = decoded_bytes[i+2]
portion_size = decoded_bytes[i+3]
meal_time = f"{time_hour:02}:{time_minute:02}"
meal_plan.append({
"time": meal_time,
"portion": portion_size
})
meal_plan