{"id":21481,"library":"jeedomdaemon","title":"Jeedom Daemon Python","description":"A base library to implement Jeedom daemons in Python using asyncio and aiohttp. It handles WebSocket communication with Jeedom core, automatic reconnection, and JSON-RPC style commands. Current version is 1.2.9, requiring Python >=3.9. Release cadence is irregular with several updates in 2024-2025.","status":"active","version":"1.2.9","language":"python","source_language":"en","source_url":"https://github.com/Mips2648/jeedom-daemon-py","tags":["jeedom","daemon","websocket","automation"],"install":[{"cmd":"pip install jeedomdaemon","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency for async HTTP/WebSocket communication with Jeedom.","package":"aiohttp","optional":false}],"imports":[{"wrong":"from jeedomdaemon import JeedomDaemon","symbol":"BaseDaemon","correct":"from jeedomdaemon import BaseDaemon"},{"symbol":"BaseConfig","correct":"from jeedomdaemon import BaseConfig"},{"symbol":"aio_connector","correct":"from jeedomdaemon import aio_connector"}],"quickstart":{"code":"import asyncio\nfrom jeedomdaemon import JeedomDaemon\n\nclass MyDaemon(JeedomDaemon):\n    async def on_message(self, message):\n        print('Received:', message)\n\nasync def main():\n    daemon = MyDaemon(\n        apikey=os.environ.get('JEEDOM_APIKEY', ''),\n        url=os.environ.get('JEEDOM_URL', 'ws://localhost:8080'),\n        callback=lambda x: print('Callback:', x)\n    )\n    await daemon.start()\n\nif __name__ == '__main__':\n    asyncio.run(main())","lang":"python","description":"Basic daemon subclass and startup."},"warnings":[{"fix":"Provide a callback function (e.g., lambda x: None) or implement a proper reply handler.","message":"JeedomDaemon now requires an explicit callback parameter in the constructor. In older versions (<1.0.0) the callback was optional. If omitted, the daemon will not process replies and may hang.","severity":"breaking","affected_versions":"<1.0.0 vs >=1.0.0"},{"fix":"Use 'from jeedomdaemon import JeedomSocket' instead.","message":"The old import path 'from jeedomdaemon.jeedom_socket import JeedomSocket' is deprecated. All public classes are now exposed at the top-level package.","severity":"deprecated","affected_versions":">=1.2.0"},{"fix":"Always define on_message with 'async def'.","message":"The daemon's on_message method must be a coroutine. If you define it as a regular function, the library will not await it and the message will be silently dropped.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'-2025':48 '1.2.9':35 '2024':47 '3.9':38 'aiohttp':16 'asyncio':14 'autom':52 'automat':24 'base':5 'cadenc':40 'command':31 'communic':20 'core':23 'current':32 'daemon':2,10,50 'handl':18 'implement':8 'irregular':42 'jeedom':1,9,22,49 'json':28 'json-rpc':27 'librari':6 'python':3,12,37 'reconnect':25 'releas':39 'requir':36 'rpc':29 'sever':44 'style':30 'updat':45 'use':13 'version':33 'websocket':19,51","created_at":"2026-04-27T17:00:08.109931+00:00","updated_at":"2026-04-27T17:00:08.109931+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.2.9","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/Mips2648/jeedom-daemon-py","docs":null,"changelog":null,"pypi":"https://pypi.org/project/jeedomdaemon/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking","communication","workflow"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-30","last_verified":"2026-06-30","next_check":"2026-07-30","install_tag":null}}