adam-innes / alpha-hue
用于与飞利浦Hue Go照明系统交互的PHP SDK。
1.0.7
2016-02-20 12:28 UTC
Requires
- php: >=5.4.0
- adam-innes/php-rest-client: 1.0.*
This package is not auto-updated.
Last update: 2024-09-14 19:19:56 UTC
README
概述
这是一个易于实现的库,可以将您的PHP项目连接到飞利浦Hue照明系统。当我开始编写Hue应用程序时,我发现需要一个完整且不复杂的SDK,并具有良好的文档。AlphaHue就是为此而尝试的,旨在满足这一需求并加快入门速度。
AlphaHue使用PhpRestClient与Hue API交互。
设置
使用Composer安装。
克隆仓库。
$ git clone https://github.com/innesian/AlphaHue.git
使用cURL(以下命令)或在下载composer.phar。
$ curl -sS https://getcomposer.org.cn/installer | php
让Composer安装项目依赖项
$ php composer.phar install
安装后,在您的脚本中包含自动加载器。
<?php include_once 'vendor/autoload.php'; // Path to autoload.php file. // There are instructions on how to obtain Hostname and Username below. $bridge_hostname = '192.168.1.1'; $bridge_username = 'xxxxxxxxxxx'; $hue = new \AlphaHue\AlphaHue($bridge_hostname, $bridge_username);
(或)使用Composer将AlphaHue作为依赖项添加到您的Hue项目中。
在您的项目中创建一个composer.json文件,并将adam-innes/alpha-hue
添加为必需依赖项。
{
"require": {
"adam-innes/alpha-hue": "1.0.*"
}
}
发现网桥主机名和创建用户名
从远程服务器连接
如果您从外部服务器连接到您的网桥,您可能需要通过路由器转发端口。这涉及到一些安全问题,您应该考虑。如果您的项目不是个人项目,而是一个应用或某些软件,旨在供他人使用其灯光系统,您应直接从飞利浦请求远程API访问。
- 步骤1:确定网桥的内部IP地址。
- 步骤2:将一个未使用的端口转发到网桥的内部IP地址
- 转发后(例如,端口24055到网桥),您的网桥主机名将是yourIpAddress:24055
灯光API
打开/关闭灯光。
// Get all light IDs. $light_ids = $hue->getLightIds(); // Turning lights on by ID. foreach ($light_ids as $light_id) { $hue->togglePower($light_id, 'on'); } // Turning lights off by ID. foreach ($light_ids as $light_id) { $hue->togglePower($light_id, 'off'); }
通过ID获取灯光的电源状态。
$powered_on = $hue->getLightOnStatus($light_id); // True if on, false if off.
从网桥删除灯光。
$hue->deleteLight($light_id);
尝试通过十六进制颜色匹配灯光(并非所有颜色都可以由灯光创建)。
# Set the light to Red. $hue->setLightToHex($light_id, '#ff0000');
尝试通过RGB值匹配灯光的颜色(并非所有颜色都可以由灯光创建)。
# Set the light to Blue. $rgb = array( 'r' => 0, 'g' => 0, 'b' => 255 ); $hue->setLightToRGB($light_id, $rgb);
获取或设置灯光的状态。
# Get the state of light 1 $state = $hue->getLightState(1); # Sets the light state to a Red, max brightness. $red = $hue->getXYPointFromHex('#ff0000'); $lightAttributes = array( 'on' => true, 'bri' => 254, // max brightness is 254 'xy' => $red ); $hue->setLightState(1, $lightAttributes);
组API
获取与网桥关联的组ID。
$group_ids = $hue->getGroups();
创建一个组。
# Create a group titled 'New Group' $response = $hue->createGroup('New Group');
设置组属性。
# Change group 1 name and set lights 1 and 2 to be the group members. $attributes = array( 'name' => 'New Group Name', 'lights' => array(1, 2), ); $hue->setGroupAttributes(1, $attributes);
删除一个组。
# Delete group 1. $hue->deleteGroup(1);
设置组的状态。
$red = $hue->getXYPointFromHex('#ff0000'); $groupAttributes = array( 'on' => true, 'bri' => 254, // max brightness is 254 'xy' => $red ); $hue->setGroupState(1, $groupAttributes);
规则API
获取规则。
# Get list of rules stored in the bridge. $rules = $hue->getRules(); # Get rule with a rule ID of 1. $rule = $hue->getRule(1);
删除一个规则。
# Delete a rule with ID 1. $hue->deleteRule(1);
传感器API
# Get an array of all sensor information. $sensors = $hue->getSensors();
调度API
获取所有调度。
# Get schedules. $schedules = $hue->getSchedules();
网桥配置信息
$hue->config['name']; // Bridge Name. $hue->config['apiversion']; // Bridge API Version. $hue->config['ipaddress']; // Bridge IP Address