跳转到主要内容

用于与myStrom设备交互的异步Python API客户端

项目描述

用于与myStrom设备交互的异步Python API客户端。

此模块非官方,非myStrom AG开发、支持或认可。有关问题和其它咨询,请使用此仓库的问题跟踪器。

在没有myStrom AG的支持下,创建此模块将会花费更长的时间,它是Home Assistant集成的基础。myStrom AG提供了硬件。他们的持续支持使得此模块的进一步开发成为可能。

需求

您需要安装Python

  • myStrom设备(灯泡、插头或按钮)

  • python-mystrom需求

  • 网络连接

  • 连接到您的网络的设备

安装

该软件包可在Python包索引中找到。

$ pip3 install python-mystrom

在基于Fedora的系统或已启用EPEL的CentOS/RHEL机器上。

$ sudo dnf -y install python3-mystrom

对于Nix或NixOS用户,有可用的软件包。请注意,最新的版本可能仅在不稳定通道中提供。

$ nix-env -iA nixos.python3Packages.python-mystrom

插头/开关

目前以下端点得到覆盖,根据https://api.mystrom.ch

  • /report:获取当前状态和功耗

  • /relay:用于设置继电器状态

您仍然可以使用智能手机应用程序、curl或其他工具使用您的设备。以下示例显示了如何使用httpie和curl以及python-mystrom使用开关。

$ http http://IP_ADDRESS_PLUG/report
HTTP/1.1 200 OK
Content-Length: 39
Content-Type: application/json
Date: Mon, 15 Feb 2016 17:52:21 GMT

{
    "power": 51.630947,
    "relay": true
}
$ curl -X GET http://IP_ADDRESS_PLUG/relay?state=1

灯泡

如果灯泡是开启的,那么您应该能够获取灯泡的当前状态。

浏览到http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB或使用命令行工具。

$ curl -d "color=0;0;100" -d "action=on" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB
{
    "5DFF7FAHZ987":         {
            "on": true,
            "color": "0;0;100",
            "mode": "hsv",
            "ramp": 100,
            "notifyurl": ""
        }
}

灯泡无法处理JSON格式的有效载荷。必须使用application/x-www-form-urlencoded。如果在设置HSV颜色时出现问题,请记住这一点。

如果您打算使用Home Assistant与灯泡配合使用,请使用应用程序将灯泡设置为颜色状态,或使用以下命令。

$ curl -d "color=0;0;100" IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

设置状态

您可以通过POST请求和有效载荷来设置状态。

  • 开启curl -d "action=on" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

  • 关闭curl -d "action=off" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

  • 切换$ curl -d "action=toggle" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

设置RGB颜色

设置颜色的支持模式之一是RBG

  • 白色$ curl -d "color=FF000000" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

  • 红色$ curl -d "color=00FF0000" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

  • 绿色$ curl -d "color=0000FF00" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

  • 蓝色$ curl -d "color=000000FF" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

设置HSV颜色(色调,饱和度,亮度)

也可以使用HSV

$ curl -d "color=0;0;100" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

“color=”由色调、饱和度和亮度组成。

设置单色(白色)

如果您只想设置灯泡的“白色”颜色,请使用单色

$ curl -d "color=10;100" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

“color=”包含颜色温度(从1到18)和亮度(从0到100)的值。

调光(渐变)

添加渐变和间隔以设置改变颜色时的过渡时间。

$ curl -d "action=on&ramp=1000&color=00FF0000" http://IP_ADDRESS_BULB/api/v1/device/MAC_ADDRESS_BULB

渐变的单位是毫秒(ms)。

按钮

按钮可以通过myStrom应用程序或直接通过HTTP请求来设置。

要设置配置,有效载荷必须包含关于动作的相关详细信息。

$ curl -v -d "single=<url>&double=<url>&long=<url>&touch=<url>" http://IP_ADDRESS_BUTTON/api/v1/device/MAC_ADDRESS_BUTTON

可用的动作

  • 单次:短按(约1/2秒)

  • 双次:2次连续短按(在2秒内)

  • 长按:长按(约2秒)

  • 触摸:按钮表面的触摸(仅对WiFi Button +有效)

按钮被设置为尽可能延长电池寿命。这意味着只有在前3分钟内或连接到USB端口/USB充电器且电池未充满时,按钮才能接收配置信息或发布其详细信息。

mystrom 帮助工具

命令行工具mystrom可以帮助设置按钮并从灯泡和插座获取详细信息。

$ mystrom
Usage: mystrom [OPTIONS] COMMAND [ARGS]...

  Simple command-line tool to get and set the values of a myStrom devices.

  This tool can set the targets of a myStrom button for the different
  available actions single, double, long and touch.

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  bulb    Get and set details of a myStrom bulb.
  button  Get and set details of a myStrom button.
  config  Get and set the configuration of a myStrom...

示例展示了如何获取指定灯泡的详细信息。

$ mystrom config read
IP address of the myStrom device: IP_ADDRESS_BULB
MAC address of the device: MAC_ADDRESS_BULB
Read configuration from IP_ADDRESS_BULB
{
   'MAC_ADDRESS_BULB':{
      'type':'rgblamp',
      'battery':False,
      'reachable':True,
      'meshroot':False,
      'on':True,
      'color':'191;90;14',
      'mode':'hsv',
      'ramp':100,
      'power':0.953,
      'fw_version':'2.25'
   }
}

模块的示例用法

灯泡的示例可以在目录 examples 中找到。

许可证

python-mystrom 采用 MIT 许可,更多详情请查看 LICENSE。

项目详情


下载文件

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

源分布

python-mystrom-2.2.0.tar.gz (16.4 kB 查看散列值)

上传时间

支持者

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