kan-agency/hive-php-api

支持Hive Home API的非官方包

1.0.2 2020-10-15 15:00 UTC

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文件。