{"id":24323,"library":"pyemvue","title":"PyEmVue","description":"Unofficial Python library for interacting with Emporia Vue energy monitors. Version 0.18.9. Active development with frequent releases.","status":"active","version":"0.18.9","language":"python","source_language":"en","source_url":"https://github.com/magico13/PyEmVue","tags":["energy-monitor","emporia-vue","home-automation"],"install":[{"cmd":"pip install pyemvue","lang":"bash","label":"Stable"}],"dependencies":[],"imports":[{"note":"The main class is `pyemvue.PyEmVue`, not a direct import.","wrong":"from pyemvue import PyEmVue","symbol":"pyemvue","correct":"import pyemvue"},{"note":"`PyEmVue` is a class inside the pyemvue module.","wrong":"import PyEmVue","symbol":"PyEmVue","correct":"from pyemvue import PyEmVue"}],"quickstart":{"code":"from pyemvue import PyEmVue\n\nvue = PyEmVue()\ntry:\n    vue.login(username='your_username', password='your_password')\n    devices, device_gids, device_status = vue.get_devices()\n    print(devices)\nexcept Exception as e:\n    print(f'Error: {e}')","lang":"python","description":"Initialize, login, and fetch devices."},"warnings":[{"fix":"Update code expecting boolean return value.","message":"login() now returns tokens dictionary instead of boolean.","severity":"breaking","affected_versions":">=0.18.0"},{"fix":"Unpack all three return values or index appropriately.","message":"get_devices() returns a tuple (devices, device_gids, device_status), not just devices.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade to >=0.18.1 or implement custom retry logic.","message":"API rate limits may cause HTTP 429 errors. Automatic retries were added in v0.18.1.","severity":"gotcha","affected_versions":"<0.18.1"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install pyemvue` in your environment.","cause":"Library not installed.","error":"ModuleNotFoundError: No module named 'pyemvue'"},{"fix":"Use `vue.login(username='...', password='...')` as keyword arguments.","cause":"Using old API where login accepted separate arguments.","error":"TypeError: login() takes 1 positional argument but 2 were given"},{"fix":"Ensure you have a recent version and import `PyEmVue` from `pyemvue`.","cause":"Using a very old version or wrong import.","error":"AttributeError: 'PyEmVue' object has no attribute 'get_devices'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}