PyRobovac icon indicating copy to clipboard operation
PyRobovac copied to clipboard

Local code missing from API response

Open dhanani94 opened this issue 5 years ago • 4 comments

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

dhanani94 avatar Aug 18 '19 23:08 dhanani94

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.

nanowireUK avatar Apr 22 '20 21:04 nanowireUK

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.

nanowireUK avatar Apr 23 '20 16:04 nanowireUK

Last comment. Not the first to see it's using Tuya and there's a project getting it to work here

nanowireUK avatar Apr 23 '20 16:04 nanowireUK

So were you able to connect via the Tuya project? @nanowireUK

Samvid95 avatar Apr 30 '20 18:04 Samvid95