PyRobovac
PyRobovac copied to clipboard
Local code missing from API response
When pinging the API (home-api.eufylife.com/v1/device/list/devices-and-groups) the response back contains an empty local_code
field. This might be because this is a 15C and not 11C device.
API Response:
"res_code": 1,
"message": "",
"items": [
{
"item_type": 0,
"device": {
"id": "XXXXXXXXXXXXXXXXXXXX",
"sn": "",
"name": "RoboVac 15C",
"alias_name": "Roborto",
"bluetooth": null,
"wifi": {
"mac": "XX:XX:XX:XX:XX:XX",
"wifi_ssid": "XXXXX",
"lan_ip_addr": "65.9X.XXX.XXX"
},
"product": {
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"name": "RoboVac 15C",
"default_name": "RoboVac",
"icon_url": "https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2120_addProduct.png",
"category": "Home",
"appliance": "Cleaning",
"connect_type": 1,
"pictures": [
{
"code": "addProductIcon",
"url": "https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2120_addProduct.png",
"description": ""
},
{
"code": "selectDeviceImage",
"url": "https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2120_selectProduct.png",
"description": ""
},
{
"code": "feedbackImage",
"url": "https://d1teb1w17vl5yo.cloudfront.net/eufyhome/products/T2120_feedback.png",
"description": ""
}
],
"description": "T2120 RoboVac 15C, connected via EufyHome",
"product_code": "T2120",
"wifi_ssid_prefix": "eufy RoboVac 15C",
"wifi_ssid_prefix_full": "eufy RoboVac 15C-",
"index": 7,
"create_time": 1493114110,
"update_time": 1528774126
},
"user_id": "XXXXXX",
"owner_info": null,
"home_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"home_name": "",
"room_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"room_name": "Default Room",
"connect_type": 1,
"grant_by": 0,
"software_version": "1.1.1",
"index": 0,
"device_key": "",
"create_time": 1566149922,
"update_time": 1566149936,
"hardware_version": "",
"local_code": "",
"setting": {
"id": "",
"device_id": "",
"is_default": true
}
},
"group": null
}
],
"global_config": {
"enabled_multi_color_modes": [
0,
1,
2,
3
]
}
}
Note: all the sensitive characters were replaced with the X, no characters were deleted/removed
Just to say the RoboVac 30C is exactly the same. Missing local_code and lan_ip_addr set to my WAN IP.
Looking at a different issue on the python_lakeside project it seems that Eufy have moved new products to a cloud endpoint rather than exposing local LAN APIs.
Would have thought the API would be exposing the methods to control the device but not checked yet.
Have just used mitmproxy to check and it might be a dead-end going directly via the Eufy API. I'm pretty sure they are using the Tuya platform for connectvity. Seeing quite a few calls to their APIs coming from my phone that reference eufy (although annoyingly none in direct response to commands being triggered).
Every time I trigger a command on the app it does a POST to https://log.eufylife.com/push_log_es but as the end point suggests I think this is just for their logging. I get the device ID as a 200 response back if I replay the POST but nothing happens on the device.
PS they have a new device endpoint https://api.eufylife.com/v1/device/v2 which their app uses.
Last comment. Not the first to see it's using Tuya and there's a project getting it to work here
So were you able to connect via the Tuya project? @nanowireUK