jkniest / hue-it

Philips Hue API 的 PHP 封装

0.3.0 2022-12-18 14:35 UTC

This package is auto-updated.

Last update: 2024-09-10 10:39:50 UTC


README

Test

安装

通过 composer 安装此包

composer require jkniest/hue-it

文档

完整文档可以在这里找到。

入门

您可以使用 hue-it 封装器连接到本地网络或使用云服务。

用法(本地网桥)

首先,您需要找到您的网桥的 IP 地址。您可以在路由器中找到该地址。

您还需要对您的网桥有物理访问权限。

以下是如何通过 IP 地址 123.456.78.9 连接到网桥的示例。在调用 authenticate 方法后,应用程序将等待您按下网桥上的 LINK 按钮。

use jkniest\HueIt\PhillipsHue;

$hue = new PhillipsHue('123.456.78.9');
$hue->authenticate('device'); // Press LINK button

$hue->getLight(3)->turnOn();

当然,您可以重复使用生成的用户名。有关更多信息,请参阅本地认证

用法(云服务)

使用 hue 云服务比本地网络复杂一些。首先,您需要创建一个 Philips hue 应用

创建应用后,您将有权访问客户端凭据(ID 和密钥)和应用程序 ID。我们需要这两个来通过云服务连接。设备 ID 和名称可以随意选择。

在继续之前,我们建议您先了解OAuth2 的基础知识。

有关更多信息,请参阅云认证

use jkniest\HueIt\PhillipsHueCloud;
use jkniest\HueIt\Cloud\HueClient;
use jkniest\HueIt\Cloud\HueDevice;

$client = new HueClient('id', 'secret');
$device = new HueDevice('id', 'name');

$hue = new PhillipsHueCloud($client, $device, 'app-id');
$hue->getOAuthUrl('state'); // The user must open this url in the browser.

// Here you can use the code which came back from the OAuth process.
$hue->authenticate('code');

$hue->getLight(3)->turnOn();

测试

如果您在使用 hue-it 时编写测试,并且不希望在每次测试套件运行时都进行 API 请求,有以下两种可能性

  1. 模拟 PhillipsHue 实例
  2. 创建您自己的 Fake PhillipsHueGateway。

目前我们还没有关于此的文档,但每个 Gateway 都扩展自一个抽象类,并且有自己的客户端(云客户端 VS 本地客户端)。您可以创建一个新的 Gateway 类和 / 或客户端类,返回模拟或假数据。

通常计划提供完整的测试模式。

PHP 兼容性

请使用以下表格检查哪个版本适用于您的 PHP 版本

路线图

  • 测试模式
  • 创建 / 删除 / 编辑群组和灯
  • 功能 API
  • 更新处理(网桥 & 灯更新)
  • 实现更多实体:计划、场景、传感器、规则等。
  • 配置过渡时间

贡献

请参阅CONTRIBUTING 以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件mail@jkniest.de报告,而不是使用问题跟踪器。

鸣谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件