chanshige/sesame

sesame智能锁API封装。

v2.1.1 2024-02-13 17:01 UTC

This package is auto-updated.

Last update: 2024-09-13 18:21:11 UTC


README

Packagist CI

CandyHouse的Sesame智能锁API使用的库。
此库用于使用sesame3/4/5智能锁API。
※ 需要OpenSSL Crypto库(ext-crypto)。

安装

※準備中
$ composer require chanshige/sesame

使用

<?php
// initialize
use Chanshige\SmartLock\Sesame\Action;
use Chanshige\SmartLock\Sesame\Client;
use Chanshige\SmartLock\Sesame\Device;

$sesame = Client::newInstance('sesame-api-key');

$device = new Device(
    uuid: '488ABAAB-164F-7A86-595F-DDD778CB86C3', // Sesameデバイス固有のID
    secretKey: 'a13d4b890111676ba8fb36ece7e94f7d', // デバイスを操作するための鍵
);
// ※ 2023/12現在、https://partners.candyhouse.co/login から取得可能でした。

获取Sesame的状态

$response = $sesame(new Action\Status($device));

$response = >>>EOF
array (size=6)
  'batteryPercentage' => int 100 // バッテリー残量
  'batteryVoltage' => float 5.8627565982405 // バッテリー電圧(V)
  'position' => int 256 // 
  'CHSesame2Status' => string 'locked' // locked | unlocked | moved
  'timestamp' => int 1703000024 // Sesameの更新時間
  'wm2State' => boolean true // wifiモジュールの状態
EOF;

获取Sesame的历史记录

$response = $sesame(new Action\History($device, 1, 100));

Sesame的锁/解锁操作

API请求成功返回200。body为空。(是否成功锁/解锁可以通过Status字段进行确认)如果WiFi模块未连接,将抛出404错误。

// 鍵をかける
$response = $sesame(new Action\Lock($device, 'chanshigeが鍵かけた'));

// 鍵をあける
$response = $sesame(new Action\UnLock($device, 'chanshigeが鍵あけた'));

// 鍵をひたすら回す
$response = $sesame(new Action\Toggle($device, 'chanshigeが操作した'));

测试

$ composer tests

贡献

请随意创建问题并提交pull请求。对于任何提交的PR,请确保它有测试覆盖或包含新的测试。

安全

如果您发现任何安全相关的问题,请通过作者邮箱而不是问题跟踪器进行报告。

许可协议

MIT

作者

chanshige