Plugin Bosch Easycontrol / Homecontrol

Suggestion de plugin : intégration avec Bosch Easycontrol (même que Buderus Mymode, ELM et compagnie).

Il existait un plugin ELM Touch qui servait à faire l’intégration avec les thermostats à base de matériel Bosch, ELM etc. développé par Vedrine de la communauté.
Aujourd’hui le plugin ne fonctionne plus vraiment, notamment dû au fait que Bosch est passé à un autre système d’authentication (XMPP).

Soit écrire un nouveau plugin, soit refondre l’existant pour utiliser le XMPP…

Aucune idée exacte de ce que ça implique en effort de DEV, mais ce serait certainement intéressant pour ceux qui veulent piloter leurs thermostats.

Je pense qu’on pourrait englober dedans le Bosch HomeControl, les deux systèmes sont « cousins » et certains devices HomeControl sont intercompatibles avec EasyControl (exemple : les vannes thermostatiques connectées zigbee de Bosch)

1 « J'aime »

Bonjour,
Je suis bien d’accord qu’il faudrait un nouveau plugin pour les thermostats et vannes Bosch récents.
Par contre on ne peut pas dire que le plugin ELM Touch « existait » ou « ne fonctionne plus vraiment » ou que « Bosch est passé à XMPP » car le plugin est encore pleinement fonctionnel pour les matériels pour lesquels il a été prévu. Pour preuve je viens de changer de chaudière pour un modèle à condensation sans changer de thermostat et tout s’est très bien passé. Mon plugin n’est pas obsolète du tout.

2 « J'aime »

Tu as quoi comme thermostat toi ?
Je continue d’avoir meme soucis d’authentication XMPP que plusieurs autres sur la communauté.
Peut être lié à mon thermostat ? TC100.2 … le .2 est ce qui m’inquiète le plus …
Je peux refaire un test, mais après avoir essayé pendant pas loin de deux semaines, j’ai laissé tomber…

Enfin, dans mon cas, depuis lors j’ai installé des vannes Bosch partout dans la maison, donc juste le contrôle du thermostat ne suffirait plus …

J’ai un ELM Touch première version (noir), toujours le même depuis que j’ai écrit le plugin et je te confirme qu’il fonctionne bien avec le plugin, je viens juste de vérifier le log pour en être bien sûr et tout est OK.
A mon avis le TC100.2 est lié à ton problème il doit utiliser le même protocole que les thermostats plus récents.

En fait mon problème actuel c’est que je n’ai plus de temps pour la domotique : je n’ai même pas trouvé le temps de faire une autre VM avec un debian plus récent donc mon jeedom de prod est bloqué en 4.1 c’est te dire !!

Ce que j’ai vu au niveau de la librairie que tu utilises c’est qu’au moment de lancer le démon, on peut spécifier un argument à la commande pour lui dire d’utiliser XMPP pour l’authentification.
Je peux essayer vite fait de rajouter ça en éditant le fichier php dans le core pour voir si ça marche …

Je te dis quoi … peut etre un « easy fix » :wink:

Je viens de faire une recherche et d’après les photos le TC100.2 est bien identique au Easycontrol CT200 donc effectivement çà ne peut pas marcher avec mon plugin.

Arf … oui effectivement le TC100.2 == CT200, c’est juste l’autre nom pour le modèle badgé Buderus.
Tu sais exactement ce qui posait soucis ? Je suis rouillé en php et js, mais je peux peut etre me lancer dans l’aventure d’écrire mon premier plugin …

Oublie ce que j’ai dit, je mélange les pinceaux, pour se connecter à mon thermostat, il faut utiliser l’autre librairie de Robert Klepp … Bosch-XMPP …

Je jetterai un coup d’oeil histoire de voir si je m’en sors avec ça …

Quand j’avais regardé il me semble que c’est plus compliqué :
Mon plugin utilmise en fait le serveurt HTTP
https://github.com/robertklep/nefit-easy-http-server
qui lui utilise

pour passer les commandes au serveur
Pour être compatible avec les nouveaux matériels il faudrait plutôt utiliser

Et çà c’est plus de boulot. Mais je me trompe peut-être ?

Non tu as tout a fait raison.
Je vois qu’il a écrit la librairie XMPP, et il est apparemment possible de faire tourner un bridge sans trop se casser la tete et de l’interroger avec des requetes web … ce qui ne me déplairait pas …
Ou bien écrire un client en js, mais comme je te disais, j’ai pas fait de Js depuis un long moment (mes classes, y a + de 10 ans …)

En tout cas si tu veux te lancer dans l’aventure et si je peux t’aider, je ferais tout ce que je pourrai.
Mais j’avoue que c’est sans doute la vieillesse (68 ans) quand je me replonge dans du code que j’ai écrit il y a quelques années j’ai parfois du mal à comprendre pourquoi j’ai écrit çà

2 « J'aime »

Je peux comprendre, moi c’est plutot la fatigue après le boulot et parfois la peur de tout casser … j’hésite jamais a sortir ma machette en C#, mais en Js, je fais clairement moins le malin LOL

Une bonne dose de paresse aussi je pense ahahah

Moi c’est le python qui ne passe pas.
Je viens de voir que dans la librairie Bosch-XMPP il dit
You can start a local HTTP server that will set up a persistent connection with the Bosch backend:

bosch-xmpp bridge

By default the bridge will listen on localhost port 3000. You can use the bridge from other software to retrieve endpoints.

The base URL, assuming the default, is http://localhost:3000/bridge/ENDPOINT. For example, to retrieve the /ecus/rrc/uiStatus endpoint, the URL will be http://localhost:3000/bridge/ecus/rrc/uiStatus.
Et çà çà change tout car çà veut dire que les changements pour le plugin seraient beaucoup plus modérés.
A mon avis ce paragraphe n’existait pas quand j’ai regardé il y a quelques mois car j’aurais sauté dessus

C’est ce que je te disais quand je te racontais qu’il avait un mode bridge qui me semblait intéressant … car je t’avoue, écrire du Js alors qu’il existe un serveur Web, je me casserais pas trop la tete … sans compter que ça permettrait d’accéder aussi depuis autre chose que jeedom …
Je suis en train de me mettre un VM debian pour tester :smiley:

Je t’avoue que je viens d’essayer pendant plusieurs heures sans rien pouvoir tirer de ce bridge …
La connexion et l’authentication fonctionnent, mais les commandes ne donnent rien du tout …
Et je ne trouve pas d’API pour savoir quelles commandes envoyer … rien chez bosch non plus :confused:

Quelles commandes as-tu essayé ? il me semble que celles du CT100 ne marchent pas
j’avais une liste prise je ne sais où mais pas intéressantes car ne servent pas à lire/écrire des choses intéressantes mais çà peut te permettre de tester

"/gateway/versionFirmware"
"/gateway/versionFirmwareBuild"
"/gateway/versionHardware"
"/gateway/hmip/versionApplication"
"/gateway/hmip/versionOS"
"/gateway/wifi/versionFirmware"
"/gateway/wifi/versionFirmwareBuild"
"/gateway/zigbee/versionFirmware"
"/gateway/wizardStepsDone"
"/gateway/tosAccepted"
"/gateway/update/enabled"
"/gateway/installer/contactName"
"/gateway/installer/email"
"/gateway/installer/companyName"
"/gateway/installer/phone"
"/gateway/time/current"
"/gateway/user/address"
"/gateway/user/email"
"/gateway/user/name"
"/gateway/user/phone"
"/gateway/DateTime"
"/gateway/ui/eco"
"/gateway/update/lastCheck"
"/gateway/update/lastUpdate"
"/gateway/update/state"
"/gateway/ui/icons"
"/gateway/notificationLight/enabled"
"/gateway/productType"
"/gateway/pirSensitivity"
"/gateway/ui/splashScreen"
"/gateway/time/timeZone"
"/gateway/time/timeZoneUtcOffset"
"/gateway/userPassword"
"/gateway/uuid"

Si je me souviens bien il y a aussi des ordres qui commencent par /services/ mais il faudrait que je cherche. Et bien sûr je n’ai pas de CT200 pour tester

Tu pourrais peut-être regarder le github du homebridge pour CT200 pour trouver des ordres valides

et en particulier

Salut vedrine,

J’ai testé les commandes que tu m’as fournies (anciennes et nouvelles) sur le Bosch-XMPP.
Malheureusement, pas de résultat probant.
L’authentification semble fonctionner, mais le retour d’info semble ne pas fonctionner correctement.
Je me ramasse des erreurs de parsing Json.

J’ai rechangé le mot de passe de mon compte bosch pour avoir maxi 10 caractères et un caractère special pas trop exotique (obligé d’en mettre un sur le site de bosch maintenant).

L’installation n’a pas été sans peine, mise à jour NPM et NodeJs nécessaire.

Ca donne ceci :

dans le debug terminal pour la meme requete :

10.0.0.78 - - [04/Feb/2022:08:26:17 +0000] « GET /bridge/energy/history?entry=0 HTTP/1.1 » 500 1292 « - » « Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36 »
SyntaxError: Unexpected token k in JSON at position 0

A ce stade je soupçonne fortement la partie « encryptage » … le host et le serial servent à localiser le thermostat à contacter, mais le password est utilisé avec un « Magic » pour décrypter la conversation … je pense que cette partie de la lib ne fonctionne pas … du coup, il reçoit du boudin qu’il ne peut deserialiser en json … :confused:

Liste des commandes compatibles easycontrol, selon Robert Klep, le dev de la lib Bosch-XMPP