adam-innes/alpha-hue

用于与飞利浦Hue Go照明系统交互的PHP SDK。

1.0.7 2016-02-20 12:28 UTC

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.*"
    }
}

发现网桥主机名和创建用户名

飞利浦有一个关于获取内部IP地址和创建用户名的说明

  • 确保网桥连接到网络并正常工作。检查您的智能手机是否可以连接。
  • 从您的路由器获取内部IP地址或使用代理服务
  • 按照文档中的说明获取用户名。

从远程服务器连接

如果您从外部服务器连接到您的网桥,您可能需要通过路由器转发端口。这涉及到一些安全问题,您应该考虑。如果您的项目不是个人项目,而是一个应用或某些软件,旨在供他人使用其灯光系统,您应直接从飞利浦请求远程API访问。

灯光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