Skip to content

A program for MQTT automation using a scheme dialect

License

Notifications You must be signed in to change notification settings

Siroj42/heinzelmann

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Heinzelmann

This little program helps you around the house by executing MQTT automations defined in Steel, a dialect of Scheme written in Rust. You can set automations to trigger on MQTT Messages or at specific times of day. In true Scheme fashion, you can directly interact with your automation script using a REPL on the local CLI, or a compatible nREPL client over the network.

Usage

Before trying the example, you need to point heinzelmann at an MQTT broker of your choice. The relevant file is example/config.scm, where you can set your broker's URL and port as well as (optionally, otherwise, remove those lines) your login data. They can also be used to enable or disable the local REPL and add add IPs to the nREPL whitelist so you can connect to a REPL remotely (this is currently only tested with the shevek client).

Then, run heinzelmann via cargo and specify the config file:

cargo run -- examples/config.scm

Or, run it with nix:

nix run . -- examples/config.scm

The example programs at example/hs100.scm and example/meross.scm can give you an idea of what heinzelmann is currently capable of.

About

A program for MQTT automation using a scheme dialect

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages