2 releases

0.1.1 Jul 22, 2022
0.1.0 Jul 21, 2022

#584 in Programming languages

MIT license

64KB
1.5K SLoC

Dan

mqtt-smarthome

Dan is a home automation programming language. The langauge has native support for working with MQTT.

Dan Example

Lock all the doors at 10PM each night.

scene night {
    print "starting night scene"

    set zwave/Front/DoorLock/98/0/targetMode/set {value: 255}
    set zwave/Garage/DoorLock/98/0/targetMode/set {value: 255}

    set zwave/Kitchen/DoorLock/98/0/targetMode/set {value: 255}
}


at 10:00PM start night

Installing

Install the dan binary using cargo:

$ cargo install dan

Running

Place the above example in a directory ./dan.d and invoke dan:

$ dan --mqtt-url mqtt://localhost --dir ./dan.d

Dependencies

~15–30MB
~452K SLoC