skydiablo/shelly

There is no license information available for the latest version (dev-main) of this package.

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

dev-main 2025-11-11 14:52 UTC

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.