skydiablo / shelly
PHP library for controlling Shelly devices
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/skydiablo/shelly
Requires
- php: >=8.0
- php-extended/php-ip-object: ^6.0
- php-extended/php-mac-object: ^6.0
- react/http: ^3@dev
This package is auto-updated.
Last update: 2025-11-11 14:55:16 UTC
README
A PHP library for controlling and managing Shelly devices.
Requirements
- PHP >= 8.0
- react/http ^3
Installation
composer require skydiablo/shelly
Features
- HTTP and AMQP client support for Shelly devices
- Support for various Shelly components:
- System configuration and management
- WiFi configuration
- MQTT configuration
- Switch control
- Cloud settings
- KVS (Key-Value Store)
- Executer
- Device models for Gen2 devices (Generic, Pro1PM)
- Asynchronous operations using ReactPHP promises
Usage
use PhpExtended\Ip\Ipv4Address; use PhpExtended\Mac\MacAddress48Parser; use SkyDiablo\Shelly\Model\Factory; use SkyDiablo\Shelly\Model\Shelly; use PhpExtended\Ip\Ipv4AddressParser; // Create factory with MAC address parser $factory = new Factory(new MacAddress48Parser()); $ipParser = Ipv4AddressParser(); $ip = $ipParser->parse('192.168.0.10'); // Create a Shelly device instance from IP address $factory->shelly($ip)->then(function(Shelly $shelly) { // Use the Shelly device instance // The factory automatically fetches device info including MAC address })->otherwise(function($error) { // Handle error });
License
MIT License - see LICENSE file for details.