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 :)

Le groupe des Helpers est present pour vous aidez, n'hésitez pas à poser des questions ;)

Toute la communauté vous remercie

/!\ L’ancien forum passera en lecture seule en janvier 2020./!\
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Api Viessmann pour récupération de données avec Vitoconnect

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
thetrueavatar
Timide
Messages : 271
Inscription : 30 nov. 2017, 13:54

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 13 sept. 2018, 13:56

Le fichier "Viessmann-Api-0.2.phar" ne semble pas à l'endroit indiqué par ton include. Tu as défini dans le Main.php

Code : Tout sélectionner

include phar://../bin/Viessmann-Api-0.2.phar/index.php
Le fichier devraît donc se trouver dans
/var/www/html/plugins/script/core/ressources/bin/Viessmann-Api-0.2.phar
Je propose que tu changes l'include du Main.php en mettant

Code : Tout sélectionner

 include phar:///Viessmann-Api-0.2.phar/index.php
et en ayant copié Viessmann-Api-0.2.phar dans le répertoire
/var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2
N'oublie pas que dans le Main.php je référence un fichier qui chez toi serais /var/www/html/plugins/script/core/ressources/resources/credentials.properties .
Tu peux éditer le chemin dans le Main.php pour le mettre dans le même répertoire que ce dernier.
Voici à quoi devrait ressembler ton Main.php si tu devais mettre Main.php, Viessmann-Api-0.2.phar et credentials.properties dans le même réperoire:

Code : Tout sélectionner

<?php
include 'phar://Viessmann-Api-0.2.phar/index.php';

use Viessmann\API\ViessmannAPI;

$credentials = file("credentials.properties");
$params = [
    "user" => trim("$credentials[0]", "\n"),
    "pwd" => trim("$credentials[1]", "\n"),
    "uri" => "vicare://oauth-callback/everest"
];
$viessmanApi = new ViessmannAPI($params);
echo $viessmanApi->getFeatures();
echo "Température extérieure " . $viessmanApi->getOutsideTemperature() . "\n";
echo "Température boiler " . $viessmanApi->getBoilerTemperature() . "\n";
echo "Pente " . $viessmanApi->getSlope() . "\n";
echo "Parallèle " . $viessmanApi->getShift() . "\n";
echo "Mode chaudière " . $viessmanApi->getActiveMode() . "\n";
echo "Programme actif " . $viessmanApi->getActiveProgram() . "\n";
echo "Is Heating Burner active ? " . $viessmanApi->isHeatingBurnerActive() . "\n";//in php false bool is converted into empty string
echo "Is Dhw mode active ? " . $viessmanApi->isDhwModeActive() . "\n";
echo "Température de confort " . $viessmanApi->getComfortProgramTemperature() . "\n";
echo "Température écho " . $viessmanApi->getEchoProgramTemperature() . "\n";
echo "Température externe " . $viessmanApi->getExternalProgramTemperature() . "\n";
echo "Température réduit " . $viessmanApi->getReducedProgramTemperature() . "\n";
echo "Température supply " . $viessmanApi->getSupplyProgramTemperature() . "\n";
echo "Est en veille ? " . $viessmanApi->isInStandbyMode() . "\n";
echo "Appelle resources " . $viessmanApi->getRawJsonData(ViessmannAPI::HEATING_PROGRAM_ACTIVE). "\n";
#echo "écriture température ecs avec json ".$viessmanApi->setRawJsonData(ViessmannAPI::HEATING_DWH_TEMPERATURE,"setTargetTemperature","{\"temperature\":60.0}"). "\n";
#echo "écriture température ecs ".$viessmanApi->setDhwTemperature("58.0"). "\n";
    
J'ai mis à jour mon code pour que le phar et le credentials.properties soient tous les 2 dans le même répertoire que Main.php afin de clarifier son utilisation.
Au passage j'ai mis à jour la documentation pour être un peu plus explicite:
https://github.com/thetrueavatar/Viessmann-Api/wiki

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par djorg08 » 13 sept. 2018, 21:26

Bonsoir,
Encore merci pour ton travail et ton aide.
Mais j'ai la même erreur en mettant les 3 fichiers à la racine /var/www/html/plugins/script/core/ressources
Ne faut-il pas faire une install pour le .phar ? : apt-get install php-phar
Rq :Mon Jeedom tourne sur un Raspberry

Bonne soirée

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 13 sept. 2018, 22:21

Non c'est géré en natif par php.
Je ne l'avais pas encore testé sur mon RP2B mais j'ai simplement fait çeci:
  1. Code : Tout sélectionner

    git clone https://github.com/thetrueavatar/Viessmann-Api.git
  2. Code : Tout sélectionner

    cd Viessmann-Api/example/
  3. Code : Tout sélectionner

    nano credentials.properties
    en mettant mon username à la première ligne et mon password à la 2ème
  4. Code : Tout sélectionner

    php Main.php
En suivant à la lettre ceci j'arrive sans soucis sur mon raspberry pi alors que je n'ai rien installé de spécial

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par djorg08 » 13 sept. 2018, 23:51

Merci
super ca fonctionne en ligne de commande
Mais pas dans Jeedom
Problème de droit ?
Un changement de propriétaire et de groupe de root à www-data ne change rien

Code : Tout sélectionner

chown www-data:www-data Viessmann-Api -R
Une idée
Merci.

@thetrueavatar : je sais que tu ne veux pas faire trop d'assistance, désolé
Mais cela peut aider d'autre personne

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 14 sept. 2018, 06:48

Bonjour,
Si je met en ligne mon dev et que je communique sur un forum c'est pour partager avec la communauté et je m'attend forcément à des questions/retours. Donc pas de soucis, surtout au début où ça fait ses maladies de jeunesses. Au contraire, ça me fait plaisir que quelqu'un utilise mon développement et qu'en plus au final ça fonctionne. Si je dis que je veux pas trop faire de support c'est parce qu'avec mes 2 enfants en bas âge, j'ai pas full temps. J'ai pour l'instant pas mal de temps/énergie et donc je répond assez rapidement mais il se pourrait que j'en ai un peu moins dans les jours/semaines qui viennent. Mon message est juste là pour dire je souhaite juste ne pas m'imposer une "obligation" de réponse rapide.

Malheureusement, je peux pas t'aider car je suis au niveau 0 de jeedom car d'habitude j'utilise domoticz. J'aurais même besoin d'un coup de main à l'occasion car y a rien à faire je trouve jeedom pas du tout intuitif. C'est bien parce qu'il y a une communauté active et dynamique autour que je me force à passer dessus :p.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 15 sept. 2018, 07:04

djorg08 a écrit :
13 sept. 2018, 23:51
Merci
super ca fonctionne en ligne de commande
Mais pas dans Jeedom
Problème de droit ?
Un changement de propriétaire et de groupe de root à www-data ne change rien

Code : Tout sélectionner

chown www-data:www-data Viessmann-Api -R
Une idée
Merci.

@thetrueavatar : je sais que tu ne veux pas faire trop d'assistance, désolé
Mais cela peut aider d'autre personne
J'ai enfin compris comment utiliser un script dans jeedom. Et donc je suis tombé sur le même problème que toi et l'ai résolu. En fait, je spécifiait le chemin des fichiers de façon relative mais le point de départ dépend de l'endroit d'où tu exécutes la commande php. Du coup, j'ai mis les chemin en absolu.
Je fais un php par mesure à prendre. J'ai donc renommer Main.php en OutsideTemperature.php avec comme contenu:

Code : Tout sélectionner

<?php
include 'phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.phar/index.php'

use Viessmann\API\ViessmannAPI;

$credentials = file("/var/www/html/plugins/script/core/ressources/credentials.properties");
$params = [
    "user" => trim("$credentials[0]", "\n"),
    "pwd" => trim("$credentials[1]", "\n"),
    "uri" => "vicare://oauth-callback/everest"
];
$viessmanApi = new ViessmannAPI($params);
echo $viessmanApi->getOutsideTemperature();
Avec cette adaptation, ça fonctionne nickel et j'ai bien ma température.
Dernière édition par thetrueavatar le 15 sept. 2018, 07:06, édité 1 fois.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 15 sept. 2018, 09:25

Bon pour le coup j'ai adapté mes scripts sur le github pour que la base du chemin relatif soit le fichier php et non l'endroit d'où on lance l'exectuable php.

J'ai rajouté plusieurs scripts dans /example qui permettent de récupérer quelques informations de base. Il suffit avec le widget script de pointer vers ces fichiers:
  • ActiveMode.php: récupération du programme actif(ecs seul, ecs+chauffage, chauffage seul)
  • ActiveProgram.php: quel est le programme actif(normal, réduit, echo,...)
  • HeatingBurnerActive.php: est-ce que le brûleur est actif ?
  • ActiveMode.php: Quel est le mode actif(réduit, normal,...)
  • OutsideTemperature.php: Quelle est la température extérieure ?
  • Slope.php: Quelle est la pente ?
  • Shift.php Quel est le parallèle ?
  • BoilerTemperature.php Quel est la température de la chaudière ?
  • NormalProgramTemperature: quel est la consigne du programme normal ?
  • ReducedProgramTemperature: quel est la consigne du programme réduit ?
  • EchoProgramTemperature: quel est la consigne du programme écho ?

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 15 sept. 2018, 10:54

Voila ce que ça donne chez moi. Bon doit encore améliorer le visuel.
ViessmanJeedom.png
ViessmanJeedom.png (65.71 Kio) Consulté 515 fois
Par contre, c'est super lent à chaque sauvegarde des commandes. Ca vous le fait aussi ? Sinon j'imagine qu'au lieu de faire un script par commandes on pourrait avoir un script pour toutes avec un paramètres à passer au script mais pas trouvé comment faire...

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par djorg08 » 15 sept. 2018, 23:35

Bonjour,
Pour les chemins, j'avais trouvé hier très tard.
Mais je n'avais pas encore regardé pour l'affichage.
Et aujourd'hui je rentre... Et c'est solutionné.
J'y regarde de suite.
Merci encore pour ton travail.
Didier

denisvdb
Timide
Messages : 60
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 16 sept. 2018, 08:55

Bonjour,
j'ai un souci dans le plugin script : j'ai l'erreur suivante : Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Parse error: syntax error, unexpected 'use' (T_USE) in /var/www/html/plugins/script/core/ressources/BoilerTemperature.php on line 3 )
En ligne 3 c'est: use Viessmann\API\ViessmannAPI;
? ou faut il placer le fichier ViessmannAPI.php
merci d'avance
Denis

denisvdb
Timide
Messages : 60
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 16 sept. 2018, 12:51

Bonjour,
Je complète mon explication: j'ai fais le git clone en premier, puis mis à jour le fichier credentials.properties tous cela avec putty.
avec putty, dans jeedom je fais: pi@jeedom:~/Viessmann-Api/example $ php Main.php
et là ça fonctionne.
Par contre avec le plugin script j'ai lerreur : PHP Parse error: syntax error, unexpected 'use' (T_USE) in /var/www/html/plugins/script/core/ressources/BoilerTemperature.php on line 3 )
comment fais t on dans jeedom pour pointer vers un fichier php en utilisant le plugin script?
d'avance merci

Denis

denisvdb
Timide
Messages : 60
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 16 sept. 2018, 15:10

Je viens de trouver l'erreur,
j'avais oublier un ";" à la fin de cette ligne:
include 'phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.3-SNAPSHOT.phar/index.php';
Encore merci pour le support.
je suis ton développement de près

Denis

denisvdb
Timide
Messages : 60
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 16 sept. 2018, 15:42

Bonjour,
Quelqu'un as t'il une idée pour la commande permettant d'écrire la consigne de t° du "NormalProgramTemperature".
Merci.
Denis.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 16 sept. 2018, 16:41

Avec mon API:

Code : Tout sélectionner

$viessmanApi->setRawJsonData(ViessmannAPI::HEATING_PROGRAM_NORMAL,"setTemperature","{\"targetTemperature\":25}");
Pour trouver les actions et valeurs à mettre ce que je fais c'est récupérer le json contenant les données:
Ici

Code : Tout sélectionner

echo $viessmanApi->getRawJsonData(ViessmannAPI::HEATING_PROGRAM_NORMAL)
On reçoit un json. Dans ce json il y a une partie ACTION qui défini exactement ce qu'il faut faire pour écrire des valeurs:

Code : Tout sélectionner

"actions": [
    {
      "method": "POST",
      "isExecutable": true,
      "href": "https://api.viessmann-platform.io/operational-data/installations/55994/gateways/7571381753685105/devices/0/features/heating.circuits.0.operating.programs.normal/setTemperature",
      "name": "setTemperature",
      "title": "setTemperature",
      "fields": [
        {
          "name": "targetTemperature",
          "required": true,
          "type": "number",
          "min": 3,
          "max": 37,
          "stepping": 1
        }
      ],
      "type": "application/json"
    }
  ]
Il faut donc faire un POST sur l'url https://api.viessmann-platform.io/opera ... emperature
avec comme valleur {"targetTemperature": XXX}
Avec mon API, il suffit de passer
  • "heating.circuits.0.operating.programs.normal" comme feature
  • "setTemperature" comme action,
  • "{\"targetTemperature\": 25}" comme data. le \ c'est pour dire de ne pas interpréter le 2ème " comme la fin du string.
En gros, je dois encore faire se travail là pour écrire les méthodes faciles d'écriture. Si vous n'avez pas le temps d'attendre vous pouvez déjà le faire vous-même avec la méthode décrite ci-dessus
Dernière édition par thetrueavatar le 16 sept. 2018, 16:52, édité 3 fois.

denisvdb
Timide
Messages : 60
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 16 sept. 2018, 16:50

j'ai fais un fichier php avec ce qui suit et ça fonctionne.

<?php
include 'phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.3-SNAPSHOT.phar/index.php';
use Viessmann\API\ViessmannAPI;
$credentials = file("/var/www/html/plugins/script/core/ressources/credentials.properties");

$params = [
"user" => trim("$credentials[0]", "\n"),
"pwd" => trim("$credentials[1]", "\n"),
"uri" => "vicare://oauth-callback/everest"
];
$viessmanApi = new ViessmannAPI($params);
$viessmanApi->setRawJsonData(ViessmannAPI::HEATING_PROGRAM_NORMAL,"setTemperature","{\"targetTemperature\":25}");

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 16 sept. 2018, 17:06

Bon j'ai encore fait un petit refactoring de mes examples. J'ai mis les parties communes à tous les scripts dans le fichier bootstrap.php:

Code : Tout sélectionner

<?php
include 'phar://'.__DIR__.'/Viessmann-Api-0.2.phar/index.php';
use Viessmann\API\ViessmannAPI;
$credentials = file(__DIR__."/credentials.properties");
$params = [
    "user" => trim("$credentials[0]", "\n"),
    "pwd" => trim("$credentials[1]", "\n"),
    "uri" => "vicare://oauth-callback/everest"
];
$viessmannApi = new ViessmannAPI($params);
Maintenant le script est ultra-court:

Code : Tout sélectionner

<?php
include __DIR__.'/bootstrap.php';
echo $viessmannApi->getActiveMode();
Ca permettra aussi de changer de version en éditant que le fichier bootstrap.php

vmath54
Timide
Messages : 91
Inscription : 30 sept. 2016, 14:42

Re: Script pour Gestion Chaudière Viessmann connecté

Message par vmath54 » 16 sept. 2018, 21:12

Bonjour,

Je viens de me faire installer une chaudière viessmann ( Vitodens 222-F B2SB), équipée d'un Vitoconnect 100 OPT001.

J'ai lu ce fil de discussion, et j'ai toujours des interrogations

- authentification dans les différentes interfaces

. vicare
Lors de l'installation, le chauffagiste m'a dit d'installer vicare sur mon smartphone (android) ; login mon adresse mail, mdp un mot de passe bison que j'ai changé aussitôt.
vicare fonctionne bien, sur mon téléphone et sur ma tablette, avec le nouveau mdp

. vitotrol plus
en parcourant diférentes docs, j'ai vu qu'il y avait une seconde appli android : vitotrol plus ; je l'ai installée.
Cette doc viessmann https://www.viessmann.be/fr/viessmann-a ... d-faq.html dit de se loguer avec le même login et mdp que vicare.
Quand je le fais, ca me dit que mon login ou mon mdp sont faux. J'ai vérifié plusieurs fois, j'utilise bien le même login (mon adresse mail) et mdp.
J'ai même désinstallé vicare sur ma tablette, puis réinstallé pour vérifier que le mdp est bien celui que j'imaginais

. support.viessmann.io
dans ce forum, j'ai vu qu'on pouvait récupérer de l'info à https://support.viessmann.io/. Je rentre toujours le même login/mdp, et j'ai le message : "Permission Denied. You do not have proper permissions to access Remote Service Agent site"
entre temps, j'ai été redirigé à https://remote-service.viessmann.com/403-forbidden
un truc positif : si je met un autre mdp, le message est : "Login failed; please check the details you have entered."
Donc, mon login/mdp est correct ; mais je manque de droits pour accéder au site



Je vois au moins 2 problèmes :
- mon login/mdp de vicare ne fonctionne pas avec l'appli vititrol plus, contrairement à la doc
- mon login/mdp me permet d'accéder à https://support.viessmann.io/ (ou https://remote-service.viessmann.com/) ; mais je n'ai aucun droit sur le site.

J'ai l'impression qu'il faut que je règle ces problèmes pour aller plus loin, non ?

C'est comment, pour vous, pour l'accès à vitotrol plus et à https://support.viessmann.io/ ?

Merci de vos réponses

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 16 sept. 2018, 21:16

Vitotrol plus sera prochainement supprimé au profit de ViCare.
support.viessmann.io est l'ancienne interface et n'est plus accessible. Je te conseille de ne lire que les pages >20 Août 2018 depuis le changement. Il y a plusieurs scripts php pour récupérer les informations de ta chaudière.
De ce que j'ai appris Viessmann a "merdé" en changeant sont infrastructure backend trop vite et sans synchronisation avec Vicare. C'est pour ça qu'on se retrouve avec une application aussi inutile qu'un écrase-cannette...
Ils devraient améliorer ça pour la version 2.0.5 qui n'a aucune date de release....

denisvdb
Timide
Messages : 60
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 17 sept. 2018, 21:12

Bonsoir,
Je suis à la recherche des commandes pour lire la consommation de gaz et d’électricité de la chaudière.

Denis

denisvdb
Timide
Messages : 60
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 17 sept. 2018, 21:29

Bonsoir "thetrueavatar"
j'ai vu que tu as ajouter 2 nouveaux examples: set normal... et set reduce...
ces deux ne fonctionne pas! Ca bloque sur cette ligne: $viessmannApi->setReducedProgramTemperature("20");
par contre une commande de ce type fonctionne bien: $viessmanApi->setRawJsonData(ViessmannAPI::HEATING_PROGRAM_REDUCED,"setTemperature","{\"targetTemperature\":6}");
je comprends pas trop bien.
Denis

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité