Ce Forum passera en lecture seule en janvier 2020
Image
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
denisvdb
Timide
Messages : 63
Inscription : 27 janv. 2017, 12:57

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 22 sept. 2018, 12:33

Bonjour,
pour lire la temp en mode normal c'est ok.
Par contre pour le GetActiveMode.php comment fais tu pour afficher la valeur sur le dashboard?
Denis

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 22 sept. 2018, 14:35

Je mes le type en "Autre" plutôt que numérique.

Mikado
Timide
Messages : 150
Inscription : 17 sept. 2018, 10:42

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 23 sept. 2018, 16:05

Hello,

@denisvdb, suis trop neuf sur Jeedom. Tu pourrais concrètement me dire ce que tu fais comme script ?

J'essaye comme un âne de déclencher /var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.1/example/Main.php pour voir, mais cela me rend :
Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Parse error: syntax error, unexpected '{', expecting identifier (T_STRING) in phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.1/example/Viessmann-Api-0.2.phar/src/API/ViessmannAPI.php on line 5 )

J'ai modifié le credentials mais l'erreur ne vient pas de là.

Je sais bien qu'il faudrait utiliser l'API sans passer par le répertoire example, mais je ne vois pas quel script php utiliser. Si tu as un exemple pour l'utilisation directe de l'API (que j'ai recopier sans le git clone), je veux bien.

Merci à toi
Bonne journée,

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 23 sept. 2018, 16:33

Bonjour,
je n'utilise pas le main.php
j'utilise les autres fichier php situer dans le dossier example du github.
par ex. : SetNormalProgramTemperature.php
vas voir aussi la réponse de thetrueavatar » Hier, 07:01 sur ce post, il y as pas mal d'info.
Denis

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 23 sept. 2018, 17:03

Bonjour,
Je ne parviens pas a activer ou désactiver le programme eco --> HEATING_PROGRAM_ECO="heating.circuits.0.operating.programs.eco";
Il n'existe pas de fichier php dans le dossier example.
J'ai créer ce fichier sur mon jeedom mais je ne sait pas trop quel paramètre utiliser.
pour l'instant j'ai:
<?php
include '/var/www/html/plugins/script/core/ressources/bootstrap.php';
??HEATING_PROGRAM_ECO="heating.circuits.0.operating.programs.eco";

En réalité sur le vitotrol plus il y as un bouton pour activer ou désactiver le prg eco. c'est cette commande que je cherche à faire dans jeedom.
par contre dans l'app vicare je ne trouve pas cette option!

Denis.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 23 sept. 2018, 19:01

denisvdb a écrit :
23 sept. 2018, 17:03
Bonjour,
Je ne parviens pas a activer ou désactiver le programme eco --> HEATING_PROGRAM_ECO="heating.circuits.0.operating.programs.eco";
Il n'existe pas de fichier php dans le dossier example.
J'ai créer ce fichier sur mon jeedom mais je ne sait pas trop quel paramètre utiliser.
pour l'instant j'ai:
<?php
include '/var/www/html/plugins/script/core/ressources/bootstrap.php';
??HEATING_PROGRAM_ECO="heating.circuits.0.operating.programs.eco";

En réalité sur le vitotrol plus il y as un bouton pour activer ou désactiver le prg eco. c'est cette commande que je cherche à faire dans jeedom.
par contre dans l'app vicare je ne trouve pas cette option!

Denis.
Voici comment faire pour lire la valeur:

Code : Tout sélectionner

<?php
include __DIR__.'/bootstrap.php';
echo $viessmannApi->getRawJsonData(\Viessmann\API\ViessmannAPI::HEATING_PROGRAM_ECO);
Là tu reçois un json avec dedans:

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.eco/activate",
      "name": "activate",
      "title": "activate",
      "fields": [
        {
          "name": "temperature",
          "required": false,
          "type": "number",
          "min": 3,
          "max": 37,
          "stepping": 1
        }
      ],
      "type": "application/json"
    },
    {
      "method": "POST",
      "isExecutable": true,
      "href": "https://api.viessmann-platform.io/operational-data/installations/55994/gateways/7571381753685105/devices/0/features/heating.circuits.0.operating.programs.eco/deactivate",
    "name": "deactivate",
      "title": "deactivate",
      "fields": [],
      "type": "application/json"
    }
Avec ça tu as les infos normalement pour le setRawJsonData
Pour mettre la valeur il faurait faire:

Code : Tout sélectionner

<?php
include __DIR__.'/bootstrap.php';
echo $viessmannApi->setRawJsonData(\Viessmann\API\ViessmannAPI::HEATING_PROGRAM_ECO,"activate", "{\"temperature\": 20}");
Néanmoins, j'ai une erreur(502 bad gateway) qui de ce que j'ai remarqué indique que les données passées ne sont pas bon format. Pourtant j'ai pas trouvé où est l'erreur.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 23 sept. 2018, 19:15

Mikado a écrit :
23 sept. 2018, 16:05
Hello,

@denisvdb, suis trop neuf sur Jeedom. Tu pourrais concrètement me dire ce que tu fais comme script ?

J'essaye comme un âne de déclencher /var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.1/example/Main.php pour voir, mais cela me rend :
Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Parse error: syntax error, unexpected '{', expecting identifier (T_STRING) in phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.1/example/Viessmann-Api-0.2.phar/src/API/ViessmannAPI.php on line 5 )

J'ai modifié le credentials mais l'erreur ne vient pas de là.

Je sais bien qu'il faudrait utiliser l'API sans passer par le répertoire example, mais je ne vois pas quel script php utiliser. Si tu as un exemple pour l'utilisation directe de l'API (que j'ai recopier sans le git clone), je veux bien.

Merci à toi
Bonne journée,
Je vois que tu mentionnes la version 0.2.1 pourtant ton fichier bootstrap.php semble toujours pointer sur le phar 0.2 cfr
phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.1/example/Viessmann-Api-0.2.phar/src/API/ViessmannAPI.php

Mikado
Timide
Messages : 150
Inscription : 17 sept. 2018, 10:42

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 24 sept. 2018, 11:30

thetrueavatar a écrit :
23 sept. 2018, 19:15
Je vois que tu mentionnes la version 0.2.1 pourtant ton fichier bootstrap.php semble toujours pointer sur le phar 0.2 cfr
phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.1/example/Viessmann-Api-0.2.phar/src/API/ViessmannAPI.php
Hello,

Exact, bien vu :) . j'utilisais ton boostraph.php.
Je l'ai modifié pour pointer sur la 0.2.1, mais j'obtiens la même chose. :(

Code : Tout sélectionner

Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Parse error: syntax error, unexpected '{', expecting identifier (T_STRING) in phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.2.1/example/Viessmann-Api-0.2.1.phar/src/API/ViessmannAPI.php on line 5 ) 
L'erreur se produit sur

Code : Tout sélectionner

$viessmannApi = new ViessmannAPI($params);
Je sais que le tableau $params est ok.

Du coup j'ai relu ton wiki sur Git, et tu dis que plus besoin d'installer, et on peut utiliser direct l'API. Mon erreur ne viendrait pas d'utiliser dans un premier temps ton rep example, avec ton Main, bootstrap et credential sans avoir fait d'install ?

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 24 sept. 2018, 11:51

Peux-tu me montrer le contenu de ton fichier bootstrap.php et Main.php ? J'imagine qu'il doit y avoir un souci à ce niveau-là.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Xavier.g » 24 sept. 2018, 11:58

Bonjour Thetrueavatar,

Je commence à implémenter ton API et tout se passe bien :). Tu as fait un énorme TAF et l'utilisation du fichier .phpar est super simple.
je te propose juste de rajouter quelques lignes dans le wiki (et de les corriger éventuellement) pour les benets comme moi qui ne pigent rien à la programmation :

- Installation :
Nota : on peut utiliser le pluging Outilsdev de Jeedom qui permet d’accéder à arborescence du dossier html de Jeedom très simplement et d'éditer les fichier sans taper de ligne de code :)
1_ Accéder au répertoire : html/plugins/script/core/ressources
2_ Créer un dossier Viessmann API
3_ Dans le dossier Viessmann API, copier tous les fichiers contenu dans le dossier exemple
4_ Editer le fichier credentials.properties et renseigner le login et le mdp utilisé sur l'appli ViCare

- Utilisation
1_ avec le plugin Script, créer un nouvel équipement (ex: ViessmannAPI)
2_ Créer une commande Info avec :
-- Nom = température extérieure
-- Type de script = Script
-- Type = Info / Autre
-- Requete = /var/www/html/plugins/script/core/ressources/Viessmann-Api/GetOutsideTemperature.php (utiliser le bouton avec l'icone du dossier)
3_ Sauvegarder la commande
4_ Cliquer sur le bouton TEST pour voir si Jeedom récupère le résultat et comparer avec l'appli ViCare
5_ Répéter la manip pour chaque script du dossier

Autre chose, dans le fichier ViessmannAPI.php, peux tu rajouter les variable heating.circuits.1.xxx (pour ceux qui comme moi utilisent 2 circuits indépendants)

merci pour ton job et ton support.

Mikado
Timide
Messages : 150
Inscription : 17 sept. 2018, 10:42

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 24 sept. 2018, 13:00

thetrueavatar a écrit :
24 sept. 2018, 11:51
Peux-tu me montrer le contenu de ton fichier bootstrap.php et Main.php ? J'imagine qu'il doit y avoir un souci à ce niveau-là.
Avec plaisir, merci de ton aide.

Code : Tout sélectionner


Fichier Main.php

[/<?php
include __DIR__.'/bootstrap.php';
use Viessmann\API\ViessmannAPI;
echo $viessmannApi->getFeatures();
echo "Température extérieure " . $viessmannApi->getOutsideTemperature() . "\n";
echo "Température boiler " . $viessmannApi->getBoilerTemperature() . "\n";
echo "Pente " . $viessmannApi->getSlope() . "\n";
echo "Parallèle " . $viessmannApi->getShift() . "\n";
echo "Mode chaudière " . $viessmannApi->getActiveMode() . "\n";
echo "Programme actif " . $viessmannApi->getActiveProgram() . "\n";
echo "Is Heating Burner active ? " . $viessmannApi->isHeatingBurnerActive() . "\n";//in php false bool is converted into empty string
echo "Is Dhw mode active ? " . $viessmannApi->isDhwModeActive() . "\n";
echo "Température de confort " . $viessmannApi->getComfortProgramTemperature() . "\n";
echo "Température écho " . $viessmannApi->getEcoProgramTemperature() . "\n";
echo "Température externe " . $viessmannApi->getExternalProgramTemperature() . "\n";
echo "Température réduit " . $viessmannApi->getReducedProgramTemperature() . "\n";
echo "Température supply " . $viessmannApi->getSupplyProgramTemperature() . "\n";
echo "Est en veille ? " . $viessmannApi->isInStandbyMode() . "\n";
echo "Appelle resources " . $viessmannApi->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";

Fichier bootstrap.php

<?php
include 'phar://'.__DIR__.'/Viessmann-Api-0.2.1.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);
Le fichier credentials est basé sur ton exemple.
Les Main et boostrap sont issues de chez toi. J'avais effectivement omis de changer Viessmann-Api-0.2.phar en Viessmann-Api-0.2.1.phar
Le tout a été laissé dans le répertoire exemple. En gros, j'ai ces fichiers là + Viessmann-Api-0.2.1.phar dans le même répertoire.
Mais j'ai recopié les fichiers sans passer par un git clone.

Encore merci

Mikado
Timide
Messages : 150
Inscription : 17 sept. 2018, 10:42

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 24 sept. 2018, 13:21

Xavier.g a écrit :
24 sept. 2018, 11:58
Bonjour Thetrueavatar,

Je commence à implémenter ton API et tout se passe bien :). Tu as fait un énorme TAF et l'utilisation du fichier .phpar est super simple.
Hello Xavier,

Suis d'accord avec toi pour le super Taf même si je n'arrive pas à jouer encore avec :)
Merci pour ton post, qui me permet de voir que je n'ai pas fait fausse route dans mes tests.

Peux tu me dire quelle version d l'API utilises tu ?

Vais finir par devenir chèvre

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 24 sept. 2018, 13:33

bon ok problème de comptabilité avec le 5.6. Je viens d'installer php 5.6 pour corriger ce qui reste de problèmes.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Xavier.g » 24 sept. 2018, 13:43

Mikado a écrit :
24 sept. 2018, 13:21
Peux tu me dire quelle version d l'API utilises tu ?
J'ai chargé la version de DEV : Viessmann-Api-0.3-SNAPSHOT.phar (par erreur, mais comme ca fonctionne, je ne change rien :lol: )

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 24 sept. 2018, 13:51

Bon j'ai essayé de rendre mon code compatible avec php 5.6. Malheureusement les librairies que j'utilise ont été développées en php 7 (notamment le parser siren). Je ne peux donc que suggérer de passer au runtime php 7. De toute façon, j'imagine que le code écrit lors du php 5.6 fonctionne même en utilisant le runtime php 7. En général, on ajoute des possibilités de versions en versions mais on en enlève rarement.
Il me semble que jeedom est compatible php7. J'imagine qu'il doit y avoir une procédure de migration afin de bien garder ses données.
Dernière édition par thetrueavatar le 24 sept. 2018, 14:43, édité 1 fois.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Xavier.g » 24 sept. 2018, 14:38

Je pense être à jour des dernières version de jeedom :
Version Jeedom : 3.2.11
Version PHP : 7.0.27-0+deb9u1
Version OS : Linux jeedom3 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux [9.3]
Version database : 10.1.23-MariaDB-9+deb9u1

Par une mise à jour simple :
1_ faire un backup de son installation (menu engrenages à droite --> sauvegarde) et l'exporter sur disque externe
2_ mise à jour ou re-installation de jeedom : doc https://jeedom.github.io/documentation/ ... our_manuel (pas sûr que la mise à jour actualise le php, mais une re-install marche tres bien)
3_ restaurer le backup fait en 1

Mikado
Timide
Messages : 150
Inscription : 17 sept. 2018, 10:42

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 24 sept. 2018, 14:57

thetrueavatar a écrit :
24 sept. 2018, 13:51
Bon j'ai essayé de rendre mon code compatible avec php 5.6. Malheureusement les librairies que j'utilise ont été développées en php 7 (notamment le parser siren). Je ne peux donc que suggérer de passer au runtime php 7. De toute façon, j'imagine que le code écrit lors du php 5.6 fonctionne même en utilisant le runtime php 7. En général, on ajoute des possibilités de versions en versions mais on en enlève rarement.
Il me semble que jeedom est compatible php7. J'imagine qu'il doit y avoir une procédure de migration afin de bien garder ses données.

Merci thetrueavatar pour ton retour. Bon déjà je suis pas taré cela me rassure. Avant de migrer, j'essaierai ta nouvelle release 5.6 lorsque tu l'auras mis sur Git.

Xavier.g a écrit :
24 sept. 2018, 14:38
Je pense être à jour des dernières version de jeedom :
Version Jeedom : 3.2.11
Version PHP : 7.0.27-0+deb9u1
Version OS : Linux jeedom3 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux [9.3]
Version database : 10.1.23-MariaDB-9+deb9u1
Merci Xavier pour l'info. Il s'agit bien d'une box que tu as ? (je vois un OS linux jeedom) . Moi j'ai une box mini+ et pas trop envie de perdre le support. Si j'avais installé Jeedom sur une bécanne à moi, serais déjà upgradé :)

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Xavier.g » 24 sept. 2018, 15:29

J'ai un RPi3 et j'ai fait une install standard.
si tu as une mini, il tu peux faire un backup, faire une install sur une autre carte SD et restaurer ton backup.
Il faut juste remettre ses identifiants du market jeedom pour retrouver ses droits (plugins achetés, supports...)
ainsi, tu gardes ta carte µSD d'origine "au cas où"

Mikado
Timide
Messages : 150
Inscription : 17 sept. 2018, 10:42

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 24 sept. 2018, 15:55

Xavier.g a écrit :
24 sept. 2018, 15:29
J'ai un RPi3 et j'ai fait une install standard.
si tu as une mini, il tu peux faire un backup, faire une install sur une autre carte SD et restaurer ton backup.
Il faut juste remettre ses identifiants du market jeedom pour retrouver ses droits (plugins achetés, supports...)
ainsi, tu gardes ta carte µSD d'origine "au cas où"
En fait j'ai ressorti ma Jeedom du placard il y a 15j. Je l'avais acheté en 2016 et jamais eu le temps de jouer avec. Comme elle ne marchait plus, j'ai contacté le support qui m'a envoyé un lien avec une image. Mais je me retrouve avec cela :

Code : Tout sélectionner

Version Jeedom 3.2.11  
Version PHP 5.6.30-0+deb8u1  
Version OS Linux jeedom 3.14.53-fslc-imx6-sr #1 SMP Thu Oct 15 20:42:12 UTC 2015 armv7l GNU/Linux [8.9]  
Version database 5.5.57-0+deb8u1 
Et du coup un vieux bouzin ^^ . Donc j'ai recontacté le support pour leur demander le pourquoi de cette image obsolète. Je vous tiens au jus, et merci à tous les deux. Suis trop frustré pour le moment de spammer le Topic sans pouvoir m'en servir. Une fois opérationnel, j'espère enfin apporter ma contribution :)

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 24 sept. 2018, 16:03

Mikado a écrit :
24 sept. 2018, 14:57
Merci thetrueavatar pour ton retour. Bon déjà je suis pas taré cela me rassure. Avant de migrer, j'essaierai ta nouvelle release 5.6 lorsque tu l'auras mis sur Git.
Il n'y aura au final pas de version compatible php 5.6 parce que les librairies dont je dépend et développées par d'autres ne sont pas compatibles php 5.6.

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités