我有一个 ZWave 灯泡和一个 ZWave 4 按钮墙壁开关,它们都连接到安装在 Raspberry Pi 上的 Domoticz。
我想要以下场景:
- 按钮 1:灯亮 30 分钟
- 按钮 2 : 灯灭
- 按钮 3:灯常亮
- 按钮4:召唤克苏鲁
每个按钮都会覆盖上一个操作(按钮 3 -> 按钮 1 = 打开 30 分钟)
按钮的接线和编程很容易,但现在定时器呢?我想避免创建自制服务,因为我害怕弄乱init.d
.
我有 3 种可能性:
Domoticz 虚拟开关
Domoticz 允许创建一个虚拟开关,它可以在界面中给定的一段时间后改变状态:
优点
- 现成的计时器!
- 我可以在墙壁开关和灯之间快速交互
缺点
- 虽然 Domoticz 处理 MQTT,但会有很多 LUA 脚本和“块状”来互连设备
- 时间可能不容易配置......
at
和 atq
at
是一个 linux 命令,用于及时计划一个动作,就像
at [when] < [what]
优点
- 多定时器服务
- 易于使用和调用
缺点
- at 只给出一个唯一的 ID,除非解析计划的命令,否则我无法为作业命名(除非使用魔术 linux 命令......)
- 因此我需要使用数据库编码/实现一个作业匹配器
定时任务表
crontab 是一个用于计划重复性任务的 linux 服务。就我而言,这将是一个简单的
# check every minute
* * * * * /path/checktimer.sh
优点
- 可靠的时间触发
缺点
- 无法管理秒...
- 仍然被迫在某处维持一个工作匹配器
我的问题:
- 您是否必须像这样管理计时器?
- 我是否错过了其他更可靠/可配置的解决方案?
- 您对上述解决方案有偏好吗?