light-control

Mqtt light-control for singles. It comes with room tracking, which works best in a single person environment.

How to install

shell script cargo install install --path .

How to run

shell script export RUST_LOG=light_control=info ~/.cargo/bin/light-control examples/home.json

Overview

Here is a small overview on how an light-control sees your sensors

image

The threshold is the time threshold that need to be reached by an other room, before we detect the other room as the current presents of the user.

Configuration File

Should be simple. light-control knows

Have a look at ./examples/home.json to get an impression.

How find key and topic

You can use the mosquitto client to subscribe to all messages

shell script mosquitto_sub -v \ -u light-control \ -P password \ -h localhost \ -t "#"

This would be a line you see: mqtt zigbee2mqtt/motion_sensor_7 {"battery":100,"voltage":3015,"linkquality":99,"occupancy":true} * zigbee2mqtt/motion_sensor_7 is the topic * occupancy is the key describing the state

light-control only excepts messages in flat json

Sensors

Switch

Scene

The first scene in the one chosen after program start.

Interact via mqtt

Mqtt is the perfect place to control light-control.

How to change scenes

shell script mosquitto_pub \ -h localhost \ -u homeassistant \ -P password \ -t "control/lights/set" \ -m '{"scene":"<scene-name>"}'