Api Viessmann pour récupération de données avec Vitoconnect
-
- Timide
- Messages : 282
- Inscription : 30 nov. 2017, 13:54
Api Viessmann pour récupération de données avec Vitoconnect
Dernière édition par thetrueavatar le 12 nov. 2019, 17:15, édité 6 fois.
Re: Script pour Gestion Chaudière Viessmann connecté
A ben pareil pour moi ! Ca ressemble à un blacklistage ou à une fermeture de l'API !
Si je fait :
https://api.viessmann.io/estrella/rest/ ... rs/999999/
Ca me demande bien mon identifiant.
Si je rajoute /datapoints j'ai la même chose que toi :
{"error":"GONE","errorData":{}}
Si je fait :
https://api.viessmann.io/estrella/rest/ ... rs/999999/
Ca me demande bien mon identifiant.
Si je rajoute /datapoints j'ai la même chose que toi :
{"error":"GONE","errorData":{}}
Raspberry Pi 3 Jeedom - RFX433 - HUE - Mobile Alerts La Crosse Technology - Volets SOMFY - Viessmann Vitoconnect - Google Home Chromecast Wifi
Re: Script pour Gestion Chaudière Viessmann connecté
Surveillons la réponse de Viessmann à ce sujet :
https://www.viessmann-community.com/t5/ ... aq-p/83448
https://www.viessmann-community.com/t5/ ... aq-p/83448
Raspberry Pi 3 Jeedom - RFX433 - HUE - Mobile Alerts La Crosse Technology - Volets SOMFY - Viessmann Vitoconnect - Google Home Chromecast Wifi
-
- Timide
- Messages : 282
- Inscription : 30 nov. 2017, 13:54
Re: Script pour Gestion Chaudière Viessmann connecté
Bon j'ai finalement regarder quelle api vicare appelait et y a du changement !
En gros, l'authentification devient une authentification type iam. On envoie son user/pwd puis on reçoit un token à fournir pour chaque appel subsequent. Le hic c'est que le token expire et donc faut le renouveler. Un peu plus de taf donc...
L'api est structurée de façon complètement différente:
Le GET sur l'url https://api.viessmann-platform.io/opera ... 0/features
me donne(copié sur pastiebin vu la longueur):
https://www.pastiebin.com/5b801a604f93f
La partie intéressante est par exemple:
Ca dit que la température de ma chaudière est à 43.
Une autre façon de l'obtenir directement est de faire l'appel:
GET sur https://api.viessmann-platform.io/opera ... ature.main
Donc en gros l'application vicare a accès à toutes les infos. Y a un moyen de configurer cette bouse pour avoir plus que 3 infos ? Ca donne l'impression qu'on peut configurer des widgets soit même mais j'ai vu nul part où on peut le faire...
En gros, l'authentification devient une authentification type iam. On envoie son user/pwd puis on reçoit un token à fournir pour chaque appel subsequent. Le hic c'est que le token expire et donc faut le renouveler. Un peu plus de taf donc...
L'api est structurée de façon complètement différente:
Le GET sur l'url https://api.viessmann-platform.io/opera ... 0/features
me donne(copié sur pastiebin vu la longueur):
https://www.pastiebin.com/5b801a604f93f
La partie intéressante est par exemple:
Code : Tout sélectionner
"class": [
"heating.boiler.sensors.temperature.main",
"feature"
],
"properties": {
"status": {
"type": "string",
"value": "connected"
},
"value": {
"type": "number",
"value": 43
}
}
Une autre façon de l'obtenir directement est de faire l'appel:
GET sur https://api.viessmann-platform.io/opera ... ature.main
Donc en gros l'application vicare a accès à toutes les infos. Y a un moyen de configurer cette bouse pour avoir plus que 3 infos ? Ca donne l'impression qu'on peut configurer des widgets soit même mais j'ai vu nul part où on peut le faire...
Re: Script pour Gestion Chaudière Viessmann connecté
En effet l'api a bien changer.
Pour le token, c'est de l'Oauth2 (token Bearer).
L'URL de connexion est https://iam.viessmann.com/idp/v1/authorize
avec comme paramètre un client_id, isiwebpasswd, isiwebuserid
Pour le token: https://iam.viessmann.com/idp/v1/token
pour le refresh et normalement pour l'avoir.
et pour l'api c'est celle qui a été donnée.
Pour le token, c'est de l'Oauth2 (token Bearer).
L'URL de connexion est https://iam.viessmann.com/idp/v1/authorize
avec comme paramètre un client_id, isiwebpasswd, isiwebuserid
Pour le token: https://iam.viessmann.com/idp/v1/token
pour le refresh et normalement pour l'avoir.
et pour l'api c'est celle qui a été donnée.
-
- Timide
- Messages : 282
- Inscription : 30 nov. 2017, 13:54
Re: Script pour Gestion Chaudière Viessmann connecté
Oui c'est en effet du classique pour les applications smartphone avec un backend exposé via REST. Bon c'est ptet l'occasion pour moi de passer enfin sur jeedom. Je sais pas trop si hormis ce script y a d'autres plugins jeedom compatible chaudière viessman ou xiaomi ou hue.
Re: Script pour Gestion Chaudière Viessmann connecté
Salut,
i'm sorry but my french is not so good to communicate in a proper way.
I've got the same problem, that the "old" Viessmann API is not available any more.
@thetrueavatar,
is it possible, that you give more details about your solution??
i tried to add ?client-id=...&isiwebuserid=xy@mail.com&isiwebpasswd=12345
with my data to the url: https://iam.viessmann.com/idp/v1/authorize
and to the "token" one.. but nothing happens :-\
it seems, that it might be not so easy
is there a way to have it done by a python script?
Thank you.
i'm sorry but my french is not so good to communicate in a proper way.
I've got the same problem, that the "old" Viessmann API is not available any more.
@thetrueavatar,
is it possible, that you give more details about your solution??
i tried to add ?client-id=...&isiwebuserid=xy@mail.com&isiwebpasswd=12345
with my data to the url: https://iam.viessmann.com/idp/v1/authorize
and to the "token" one.. but nothing happens :-\
it seems, that it might be not so easy
is there a way to have it done by a python script?
Thank you.
Re: Script pour Gestion Chaudière Viessmann connecté
Bonjour,
J'ai pu avoir le Token et récupérer des informations depuis l'API. Il manque encore des trucs et je n'ai pas trop le temps aujourd'hui pour aller plus loin, mais je partage ce que j'ai fait.
En faisant du MITM, j'ai pu récupérer le clientid et le secretclientid. Comme je ne sais pas si c'est unique à chaque utilisateur ou c'est pour l'application vicare, je ne pourrais pas publié ce que j'ai utilisé. Mais encore une fois avec du man in the middle on peut facilement retrouver cette information.
Dans un shell, voilà ce que j'ai fait:
Ensuite il faut récupérer, la variable CODE. Dans un browser, on prend la valeur retournée par :
C'est là que le user et password est demandé. On doit pouvoir faire du curl...
Le token peut être lu par la commande suivante:
Un truc du genre est retourné:
Faire:
Et voilà vous avez la liste des APIs et des requêtes à faire.
Encore une fois, il vous manque pour l'instant "$CLIENTID:$CLIENTSECRET", il faut que je regarde si c'est unique par application, normalement c'est le cas dans ce genre d'authentification. Mais il faut que je regarde.
Ensuite on pourra scripteur cela en python, php, ...
J'ai pu avoir le Token et récupérer des informations depuis l'API. Il manque encore des trucs et je n'ai pas trop le temps aujourd'hui pour aller plus loin, mais je partage ce que j'ai fait.
En faisant du MITM, j'ai pu récupérer le clientid et le secretclientid. Comme je ne sais pas si c'est unique à chaque utilisateur ou c'est pour l'application vicare, je ne pourrais pas publié ce que j'ai utilisé. Mais encore une fois avec du man in the middle on peut facilement retrouver cette information.
Dans un shell, voilà ce que j'ai fait:
Code : Tout sélectionner
export TOKEN_EP=https://iam.viessmann.com/idp/v1/token
export AUTHZ_EP=https://iam.viessmann.com/idp/v1/authorize
# client id
export CLIENTID=XXXXXXXXXXX
# client secret
export CLIENTSECRET=ZZZZZZZZZZZ
export SCOPE=openid
export REDIRECTURI=vicare://oauth-callback/everest
Code : Tout sélectionner
echo "$AUTHZ_EP?client_id=$CLIENTID&scope=$SCOPE&redirect_uri=$REDIRECTURI&response_type=code"
Code : Tout sélectionner
export CODE=code_found
Code : Tout sélectionner
curl -k --user "$CLIENTID:$CLIENTSECRET" -d "code=$CODE&grant_type=authorization_code&client_id=$CLIENTID&redirect_uri=$REDIRECTURI" $TOKEN_EP
Code : Tout sélectionner
{
"access_token": "TOKEN_TO_BE_TAKEN",
"id_token": "....",
"token_type": "Bearer",
"expires_in": 3600
}
Code : Tout sélectionner
export CODE=TOKEN_TO_BE_TAKEN
curl -k -H "AUTHORIZATION: Bearer $TOKEN" "https://api.viessmann-platform.io/general-management/installations?expanded=true&"
Encore une fois, il vous manque pour l'instant "$CLIENTID:$CLIENTSECRET", il faut que je regarde si c'est unique par application, normalement c'est le cas dans ce genre d'authentification. Mais il faut que je regarde.
Ensuite on pourra scripteur cela en python, php, ...
Re: Script pour Gestion Chaudière Viessmann connecté
Je confirme que le clientid et le client secret est une authorisation smartphone commune à iOS et Android
Donc il faut mettre dans une fenêtre shell:
Je vais maintenant scripter tout cela pour faire un truc un peu plus propre.
Edit 27/08/2018 (21:40):
Il y a une erreur ici, il faut mettre :
Donc il faut mettre dans une fenêtre shell:
Code : Tout sélectionner
export CLIENTID=8ad97aceb92c5892e102b093c7c083fa
export CLIENTSECRET=8ad97aceb92c5892e102b093c7c083fa
Edit 27/08/2018 (21:40):
Il y a une erreur ici, il faut mettre :
Code : Tout sélectionner
export CLIENTID=79742319e39245de5f91d15ff4cac2a8
Dernière édition par laurentdb le 27 août 2018, 21:44, édité 1 fois.
Re: Script pour Gestion Chaudière Viessmann connecté
Bonjour,
J'ai publié un premier script https://github.com/ldb2000/Viessman-API
Il faut juste à mettre le login et le mot de passe
Le script donne le numero de l'installation, le numero de la gateway et donne la température de la sonde extérieure à titre d'exemple.
Merci de me faire un retour.
J'ai publié un premier script https://github.com/ldb2000/Viessman-API
Il faut juste à mettre le login et le mot de passe
Le script donne le numero de l'installation, le numero de la gateway et donne la température de la sonde extérieure à titre d'exemple.
Merci de me faire un retour.
Re: Script pour Gestion Chaudière Viessmann connecté
Wow, you are great!
i'll gonna try this with my raspberry pi - perhaps it takes some time
merci beaucoup!!!
edit:
i had some problems, but now it works. Received the same outside temperature (with a huge amount of code, urls, etc..) as the app.
For other people using a raspberry pi. Perhaps you have to install php-curl first:
sudo apt install php-curl
then restart your pi.
i'll gonna try this with my raspberry pi - perhaps it takes some time
merci beaucoup!!!
edit:
i had some problems, but now it works. Received the same outside temperature (with a huge amount of code, urls, etc..) as the app.
For other people using a raspberry pi. Perhaps you have to install php-curl first:
sudo apt install php-curl
then restart your pi.
Re: Script pour Gestion Chaudière Viessmann connecté
Hi renard,
I will add the php_curl installation in the Readme.md.
I am planning to make a modification to the script to add all the value that we can retreive.
The next step is to provide documentation and action in the script to READ/WRITE values.
I will add the php_curl installation in the Readme.md.
I am planning to make a modification to the script to add all the value that we can retreive.
The next step is to provide documentation and action in the script to READ/WRITE values.
-
- Timide
- Messages : 20
- Inscription : 25 août 2018, 12:26
Re: Script pour Gestion Chaudière Viessmann connecté
Bonjour Laurent,
Un grand merci pour ce partage et le travail réalisé.
Je suis un grand consommateur des données issues de ma chaudière pour mes différents scripts et tes avancées vont beaucoup m'aider à retrouver une automatisation pleinement fonctionnelle de mon chauffage !
Un grand merci pour ce partage et le travail réalisé.
Je suis un grand consommateur des données issues de ma chaudière pour mes différents scripts et tes avancées vont beaucoup m'aider à retrouver une automatisation pleinement fonctionnelle de mon chauffage !
Re: Script pour Gestion Chaudière Viessmann connecté
Welcome
I will add your comment in the GitHub repo.
Re: Script pour Gestion Chaudière Viessmann connecté
Bonsoir Laurent
Merci beaucoup pour l'excellent travail réalisé.
Ca fonctionne bien chez moi mais sans les variables globales déclarées qui refusent de fonctionner dans les fonctions.
J'ai fait sans pour l'instant.
merci d'avance pour la suite.
Merci beaucoup pour l'excellent travail réalisé.
Ca fonctionne bien chez moi mais sans les variables globales déclarées qui refusent de fonctionner dans les fonctions.
J'ai fait sans pour l'instant.
merci d'avance pour la suite.
-
- Timide
- Messages : 20
- Inscription : 25 août 2018, 12:26
Re: Script pour Gestion Chaudière Viessmann connecté
Bonjour,
J'ai fait quelques manips complémentaires hier soir.
J'ai accès à toutes données en lecture (températures, consignes, état, ...) de la chaudière et j'ai les URL pour les méthodes POST des données sur lesquelles je veux pouvoir agir
J'ai pas eu le temps de faire les essais sur ces méthodes POST.
Encore un grand merci !
J'ai fait quelques manips complémentaires hier soir.
J'ai accès à toutes données en lecture (températures, consignes, état, ...) de la chaudière et j'ai les URL pour les méthodes POST des données sur lesquelles je veux pouvoir agir
J'ai pas eu le temps de faire les essais sur ces méthodes POST.
Encore un grand merci !
Re: Script pour Gestion Chaudière Viessmann connecté
Tu pourras partager tes essayes de type POST ?Avataar120 a écrit : ↑28 août 2018, 07:45Bonjour,
J'ai fait quelques manips complémentaires hier soir.
J'ai accès à toutes données en lecture (températures, consignes, état, ...) de la chaudière et j'ai les URL pour les méthodes POST des données sur lesquelles je veux pouvoir agir
J'ai pas eu le temps de faire les essais sur ces méthodes POST.
Encore un grand merci !
Le truc que j'essaye de faire maintenant, c'est la chose suivante:
Code : Tout sélectionner
## Pour avoir la liste des appels supportés par le script
Script.php --list
## Pour lire un état
Script --read entité (temperature eau chaude par exemple)
## Pour actionner une commande
Script.php --action entité etat
Re: Script pour Gestion Chaudière Viessmann connecté
Pour info, dans le repository github, j'ai également ajouté un script bash pour récupérer des info APIs.
https://github.com/ldb2000/Viessman-API
Le script est disponible ici : https://github.com/ldb2000/Viessman-API ... essmann.sh
https://github.com/ldb2000/Viessman-API
Le script est disponible ici : https://github.com/ldb2000/Viessman-API ... essmann.sh
-
- Timide
- Messages : 6
- Inscription : 31 mai 2018, 22:14
Re: Script pour Gestion Chaudière Viessmann connecté
Bonjour Laurentdb,
Avant tout je souhaiterais te remercier pour ce partage qui est très intéressant pour tous ceux qui souhaitent interfacer leur chaudière avec Jeedom.
Je viens de remplacer mon script json qui ne fonctionne plus par celui que tu viens de partager et celui-ci me retourne bien la température Extérieure mais j'ai une erreur avant comme le montre cette image. J'ai quelques notions en php mais là j'avoue ne pas comprendre cette erreur.
D'avance merci pour cette analyse.
Avant tout je souhaiterais te remercier pour ce partage qui est très intéressant pour tous ceux qui souhaitent interfacer leur chaudière avec Jeedom.
Je viens de remplacer mon script json qui ne fonctionne plus par celui que tu viens de partager et celui-ci me retourne bien la température Extérieure mais j'ai une erreur avant comme le montre cette image. J'ai quelques notions en php mais là j'avoue ne pas comprendre cette erreur.
D'avance merci pour cette analyse.
-
- Timide
- Messages : 282
- Inscription : 30 nov. 2017, 13:54
Re: Script pour Gestion Chaudière Viessmann connecté
J'ai la même erreur sur mon raspberry pi.
EDIT: remplace la ligne 94 par ceci:
J'ai fait un pull request pour intégrer ce changement.
EDIT: remplace la ligne 94 par ceci:
Code : Tout sélectionner
} elseif (!empty(json_decode($response)->error)) {
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités