跳转到主要内容

控制飞利浦空气净化器的命令行程序

项目描述

Build Status PyPI version

控制飞利浦空气净化器的命令行应用程序。支持通过HTTP、CoAP和加密CoAP通信的设备。

安装

需要Python 3.4+。使用pip3安装

$ pip3 install py-air-control

如果你的设备使用CoAP,请更新CoAPthon3依赖项以获取对已知多个错误修复

$ pip3 install -U git+https://github.com/rgerganov/CoAPthon3

Wi-Fi设置

空气净化器可以通过以下步骤连接到Wi-Fi网络

  1. 将净化器置于配对模式。在AC2729上,这是通过按下电源和儿童锁定按钮3秒钟来完成的。净化器将创建一个开放的“PHILIPS Setup”Wi-Fi网络。
  2. 将您的电脑连接到“PHILIPS Setup”网络,并通过DHCP获取IP设置。净化器的IP地址将是192.168.1.1。
  3. 现在您可以重新配置净化器的Wi-Fi网络,如下所示
airctrl --ipaddr 192.168.1.1 --wifi-ssid <your_wifi_ssid> --wifi-pwd <your_wifi_password>

注意:此功能仅适用于通过HTTP工作的设备

在本地网络中的使用

获取IP地址为192.168.0.17的设备的当前状态

$ airctrl --ipaddr 192.168.0.17
[pwr]   Power: ON
[pm25]  PM25: 4
[rh]    Humidity: 32
[rhset] Target humidity: 60
[iaql]  Allergen index: 1
[temp]  Temperature: 22
[func]  Function: Purification & Humidification
[mode]  Mode: M
[om]    Fan speed: 2
[aqil]  Light brightness: 100
[wl]    Water level: 100
[cl]    Child lock: False

如果您的局域网中只有一个设备,或者您想向所有设备发送命令,则无需指定IP地址(--ipaddr参数)。如果UDP 1900端口未被阻止,将通过SSDP(UPnP)自动检测IP地址。

您可以通过使用方括号中的前缀作为命令行选项来更改设置。例如,要设置风扇速度为2

$ airctrl --om 2

对于AC2889,可能需要指定手动模式风扇速度

$ airctrl --mode M --om 2

将目标湿度设置为50%

$ airctrl --rhset 50

更改功能为“净化”

$ airctrl --func P

关闭设备电源

$ airctrl --pwr 0

等等

获取过滤器状态

$ airctrl --filters
Pre-filter and Wick: clean in 245 hours
Wick filter: replace in 3965 hours
Active carbon filter: replace in 1565 hours
HEPA filter: replace in 3965 hours

切换通信协议

使用 --protocol 切换通信协议。以下命令将尝试使用加密的 CoAP 协议获取当前状态

$ airctrl --ipaddr 192.168.0.17 --protocol coap

以下命令将尝试使用未加密的 CoAP 协议获取当前状态

$ airctrl --ipaddr 192.168.0.17 --protocol plain_coap

无需 root 权限运行(仅支持 Plain CoAP 协议)

从 Linux 内核 2.6.39 开始支持。

使用 id 命令查询您的组 ID

$ id -g
995

以下命令设置允许创建 ICMP 套接字的组 ID 范围(ping_group_range 内核参数,默认为 "1 0",表示不允许任何组创建 ICMP Echo 套接字)

$ sudo sysctl -w net.ipv4.ping_group_range="0 1000"
net.ipv4.ping_group_range = 0 1000

使其永久生效

$ echo "net.ipv4.ping_group_range=0 1000" | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
net.ipv4.ping_group_range = 0 1000

(另请参阅:https://man7.org/linux/man-pages/man7/icmp.7.html

不同设备的输出

  • 点击此处获取更多示例 here

通过云服务使用

使用 cloudctrl 脚本通过 Philips 云控制您的设备。

首先您需要找到您的设备 ID,开通账户并将账户与设备 ID 配对

$ airctrl --ipaddr 192.168.0.17 --wifi
{'cppid': '9dcc618e9a82045d',
...
$ cloudctrl 9dcc618e9a82045d --pair 192.168.0.17
Creating cloud account ...
Logging in with 000000fff0000019
Client id: 000000fff10d40a1
Client key: NrIBL02WJNFDICqR6FGKig==
Exchanging secret key with the device ...
Saving session_key 512735aa3a5dc2608dfa8997b1b03a29 to /home/rgerganov/.pyairctrl
Pairing with 192.168.0.17 ...
{'return': [0]}
Logging in with 000000fff10d40a1
Sending pair request to cloud service ...
Relationship status: completed

配对操作只需在每个设备上执行一次,在设备的本地网络中。

然后您可以通过使用其 ID 和保存在 ~/.pyairctrl 中的账户来通过互联网控制已配对的设备

$ cloudctrl 9dcc618e9a82045d --pwr 1
Logging in with 000000fff10d40a1
Sending event {'pwr': '1'} to device with id 9dcc618e9a82045d

注意:上述所有 ID 和凭证均为随机生成,仅供说明之用 注意:此功能仅适用于通过 HTTP 运作的设备

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源代码分布

py-air-control-2.3.0.tar.gz (17.3 kB 查看哈希值)

上传时间 源代码

构建分布

py_air_control-2.3.0-py3-none-any.whl (25.4 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面