dutchie027 / govee-api-v2
API Using Govee's newer OpenAPI Spec
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.9
- monolog/monolog: ^3.8
- oittaa/uuid: ^1.10
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.66
- nunomaduro/phpinsights: ^2.12
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.5
README
Govee PHP API v2
This is a rewrite of the Govee API I wrote a while back. Govee changed the API to be more robust, so I am rewriting the code to accommodate.
WORK IN PROGRESS
NOTE: This is still a work in progress. As I commit more to it, it will become more stable, but for now it's not fully baked.
Requirements
- PHP >8
Installation
You can install the package using the Composer package manager. You can install it by running this command in your project root:
composer require dutchie027/govee-api-v2
Basic Usage
Set up the Environment Variables
Rename .env.sample
to .env
and set the variables accordingly.
Instantiate the client
To use any of the Govee API functions, you first need a connection reference. The connection refrence can then be fed to either the Lights library or the Plugs library, or even both if you have both Govee Lights and Plugs.
Using the full name:
// Ensure we have the composer libraries require_once ('vendor/autoload.php'); // Instantiate & Connect $govee = new dutchie027\GoveeApiV2\Connect();
Using a namespace:
// Ensure we have the composer libraries require_once ('vendor/autoload.php'); // Namespace use dutchie027\GoveeApiV2\Connect; // Instantiate with defaults $govee = new Connect();
Get Device Count
print $govee->getDeviceCount();
Get All Devices
$array = $govee->getDeviceList();
NOTE: This function takes a boolean parameter. If the parameter is set to true it will return an array based on the Govee API. If it's set to false, it returns raw JSON.
Get An Array of All Callable MAC Addresses
$macArray = $govee->getDeviceMACArray();
MAC Return Array
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 )
Get An Array of All Device Names
$nameArray = $govee->getDeviceNameArray();
Device Name Return Array
Array ( [0] => My-Living-Room [1] => Hallway [2] => Fire-House )
Contributing
If you're having problems, spot a bug, or have a feature suggestion, file an issue. If you want, feel free to fork the package and make a pull request. This is a work in progresss as I get more info and the Govee API grows.