azurre/php-broadlink

Broadlink 设备库

1.0.0 2018-07-30 14:57 UTC

This package is auto-updated.

Last update: 2024-09-22 08:27:33 UTC


README

基于 https://github.com/nick7zmail/MajorDoMo-dev_broadlink

支持设备

  • BroadLink SP3S (0x947a)

使用方法

在本地网络中查找设备

$loader = require_once __DIR__ . '/vendor/autoload.php';
echo '<pre>';
$devices = \Azurre\Component\SmartDevice\Broadlink\Transport::discover();
print_r($devices);

输出

Array
(
    [0] => Array
        (
            [ip] => 192.168.0.190
            [mac] => 17:5e:be:34:ec:14
            [type] => 38010
            [name] => SP3S(16A)
        )

)

获取授权数据

$loader = require_once __DIR__ . '/vendor/autoload.php';
echo '<pre>';
$device = new \Azurre\Component\SmartDevice\Broadlink\Device\SP3S;
$response = $device
    ->setHost('192.168.0.190')
    ->setMac('17:5e:be:34:ec:14')
    ->auth();

print_r($response);
$storage->saveAuthData('mydevice', $response); // Save auth data

输出

Array
(
    [id] => Array
        (
            [0] => 1
            [1] => 0
            [2] => 0
            [3] => 0
        )

    [key] => Array
        (
            [0] => 25
            [1] => 243
            [2] => 107
            [3] => 167
            [4] => 53
            [5] => 201
            [6] => 71
            [7] => 251
            [8] => 17
            [9] => 63
            [10] => 37
            [11] => 245
            [12] => 195
            [13] => 89
            [14] => 177
            [15] => 55
        )

    [time] => 1532957735
)

获取电源状态

$loader = require_once __DIR__ . '/vendor/autoload.php';
echo '<pre>';
$device = new \Azurre\Component\SmartDevice\Broadlink\Device\SP3S;
list($id, $key, $time) = $storage->getAuthData('mydevice'); // Get auth data
$device
    ->setHost('192.168.0.190')
    ->setMac('17:5e:be:34:ec:14')
if (time() - $time >= \Azurre\Component\SmartDevice\Broadlink\Transport::AUTH_KEY_EXPIRE) {
    $device->auth();
    // Save auth data
} else {
    // Authorize using saved credentials
    $device->auth($id, $key);
}
print_r( $device->getPowerState() );

输出

Array
(
    [power_state] => 1
    [light_state] => 0
)

获取当前电源

$loader = require_once __DIR__ . '/vendor/autoload.php';
echo '<pre>';
$device = new \Azurre\Component\SmartDevice\Broadlink\Device\SP3S;
list($id, $key, $time) = $storage->getAuthData('mydevice'); // Get auth data
$device
    ->setHost('192.168.0.190')
    ->setMac('17:5e:be:34:ec:14')
if (time() - $time >= \Azurre\Component\SmartDevice\Broadlink\Transport::AUTH_KEY_EXPIRE) {
    $device->auth();
    // Save auth data
} else {
    // Authorize using saved credentials
    $device->auth($id, $key);
}
var_dump( $device->getCurrentPower() )

输出

float(268.32)

设置电源状态

$loader = require_once __DIR__ . '/vendor/autoload.php';
echo '<pre>';
$device = new \Azurre\Component\SmartDevice\Broadlink\Device\SP3S;
list($id, $key, $time) = $storage->getAuthData('mydevice'); // Get auth data
$device
    ->setHost('192.168.0.190')
    ->setMac('17:5e:be:34:ec:14')
if (time() - $time >= \Azurre\Component\SmartDevice\Broadlink\Transport::AUTH_KEY_EXPIRE) {
    $device->auth();
    // Save auth data
} else {
    // Authorize using saved credentials
    $device->auth($id, $key);
}
$turnOn = true;
$device->setPowerState($turnOn);