Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

Script pour Gestion Chaudière Viessmann connecté

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
mobyds
Timide
Messages : 67
Inscription : 19 août 2014, 19:26
Localisation : Rennes

Re: Script pour Gestion Chaudière Viessmann connecté

Message par mobyds » 13 mars 2018, 22:03

Geomium a écrit :
17 déc. 2017, 12:58
Bonjour,

le script a fonctionné du premier coup sur mon jeedom 3.1.7 sur debian 8 avec php5.
Avant hier j'ai créé une nouvelle vm avec debian 9.3, installé jeedom et appliqué ma sauvegarde.
Mis à part quelques petits couacs que j'ai vite résolu en recherchant sur le forum je coince toujours sur ce script qui ne fonctionne plus.

J'ai cette erreur :
[2017-12-17 12:03:02][ERROR] : Erreur execution de la commande [Viessmann Pilotage][Check ALL][Check] : Error on shell exec, return value : 255. Details : Array ( [0] => PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://www.viessmann.com/app_vitodata/ ... .asmx?WSDL' : Premature end of data in tag definitions line 2 in /var/www/html/plugins/script/core/ressources/viessmann-all.php on line 65 PHP Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://www.viessmann.com/app_vitodata/ ... .asmx?WSDL' : Premature end of data in tag definitions line 2 in /var/www/html/plugins/script/core/ressources/viessmann-all.php:65 Stack trace: #0 /var/www/html/plugins/script/core/ressources/viessmann-all.php(65): SoapClient->SoapClient('https://www.vie...') #1 {main} thrown in /var/www/html/plugins/script/core/ressources/viessmann-all.php on line 65 )
Qui correspond à la ligne :
// Adresse de l'API
$client = new SoapClient('https://www.viessmann.com/app_vitodata/ ... .asmx?WSDL');
$anlageID = 0;
J'ai essayé diverses modifications mais mes connaissances en php sont trop limitées.
La différence c'est que mon système est maintenant avec la version php7, est-ce la le problème ?

Si quelqu'un a une idée je l'en remercie d'avance car toute aide serait la bienvenue :)

Bon dimanche.

Bonjour,

Je ne sais pas si tu as résolu ton problème, mais je bloquais aussi sur la même erreur. Le problème semble venir de la gestion du https avec php7. En passant sur de l'http tout semble fonctionner chez moi.
new SoapClient('http://www.viessmann.com/app_vitodata/VIIWebService-1.16.0.0/iPhoneWebService.asmx?WSDL');

A+, Olivier

Allard-elec
Timide
Messages : 54
Inscription : 21 mai 2017, 21:33

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Allard-elec » 03 avr. 2018, 00:17

Bonjour,
Ca à l'air d'être un super travail mais je ne le trouve pas sur le market ?

Comment faut il faire ?
merci pour vos réponses

Envoyé de mon TREKKER-X3 en utilisant Tapatalk


Xavier.g
Timide
Messages : 24
Inscription : 23 juil. 2014, 14:19

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Xavier.g » 03 avr. 2018, 09:58

Bonjour,
ce n'est pas un plugin, il faut suivre les instructions plus haut et utiliser le plugin "script"

Allard-elec
Timide
Messages : 54
Inscription : 21 mai 2017, 21:33

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Allard-elec » 03 avr. 2018, 10:00

Merci de la reponse,

C'est le code que mapa à publier plus haut ?

Envoyé de mon TREKKER-X3 en utilisant Tapatalk


fredvog
Timide
Messages : 13
Inscription : 04 févr. 2018, 16:45
Localisation : Nord

Re: Script pour Gestion Chaudière Viessmann connecté

Message par fredvog » 11 juin 2018, 22:43

Bonjour a tous,

juste pour remercier l’auteur de ce post et tous les contributeurs sans qui je n'aurais pas réussi a mettre en place (non sans mal) le script pour avoir les information de ma VITODENS 222F (vitocontrol 200A +VITOCOM 100) aussi si cela peu aider :

dans le script : Viessmann.php (celui en haut du post) modifier l'url en HTTP et non HTTPS ('https://www.viessmann.com/app_vitodata/ ... .asmx?WSDL')

ensuite il faut modifier le fichier .httacess pour autoriser le .JSON pour eviter d'avoir une erreur acces refuser lors de l'interrogation
Z83 / RFPLAYER /IPX800v3 /Syno DS214

zener57
Timide
Messages : 1
Inscription : 11 mai 2018, 18:58

Re: Script pour Gestion Chaudière Viessmann connecté

Message par zener57 » 19 juin 2018, 13:53

Bonjour,
J'aimerais savoir si quelq'un sait comment activer la chauffe du ballon d'eau chaude (charge ECS) ?
Car Viessmann à programmé l'arret définitif de VitotrolPlus le 09/07/18 qui seule pouvait déclencher cela...

djorg08
Timide
Messages : 16
Inscription : 21 avr. 2017, 10:36

Re: Script pour Gestion Chaudière Viessmann connecté

Message par djorg08 » 27 juin 2018, 13:45

Bonjour,

Dans quel répertoire trouves-tu le .htaccess ?

Merci d'avance

fredvog
Timide
Messages : 13
Inscription : 04 févr. 2018, 16:45
Localisation : Nord

Re: Script pour Gestion Chaudière Viessmann connecté

Message par fredvog » 06 juil. 2018, 19:19

le htaccess est dans le repertoire il faut faire un ls -la pour le voir car par defaut il est cache a la racine de /var/www/html/.htaccess

j'ai ajouté les lignes

<Files ~ ".*\.json$">
allow from all
satisfy any
</Files>

par contre si quelqu'un a une solution "plus propre" je suis preneur car a chaque Maj de jeedom c'est a refaire
Z83 / RFPLAYER /IPX800v3 /Syno DS214

thetrueavatar
Timide
Messages : 132
Inscription : 30 nov. 2017, 13:54

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 24 août 2018, 14:11

Je me permet un petit déterrage car j'ai remarqué depuis quelques jours que je n'ai plus de données sur ma chaudière.
Il semble qu'il y ai eu un remmaniement du service.
https://api.viessmann.io/estrella/rest/ ... lers/XXXXX existe toujours mais le "datapoints" n'existe plus et renvoye une erreur {
"error": "GONE",
"errorData": {}
}
Cette erreur semble être en fait une erreur pour dire que l'uri n'existe plus. Avez-vous une idée de comment le "datapoints" a été renommé ?
J'ai voulu reconsulter l'api comme autrefois mais j'ai désormais un permission denied sur le site de support viesmann....
Au pire je peux recommencer à faire un mitm avec l'application vicare mais si quelqu'un a la réponse ça m'arrangerait.

Avatar de l’utilisateur
banane63
Timide
Messages : 25
Inscription : 15 sept. 2017, 16:27

Re: Script pour Gestion Chaudière Viessmann connecté

Message par banane63 » 24 août 2018, 14:41

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":{}}
Raspberry Pi 3 Jeedom - RFX433 - HUE - Mobile Alerts La Crosse Technology - Volets SOMFY - Viessmann Vitoconnect

Avatar de l’utilisateur
banane63
Timide
Messages : 25
Inscription : 15 sept. 2017, 16:27

Re: Script pour Gestion Chaudière Viessmann connecté

Message par banane63 » 24 août 2018, 15:48

Surveillons la réponse de Viessmann à ce sujet :

https://www.viessmann-community.com/t5/ ... aq-p/83448
Raspberry Pi 3 Jeedom - RFX433 - HUE - Mobile Alerts La Crosse Technology - Volets SOMFY - Viessmann Vitoconnect

thetrueavatar
Timide
Messages : 132
Inscription : 30 nov. 2017, 13:54

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 24 août 2018, 16:48

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:

Code : Tout sélectionner

"class": [
        "heating.boiler.sensors.temperature.main",
        "feature"
      ],
      "properties": {
        "status": {
          "type": "string",
          "value": "connected"
        },
        "value": {
          "type": "number",
          "value": 43
        }
      }
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...

laurentdb
Timide
Messages : 11
Inscription : 22 août 2018, 08:09

Re: Script pour Gestion Chaudière Viessmann connecté

Message par laurentdb » 24 août 2018, 19:10

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.

thetrueavatar
Timide
Messages : 132
Inscription : 30 nov. 2017, 13:54

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 24 août 2018, 21:12

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.

renard
Timide
Messages : 3
Inscription : 24 août 2018, 23:21

Re: Script pour Gestion Chaudière Viessmann connecté

Message par renard » 24 août 2018, 23:29

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.

laurentdb
Timide
Messages : 11
Inscription : 22 août 2018, 08:09

Re: Script pour Gestion Chaudière Viessmann connecté

Message par laurentdb » 25 août 2018, 08:20

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:

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
Ensuite il faut récupérer, la variable CODE. Dans un browser, on prend la valeur retournée par :

Code : Tout sélectionner

echo "$AUTHZ_EP?client_id=$CLIENTID&scope=$SCOPE&redirect_uri=$REDIRECTURI&response_type=code"
C'est là que le user et password est demandé. On doit pouvoir faire du curl...

Code : Tout sélectionner

export CODE=code_found
Le token peut être lu par la commande suivante:

Code : Tout sélectionner

curl -k --user "$CLIENTID:$CLIENTSECRET" -d "code=$CODE&grant_type=authorization_code&client_id=$CLIENTID&redirect_uri=$REDIRECTURI" $TOKEN_EP
Un truc du genre est retourné:

Code : Tout sélectionner

{
    "access_token": "TOKEN_TO_BE_TAKEN",
    "id_token": "....",
    "token_type": "Bearer",
    "expires_in": 3600
}
Faire:

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&"  
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, ...

laurentdb
Timide
Messages : 11
Inscription : 22 août 2018, 08:09

Re: Script pour Gestion Chaudière Viessmann connecté

Message par laurentdb » 25 août 2018, 21:27

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:

Code : Tout sélectionner

export CLIENTID=8ad97aceb92c5892e102b093c7c083fa
export CLIENTSECRET=8ad97aceb92c5892e102b093c7c083fa
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 :

Code : Tout sélectionner

export CLIENTID=79742319e39245de5f91d15ff4cac2a8
Dernière édition par laurentdb le 27 août 2018, 21:44, édité 1 fois.

laurentdb
Timide
Messages : 11
Inscription : 22 août 2018, 08:09

Re: Script pour Gestion Chaudière Viessmann connecté

Message par laurentdb » 26 août 2018, 12:18

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.

renard
Timide
Messages : 3
Inscription : 24 août 2018, 23:21

Re: Script pour Gestion Chaudière Viessmann connecté

Message par renard » 26 août 2018, 20:15

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.

laurentdb
Timide
Messages : 11
Inscription : 22 août 2018, 08:09

Re: Script pour Gestion Chaudière Viessmann connecté

Message par laurentdb » 27 août 2018, 09:40

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.

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : alcor_fr et 4 invités