home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
69.94k stars 29.03k forks source link

VeSync no longer providing devices #100786

Open narc792 opened 9 months ago

narc792 commented 9 months ago

The problem

The VeSync integration is no longer providing access to any air purifiers. Tried removing, restarting, and adding the integration back and it only found one of the two purifiers. It was functional in home assistant for maybe one minute before becoming unavailable.

What version of Home Assistant Core has the issue?

2023.9.2

What was the last working version of Home Assistant Core?

2023.8

What type of installation are you running?

Home Assistant OS

Integration causing the issue

VeSync

Link to integration documentation on our website

https://www.home-assistant.io/integrations/vesync/

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 9 months ago

Hey there @markperdue, @webdjoe, @thegardenmonkey, mind taking a look at this issue as it has been labeled with an integration (vesync) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `vesync` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign vesync` Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


vesync documentation vesync source (message by IssueLinks)

opb commented 9 months ago

I don’t have a lot to add except to say I noticed the same thing. I initially assumed it was a problem with my unit (Levoit core 200S), so I didn’t note the relationship with the version upgrade. But it continues o be non-functional through HA

Journeyman1717 commented 9 months ago

In my instance updating Home Assistant from 2023.9.3 to 202310.0 broke this integration and I no longer have control or am able to add new devices. Downgrading back to 2023.9.3 allows the integration to work again.

yatil commented 9 months ago

I have the same issue for a few days now.

plan7D commented 9 months ago

Same for me. Having a Levoit Air Humidifier. 2023-10-08 16:47:54.399 WARNING (MainThread) [homeassistant.components.vesync.fan] Zelt - Unknown device type - Classic300S

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.10.1",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.5",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.1.45",
    "supervisor": "2023.10.0",
    "host_os": "Home Assistant OS 10.5",
    "docker_version": "23.0.6",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "vesync",
    "name": "VeSync",
    "codeowners": [
      "@markperdue",
      "@webdjoe",
      "@thegardenmonkey"
    ],
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/vesync",
    "iot_class": "cloud_polling",
    "loggers": [
      "pyvesync"
    ],
    "requirements": [
      "pyvesync==2.1.1"
    ],
    "is_built_in": true
  },
  "data": {
    "vesync": {
      "bulb_count": 0,
      "fan_count": 1,
      "outlets_count": 0,
      "switch_count": 0,
      "timezone": "Europe/Berlin"
    },
    "devices": {
      "bulbs": [],
      "fans": [
        {
          "manager": "**REDACTED**",
          "device_name": "Zelt",
          "device_image": "https://image.vesync.com/defaultImages/deviceDefaultImages/wifibtonboardingnotify_airhumidifier_classic300s_eu_240.png",
          "cid": "vsaq47fd14be4297b50997e723e21c4c",
          "connection_status": "online",
          "connection_type": "WiFi+BTOnboarding+BTNotify",
          "device_type": "Classic300S",
          "type": "wifi-air",
          "uuid": "**REDACTED**",
          "config_module": "WiFiBTOnboardingNotify_AirHumidifier_Classic300S_EU",
          "mac_id": "**REDACTED**",
          "mode": null,
          "speed": null,
          "extension": null,
          "current_firm_version": null,
          "sub_device_no": null,
          "config": {
            "auto_target_humidity": 64,
            "display": false,
            "automatic_stop": true
          },
          "device_status": "on",
          "enabled": true,
          "config_dict": {
            "module": "VeSyncHumid200300S",
            "models": [
              "Classic300S",
              "LUH-A601S-WUSB"
            ],
            "features": [
              "nightlight"
            ],
            "mist_modes": [
              "auto",
              "sleep",
              "manual"
            ],
            "mist_levels": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9
            ]
          },
          "mist_levels": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9
          ],
          "mist_modes": [
            "auto",
            "sleep",
            "manual"
          ],
          "features": [
            "nightlight"
          ],
          "warm_mist_feature": false,
          "warm_mist_levels": [],
          "night_light": true,
          "details": {
            "humidity": 62,
            "mist_virtual_level": 2,
            "mist_level": 1,
            "mode": "manual",
            "water_lacks": false,
            "humidity_high": false,
            "water_tank_lifted": false,
            "display": false,
            "automatic_stop_reach_target": true,
            "night_light_brightness": 0
          },
          "_api_modes": [
            "getHumidifierStatus",
            "setAutomaticStop",
            "setSwitch",
            "setNightLightBrightness",
            "setVirtualLevel",
            "setTargetHumidity",
            "setHumidityMode",
            "setDisplay",
            "setLevel"
          ]
        }
      ],
      "outlets": [],
      "switches": []
    }
  }
}
yatil commented 9 months ago

It seems to work again after I updated to 2023.10.3 yesterday.

Journeyman1717 commented 9 months ago

It seems to work again after I updated to 2023.10.3 yesterday.

Confirmed here too. Version 2023.10.3 integration works.

plan7D commented 9 months ago

Maybe I miss something but for me the device is still not showing up. Even with version 2023.11 I get the same error. Already reinstalled the VeSync integration and provided login credentials.

Logger: homeassistant.components.vesync.fan Source: components/vesync/fan.py:82 Integration: VeSync (documentation, issues) First occurred: 17:29:49 (1 occurrences) Last logged: 17:29:49

Zelt - Unknown device type - Classic300S

The device is called "Zelt".

When I download diagnose information for the VeSync integration I get the following listing:

 "fans": [
        {
          "manager": "**REDACTED**",
          "device_name": "Zelt",
          "device_image": "https://image.vesync.com/defaultImages/deviceDefaultImages/wifibtonboardingnotify_airhumidifier_classic300s_eu_240.png",
          "cid": "vsaq47fd14be4297b50997e723e21c4c",
          "connection_status": "online",
          "connection_type": "WiFi+BTOnboarding+BTNotify",
          "device_type": "Classic300S",
          "type": "wifi-air",
          "uuid": "**REDACTED**",
          "config_module": "WiFiBTOnboardingNotify_AirHumidifier_Classic300S_EU",
          "mac_id": "**REDACTED**",
          "mode": null,
          "speed": null,
          "extension": null,
          "current_firm_version": null,
          "sub_device_no": null,
          "config": {
            "auto_target_humidity": 64,
            "display": true,
            "automatic_stop": true
          },
          "device_status": "on",
          "enabled": true,
          "config_dict": {
            "module": "VeSyncHumid200300S",
            "models": [
              "Classic300S",
              "LUH-A601S-WUSB"
            ],
            ...

But integration is saying 0 devices or entities.

I'm fairly new to smart home especially home assistant. Could someone please provide steps if Im missing something out?

jsermer commented 9 months ago

I just downloaded diagnostics for my home assistant os based setup and noticed the version of the python library is pinned to an old one:

  "integration_manifest": {
    "domain": "vesync",
    "name": "VeSync",
    "codeowners": [
      "@markperdue",
      "@webdjoe",
      "@thegardenmonkey"
    ],
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/vesync",
    "iot_class": "cloud_polling",
    "loggers": [
      "pyvesync"
    ],
    "requirements": [
      "pyvesync==2.1.1"
    ],
    "is_built_in": true
  },

The latest version upstream is 2.1.10: https://github.com/webdjoe/pyvesync/releases

and home assistant's manifest shows it should be installing 2.1.10: https://github.com/home-assistant/core/blob/dev/homeassistant/components/vesync/manifest.json#L9

This might resolve my issue b/c I have the 'vital 200s' model and that didnt arrive in the upstream python module until version 2.1.8.

home assistant version info from diag:

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.10.3",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.5",
    "docker": true,
    "arch": "aarch64",
    "timezone": "America/Chicago",
    "os_name": "Linux",
    "os_version": "6.1.56",
    "supervisor": "2023.10.0",
    "host_os": "Home Assistant OS 11.0",
    "docker_version": "24.0.6",
    "chassis": "embedded",
    "run_as_root": true
  },
yatil commented 9 months ago

@plan7D I wonder if your device is on the list of supported devices. It looks like your device is a air humidifier, and there are no humidifiers on the list currently. (My devices which now work are all air purifiers.)

From what I gathered from the discussion here, this custom integration that you can install via HACS might support your device.

jsermer commented 9 months ago

while exec'ing into the main docker container, it also shows 2.1.1 and doing a dry-run to install 2.1.10 doesnt show any errors:

homeassistant:/config# pip list|grep vesync
pyvesync                         2.1.1
homeassistant:/config# pip install --dry-run pyvesync==2.1.10
Collecting pyvesync==2.1.10
  Obtaining dependency information for pyvesync==2.1.10 from https://files.pythonhosted.org/packages/9d/95/308312ae6938b3fd036996ec7a293aa4652b332732785f97d7104bc1b24a/pyvesync-2.1.10-py2.py3-none-any.whl.metadata
  Using cached pyvesync-2.1.10-py2.py3-none-any.whl.metadata (35 kB)
Requirement already satisfied: requests>=2.20.0 in /usr/local/lib/python3.11/site-packages (from pyvesync==2.1.10) (2.31.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests>=2.20.0->pyvesync==2.1.10) (3.2.0)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests>=2.20.0->pyvesync==2.1.10) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/site-packages (from requests>=2.20.0->pyvesync==2.1.10) (1.26.17)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests>=2.20.0->pyvesync==2.1.10) (2023.7.22)
Using cached pyvesync-2.1.10-py2.py3-none-any.whl (51 kB)
Would install pyvesync-2.1.10

home assistant os should be properly managing this automatically, so i'm not sure what the disconnect is here.

https://developers.home-assistant.io/docs/creating_integration_manifest/#requirements

also, looking at a couple other open bugs on this vesync integration seems to indicate others are also stuck on 2.1.1

plan7D commented 9 months ago

@yatil yeah that might be the problem. My device is not listed explicitly.

Nevertheless when I download "config_entry-vesync" my device is listed with all available options including current values:

"details": {
            "humidity": 67,
            "mist_virtual_level": 3,
            "mist_level": 1,
            "mode": "manual",
            "water_lacks": false,
            "humidity_high": false,
            "water_tank_lifted": false,
            "display": true,
            "automatic_stop_reach_target": false,
            "night_light_brightness": 0
          }

Those are real (current) values.

I just don't know how to parse / access those key value pairs cuz integration is saying "0 entities".

Edit: Thanks @yatil for mentioning the custom integration for "HACS". I got it to work finally :).

jsermer commented 9 months ago

Ok, I believe I found the issue with the downgraded version. I manually updated the python module from within the docker container on my home assistant os installation, restarted home assistant, and it downgraded it back to 2.1.1. Taking a look inside the actual home assistant os container, it in fact thinks it should be installing 2.1.1:

homeassistant:/config# cat /usr/src/homeassistant/homeassistant/components/vesync/manifest.json
{
  "domain": "vesync",
  "name": "VeSync",
  "codeowners": ["@markperdue", "@webdjoe", "@thegardenmonkey"],
  "config_flow": true,
  "documentation": "https://www.home-assistant.io/integrations/vesync",
  "iot_class": "cloud_polling",
  "loggers": ["pyvesync"],
  "requirements": ["pyvesync==2.1.1"]
}

Looking at the upstream dev branch of home assistant, we have the correct pyvesync version: https://github.com/home-assistant/core/blob/dev/homeassistant/components/vesync/manifest.json#L9

But looking at the latest released tagged version of home assistant (2023.10.3), it shows the downgraded version: https://github.com/home-assistant/core/blob/2023.10.3/homeassistant/components/vesync/manifest.json#L9

I'm not aware of details for the home assistant release process, but I think a PR needs to be submitted to sync the current release branch from the dev branch for the vesync component specifically.

at 09:04:36 ❯ git -P diff 2023.10.3..dev -- homeassistant/components/vesync/
diff --git a/homeassistant/components/vesync/const.py b/homeassistant/components/vesync/const.py
index f87f1cf3a8..a0e5b9da52 100644
--- a/homeassistant/components/vesync/const.py
+++ b/homeassistant/components/vesync/const.py
@@ -36,9 +36,12 @@ SKU_TO_BASE_DEVICE = {
     "LAP-C601S-WUS": "Core600S",  # Alt ID Model Core600S
     "LAP-C601S-WUSR": "Core600S",  # Alt ID Model Core600S
     "LAP-C601S-WEU": "Core600S",  # Alt ID Model Core600S,
-    "LAP-V201S-AASR": "Vital200S",
-    "LAP-V201S-WJP": "Vital200S",
-    "LAP-V201S-WEU": "Vital200S",
-    "LAP-V201S-WUS": "Vital200S",
-    "LAP-V201-AUSR": "Vital200S",
+    "Vital200S": "Vital200S",
+    "LAP-V201S-AASR": "Vital200S",  # Alt ID Model Vital200S
+    "LAP-V201S-WJP": "Vital200S",  # Alt ID Model Vital200S
+    "LAP-V201S-WEU": "Vital200S",  # Alt ID Model Vital200S
+    "LAP-V201S-WUS": "Vital200S",  # Alt ID Model Vital200S
+    "LAP-V201-AUSR": "Vital200S",  # Alt ID Model Vital200S
+    "Vital100S": "Vital100S",
+    "LAP-V102S-WUS": "Vital100S",  # Alt ID Model Vital100S,
 }
diff --git a/homeassistant/components/vesync/fan.py b/homeassistant/components/vesync/fan.py
index 87934ced81..326e7daf12 100644
--- a/homeassistant/components/vesync/fan.py
+++ b/homeassistant/components/vesync/fan.py
@@ -28,6 +28,7 @@ DEV_TYPE_TO_HA = {
     "Core400S": "fan",
     "Core600S": "fan",
     "Vital200S": "fan",
+    "Vital100S": "fan",
 }

 FAN_MODE_AUTO = "auto"
@@ -41,6 +42,7 @@ PRESET_MODES = {
     "Core400S": [FAN_MODE_AUTO, FAN_MODE_SLEEP],
     "Core600S": [FAN_MODE_AUTO, FAN_MODE_SLEEP],
     "Vital200S": [FAN_MODE_AUTO, FAN_MODE_SLEEP, FAN_MODE_PET],
+    "Vital100S": [FAN_MODE_AUTO, FAN_MODE_SLEEP, FAN_MODE_PET],
 }
 SPEED_RANGE = {  # off is not included
     "LV-PUR131S": (1, 3),
@@ -49,6 +51,7 @@ SPEED_RANGE = {  # off is not included
     "Core400S": (1, 4),
     "Core600S": (1, 4),
     "Vital200S": (1, 4),
+    "Vital100S": (1, 4),
 }

diff --git a/homeassistant/components/vesync/manifest.json b/homeassistant/components/vesync/manifest.json
index dcf8e7d286..fb892acfd4 100644
--- a/homeassistant/components/vesync/manifest.json
+++ b/homeassistant/components/vesync/manifest.json
@@ -6,5 +6,5 @@
   "documentation": "https://www.home-assistant.io/integrations/vesync",
   "iot_class": "cloud_polling",
   "loggers": ["pyvesync"],
-  "requirements": ["pyvesync==2.1.1"]
+  "requirements": ["pyvesync==2.1.10"]
 }
jsermer commented 9 months ago

Finally, using the custom hacs component linked above does in fact resolve my issue as well since it causes the pyvesync python module to be updated to the 2.1.10 version rendering all of my devices visible and controllable.

ziptbm commented 8 months ago

is the custom component the only way for this integration to work now? I just got a vital100s and was surprised to see that after the latest update it's not showing until the custom component is installed.

tuley24 commented 8 months ago

I just updated to 2023.10.4 this morning hoping the 2.1.10 version update was finally pushed to this release, but it's still the same 2.1.1 for pyvesync. I'd prefer not to use any HACS fixes that I don't have to so I don't see anymore unexpected bugs than I already do with my current HACS stuff. It looks like the bump to 2.1.10 was done 3 weeks ago in the dev branch so I'm hoping in an update or two vesync will be back to working like normal again.

issue-triage-workflows[bot] commented 5 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

kde1806 commented 5 months ago

Hi I run the latest version of HA and the problem still active in the diagnostic it show the system is online with all the value but in the log file it show up as "unknown device". I add the diagnostic report

{ "home_assistant": { "installation_type": "Home Assistant OS", "version": "2024.1.5", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.11.6", "docker": true, "arch": "x86_64", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "6.1.71-haos", "supervisor": "2023.12.1", "host_os": "Home Assistant OS 11.4", "docker_version": "24.0.7", "chassis": "vm", "run_as_root": true }, "custom_components": { "waste_collection_schedule": { "version": "1.45.0", "requirements": [ "icalendar", "recurring_ical_events", "icalevents", "beautifulsoup4", "lxml", "shapely" ] }, "homematicip_local": { "version": "1.54.0", "requirements": [ "hahomematic==2024.1.7" ] }, "tuya_local": { "version": "2024.1.0", "requirements": [ "tinytuya==1.13.1" ] }, "solarman": { "version": "1.0.0", "requirements": [ "pyyaml" ] }, "hacs": { "version": "1.34.0", "requirements": [ "aiogithubapi>=22.10.1" ] } }, "integration_manifest": { "domain": "vesync", "name": "VeSync", "codeowners": [ "@markperdue", "@webdjoe", "@thegardenmonkey", "@cdnninja" ], "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/vesync", "iot_class": "cloud_polling", "loggers": [ "pyvesync" ], "requirements": [ "pyvesync==2.1.10" ], "is_built_in": true }, "data": { "vesync": { "bulb_count": 0, "fan_count": 1, "outlets_count": 0, "switch_count": 0, "timezone": "Europe/Berlin" }, "devices": { "bulbs": [], "fans": [ { "manager": "REDACTED", "device_name": "Luftbefeuchter", "device_image": "https://image.vesync.com/defaultImages/deviceDefaultImages/wfon_ahm_luh-a451s-weu_eu_240.png", "cid": "vsaqe0402f14e7997b4c9e9e356828e0", "connection_status": "online", "connection_type": "WiFi+BTOnboarding+BTNotify", "device_type": "LUH-O451S-WEU", "type": "wifi-air", "uuid": "REDACTED", "config_module": "WFON_AHM_LUH-A451S-WEU_EU", "mac_id": "REDACTED", "mode": null, "speed": null, "extension": null, "current_firm_version": null, "device_region": "EU", "pid": null, "sub_device_no": null, "config": { "auto_target_humidity": 49, "display": true, "automatic_stop": true }, "device_status": "on", "enabled": true, "config_dict": { "module": "VeSyncHumid200300S", "models": [ "LUH-O451S-WUS", "LUH-O451S-WEU" ], "features": [ "warm_mist" ], "mist_modes": [ "humidity", "sleep", "manual" ], "mist_levels": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "warm_mist_levels": [ 0, 1, 2, 3 ] }, "mist_levels": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "mist_modes": [ "humidity", "sleep", "manual" ], "features": [ "warm_mist" ], "warm_mist_levels": [ 0, 1, 2, 3 ], "warm_mist_feature": true, "night_light": false, "details": { "humidity": 47, "mist_virtual_level": 1, "mist_level": 1, "mode": "auto", "water_lacks": false, "humidity_high": false, "water_tank_lifted": false, "display": true, "automatic_stop_reach_target": false, "warm_mist_level": 0, "warm_mist_enabled": false }, "_api_modes": [ "getHumidifierStatus", "setAutomaticStop", "setSwitch", "setNightLightBrightness", "setVirtualLevel", "setTargetHumidity", "setHumidityMode", "setDisplay", "setLevel" ] } ], "outlets": [], "switches": [] } } }

issue-triage-workflows[bot] commented 2 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

eskiiom commented 2 months ago

I've tried updating everything and the issue persists. has anyone been able to overcome the issue ?