跳转到主要内容

Big Ass Fans的SenseME异步Python库

项目描述

aiosenseme库

PyPI version Downloads

此异步Python库为Big Ass Fans的SenseME风扇和灯光提供周期性发现、控制和基于推送的状态。它主要开发用于通过asyncio访问Home Assistant的SenseME设备,但也应在其他应用程序中正常工作。

此库(基于TomFaulkner的库)为每个受控风扇保持一个开放的套接字,以便从任何来源包括本地控制的状态变化可以几乎立即推送。这种方法更加健壮和响应。还添加了一个发现任务,以定期检测网络上的SenseME设备。

嗅探数据包并记录协议是Bruce的工作。他制作Indigo插件的工作使此库成为可能。

感谢 PenitentTangent2401 在调试独立Haiku Light时提供的帮助。

型号说明

  • 已确认支持Haiku、Haiku H和Haiku L风扇。
  • 已确认支持已停产的独立Haiku Light。
  • 间接支持无线墙控,通过风扇状态报告实现。
  • 可能支持Haiku C风扇。
  • i6风扇目前不支持。
  • es6风扇很可能不支持。此功能未经测试。

命令行访问

现在,aiosenseme包会与命令行脚本一起安装。要发现网络上的所有设备,请输入以下内容。在此发现中找到了两个标准Haiku风扇和一个Haiku Light。风扇位于Studio风扇房间,Haiku Light不属于任何房间。

$ aiosenseme --discover
Studio Beam Fan
  Room Name: Studio Fans, Room Type: Family Room
  Model: Haiku Fan with light, FW Version: 2.6.0
  IP Addr: 192.168.1.2, MAC Addr: FF:FF:FF:FF:FF:FF
  UUID: 73264cb2-1234-1234-1234-012345678912
Studio Vault Fan
  Room Name: Studio Fans, Room Type: Family Room
  Model: Haiku Fan with light, FW Version: 2.6.0
  IP Addr: 192.168.1.3, MAC Addr: FF:FF:FF:FF:FF:FF
  UUID: 73264cb2-1234-1234-1234-012345678913
Hallway Light
  Model: Haiku Light, FW Version: 2.6.0
  IP Addr: 192.168.1.3, MAC Addr: FF:FF:FF:FF:FF:FF
  UUID: 73264cb2-1234-1234-1234-012345678913

要获取设备信息和状态,请输入以下内容。这使用发现来匹配指定的设备名称或房间名称。

$ aiosenseme -n "Studio Vault Fan"
Studio Vault Fan
  Room Name: Studio Fans, Room Type: Family Room
  Model: Haiku Fan with light, FW Version: 2.6.0
  IP Addr: 192.168.1.3, MAC Addr: FF:FF:FF:FF:FF:FF
  UUID: 73264cb2-1234-1234-1234-012345678912
State: Fan is off, Light is off

在此,风扇速度被设置,并且灯被打开。请注意,当设置特定风扇速度值时,Whoosh也被关闭。

$ aiosenseme --name "Studio Vault Fan" --speed 3 --light on
Studio Beam Fan
  Room Name: Studio Fans, Room Type: Family Room
  Model: Haiku Fan with light, FW Version: 2.6.0
  IP Addr: 192.168.1.2, MAC Addr: FF:FF:FF:FF:FF:FF
  UUID: 73264cb2-1234-1234-1234-012345678912
State: Fan is on (speed: 2), Light is off, Whoosh: on
New State: Fan is on (speed: 3), Light is on (brightness: 16)

您也可以通过IP地址选择风扇。这直接连接到风扇,而不使用发现。

$ aiosenseme -i 192.168.1.3 --speed 4
Studio Vault Fan
  Room Name: Studio Fans, Room Type: Family Room
  Model: Haiku Fan with light, FW Version: 2.6.0
  IP Addr: 192.168.1.3, MAC Addr: FF:FF:FF:FF:FF:FF
  UUID: 73264cb2-1234-1234-1234-012345678912
State: Fan is off, Light is off
New State: Fan is on (speed: 4), Light is off

要更改Haiku Light的颜色温度,请输入以下内容。更改Haiku Light的颜色温度不会在灯已关闭的情况下打开灯。

$ aiosenseme --name "Hallway Light" --light on --colortemp 5000
Hallway Light
  Model: Haiku Light, FW Version: 2.6.0
  IP Addr: 192.168.1.3, MAC Addr: FF:FF:FF:FF:FF:FF
  UUID: 73264cb2-1234-1234-1234-012345678913
State: Light is off
State: Light is on (brightness: 9, color temp: 5000)

要以JSON格式获取风扇的信息和状态。

$ aiosenseme -i 192.168.1.3 -j
{
    "address": "192.168.1.3",
    "base_model": "FAN,HAIKU,SENSEME",
    "device_beeper": true,
    "device_indicators": true,
    "fan_autocomfort": "OFF",
    "fan_cooltemp": 22.77,
    "fan_dir": "FWD",
    "fan_on": false,
    "fan_smartmode": "OFF",
    "fan_speed": 0,
    "fan_speed_limits_room": [
        1,
        7
    ],
    "fan_speed_max": 7,
    "fan_speed_min": 1,
    "fan_whoosh_mode": false,
    "fw_version": "2.6.0",
    "has_light": true,
    "has_sensor": true,
    "is_fan": true,
    "is_light": false,
    "light_brightness": 0,
    "light_brightness_limits_room": [
        1,
        16
    ],
    "light_brightness_max": 16,
    "light_brightness_min": 1,
    "light_on": false,
    "mac": "FF:FF:FF:FF:FF:FF",
    "model": "Haiku Fan",
    "motion_detected": false,
    "motion_fan_auto": false,
    "motion_light_auto": false,
    "name": "Studio Vault Fan",
    "network_gateway": "255.255.255.0",
    "network_ip": "192.168.1.3",
    "network_ssid": "Network IoT",
    "network_subnetmask": "192.168.1.1",
    "room_name": "Studio",
    "room_type": "Family Room",
    "sleep_mode": false,
    "uuid": "73264cb2-1234-1234-1234-012345678913"
}

问题

  • 有很多错误处理和重新连接逻辑来帮助处理这些设备有时会在网络上停止工作的事实。我已经通过始终保持与设备的开放连接来降低这种情况发生的可能性,而不是使用多个套接字连接,但它仍然会发生。
  • 发现有时根本不起作用,并且可能会持续一段时间。通过IP地址而不是发现进行连接可能仍然有效。
  • 早期测试表明,Big Ass Fans的i6风扇与该库不兼容。Big Ass Fans网站表示i6风扇具有SenseME技术,但使用不同的应用程序,该应用程序需要蓝牙进行初始设置。有一些证据表明设置后应用程序仍然使用WiFi控制风扇。
  • 占用传感器与其他风扇设置/状态的处理方式不同;占用状态变化不会立即推送,必须通过定期状态更新来检测。因此,这个传感器看起来可能不太灵敏。
  • UDP端口31415必须可用且不被防火墙阻止。
  • 此库无法处理同一台机器上运行多个发现实例。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

aiosenseme-0.6.1.tar.gz (35.7 kB 查看哈希值)

上传时间 源码

构建分发版

aiosenseme-0.6.1-py3-none-any.whl (34.9 kB 查看哈希值)

上传时间 Python 3

由以下提供支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面