#home-automation #avm #fritz #smart-home #command-line-tool #read

app fritzctrl

用于控制AVM Fritz设备的命令行工具

6个版本

0.3.6 2023年7月6日
0.3.5 2023年2月13日
0.3.3 2021年2月1日
0.3.2 2021年1月31日

#226 in 硬件支持

每月40次下载

MIT 协议

68KB
1.5K SLoC

fritzctrl

一个小型的Rust项目,用于检查和控制FRITZ!DECT设备。

用法

该命令行工具有几个子命令

  • list: 列出所有设备或列出单个设备的传感器数据。
  • switch: 打开/关闭设备。
  • schedule: 读取并解析包含日期、设备ID和状态的stdin中的行。直到所有命令处理完毕。
  • daylight: 打印给定位置和时间范围内的日出/日落时间的辅助命令。

几乎所有命令都需要fritz.box用户名和密码。您可以在环境变量FRTIZ_USERFRITZ_PASSWORD中设置它,或将它作为子命令的参数传递(用户/密码组合与您用于http://fritz.box)相同)。

示例

列出所有设备

$fritzctrl list --用户xxx --密码yyy

      id       |    product     |            name             | state
---------------+----------------+-----------------------------+-------
 11630 0069103 | FRITZ!DECT 200 | FRITZ!DECT 200 Laufband     | on
 11657 0272633 | FRITZ!DECT 210 | FRITZ!DECT 210 #2           | off
 11630 0128064 | FRITZ!DECT 200 | FRITZ!DECT 200 Schreibtisch | on
 09995 0335100 | FRITZ!DECT 301 | FRITZ!DECT 301 #4           |
 11630 0123723 | FRITZ!DECT 200 | FRITZ!DECT 200 #5           | off

列出一个设备的最后5次温度读数

$fritzctrl list --设备 "11630 0123723" --kindstemp --limit 3

        time         | Temperature (°C)
---------------------+------------------
 2021-01-31 23:42:31 |             22.0
 2021-01-31 23:27:31 |             23.0
 2021-01-31 23:12:31 |             23.0
 2021-01-31 22:57:31 |             23.0

打开设备

$fritzctrl switch --设备 "11630 0123723" --on

根据日照时间安排设备开关

  1. 首先找出您想要打开/关闭设备的时间。例如,$ fritzctrl daylight --from-date 2021-02-01 --to-date 2021-02-03 --shift-from="-30min" --shift-to="30hour"生成日出/日落时间分别提前30分钟(日出)和延迟30分钟(日落)
using device location (_, _)
sunrise: 2021-02-01 07:17:57
sunset: 2021-02-01 17:20:41
sunrise: 2021-02-02 07:16:20
sunset: 2021-02-02 17:22:36
sunrise: 2021-02-03 07:14:40
sunset: 2021-02-03 17:24:30

然后将一些命令存储到文件中

fritz-commands.txt:

2021-02-01 06:00:00 11630 0123723 on
2021-02-01 07:17:57 11630 0123723 off
2021-02-01 17:20:41 11630 0123723 on
2021-02-01 22:30:00 11630 0123723 off

您可以使用$ cat fritz-commands.txt | fritzctrl schedule运行命令开始处理这些命令

程序将等待下一个命令应该运行,然后切换设备状态。一旦所有命令完成,应用程序将退出。

为什么???

适用于安排您的圣诞灯饰!

Fritz API

使用fritz HTTP API

Rust API

如果您想直接与API集成,请查看fritzapi crate

许可证:MIT

依赖项

~10–24MB
~355K SLoC