Bonjour, il y a la possibilité de repasser en mode automatique Tado.
En modifiant le fichier tado_oauth.php et en rajoutant une boucle "else if", j'envoi à mon thermostat un ordre de température pour 1 minute seulement. Ainsi, celui-ci revient automatiquement par la suite au programme défini.
Avantage:
Avec un détecteur d'ouverture de fenêtre, je peux maintenant arrêter le chauffage de la pièce dès que j'ouvre la fenêtre et relancer la programmation défini dans Tado dès que je ferme la fenêtre.
Etape 1: ajouter une valeur au périphérique Consigne Thermostat
- Valeur Brute: 26
- Description: Programme ON
- URL, Type et Paramètres comme les autres valeurs
Etape 2: éditer le fichier tado_oauth.php
//Debut Modification
else if ($_GET['setpoint_temperature'] == '26.0')
{
// type = HEATING, AIR_CONDITIONING, HOT_WATER
$type = getArg('type');
$home_zone = getArg('home_zone');
$tok = explode('-', $home_zone);
$home_id = $tok[0];
$zone_id = $tok[1];
if ($_GET['setpoint_temperature'] != '')
{
saveVariable('setpoint_temperature_'.$home_id.'_'.$zone_id, $_GET['setpoint_temperature']);
}
$setpoint_temperature = sdk_get_tado_value('setpoint_temperature', 0, $home_id, $zone_id);
// mode = COOL, HEAT
if ($_GET['zone_mode'] != '')
{
saveVariable('zone_mode_'.$home_id.'_'.$zone_id, $_GET['zone_mode']);
}
$zone_mode = sdk_get_tado_value('zone_mode', 'HEAT', $home_id, $zone_id);
// fan speeds : fanSpeed = LOW, MIDDLE, HIGH, AUTO
if ($_GET['fan_speed'] != '')
{
saveVariable('fan_speed_'.$home_id.'_'.$zone_id, $_GET['fan_speed']);
}
$fan_speed = sdk_get_tado_value('fan_speed', 'MIDDLE', $home_id, $zone_id);
// Swings : swing = ON, OFF
if ($_GET['swing'] != '')
{
saveVariable('swing_'.$home_id.'_'.$zone_id, $_GET['swing']);
}
$swing = sdk_get_tado_value('swing', 'OFF', $home_id, $zone_id);
if ($setpoint_temperature == 0)
{
$power = 'OFF';
}
else
{
$power = 'ON';
}
if ($zone_mode == 'COOL' || $type == 'AIR_CONDITIONING')
{
$json_cooling = ', "fanSpeed" :"'.$fan_speed.'"';
}
// ## ERROR : Querying [https://my.tado.com/api/v2/homes/557101/zones/1/overlay] with [{"setting": {"type": "AIR_CONDITIONING", "power": "ON", "mode": "HEAT", "temperature": {"celsius": 23}, "fanSpeed" :"AUTO"},"termination": {"type": "MANUAL"}}] {"errors":[{"code":"setting.notSupported","title":"swing not in supported swings [OFF, ON]"}]}
// {"errors":[{"code":"setting.notSupported","title":"swing not allowed in mode HEAT"}]}
if ($zone_mode == 'COOL' || ($type == 'AIR_CONDITIONING' && $zone_mode != 'HEAT'))
{
$json_cooling .= ', "swing" :"'.$swing.'"';
}
//$json = '{"setting": {"type": "'.$type.'", "power": "'.$power.'", "mode": "'.$zone_mode.'", "temperature": {"celsius": '.$setpoint_temperature.'}'.$json_cooling.'},"termination": {"type": "MANUAL"}}';
//$json = '{"setting": {"type": "'.$type.'", "power": "'.$power.'", "mode": "'.$zone_mode.'", "temperature": {"celsius": 10.5}'.$json_cooling.'},"termination": {"type": "MANUAL"}}';
$json = '{"setting": {"type": "'.$type.'", "power": "'.$power.'", "mode": "'.$zone_mode.'", "temperature": {"celsius": 18.0}'.$json_cooling.'},"termination": {"type": "TIMER","durationInSeconds":60}}';
$url = $api_url.'api/v2/homes/'.$home_id.'/zones/'.$zone_id.'/overlay';
$response = sdk_tado_api_call($url, 'PUT', $json);
if (strpos($response, 'errors') !== false)
{
echo "## ERROR : Querying [$url] with [$json]\n";
}
echo $response;
saveVariable('last_xml_success_'.$home_id.'_'.$zone_id, 0);
}
//Fin Modification
else if ($_GET['setpoint_temperature'] != '' || $_GET['zone_mode'] != '' || $_GET['fan_speed'] != '' || $_GET['swing'] != '')
Cordialement,
Jérôme