andrewaubury/tuya-client

API client for Tuya

dev-main 2021-03-20 20:22 UTC

This package is auto-updated.

Last update: 2024-04-21 03:12:39 UTC


README

CI codecov Author Software License Packagist Version Total Downloads

An WIP API Client for controlling Tuya products, heavily inspired by tuyapy.

Currently Supporting

  • Switch devices

Installation

composer require inverse/tuya-client

Example

<?php

require __DIR__ . '/vendor/autoload.php';

use Inverse\TuyaClient\Session;
use Inverse\TuyaClient\ApiClient;
use Inverse\TuyaClient\Device\SwitchDevice;
use Inverse\TuyaClient\BizType;

// Setup credentials
$username = getenv('TUYA_USERNAME');
$password = getenv('TUYA_PASSWORD');
$countryCode = getenv('TUYA_COUNTRYCODE');
$bizType = new BizType(BizType::TUYA);

// Make client
$session = new Session($username, $password, $countryCode, $bizType);
$apiClient = new ApiClient($session);

// Get all devices
$devices = $apiClient->discoverDevices();

// Switch on all switches
foreach ($devices as $device) {
    if ($device instanceOf SwitchDevice) {
        if (!$device->isOn()) {
            $apiClient->sendEvent($device->getOnEvent());
        }
    }
}

Testing

Copy phpunit.xml.dist to phpunit.xml and replace the server variables with your credentials.

Licence

MIT