
"After some investigation, I found that Home Assistant has an integration with Node-RED - a graphical tool for manipulating data and event streams. It could probably satisfy most of my needs. But from time to time I remember that I'm a professional software developer, working with event streams for many years, and for this kind of problem there's nothing better than math (and Scala's type system, which supports it very well)."
"Home Assistant is written in Python, so initially I thought it would be hard to insert JVM-based logic into it. But then I discovered that Home Assistant provides a neat solution - Addons. These are just Docker containers, wrapped with security, ingress, and other useful layers. So I decided to create an addon that runs a JVM service responsible for processing events."
Home Assistant serves as the chosen home automation platform, but the platform's heavy UI and limited explicit logic motivated a shift toward stream-based processing. Node-RED is available as an integration for graphical event stream manipulation, but fs2 and Scala's type system were selected for robust, mathematical stream handling. A custom Home Assistant addon was created to run a JVM service inside a Docker-based addon environment, leveraging addon security and ingress. Zigbee2MQTT was chosen as an event source alternative to the Home Assistant WebSocket event bus. Two open-source projects were developed, including RemoteJvmJarLauncher for uploading and running PF4J plugins.
Read at Medium
Unable to calculate read time
Collection
[
|
...
]