{"id":22287384,"url":"https://github.com/fooker/hasskey","last_synced_at":"2025-03-25T20:46:33.306Z","repository":{"id":237566037,"uuid":"794760644","full_name":"fooker/hasskey","owner":"fooker","description":"Forwards keyboard interactions to Home Assistant","archived":false,"fork":false,"pushed_at":"2025-01-10T18:22:41.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T18:28:49.965Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fooker.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":"2024-05-01T22:30:01.000Z","updated_at":"2025-01-10T18:22:45.000Z","dependencies_parsed_at":"2024-05-02T15:37:24.311Z","dependency_job_id":"d86fc4ce-4b2e-413b-9ee5-29f782bc52ce","html_url":"https://github.com/fooker/hasskey","commit_stats":null,"previous_names":["fooker/hasskey"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fhasskey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fhasskey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fhasskey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fhasskey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fooker","download_url":"https://codeload.github.com/fooker/hasskey/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245543162,"owners_count":20632637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-12-03T16:59:53.494Z","updated_at":"2025-03-25T20:46:33.280Z","avatar_url":"https://github.com/fooker.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐕 hasskey\n\nHasskey forwards keyboard interactions to [Home Assistant](https://www.home-assistant.io/).\n\nHasskey is a small daemon that listens for keyboard (or any other HID key) events and forward these events to the Home Assistant API.\nIt supports watching multiple input devices with a single instance.\nOn each keyboard event, hasskey will create a Home Assistant Event using the REST API.\n\n\u003e [!NOTE]\n\u003e Hasskey currently is linux only.\n\n## 🔧 Configuration\nHasskey reads a configuration file on startup.\nThe default config file path is `config.yaml` and can be changed using a command line option.\nThe config file uses the YAML file format and consists of the following sections:\n\n### Home Assistant\nThe `home-assistant` section defines which Home Assistant instance to talk to.\nThe `url` field defines the base URL of your Home Assistant instance.\nThe `token` field must contain a valid [long-lived access token](https://www.home-assistant.io/docs/authentication/#your-account-profile).\n\n### Devices\nThe `devices` section contains a list of input devices to monitor for events.\nEach entry consists of the `name` field containing a unique name for the device to monitor.\nThis name is used to identify the device in the created Home Assistant events.\n\nTo identify the device, Hasskey provides multiple options where only one can be used at a time.\n- The `input` field is used to search for the input device with the given input name.\n- The `path` field is used to identify the input by the device path.\n- The `bus_type`, `vendor`, `product` and `version` fields are used to identify the device by the provided device metadata.\n\n### Example\n```yaml\nhome-assistant:\n  url: https://my.home-assistant.instance/\n  token: a-very-long-access-token\n\ndevices:\n  - name: my-device\n    input: My Input Device\n  - name: another-device\n    path: /dev/input/input-9999\n```\n\n## 🌠 Home Assistant Events\nHasskey creates an event in Home Assistant for every key-press detected.\nThe event has the event type `hasskey` and contains the following data:\n- `device`: The name of the device as specified in the config using the `name` field.\n- `key`: The name of the key pressed.\n\n## 🤝 Contributing\nWe welcome contributions from the community to help improve Hasskey.\nWhether you're a developer, designer, or enthusiast, there are many ways to get involved:\n\n* **Bug Reports:** Report any issues or bugs you encounter while using Hasskey.\n* **Feature Requests:** Suggest new features or enhancements to make Hasskey even more powerful.\n* **Pull Requests:** Submit pull requests to address bugs, implement new features, or improve documentation.\n\n## 📄 License\nHasskey is licensed under the MIT License, which means you are free to use, modify, and distribute the software for both commercial and non-commercial purposes. See the [LICENSE](./LICENSE) file for more details.\n\n## 🛟 Support\nIf you have any questions, concerns, or feedback about Hasskey, please [contact us](mailto:fooker@lab.sh) or open an issue on the project's GitHub repository.\n\n## 🙏 Acknowledgements\nWe would like to thank all contributors and supporters who have helped make Hasskey possible. Your contributions and feedback are greatly appreciated!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooker%2Fhasskey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffooker%2Fhasskey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooker%2Fhasskey/lists"}