This is a PHP library for working with Honeywell's Total Connect Comfort interface (TCC). It authenticates using user credentials and can provide data available through the web interface and more.
Compatible with PHP >=5.6
Install with Composer:
composer require tenth/my-total-comfort
composer install --no-dev
(There are notable dev dependencies that you really should only install if you want to auto-generate documentation.)
Please clone and contribute, or report bugs should you find them.
This repository has a script (makedocs.php) intended to automatically generate and publish documentation changes based on doc blocks. You can find that documentation in the Wiki.
As far as the repository is concerned, the documentation directory is a submodule. To clone everything all in one shot, add the --recursive
switch to your clone command:
git clone --recursive https://github.com/TenthPres/MyTotalComfort.git
There's currently an issue when generating documentation in PHP 7.4 that makes the formatting very poor. Other versions seem to work fine, and the package itself also works fine in 7.4.
The contributors to this project are not affiliated with Honeywell.
This Example is required before any of the other examples below will work.
require_once 'vendor/autoload.php';
$tcc = new \Tenth\MyTotalComfort("email@example.com", "password");
Current Temperature and Set Points for all Zones in a Location.
require_once 'vendor/autoload.php';
$tcc = new \Tenth\MyTotalComfort("email@example.com", "password");
$locationId = 1234567;
echo "<table>";
echo "<tr>
<td>id</td>
<td>name</td>
<td>heatSet</td>
<td>dispTemp</td>
<td>coolSet</td>
</tr>";
foreach ($tcc->getZonesByLocation($locationId) as $zi => $zone) {
echo "<tr>
<td>{$zone->id}</td>
<td><a href='https://www.mytotalconnectcomfort.com/portal/Device/Control/{$zone->id}'>{$zone->name}</a></td>
<td>{$zone->heatSetpoint}</td>
<td>{$zone->dispTemperature}</td>
<td>{$zone->coolSetpoint}</td>
</tr>";
}
echo "</table>";
require_once 'vendor/autoload.php';
$tcc = new \Tenth\MyTotalComfort("email@example.com", "password");
$zoneId = 1234567;
$z = $tcc->getZone($zoneId);
$z->heatSetpoint = 70;
$z->coolSetpoint = 74;