cannonb4ll / laravel-philips-hue
Laravel Philips Hue 包,用于远程控制灯光
Requires
- php: ^7.1
- ext-json: *
- guzzlehttp/guzzle: ^6.5|^7.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- orchestra/testbench: ^3.8|^4.0|^5.0
README
简介
我创建这个包是为了我们公司Ploi (https://ploi.io),用于控制我们办公室的灯光。例如,当我们收到支持工单时,我们的灯光会短暂地变成绿色(Ploi的绿色),然后逐渐亮起。
此包可以轻松管理您的灯光。当有支持工单或新用户注册时,可以轻松触发灯光。
语法简单,如下所示;
(new HueClient)->lights()->on(1)
安装
首先需要此包
$ composer require cannonb4ll/laravel-philips-hue
将以下内容添加到 config/services.php 文件中
... 'philips-hue' => [ 'client_id' => env('PHILIPS_HUE_CLIENT_ID'), 'client_secret' => env('PHILIPS_HUE_CLIENT_SECRET'), 'app_id' => env('PHILIPS_HUE_APP_ID'), 'device_id' => env('PHILIPS_HUE_DEVICE_ID'), 'user' => env('PHILIPS_HUE_USERNAME') ] ...
注册(或登录)Philips Hue 开发者
https://developers.meethue.com/register/
接下来创建一个新的Philips Hue 应用
https://developers.meethue.com/add-new-hue-remote-api-app/
根据表单填写相应的字段。
回调URL:您需要填写有效的回调URL(在测试环境中,或者在生产环境中,您可能需要这样做)。这是因为我们将立即获取访问和刷新令牌并将其存储在您的应用程序中。如果您正在使用Valet,请在终端运行 valet share 来获取ngrok URL。在这种情况下,使用此URL作为回调: {NGROK_HOST}/hue/auth/receive(例如: http://aa0515c9.ngrok.io/hue/auth/receive)
之后,请注意以下变量
- AppId
- ClientId
- ClientSecret
我们还需要两个变量,即用于您桥接器的设备ID和用户名。
访问此URL并注意设备ID:https://discovery.meethue.com/(或访问 https://account.meethue.com/bridge,您也会在那里看到桥接器ID)
根据需要填写详细信息
PHILIPS_HUE_CLIENT_ID=
PHILIPS_HUE_CLIENT_SECRET=
PHILIPS_HUE_APP_ID=
PHILIPS_HUE_DEVICE_ID=
PHILIPS_HUE_USERNAME= <-- We will get this in below step
接下来,我们将创建一个用户,以便能够通过您的桥接器进行认证。
该包将为您注册2个路由
http://{app-url}/hue/auth
http://{app-url}/hue/auth/receive
首先访问 /hue/auth 以开始创建用户。
您将被提示允许您自己的应用程序权限,请接受,您将被重定向到您自己的应用程序。这是您将接收用户名的地方(这将保存在您的桥接器中),并且还需要在您的 .env 文件中输入此用户名。
获取此用户名(这是保存在您的桥接器中的),并输入到您的 .env 文件中
PHILIPS_HUE_USERNAME=
这就完成了!现在您应该能够执行我们下面描述的方法。
您还可以通过在 services.php 文件中添加 routes => false 来禁用包中的默认路由
'philips-hue' => [ 'client_id' => env('PHILIPS_HUE_CLIENT_ID'), 'client_secret' => env('PHILIPS_HUE_CLIENT_SECRET'), 'app_id' => env('PHILIPS_HUE_APP_ID'), 'device_id' => env('PHILIPS_HUE_DEVICE_ID'), 'user' => env('PHILIPS_HUE_USERNAME'), 'routes' => false ]
所有访问数据都保存在 storage/app/hue.json 文件中,该文件包含访问Philips Hue API的密钥。
方法
$hue = new HueClient(); $hue->groups()->all(); $hue->lights()->all(); $hue->lights()->get(1); $hue->lights()->on(1); $hue->lights()->off(1); $hue->lights()->customState(1, [ "hue" => 25500, "bri" =>200, "alert" => 'select' ]);
待办事项
- 无需物理按下链接按钮即可使用
- 添加场景资源
- 添加计划资源
- 添加传感器资源
- 添加规则资源
- 添加功能资源
- 添加异常
- 添加测试
- 修复刷新令牌自动刷新问题
- 更新README方法
有用链接
https://discovery.meethue.com/
https://developers.meethue.com/develop/hue-api/
https://developers.meethue.com/my-apps/
https://account.meethue.com/apps
https://account.meethue.com/bridge
这不是飞利浦的官方包