2个稳定版本

2.1.0 2020年7月12日
2.0.0 2020年6月7日

#859 in 硬件支持

自定义许可

79KB
2K SLoC

light-control

Mqtt灯光控制适用于单身人士。它包含房间跟踪功能,在单身环境中表现最佳。

如何安装

cargo install install --path .

如何运行

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

概述

以下是一个关于light-control如何查看您的传感器的简要概述

image

阈值是另一个房间需要达到的时间阈值,在我们将其检测为用户的当前存在之前。

配置文件

应该很简单。light-control知道

  • sensors : 生成存在输入
  • switches : 接收开关命令(包括亮度信息RGB)
  • scenes: 白天,晚上或户外

查看./examples/home.json以获得印象。

如何查找键和主题

您可以使用mosquitto客户端订阅所有消息

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

这将是一条您会看到的线

zigbee2mqtt/motion_sensor_7 {"battery":100,"voltage":3015,"linkquality":99,"occupancy":true}
  • zigbee2mqtt/motion_sensor_7是主题
  • occupancy是描述状态的键

light-control只接受扁平json的消息

传感器

  • topic: 监听的主题。
  • key: 读取状态的json键。
  • room: 如果触发此传感器,则应将其视为存在。
  • invert_state: (默认false)有时传感器会在检测到存在时发送false。此选项用于在这种情况下反转状态。
  • delay: (默认60)在设备发布不存在消息后,等待多长时间(以秒为单位)直到存在状态变为不存在。

开关

  • topic: 监听状态的主题。
  • key: 读取状态的json键。
  • rooms: 开关将响应的房间。
  • delay: 在所有订阅房间变为不存在后,等待多长时间(以秒为单位)直到开关关闭。
  • command: 命令控制。
    • command: 打开和关闭命令 这是一个mustache模板。注入的参数是
      • state : 开/关(请参阅开/关声明)
      • brightness : 0 - 255
    • init_command: (默认null)在程序启动时将触发获取设备状态的命令。
    • topic: 发送命令的主题
    • on: (默认"ON")发送给状态参数以打开开关的字符串
    • off: (默认 "关闭") 发送到状态参数以关闭开关的字符串

场景

程序启动后选定的第一个场景。

  • name:场景名称
  • brightness:此场景的亮度级别
  • disabled_switches:列出应关闭的所有开关主题。
  • enabled_switches:列出应开启的所有开关主题。
  • ignored_switches:列出不应设置的所有开关主题。
  • room_tracking_enabled:是否启用跟踪
  • ignored_sensors:列出应忽略以检测房间存在的所有传感器主题。

通过mqtt交互

Mqtt是控制照明控制的完美场所。

如何更改场景

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

依赖关系

~18–27MB
~476K SLoC