{"id":21521891,"url":"https://github.com/robertmuth/pyzwaver","last_synced_at":"2026-03-07T11:02:31.620Z","repository":{"id":128248158,"uuid":"72232318","full_name":"robertmuth/PyZwaver","owner":"robertmuth","description":"Z-Wave library written in Python3","archived":false,"fork":false,"pushed_at":"2020-05-06T16:34:48.000Z","size":485,"stargazers_count":41,"open_issues_count":5,"forks_count":8,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-06-03T18:43:12.267Z","etag":null,"topics":["mqtt","python","zwave"],"latest_commit_sha":null,"homepage":null,"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/robertmuth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2016-10-28T18:30:40.000Z","updated_at":"2025-04-19T11:54:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"2e59e0e1-7fda-4331-9845-5202c165c07c","html_url":"https://github.com/robertmuth/PyZwaver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robertmuth/PyZwaver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2FPyZwaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2FPyZwaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2FPyZwaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2FPyZwaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertmuth","download_url":"https://codeload.github.com/robertmuth/PyZwaver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertmuth%2FPyZwaver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30212103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"last_error":"SSL_read: 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":["mqtt","python","zwave"],"created_at":"2024-11-24T01:08:38.964Z","updated_at":"2026-03-07T11:02:31.615Z","avatar_url":"https://github.com/robertmuth.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## About\n\nPyZwaver is a pure Python3 library for communicating with a serial port based\nZ-Wave controller such as Aeotec's Z-Stick.\n\nIts focus is on simplicity and hackability.\nSeveral simple examples are provided to demonstrate its capabilities.\n\n## Status\n\nPyZwaver is still work in progress.\nIt supports a wide range of Command Classes but some are still missing.\n\nMost notable omissions are:\n\n* Security (stalled because crypto protocol documentation lacks concrete examples)\n\n## Examples\n\nAll examples accept a *--serial_port* parameter which has to be\nadjusted to match the local setup.\n\n### example_simple.py\n\nA command line tool which can be launched like so.\nIt will print some basic information about the controller and\nall the nodes paired with it. It will not return until it had a \nchance to communicate with all nodes.\n\n```\n./example_simple.py  --serial_port=/dev/ttyUSB0 \n```\n\n(Make sure you habe permission to access the serial port.\nOn Linux this may involve becoming a member of certain groups\nlike 'dialout'.)\n\n### example_tool.py\n\nA command line tool for doing tasks alike parining and unpairing\n\n### example_mqtt.py\n\nA mqtt client which forwards commands - both ways.\n\n### example_webserver.py\n\nA simple webserver which can be launched like so:\n\n```\n./webserver.py  --serial_port=/dev/ttyUSB0 --port=44444\n```\n\nThen start exploring using the URL:\nhttp://localhost:44444\n\n## Testing\n\nRudimentary test can be run with\n\n````\nmake tests\n````\n\n## Architectural Overview\n\nsee [Architectural Overview](ARCHITECTURE.md)\n\n## Supporting New Command Classes\n\nThe message format of all support Command Classes is described \nin machine readable form in [constants_generator.py](constants_generator.py)\nThis can be used to generate python code (see Makefile target)\nfor [zwave.py](pyzwaver/zwave.py). \n\nThe generated code in combination with \n[command.py](pyzwaver/command.py) represents\na assembler/disassembler for zwave commands\n(see entry points: AssembleCommand/ParseCommand).\n\nHandling of parsed commands occurs in [node.py](pyzwaver/node.py)\n\n\n## License\n\nAll code is governed by LICENSE.txt (GPL 3) unless otherwise noted.\nFor alternative licensing please contact the author.\n\n## Dependencies\n\nThe core PyZwaver library only depends on python3-serial.\n\nSome examples require additional libraries:\n\nexample_webserver.py depends on:\n\n* tornado\n  http://www.tornadoweb.org/\n\n* Static/list.min.js\n  http://www.listjs.com/\n\nexample_mqtt.py depends on:\n\n* paho.mqtt\n  https://pypi.org/project/paho-mqtt/\n  \n## Author\n\nrobert@muth.org\n\n## References\n\n* http://zwavepublic.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertmuth%2Fpyzwaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertmuth%2Fpyzwaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertmuth%2Fpyzwaver/lists"}