Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eagrahamjr/kobots-parts
HIGHLY opinionated application-level helper classes to "run" kobots-devices and diozero-based hardware
https://github.com/eagrahamjr/kobots-parts
homeautomation iot kotlin robotics
Last synced: about 2 months ago
JSON representation
HIGHLY opinionated application-level helper classes to "run" kobots-devices and diozero-based hardware
- Host: GitHub
- URL: https://github.com/eagrahamjr/kobots-parts
- Owner: EAGrahamJr
- License: apache-2.0
- Created: 2023-09-24T16:55:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-25T16:30:13.000Z (5 months ago)
- Last Synced: 2024-11-04T11:47:49.713Z (3 months ago)
- Topics: homeautomation, iot, kotlin, robotics
- Language: Kotlin
- Homepage:
- Size: 408 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Parts is Parts
![Just Build](https://github.com/EAGrahamJr/kobots-parts/actions/workflows/build.yaml/badge.svg) ![Kotlin](https://badgen.net/badge/Kotlin/1.9.0/purple) ![Java](https://badgen.net/badge/Java/17/orange) ![Apache License](https://badgen.net/github/license/EAGrahamJr/kobots-devices)
Contains basic application construction elements that are being used in my various Kobots-related projects. This became desirable after it became apparent that these elements were being repeated across the projects via copy/pasta with tweaks.
- Generic application "junk"
- Abstractions to orchestrate physical device interactions
- Includes movements and the human stuff
- Wrappers around MQTT/HomeAssistant for external communicationsThere are three main sections.
- [Actuators and Movements](Movements.md)
- [Home Assistant](HomeAssistant.md):bangbang: The **EventBus** was removed due to non-usage: since most actions are now either constrainted to the `SequenceManager` in the movements or via HomeAssistant.
Javadocs are published at the [GitHub Pages](https://eagrahamjr.github.io/kobots-parts/) for this project.
## Acknowledgements
- The `MatrixRain` class was inspired heavily by [pymatrix-rain](https://github.com/tech-chad/pymatrix-rain), under the MIT License.
## Other Stuff
- [`NeoKeyHandler`](src/main/kotlin/crackers/kobots/parts/app/io/NeoKeyHandler.kt) is a "wrapper" around handling a rotating "menu" of actions
- use with the `NeoKeyMenu` class to get complete key-press handling and automatic invocation of actions
- [`StatusColumnDisplay`](src/main/kotlin/crackers/kobots/parts/app/io/StatusColumnDisplay.kt) displays numbers in named columns (e.g. for OLED and TFT displays)
- produces a small image of the columns
- [`SmallMenuDisplay`](src/main/kotlin/crackers/kobots/parts/app/io/SmallMenuDisplay.kt) that works with the `NeoKeyMenu` stuff
- [`AppCommon`](src/main/kotlin/crackers/kobots/parts/app/AppCommon.kt) after I did the same :poop: 3 times
- see [Appendix A](#appendix-a-configuration-reference) for configuration reference
- [`KobotsMQTT`](src/main/kotlin/crackers/kobots/parts/mqtt/KobotsMQTT.kt) for a common **Qos 0** messaging
- don't want stuff happening 3 hours later on a late message delivery## Appendix A: Configuration reference
```hocon
{
ha: {
token: "HomeAssitant Credentials Token"
server: "127.0.0.1"
port: 8123
}
mqtt.broker = "tcp://127.0.0.1:1883"
}```