kan-agency / hive-php-api
支持Hive Home API的非官方包
Requires
- php: >=7.0.0
- guzzlehttp/guzzle: ^6.5
- jedkirby/json: ^0.1.0
Requires (Dev)
- jedkirby/php-cs: ^1.0
- mockery/mockery: ^1.3.0
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2024-09-15 23:37:52 UTC
README
支持Hive Home API的非官方包
安装
此包可以通过Composer安装
$ composer require kan-agency/hive-php-api
它需要 PHP >= 7.0.0。
简单用法
有一个名为Kan\Hive\Hive
的辅助类,应该使用与登录https://my.hivehome.com/login时相同的凭据进行实例化。这可以像下面这样完成
use Kan\Hive\Hive; $hive = new Hive( 'name@email.com', 'password' );
完成上述操作后,我们需要使用其ID创建一个对设备的引用(注意:您可以通过在https://my.hivehome.com/dashboard中选择所需的设备后查看URL来定位设备的ID)。
use Kan\Hive\Reference\Device; $plug = Device::make('123456ab-7898-7654-c321-d234567e89f1');
我们这里使用的是一个插座,所以下面的代码将适用于上面的$plug
设备
use Kan\Hive\Device\Plug; Plug::fromHive($hive, $plug)->off(); // Will switch the plug off. Plug::fromHive($hive, $plug)->on(); // Will switch the plug on.
就是这样,很简单。对于更高级的使用,请参阅以下部分。
高级用法
我们仍然需要实例化辅助类Kan\Hive\Hive
的一个实例,但是您可以使用服务提供者将此作为依赖项注入到类中。我们不会深入讨论如何做到这一点,因此在这个例子中,我们将使用上面的相同方法
use Kan\Hive\Hive; $hive = new Hive( 'name@email.com', 'password' );
现在我们可以在我们的项目中创建一个新的类,让我们称它为Lamp
,并确保它扩展了正确的设备类。对于这个例子,那就是Kan\Hive\Device\Plug
,因为我们有一个插座插在灯上。我们需要实现方法getDevice()
,使用它的ID返回正确的设备实例,如上所述
<?php namespace App; use Kan\Hive\Device\Plug; use Kan\Hive\Reference\Device class Lamp extends Plug { /** * {inheritdoc} */ public function getDevice() : Device { return Device::make('123456ab-7898-7654-c321-d234567e89f1'); } }
现在我们有了一个特定的设备类,我们可以像下面那样轻松地执行操作
$hive->device('App\Lamp')->off(); // Will switch the lamp off. $hive->device('App\Lamp')->on(); // Will switch the lamp on.
方法
以下概述了支持的设备和操作,以及您可以用于每个的每个方法
活动插座: Kan\Hive\Device\Plug
->on()
: 这将打开插座。->off()
: 这将关闭插座。
相机: Kan\Hive\Device\Camera
->on()
: 这将启动相机,启用检测和通知等功能。->off()
: 这将解除相机的武装。
动作: Kan\Hive\Device\Action
->trigger()
: 这将触发预定义的操作以运行。
测试
可以在包内运行单元测试
$ ./vendor/bin/phpunit
贡献
有关详细信息,请参阅CONTRIBUTING
许可证
kan-agency/hive-php-api 使用MIT许可证。有关更多详细信息,请参阅LICENSE文件。