PHPackages                             robertogallea/restado - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. robertogallea/restado

ActiveLibrary[API Development](/categories/api)

robertogallea/restado
=====================

Client for Tado REST API

1.2.1(3y ago)15141↓100%1[1 issues](https://github.com/robertogallea/restado/issues)PHP

Since Aug 31Pushed 1y ago4 watchersCompare

[ Source](https://github.com/robertogallea/restado)[ Packagist](https://packagist.org/packages/robertogallea/restado)[ RSS](/packages/robertogallea-restado/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (9)Used By (0)

Restado
=======

[](#restado)

PHP and Laravel library for managing Tado system

[![Latest Version on Packagist](https://camo.githubusercontent.com/40540daf4942a1f0fb4c71b02a1e36fa40fdf5e023416a7596230c44c7381fdc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f726f626572746f67616c6c65612f7265737461646f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/robertogallea/restado)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Build Status](https://camo.githubusercontent.com/a211fb6a074ec43d25975fc9c59fceab1da8ca4212ff699703a932d4a29ae0c2/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6a65726f656e6e6f74656e2f4c61726176656c2d41646d696e4c54452f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/jeroennoten/Laravel-AdminLTE)[![Total Downloads](https://camo.githubusercontent.com/a92f1816da88d071befb449d51458b0849a4287f10c281da44d1019ead72cf2d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f726f626572746f67616c6c65612f7265737461646f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/robertogallea/restado)

This package provides a simple interface towards the public Tado Thermostat System API. It wraps the web methods available for authenticating users and retrieve information from the local devices.

The package is also integrated within Laravel.

Since the API is currently officially undocumented, if you are aware of methods missing in this library, please inform me!

1. [Installation](#1-installation)
2. [Updating](#2-updating)
3. [Configuration](#3-configuration)
4. [Usage](#4-usage)
5. [Supported Methods](#5-supported-methods)
6. [Issues, Questions and Pull Requests](#6-issues-questions-and-pull-requests)

1. Installation
---------------

[](#1-installation)

1. Require the package using composer:

    ```
    composer require robertogallea/restado

    ```
2. Add the service provider to the `providers` in `config/app.php`:

    > Laravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider

    ```
    Robertogallea\Restado\RestadoServiceProvider::class,
    ```
3. Add the alias to the `aliases` in `config/app.php`:

    ```
    'Restado' => Robertogallea\Restado\Facades\Restado::class,
    ```
4. Add the following variables to your .env file

    ```
    TADO_CLIENT_ID=       // defaults to 1bb50063-6b0c-4d11-bd99-387f4a91cc46
    ```

2. Updating
-----------

[](#2-updating)

1. To update this package, update the composer package:

    ```
    composer update robertogallea/restado
    ```

3. Configuration
----------------

[](#3-configuration)

1. To use Restado, no further configuration is required. However, if you wish to tweak with config, publish the relative configuration file using the command

```
php artisan vendor:publish --provider="Robertogallea\Restado\RestadoServiceProvider" --tag=config
```

4. Usage
--------

[](#4-usage)

To use this package you should use the method of the Restado facade.

1. Get the verification Data according to RFC8628 (device\_code):

    ```
    $verificationData = Restado::getVerificationUrl();
    ```
2. Call the verification\_uri\_complete URL from $verificationData with a browser any complete the verfication process.
3. Obtain a valid token for your session with device\_code given in $verificationData in Step 1:

    ```
    $access_token = Restado::authorize(['device_code' => $verificationData['device_code']]);
    ```
4. Use a method to get the related information, for example:

    ```
    $me = Restado::me($access_token);
    ```

each method returns an object containing the data from the server. Currently the API is not officially documented, the only reference I found is at this page:

5. Supported Methods
--------------------

[](#5-supported-methods)

Currently these methods are supported:

### Authorisation

[](#authorisation)

- authorize();
- me($access\_token);

### Home and device data

[](#home-and-device-data)

- getHome($access\_token);
- setHome($access\_token, $settings);
- getHomeWeather($access\_token);
- getHomeDevices($access\_token);
- getHomeInstallations($access\_token);
- getHomeUsers($access\_token);
- setDazzle($access\_token, $zone\_id, $setting);

### Mobile devices

[](#mobile-devices)

- getHomeMobileDevices($access\_token);
- deleteHomeMobileDevice(token, $mobile\_device\_id);
- getHomeMobileDeviceSettings($access\_token, $mobile\_device\_id);
- setHomeMobileDeviceSettings($access\_token, $mobile\_device\_id, $settings);
- identifyDevice($access\_token, $device\_id);
- getAppUsersRelativePositions($access\_token);

### Home zones

[](#home-zones)

- getHomeZones($access\_token);
- getHomeZoneState($access\_token, $zone\_id);
- getHomeZoneStates($access\_token, $home\_id);
- getHomeZoneDayReport($access\_token, $zone\_id, $date);
- getHomeZoneCapabilities($access\_token, $zone\_id);
- getHomeZoneEarlyStart($access\_token, $zone\_id);
- setHomeZoneEarlyStart($access\_token, $zone\_id, $settings);
- getHomeZoneOverlay($access\_token, $zone\_id);
- setHomeZoneOverlay($access\_token, $zone\_id, $settings);
- deleteHomeZoneOverlay($access\_token, $zone\_id);
- getHomeZoneScheduleActiveTimetable($access\_token, $zone\_id);
- setHomeZoneScheduleActiveTimetable($access\_token, $zone\_id, $settings);
- getHomeZoneScheduleAway($access\_token, $zone\_id);
- setHomeZoneScheduleAway($access\_token, $zone\_id, $settings);
- getHomeZoneScheduleTimetableBlocks($access\_token, $zone\_id, $timetable\_id, $pattern=null);
- setHomeZoneScheduleTimetableBlocks($access\_token, $zone\_id, $timetable\_id, $pattern, $settings);

### Temperature offset

[](#temperature-offset)

- getTemperatureOffset($access\_token, $device\_id);
- setTemperatureOffset($access\_token, $device\_id, $settings);

### Open window detection

[](#open-window-detection)

- setOpenWindowDetection($access\_token, $zone\_id, $settings);

### Presence detection

[](#presence-detection)

- isAnyoneAtHome($access\_token);
- getPresenceLock($access\_token);
- setPresenceLock($access\_token, $settings);

### Energy IQ &amp; savings reports

[](#energy-iq--savings-reports)

- deleteEnergyIQMeterReading($access\_token, $reading\_id);
- addEnergyIQMeterReading($access\_token, $settings);
- updateEnergyIQTariff($access\_token, $settings);
- getEnergyIQMeterReadings($access\_token);
- getEnergyIQTariff($access\_token);
- getEnergyIQ($access\_token);
- getEnergySavingsReport($access\_token, $year, $month, $country\_code);

> To request an energy savings report via getEnergySavingsReport, you're required to pass a three-letter country code in accordance with [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3)

6. Issues, Questions and Pull Requests
--------------------------------------

[](#6-issues-questions-and-pull-requests)

You can report issues and ask questions in the [issues section](https://github.com/robertogallea/restado/issues). Please start your issue with `ISSUE: ` and your question with `QUESTION: `

If you have a question, check the closed issues first.

To submit a Pull Request, please fork this repository, create a new branch and commit your new/updated code in there. Then open a Pull Request from your new branch. Refer to [this guide](https://help.github.com/articles/about-pull-requests/) for more info.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 67.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~279 days

Recently: every ~358 days

Total

8

Last Release

1217d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/818f547bcf73a82393d9014c85c90c83d760102a8d4dfe806353afb83848a901?d=identicon)[robertogallea](/maintainers/robertogallea)

---

Top Contributors

[![robertogallea](https://avatars.githubusercontent.com/u/19411470?v=4)](https://github.com/robertogallea "robertogallea (66 commits)")[![pimhofman](https://avatars.githubusercontent.com/u/26851635?v=4)](https://github.com/pimhofman "pimhofman (25 commits)")[![pimhofman-proudnerds](https://avatars.githubusercontent.com/u/57660156?v=4)](https://github.com/pimhofman-proudnerds "pimhofman-proudnerds (5 commits)")[![slemke76](https://avatars.githubusercontent.com/u/6418880?v=4)](https://github.com/slemke76 "slemke76 (2 commits)")

---

Tags

apihacktoberfesthacktoberfest2021laravelresttado

### Embed Badge

![Health badge](/badges/robertogallea-restado/health.svg)

```
[![Health](https://phpackages.com/badges/robertogallea-restado/health.svg)](https://phpackages.com/packages/robertogallea-restado)
```

###  Alternatives

[atymic/twitter

Twitter API for PHP &amp; Laravel

945555.4k2](/packages/atymic-twitter)[dcblogdev/laravel-microsoft-graph

A Laravel Microsoft Graph API (Office365) package

168285.5k1](/packages/dcblogdev-laravel-microsoft-graph)[dcblogdev/laravel-xero

A Laravel Xero package

53129.1k1](/packages/dcblogdev-laravel-xero)[typhonius/acquia-php-sdk-v2

A PHP SDK for Acquia CloudAPI v2

222.8M7](/packages/typhonius-acquia-php-sdk-v2)[bynder/bynder-php-sdk

Bynder PHP Library

171.1M3](/packages/bynder-bynder-php-sdk)[weble/zohoclient

Zoho API Client for oAuth auth and common tasks - PHP SDK

11145.6k3](/packages/weble-zohoclient)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
