dutchie027/govee

一个简单的PHP包,用于通过其API控制Govee Wi-Fi系统

v1.5.1 2022-05-11 16:28 UTC

README

Latest Stable Version Total Downloads License CodeFactor

一个简单的PHP包,允许您通过他们的API控制Govee智能灯

要求

  • PHP >7.2

安装

您可以使用Composer包管理器安装此包。您可以在项目根目录中运行以下命令进行安装

composer require dutchie027/govee

基本用法

实例化客户端

要使用Govee API的任何功能,您首先需要一个连接引用。然后,此连接引用可以传递给灯光库或插头库,或者如果您同时拥有Govee灯光和插头,也可以同时传递给这两个库。

// Ensure we have the composer libraries
require_once ('vendor/autoload.php');

// Instantiate with defaults
$govee = new dutchie027\govee\Connect("GOVEE-API-KEY");

// Instantiate without defaults, this allows you to change things
// like log location, directory, the tag and possible future settings.
$settings = [
  'log_dir' => '/tmp',
  'log_name' => 'govee-api',
  'log_tag' => 'mylights',
  'log_level' => 'error'
];

$govee = new dutchie027\govee\Connect("GOVEE-API-KEY", $settings);

设置

默认设置就很好,但是您可能想要覆盖默认设置或使用自己的设置。注意:所有设置都是可选的,您不需要提供任何设置

连接(核心)函数

获取设备数量

print $govee->getDeviceCount();

获取所有设备的数组

$array = $govee->getDeviceList();

示例返回数组

Array
(
    [0] => Array
        (
            [device] => 46:F1:CC:F6:FC:65:FF:AA
            [model] => H6159
            [deviceName] => Office-Color
            [controllable] => 1
            [retrievable] => 1
            [supportCmds] => Array
                (
                    [0] => turn
                    [1] => brightness
                    [2] => color
                    [3] => colorTem
                )

        )

)

获取所有可调用的MAC地址数组

$macArray = $govee->getDeviceMACArray();

MAC返回数组

Array
(
    [0] => A9:E9:0A:04:AD:CD:12:34
    [1] => FA:8F:50:B2:AD:A7:00:12
    [2] => E0:94:41:AC:62:13:56:78
)

获取所有设备名称数组

$nameArray = $govee->getDeviceNameArray();

设备名称返回数组

Array
(
    [0] => My-Living-Room
    [1] => Hallway
    [2] => Fire-House
)

获取日志文件的存储位置

print $govee->getLogLocation();

示例返回字符串

/tmp/2Zo46b.1607566740.log

灯光函数

控制灯光

要控制灯光,您首先需要建立连接,然后引用连接

// Ensure we have the composer libraries
require_once ('vendor/autoload.php');

// Instantiate with defaults
$govee = new dutchie027\govee\Connect("GOVEE-API-KEY");

一旦您获得了灯光的引用,它将预加载所有设备MAC地址和名称。

打开灯光

要打开灯光,只需提供MAC地址或灯光名称即可。

$govee->lights()->turnOn("AC:14:A3:D5:E6:C4:3D:AE");

or

$govee->lights()->turnOn("Office-Wall");

关闭灯光

与打开灯光类似,要关闭灯光,只需提供MAC地址或灯光名称即可。

$govee->lights()->turnOff("AC:14:A3:D5:E6:C4:3D:AE");

or

$govee->lights()->turnOff("Office-Wall");

调整灯光亮度

要调整亮度,只需提供名称或MAC以及亮度,一个介于0和100之间的INT。

$govee->lights()->setBrightness("AC:14:A3:D5:E6:C4:3D:AE", 75);

or

$govee->lights()->setBrightness("Office-Wall", 75);

更改灯光颜色

要调整颜色,只需提供名称或MAC以及亮度,然后提供您想要设备设置为的R、G、B颜色。 注意 红色、绿色和蓝色的值必须在0到255之间。

$govee->lights()->setColor("AC:14:A3:D5:E6:C4:3D:AE", 255, 255, 0);

or

$govee->lights()->setBrightness("Office-Wall", 255, 0, 0);

调整灯光温度

要调整温度,只需提供名称或MAC以及名称,然后提供温度。 注意 温度必须是介于2000和9000之间的INT。

$govee->lights()->setTemp("AC:14:A3:D5:E6:C4:3D:AE", 5000);

or

$govee->lights()->setTemp("Office-Wall", 5000);

获取灯光状态

要获取有关灯光的所有详细信息,只需将名称或MAC地址传递给getDeviceState。您将得到一个JSON返回,您可以选择读取或将其传递给json_decode并将其转换为数组以使用/读取。

$govee->lights()->getDeviceState("AC:14:A3:D5:E6:C4:3D:AE");

or

$govee->lights()->getDeviceState("Office-Wall");
{
  "data": {
    "device": "AC:14:A3:D5:E6:C4:3D:AE",
    "model": "Office-Wall",
    "properties": [
      {
        "online": true
      },
      {
        "powerState": "on"
      },
      {
        "brightness": 100
      },
      {
        "color": {
          "r": 255,
          "b": 0,
          "g": 255
        }
      }
    ]
  }
}

插头函数

打开插头

$govee->plugs()->turnOn("AC:14:A3:D5:E6:C4:3D:AE");

or

$govee->plugs()->turnOn("Office-Wall");

关闭插头

$govee->plugs()->turnOff("AC:14:A3:D5:E6:C4:3D:AE");

or

$govee->plugs()->turnOff("Office-Wall");

贡献

如果您遇到问题、发现错误或有功能建议,请提交问题。如果您愿意,可以随意分支包并提交拉取请求。这是一个正在进行中的项目,随着我获取更多信息以及Govee API的增长而不断发展。