Skip to content

HIGHLY opinionated application-level helper classes to "run" kobots-devices and diozero-based hardware

License

Notifications You must be signed in to change notification settings

EAGrahamJr/kobots-parts

Repository files navigation

Parts is Parts

Just Build Kotlin Java Apache License

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 communications

There are three main sections.

‼️ 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 for this project.

Acknowledgements

  • The MatrixRain class was inspired heavily by pymatrix-rain, under the MIT License.

Other Stuff

  • NeoKeyHandler 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 displays numbers in named columns (e.g. for OLED and TFT displays)
    • produces a small image of the columns
  • SmallMenuDisplay that works with the NeoKeyMenu stuff
  • AppCommon after I did the same 💩 3 times
  • KobotsMQTT for a common Qos 0 messaging
    • don't want stuff happening 3 hours later on a late message delivery

Appendix A: Configuration reference

{
  ha: {
    token: "HomeAssitant Credentials Token"
    server: "127.0.0.1"
    port: 8123
  }
  mqtt.broker = "tcp://127.0.0.1:1883"
}

About

HIGHLY opinionated application-level helper classes to "run" kobots-devices and diozero-based hardware

Topics

Resources

License

Stars

Watchers

Forks

Languages