{"id":37083217,"url":"https://github.com/scottyphillips/pychonet","last_synced_at":"2026-04-07T09:00:54.693Z","repository":{"id":37096141,"uuid":"383378011","full_name":"scottyphillips/pychonet","owner":"scottyphillips","description":"A simple to use library for interfacing with the ECHONETlite protocol","archived":false,"fork":false,"pushed_at":"2026-02-27T11:05:44.000Z","size":672,"stargazers_count":37,"open_issues_count":4,"forks_count":21,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-02-27T15:51:43.998Z","etag":null,"topics":["echonet-lite","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scottyphillips.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE-GPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-07-06T07:24:36.000Z","updated_at":"2026-02-27T11:04:55.000Z","dependencies_parsed_at":"2024-01-25T12:24:45.815Z","dependency_job_id":"68f72b1c-f357-4dad-86c5-34f357bcb6ed","html_url":"https://github.com/scottyphillips/pychonet","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/scottyphillips/pychonet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottyphillips%2Fpychonet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottyphillips%2Fpychonet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottyphillips%2Fpychonet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottyphillips%2Fpychonet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scottyphillips","download_url":"https://codeload.github.com/scottyphillips/pychonet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottyphillips%2Fpychonet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31506574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["echonet-lite","python3"],"created_at":"2026-01-14T10:05:58.355Z","updated_at":"2026-04-07T09:00:54.686Z","avatar_url":"https://github.com/scottyphillips.png","language":"Python","funding_links":["https://www.buymeacoffee.com/RgKWqyt?style=for-the-badge"],"categories":[],"sub_categories":[],"readme":"# Pychonet\n\n[![GitHub Release][releases-shield]][releases]\n[![License][license-shield]](LICENSE)\n![Project Maintenance][maintenance-shield]\n\n\nA library for interfacing with the ECHONETlite protocol as commonly used in Japan.\nUseful for interfacing to many interesting devices such as HVACs, light systems,\nelectric car chargers, rice cookers (not joking), and solar systems\nthat support ECHONETLite.\n\nThe current functionality is limited to a few ECHONETLite classes, notably HVAC\nbut it can easily be extended to any ECHONETlite classes required.\n\nThe basic boilerplate EchoNetInstance class can be used to provide\nraw connectivity to any compatible device but it is up to the developer\nto create useful classes. Any ECHONETlite class additions to the library are welcome.\n\nVersion 2.0.0 of this library was rebuilt to use asyncio for better compatability with home assistant.\n\n\nIt is designed to work with Python 3.9.5+\n\n## Instructions\n\nSimplest way to install is to use pip:\n\n```\npip install pychonet\n```\n\n## Basic usage\n\n### Create the ECHONETLite listener service on port 3610:\n```python\nfrom pychonet.lib.udpserver import UDPServer\nfrom pychonet import Factory\nfrom pychonet import ECHONETAPIClient as api\nfrom pychonet import HomeAirConditioner\nfrom pychonet import EchonetInstance\nudp = UDPServer()\nloop = asyncio.get_event_loop()\nudp.run(\"0.0.0.0\", 3610, loop=loop)\nserver = api(server=udp)\n```\n\n### Discover a list of ECHONETlite instances on a particular server:\n```python\nawait server.discover('192.168.1.6')\n```\n\n\n### Populate the propertymap for a particular ECHONETLite instance:\n```python\nawait server.getAllPropertyMaps('192.168.1.6', 1, 48, 1)\n```\n### Create a ECHONETLite device using the Factory:\n\nParamaters include the port listener, and EOJGC, EOJCC, and EOJCI codes.\n```python\naircon = Factory(\"192.168.1.6\",server, 1, 48, 1)\n```\n\n### OR, create a specific ECHONETLite instance using built in objects:\n```python\naircon = HomeAirConditioner(\"192.168.1.6\", server)\n```\n\n### Turn HVAC on or off:\n```python\nawait aircon.on()\nawait aircon.off()\nawait aircon.getOperationalStatus()\n{'status': 'off'}\n```\n\n### Set or Get a HVACs target temperature:\n```python\nawait aircon.setOperationalTemperature(25)\nawait aircon.getOperationalTemperature()\n{'set_temperature': 25}\n```\n\n### Set or Get a HVACs mode of operation:\n```python\nsupported modes =  'auto', 'cool', 'heat', 'dry', 'fan_only', 'other'\n\nawait aircon.setMode('cool')\nawait aircon.getMode()\n{'mode': 'cool'}\n```\n### Set or Get a HVACs fan speed:\n\nNote - your HVAC may not support all fan speeds.\n```python\nsupported modes = 'auto', 'minimum', 'low', 'medium-Low', 'medium', 'medium-high', 'high', 'very high', 'max'\n\nawait aircon.setFanSpeed('medium-high')\nawait aircon.getFanSpeed()\n{'fan_speed': 'medium-high'}\n```\n### Get HVAC attributes at once (Note, the property map must be populated):\n```python\nawait aircon.update()\n{'status': 'On', 'set_temperature': 25, 'fan_speed': 'medium-high', 'room_temperature': 25, 'mode': 'cooling'}\n```\n\n### OR grab a specific attribute at once (Note, the property map must be populated):\n```python\nawait aircon.update(0x80)\n```\n\n## Using this library with Home Assistant\n\nNOTE: For Home Assistant users there is a dedicated repo that can be installed via HACS that can provide custom components for discovered ECHONETlite devices such as Mitsubishi airconditioners:\n(https://github.com/scottyphillips/echonetlite_homeassistant)\n\n'example_async.py' gives you a boilerplate asyncio program that will discover your ECHONETLite instance and return information about supported services.\n\n## Hall of Fame\nBig Thanks to Naoki Sawada for many excellent updates to enable push notifications via multicast.\nどうもありがとうございます !\n\nThanks to Jason Nader for all the quality of life updates to the codebase and doco.\n\nThanks to khcnz (Karl Chaffey) and gvs for helping refector the old code\nand contributing to testing.\n\nThanks to Dick Swart, Masaki Tagawa, Paul, khcnz,  Kolodnerd, Leonunix, and Alfie Gerner\nfor each contributing code updates to this library.\n\nThanks to Jeffro Carr who inspired me to write my own native Python ECHONET\nlibrary for Home Assistant.\n\nThanks to Futomi Hatano for open sourcing a well-documented ECHONET Lite\nlibrary in Node JS.\n(https://github.com/futomi/node-echonet-lite)\n\n## References for ECHONET specifications\n\n- [ECHONET Lite Specification, Version 1.13](https://echonet.jp/spec_v113_lite_en/)\n  - [Part 2 ECHONET Lite Communications Middleware Specifications](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/ECHONET_lite_V1_13_en/ECHONET-Lite_Ver.1.13(02)_E.pdf)\n- [APPENDIX, Detailed Requirements for ECHONET Device objects, Release Q](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/Release/Release_Q/Appendix_Release_Q_E.pdf)\n\n## License\n\nThis application is licensed under an MIT license, refer to LICENSE-MIT for details.\n\nPortions of 'ECHONET Lite Device Emulator' (Copyright 2020 Kanagawa Institute of Technology)\nhave been used in this application. This code was licensed under the MIT licence.\n\nThe UDP code is based on 'aio-udp-server' (Copyright 2021 Dmitriy Bashkirtsev)\nThis code is licenced under the GPL licence.\n(https://github.com/bashkirtsevich-llc/aioudp)\n\nСлава Україні! 🇺🇦\n\n***\n[pychonet]: https://github.com/scottyphillips/pychonet\n[releases-shield]: https://img.shields.io/github/release/scottyphillips/pychonet.svg?style=for-the-badge\n[releases]: https://github.com/scottyphillips/pychonet/releases\n[license-shield]:https://img.shields.io/github/license/scottyphillips/pychonet?style=for-the-badge\n[buymecoffee]: https://www.buymeacoffee.com/RgKWqyt?style=for-the-badge\n[buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge\n[maintenance-shield]: https://img.shields.io/badge/Maintainer-Scott%20Phillips-blue?style=for-the-badge\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottyphillips%2Fpychonet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottyphillips%2Fpychonet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottyphillips%2Fpychonet/lists"}