Plugin Tado

Bonjour, oui je suis en train de regarder mais la gestion de la clim par Tado est assez complexe et il y a de nombreux réglages différents en fonction du matériel connecté… Je n’ai pas développé au départ pour la clim, donc je dois faire des modification sur une structure qui n’a pas été pensée pour cela au depart…

Ton fichier de configuration est très utile merci. Tu es la premiere personne à m’envoyer ta conf et qui a une configuration aussi complete.

1 « J'aime »

Hello Dino,
Quand je veux set la température du thermostat Tado Clim depuis jeedom j’ai le message d’erreur suivant

Exception when calling HomeApi->updateZoneOverlay: [422] Client error: `PUT https://my.tado.com/api/v2/homes/499836/zones/1/overlay` resulted in a `422 Unprocessable Entity` response: {"errors":[{"code":"setting.notSupported","title":"fan speed not in supported fan speeds [AUTO, HIGH, LOW, MIDDLE]"}]}	

La mise en Off de la clim marche bien.
je t’ai envoyé ma conf :wink:

J’ai remonté mes bugs depuis Juillet à notre ami @Dino en espérant une update. A ce jour, 0 update (j’ai également envoyé ma config complète).

J’ai corrigé moi même un bug bloquant sur ma clim (plus haut dans le topic) qui n’a pas été non plus intégré dans une update.

N’en n’attends pas trop pour ta Clim (je précise bien pour la Clim, vu que le plugin n’a pas été pensé pour à la base apparemment)

@biotoxic937

J’ai corrigé ce bug en éditant le fichier tado.class dans « plugins/tado/class »

Recherche à la ligne 866

if ( $_options['slider'] >= $capabilities['temperatures']['celsius']['min'] && $_options['slider'] <= $capabilities['temperatures']['celsius']['max'] ) {
					$setting = array(

Ajoute en dessous:

'fanSpeed' => 'Auto',

Enregistre et tu pourras régler ta température. C’est du « bricolage », ta vitesse de ventilation sera en automatique mais au moins tu peux régler la température (perso, je suis toujours en auto, je ne joue que sur la température même quand je suis en manuel)

1 « J'aime »

Merci @BetyOops
j’ai ajusté un peu plus que ce que tu as dit pour que ça fonctionne car si je ne précise pas le swing, ça ne fonctionne pas non plus
le chemin complet du fichier est /var/www/html/plugins/tado/core/class/tado.class.php au cas où certains ne sauraient pas où le trouver
voici l’ensemble du code modifié

$setting = array(
						'type' => $eqLogic->getConfiguration('eqType'),
						'power' => 'ON',
						'temperature' => array (
							'celsius' => $_options['slider']
						),
						'fanSpeed' => 'AUTO',
						'swing' => 'OFF',
					);

en temps normal je ne change jamais ces paramètres donc c’est pas trop grave si c’est fixe.

1 « J'aime »

Cela n’était pas bloquant pour moi avec le Swing.

Tant mieux si j’ai pu t’apporter au moins le début de la réponse afin de pouvoir régler a minima la température :slight_smile: Après ca fonctionne pas trop mal.

J’ai créer des scénarios pour ajuster au plus proche la température des pièces.

Bonjour à tous,

À mon tour de recontrer un problème sur la récupération de certaines informations par le plugin.
J’ai de très nombreuses erreurs générées par le plugin avec les messages suivants (seulement un extrait pour donner un aperçu).

[2020-12-08 19:45:02][ERROR] : Exception when calling HomeApi->getHomeState: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:02][ERROR] : Exception when calling HomeApi->listMobileDevices: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:02][ERROR] : Exception when calling HomeApi->getZoneState: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:02][ERROR] : Exception when calling HomeApi->getZoneDetails: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:03][ERROR] : Exception when calling HomeApi->getZoneState: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:03][ERROR] : Exception when calling HomeApi->getZoneDetails: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:03][ERROR] : Exception when calling HomeApi->getZoneState: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:03][ERROR] : Exception when calling HomeApi->getZoneDetails: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
[2020-12-08 19:45:09][ERROR] : Exception when calling HomeApi->getHomeWeather: [0] cURL error 60: SSL: no alternative certificate subject name matches target host name 'my.tado.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Il semblerait que les informations de température soient bien remontées, cependant j’ai ajouté un nouveau thermostat et celui-ci n’apparait pas malgré les nombreuses tentatives de « refresh » depuis la configuration du plugin.
J’ai regardé depuis un PC sur le même réseau, et l’accès à my.tado.com ne pose aucun problème.

La résolution DNS fonctionne correctement, je n’arrive donc pas à comprendre ce qu’il se passe.

Avez-vous une piste?

Setup :

  • Jeedom 4.0.61 sur Raspberry 4, fonctionnant sur image officielle Jeedom (installée carte SD)
  • Tado version 2020-05-03 01:14:29

Merci d’avance pour votre aide.

Signé : Un « jeedomer » gelé :smiley:

Hello @Bowz

Peux tu essayer de te re-logguer depuis la page de configuration du plugin (vérifie bien que tes identifiants sont correct et que l’action « Login » donne bien un message d’authentification réussie). Un clic sur le bouton « envoyer la conf au dev » doit fournir une sortie avec pleins d’info, signe que le plugin est correctement connecté.

Merci de me dire si le problème est résolu ou non.

Hello @Dino,

J’ai essayé de supprimer mon compte puis de me connecter à nouveau, et malheureusement le problème persiste.

Cependant je suis en effet en mesure de générer la conf pour te l’envoyer si tu le souhaites (ce qui indique que le plugin se connecterai correctement d’après ce que tu disais).

Il semble que cela soit un problème de configuration de ta conf PHP.

Il y a un post sur le forum de quelqu’un qui a résolu un probleme d’appel curl ici:

Je te suggère d’essayer cette solution.

Merci pour ton retour, malheureusement cela n’a pas changé la situation.
J’avais déjà essayé cette manipulation, l’ai de nouveau mise en place mais le problème est toujours présent.

As-tu d’autres pistes? Peut-être que je peux essayer certaines commandes cURL directement à la main pour vérifier si cela fonctionne depuis mon raspberry (valider le fonctionnement pur réseau hors Jeedom).

Oui on peux essayer mais c’est un peu compliqué

Bon tout d’abords il faut que tu m’envoie ta conf. Si ta conf contient des info normale, ce qui est de desosus ne servira a rien… Si la conf indique que les info ne descendent pas de tado alors tu peux essayer ce qui suit.

  1. Récupère un token avec la commande qui suit depuis ton RPI, en remplacant le username et password par tes infos de connection à tado.
    curl -s « https://auth.tado.com/oauth/token » -d client_id=tado-web-app -d grant_type=password -d scope=home.user -d username=« xxxxxxx@yyyy.zzz » -d password=« PASSWORD » -d client_secret=wZaRN7rpjn3FoNyF5IFuxg9uMzYJcvOoQ8QWiIqS3hfk6gLhVlG57j5YNoZL2Rtc

  2. avec la commande précédente si cela a marché tu devrais avoir récupéré une réponse sous forme de JSON comme ci dessous. Il faut récupérer le access_token (j’ai mis des XXXXX mais c’est une chaine de charactères très longue…)
    {« access_token »:« XXXXX »,« token_type »:« bearer »,« refresh_token »:« YYYYY »,« expires_in »:599,« scope »:« home.user »,« jti »:« 000131f6-4880-464a-b729-ac1a6d4c9950 »}

  3. Lance la commande suivante en remplacant XXXXX par ton token
    curl -s « https://my.tado.com/api/v1/me » -H « Authorization: Bearer XXXXX »

Bonjour @Dino !

Heureux utilisateur de ton plugin, merci pour ce travail !

J’ai un thermostat filaire et 4 têtes thermostatiques.
Je possède aussi des sondes de température Netatmo et je les utilise en tant que source de température pour les têtes.
L’offset fait son job, c’est un moyen efficace en effet.

Il est vrai que les variations d’offset agitent un peu le mécanisme et donc les piles pour ajuster constamment le débit des vannes.

Est-ce que tu as essayé de voir s’il était possible de créer un thermostat sans fil Tado virtuel, dont la température serait une sonde telle que Netatmo pour mon cas.

Comme Tado vend cet équipement et qu’il est donc en mesure de remplacer la valeur mesurée dans une pièce, à la place de la tête, ça permettrait de ne pas toucher à l’offset et de mieux gérer le pilotage intelligent de la chaudière ?

A brut pour point, je me dis que :

  • si c’était possible tu l’aurais déjà fait
  • ce travail est fait sur les serveurs Tado qui associent ces valeurs directement sur leur infra
    … mais je demande, on ne sait jamais. :innocent:

PS : si besoin de testeur pour une version en cours de DEV qui tourne par exemple autour d’une meilleure gestion des têtes thermostatiques, fais moi signe bien entendu.

Salut…
Oui en effet une sonde de température Tado est sortie. J’en ai acheté une et ca marche très bien.

La fonctionnalité de sonde externe avec jeedom sera supprimée dans une prochaine mise a jour car elle pose trop de problemes pour les vannes sur pile.

Ok, merci pour la précision.

Donc comme c’était le seul intérêt pour moi d’utiliser ce plugin, piloter les têtes thermostatiques avec mes sondes Netatmo, j’aurai dû être plus vigilant. Tant pis :man_shrugging:t2: :wink:

J’avais imaginé qu’il serait peut-être possible de simuler ce fameux thermostat additionnel, j’ai fais erreur.

Le plugin a pleins d’autres interets :slight_smile:
Je ne comprends pas ce que tu demande avec le thermostat additionel? Que cherche tu a faire?

Ah oui, ce plugin à un intérêt certain en domotique, pas de débat. :+1:

Moi, je voulais juste éviter d’avoir à acheter 3 sondes sans-fil à 79€ l’unité :weary:

Ce que je me demandais c’est s’il était possible « d’enregistrer » via l’API un thermostat autre que l’officiel pour que la gestion de la puissance de chauffe ne se fasse pas via l’offset entre la tête et la sonde tierce (ce qui bouffe les piles), mais pour que la valeur de référence soit celle de la sonde virtuelle, sans toucher à l’offset donc.

Oui tu as raison les prix sont un peu délirant. Il y a régulièrement des promos sur le matériel Tado. J’ai acheté ma sonde 59 mais il pourrait y avoir mieux dans le futur

Ok je comprends. Non ce n’est pas possible a ma connaissance. Mais c’est une API fermée donc pas de certitudes. Comme la on parle de l’ajout de matériel Tado directement à l’écosystem Tado, ca me parait tout de même compliquer de faker le systeme…

Je profite de cette occasion pour demander comment évolue la question des détecteurs d’ouverture des fenêtres à l’extérieur du système ?
Serons-nous bientôt en mesure de les utiliser pour notifier à Tado les fenêtres ouvertes ?
Souvent, les têtes ou les thermostats ne collectent pas correctement ces informations automatiquement.

De même, si vous avez besoin d’un testeur pour cette fonction, je suis à votre disposition.

Salut Dino,

Après de nouveaux tests et nouvelle session de troubleshoot, j’ai identifié la source du problème.

J’ai vérifié les commandes en local via cURL (merci pour le partage) et j’ai fait la même chose depuis un PC avec cURL et PostMan.
Ces tests m’ont indiqué que le problème de communication n’était lié qu’à mon RPI.

J’ai ensuite vérifié via un tcpdump les communications et également activé les logs verbeux sur la commande cURL.
J’ai obtenu ceci :

* Trying 54.154.34.216...
* TCP_NODELAY set
* Expire in 149998 ms for 3 (transfer 0x8a8880)
* Expire in 200 ms for 4 (transfer 0x8a8880)
* Connected to my.tado.com (54.154.34.216) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=*.contactdve.com
*  start date: Feb 12 00:00:00 2020 GMT
*  expire date: Mar 12 12:00:00 2021 GMT
*  subjectAltName does not match my.tado.com
* SSL: no alternative certificate subject name matches target host name 'my.tado.com'
* Closing connection 0

Vous allez me dire : Ok, mais ça n’avance pas à grand chose ces logs à part la fameuse erreur liée au certificat SSL.
Cependant la première ligne est très bonne piste, car l’IP 54.154.34.216 est probablement l’ancienne instance AWS pour Tado mais n’est plus opérationnelle à ce jour.
J’ai vérifié la résolution DNS depuis mon poste et obtient quelque chose de différent (pourtant même serveur DNS utilisé).

Comme dernière étape, j’ai tout simplement vérifié le fichier /etc/hosts de mon RPI, et il semblerait que lors de l’installation le script pousse automatiquement les 2 entrées DNS fixes suivantes :

54.154.34.216 my.tado.com
63.34.36.189 my.tado.com

Pour remédier à cela, j’ai tout simplement commenté (puis ensuite supprimer) ces lignes et refait les tests.
Tout fonctionne maintenant, et mes données sont de nouveaux disponibles sur mon Jeedom.

@Dino, si mon analyse est la bonne est-il possible de regarder ceci et corriger l’inscription des résolutions DNS en local?
En tout cas merci pour ton aide et ta disponibilité, et j’espère avoir été assez explicite sur la description et la résolution de mon problème.

1 « J'aime »

Bonjour. Pour la fonction des fenêtres ouverte ce n’est pas si simple. Du coup j’ai besoin de vos avis.

On ne peut pas forcer le « mode » fenetre ouverte détecté de Tado, l’API ne le permet pas à ma connaissance. Il faut que la fenêtre ouverte soit détectée au niveau du serveur Tado afin de pouvoir envoyer la commande pour apsser en fenêtre ouverte.

Du coup, la solution coté jeedom serait de simuler ce mode en envoyant un changement de température. L’inconvénient, c’est que sur tado, on verra juste un changement de température sans savoir à quoi il est dû (sur Tado, ca sera comme si une commande manuelle de changement de température à été envoyé) Sur Jeedom bien sur on peut faire ce qu’on veux et je peux rajouter une info pour dire qu’on est dans un mode de fenêtre ouverte…
Qu’en pensez vous?

Autre pb. Admettons qu’on est dans la situation suivante

  • On paramètre sur Off en cas de fenêtre ouverte.
  • Il y a un programme avec température à 21°
  • Mais on a demandé une dérogation avec température à 22° pendant 2h
  • Le capteur s’ouvre => Jeedom commande un Off permanent (car je dois attendre que le capteur se ferme)

Question :

  • Le capteur se ferme => doit-on revenir à la dérogation de 22° ou au programme de 21°?
  • Si quelqu’un a changé la programmation pendant qu’on est fenêtre ouverte (via tado ou directement via les apareils), que doit-on faire?

Toutes les avis sont bons à prendre :slight_smile: