omlet/smartcoop-sdk

该软件包最新版本(1.0.0)没有提供许可证信息。

与SmartCoop API交互的SDK

1.0.0 2024-05-22 20:51 UTC

This package is auto-updated.

Last update: 2024-09-23 13:42:08 UTC


README

此SDK旨在简化与Omlet的无缝认证并提供设备交互。使用我们的SDK,开发者可以轻松检索设备信息,并执行针对其设备和组定制的操作。

简介

入门

概述

要使用此SDK,用户需要在omlet上注册,您将使用相同的电子邮件和密码凭据进行认证。我们将介绍如何将此SDK包含到您的应用程序中以及如何与您的设备交互。

安装

要安装SmartCoop SDK,请确保您系统上已安装Composer。然后,创建或导航到您的项目目录,并执行以下命令

composer require omlet/smartcoop-sdk

在您的项目根目录下,现在运行

composer install

安装完成后,您将使用电子邮件和密码生成一个API密钥,该密钥将用于随后的所有交互。

认证

创建API密钥

要生成API密钥,您需要使用为App使用的电子邮件和密码登录开发控制台。登录后,导航到“API密钥”并点击“生成密钥”。请注意此密钥。

在您的项目根目录中创建一个.env文件,然后将env.example的内容复制到其中。使用上面生成的token替换API_KEY

Omlet

概述

Omlet对象提供了检索所有设备、获取单个设备、创建组处理器和创建用户处理器的能力。

创建实例

require_once 'vendor/autoload.php';

$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$token = $_ENV['API_TOKEN'];
if (!$token) {
    throw new Exception('token environment variable is not set.');
}

$omlet = \Omlet\SmartCoop\Omlet::create($token);

检索设备

$devices = $omlet->getDevices();
foreach ($devices as $device) {
    // a list of your devices
}

// a single device
$device = $omlet->getDeviceById('123456');

这些函数将返回一个设备处理器,允许您与单个设备交互。

创建组

$group = $omlet->createGroup("New Group name");

检索组

$groups = $omlet->getGroups();
foreach ($groups as $$group) {
    // a list of your groups
}

// a single group
$group = $omlet->getGroupById('groupID')

检索用户

$user = $omlet->getUser();

设备处理器

设备处理器提供了一种与特定设备交互的方式,并可以看到设备数据

设备数据

设备处理器将包含一个数据对象,其中包含设备的最新状态配置。您可以通过getter方法访问每个属性。

设备操作

设备操作用于与设备交互。设备数据中有一个可用的操作列表。我们可以通过从列表中检索一个来对设备执行操作

$deviceHandler = $omlet->getDeviceById('123456');
$deviceHandler->getActions();

操作对象包含操作描述。要执行操作,筛选出您要执行的操作,例如打开门,并将其传递给action函数

$deviceHandler->action($action)

更新设备配置

要更新设备的配置,我们需要与配置对象交互。

$configuration = $deviceHandler->getData()->getConfiguration()->copy();

此对象将为您提供设备的当前配置信息。然后您可以使用设置方法来更改值。

例如,如果我们想更改设备门的开启时间

$configuration = $deviceHandler->getData()->getConfiguration()->copy();
$doorConfiguration = $configuration->getDoor();
$doorConfiguration->setOpenTime("07:30");
$configuration->setDoor($doorConfiguration);

$device->updateConfiguration($configuration);

组处理器

组处理器提供了一种与特定组交互并查看组数据的方法。

组数据

组处理器将保存包含组信息、用户、管理员和属于该组的设备的数据对象。

更新组名

我们可以更新单个组的名称。

$groupHandler->updateGroupName("New Name");

删除组

我们可以删除与处理器关联的组。

$groupHandler->deleteGroup();

邀请用户

我们可以通过电子邮件邀请用户加入当前组,并指定他们的访问权限。

// invite a user with User access
$groupHandler->inviteUser("user@example.com", Acccess::USER);

// invite a user with Admin access
$groupHandler->inviteUser("user@example.com", Acccess::ADMIN);

移除用户

我们可以通过他们的电子邮件地址从组中移除用户。

$groupHandler->removeUser("user@example.com");

更新用户访问权限

我们可以通过他们的电子邮件地址更新用户的访问级别。

$groupHandler->updateUserAccess("user@example.com", Acccess::ADMIN);

用户处理器

用户处理器提供了一种与认证用户的功能交互的方法。

用户数据

用户处理器将保存包含用户信息和邀请的数据对象。

接受邀请

我们可以通过检索数据对象的邀请数组来接受邀请。

$invites = $userHandler->getData()->getInvites();

// invites is an array containing GroupSubset objects. Pass one of these
// to acceptInvite

$userHandler->acceptInvite($groupSubset);

拒绝邀请

我们可以通过检索数据对象的邀请数组来拒绝邀请。

$invites = $userHandler->getData()->getInvites();

// invites is an array containing GroupSubset objects. Pass one of these
// to rejectInvite

$userHandler->rejectInvite($groupSubset);

类型

我们使用以下数据类型从Omlet API响应和请求

操作

操作对象提供以下详细信息

方法

  • getName():返回操作的名称。
  • getDescription():返回操作的描述。
  • getValue():返回与操作关联的值。
  • getPending():返回操作的挂起状态。如果不适用,则可能返回null。
  • getUrl():返回可以对API执行操作的URL。

配置

在检索后,配置对象将为您提供设备当前配置的概述。

方法

  • getGeneral():返回通用设置。
  • getConnectivity():返回连接设置。
  • getDoor():返回设置。
  • getLight():返回灯光设置。
  • copy():返回具有相同详细信息的NEW 配置类型。在更新配置时非常重要。

配置连接

配置连接对象提供以下详细信息

方法

  • getBluetoothState():返回蓝牙连接状态。
  • getWifiState():返回Wi-Fi连接状态。

配置门

配置门对象提供以下详细信息

方法

  • getDoorType():返回门类型。
  • getOpenMode():返回门开启模式。
  • getOpenDelay():返回门开启前的延迟时间。
  • getOpenLightLevel():返回门开启时的光照级别。
  • getOpenTime():返回门开启的时间。
  • getCloseMode():返回门关闭模式。
  • getCloseDelay():返回门关闭前的延迟时间。
  • getCloseLightLevel():返回门关闭时的光照级别。
  • getCloseTime():返回门关闭的时间。
  • getColour():返回门的颜色。

配置概况

《配置概况》对象提供以下详细信息

方法

  • getDatetime():返回当前日期和时间。
  • getTimezone():返回时区。
  • getUseDst():返回是否使用夏令时。
  • getUpdateFrequency():返回更新频率。
  • getLanguage():返回语言设置。
  • getOvernightSleepEnable():返回是否启用夜间睡眠模式。
  • getOvernightSleepStart():返回夜间睡眠模式的开始时间。
  • getOvernightSleepEnd():返回夜间睡眠模式的结束时间。
  • getPollFreq():返回轮询频率。
  • getStayAliveTime():返回存活时间。
  • getStatusUpdatePeriod():返回状态更新周期。

配置灯光

《配置灯光》对象提供以下详细信息

方法

  • getMode():返回灯光的模式。
  • getMinutesBeforeClose():返回灯光自动关闭前的时间(分钟数)。
  • getMaxOnTime():返回灯光可以保持开启的最大时间。
  • getEquipped():返回灯光是否已配备。

设备

《设备》对象代表一个SmartCoop智能设备。

方法

  • getDeviceId():返回设备的唯一标识符。
  • getName():返回设备的名称。
  • getDeviceType():返回设备的类型。
  • getState():返回设备的当前状态
  • getConfiguration():返回设备的配置设置。
  • getActions():返回可以在设备上执行的操作数组。

分组

《分组》对象代表用户所属的分组。

方法

  • getGroupId():返回分组的唯一标识符。
  • getGroupName():返回分配给分组的友好名称。
  • setGroupName(string $groupName):void:设置分组的友好名称。
  • getAccess():返回用户对分组的访问级别。可以是管理员或用户。
  • getDevices():返回与该分组关联的设备数组。
  • getAdmins():返回该分组的管理员用户数组。
  • getUsers():返回该分组的成员用户数组。

分组子集

方法

  • getGroupId():返回分组子集的唯一标识符。
  • getGroupName():返回分配给分组子集的友好名称。
  • getAccess():返回用户对分组子集的访问级别。

分组用户

方法

  • getEmailAddress():返回用户的电子邮件地址。
  • getFirstName():返回用户的首名。
  • getLastName():返回用户的姓氏。
  • getAccess():返回用户对分组的访问级别。

状态

《状态》对象在检索后将提供设备当前状态的总览

方法

  • getGeneral():返回表示一般状态信息的状态概况对象。
  • getConnectivity():返回表示连接状态信息的状态连接对象。
  • getDoor():返回表示门状态信息的状态门对象。
  • getLight():返回表示灯光状态信息的状态灯光对象。

状态连接

《状态连接》对象提供以下详细信息

方法

  • getSsid():返回设备Wi-Fi网络的SSID(服务集标识符)。
  • getWifiStrength():返回设备Wi-Fi信号强度。
  • getWifiPowerLevel():返回设备Wi-Fi的功率级别。
  • getBluetoothStrength():返回设备蓝牙信号强度。

门状态

门状态对象提供以下详细信息

方法

  • getState():返回门的当前状态:“打开”或“关闭”。
  • getLastOpenTime():返回门上次打开的时间戳。
  • getLastCloseTime():返回门上次关闭的时间戳。
  • getFault():返回与门相关的任何故障信息。
  • getLightLevel():返回门的光照水平。

通用状态

通用状态对象提供以下详细信息

方法

  • getFirmwareVersionCurrent():返回设备的当前固件版本。
  • getFirmwareVersionPrevious():返回设备的上一个固件版本。
  • getFirmwareLastCheck():返回上次检查固件的日期和时间。
  • getBatteryLevel():返回设备的电池电量。
  • getPowerSource():返回设备的电源。
  • getUptime():返回设备的运行时间。
  • getDisplayLine1():返回第一行显示内容。
  • getDisplayLine2():返回第二行显示内容。

灯光状态

灯光状态对象提供以下详细信息

方法

  • getState():返回当前灯光状态:“开启”或“关闭”。

用户

用户对象代表已认证的用户。

方法

  • getUserId():返回用户的唯一标识符。
  • getFirstName():返回用户的首名。
  • getLastName():返回用户的姓氏。
  • getEmailAddress():返回用户的电子邮件地址。
  • getSiteLink():返回与用户关联的网站链接。
  • getInvites():返回一组用户子站邀请。