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
thetrueavatar
Timide
Messages : 87
Inscription : 30 nov. 2017, 13:54

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 11 oct. 2018, 18:54

j'ai remarqué que sur vicare maintenant j'ai accès à la température d'eau chaude sanitaire. Je vais sniffer le réseau pour voir quelle requête renvoi cette valeur.
Dernière édition par thetrueavatar le 12 oct. 2018, 12:54, édité 1 fois.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 11 oct. 2018, 19:13

Je confirme. Il y a désormais 3 entities qui sont apparus en plus quand je fais getFeatures() dont heating.dhw.sensors.temperature.hotWaterStorage. J'ai donc enfin accès à ma température d'eau chaude sanitaire ! J'ai rajouté la méthode dans l'api du coup. Ca veut aussi dire que Viessmann enrichi et corrige les données manquantes sur ses serveurs ce qui est une bonne nouvelle.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 12 oct. 2018, 16:34

Version 0.3 disponible sur https://github.com/thetrueavatar/Viessm ... es/tag/0.3
  • Ajout d'une meilleure gestion d'erreur pour avoir des messages plus lisibles
  • Ajout de plusieurs méthode:
    - getHotWaterStorageTemperature
    - getRoomTemperature et getSupplyTemperature(merci Xavierg pour la contrib)
  • Possibilité de choisir le circuitId et deviceId par défaut utilisé par l'API(avant forcé à 0 par défaut). Possibilité de surcharge du circuitId à chaque appel.
  • Utilisant de Curl comme client plutôt que le client Stream

Avatar de l’utilisateur
herigs
Timide
Messages : 26
Inscription : 10 avr. 2016, 12:44

Re: Script pour Gestion Chaudière Viessmann connecté

Message par herigs » 13 oct. 2018, 18:18

Bonsoir thetrueavatar

Je suis ce post depuis quelques temps vu que je viens de faire faire installer une chaudière Viessmann et malgré le peu de connaissance en script, php et autres j'ai réussi à récupérer les infos qui m'intéressent.

Super boulot, encore merci

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 15 oct. 2018, 15:38

Bonjour,
Suite à la demande d'ajout d'une nouvelle méthode j'ai fait du refactoring de mon code afin de pouvoir utiliser les fichiers locaux json que j'avais trouvé comme ViCare. Je peux désormais les utiliser comme "source de données" et mocker ainsi le serveur viessmann.
Ca me permettra d'implémenter les méthodes non supportées par ma chaudière. Il faudra néanmoins, une validation par quelqu'un qui a bien la fonctionnalité. Je ferai une branche spéciale Feature/XXXX qui contiendra la méthode à tester et une fois valider je l'intégrerai dans le develop.

J'ai donc implémenté les méthodes getHeatingGasConsumption et getDhwGasConsumption. Elle prenne en paramètre une période spécifiée par une des 4 valeurs "day","week","month","year". Je l'ai mis dans une branche Feature/GazConsumption .
Pour y accéder fait les commandes suivantes dans le répertoire du code:

Code : Tout sélectionner

git pull
git checkout Feature/GazConsumption
Si quelqu'un peut tester ça m'aiderait ? Si vous n'avez pas la fonctionnalité l'api renverra : {"statusCode":404,"error":"Not Found","message":"FEATURE_NOT_FOUND"}

Oubliez pas de repasser sur la branche develop après votre test en faisant:

Code : Tout sélectionner

git checkout develop
 

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Xavier.g » 15 oct. 2018, 16:14

J'ai des problemes de connections ... idem sur ViCare. Dès que ca revient, je teste pour voir si j'ai de nouvelles infos de mon coté.
Je cherche en particulier le temps de fonctionnement du bruleur

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 15 oct. 2018, 16:31

Je vais l'appeler Feature/MethodNotYetTested comme ça je rajouterai les méthodes au fur et à mesure plutôt que de faire une branche par méthode.
EDIT: j'ai rajouté la méthode et l'example GetBoilerStatistics.php. J'avais accès à l'info avant mais plus avec le nouveau service...
J'ai rajouté les méthodes getHeatingSchedule, getDhwSchedule et getCirculationSchedule dans la branche develop qui renvoie les horaires et si c'est actif ou pas.

Voici la liste des méthodes rajoutées devant encore être testées:

Code : Tout sélectionner

isDhwCharging 
getDhwChargingLevel 
isOneTimeDhwCharge 
getDhwPumpsCirculation 
getDhwPumpsPrimary 
getDhwTemperature 
getCirculationPump 
getHeatingBurnerModulation 
getHeatingBurnerCurrentPower
GetBoilerStatistics

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par djorg08 » Hier, 12:07

Bonjour,
J'obtiens une erreur
j'ai remplacer GetBoilerStatistics.php
par

Code : Tout sélectionner

<?php
include __DIR__ . '/bootstrap-test.php';
echo $viessmannApi->getHeatingBurnerStatistics("hours");
echo $viessmannApi->getHeatingBurnerStatistics("starts");
et bootstrap-test.php

par

Code : Tout sélectionner

<?php

include 'phar://' . __DIR__ . '/Viessmann-Api-0.4-SNAPSHOT.phar/index.php';

use Viessmann\API\ViessmannAPI;
use Viessmann\API\ViessmannApiException;

$credentials = file(__DIR__."/credentials.properties");
$params = [
    "user" => trim("$credentials[0]", "\n"),
    "pwd" => trim("$credentials[1]", "\n"),
    "deviceId" => "0",
    "circuitId"=>"0"
];
try {
$viessmannApi = new ViessmannAPI($params);
} catch (ViessmannApiException $e) {
    echo $e->getMessage();
    exit();
comme ça le bootstrp.php pointe toujours sur Viessmann-Api-0.3 pour ce qui fonctionne

J'obtiens une erreur lors de l'enregistrement de mon script:
Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Fatal error: Uncaught Error: Call to undefined method Viessmann\API\ViessmannAPI::getHeatingBurnerStatistics() in /var/www/html/plugins/script/core/ressources/Viessmann-Api/example/GetBoilerStatistics.php:3 Stack trace: #0 {main} thrown in /var/www/html/plugins/script/core/ressources/Viessmann-Api/example/GetBoilerStatistics.php on line 3 )
Je constate aussi un problème d'affichage quand les retours ne sont ni binaire, ni numériques mais autres.
Je n'ai rien à l'affichage.

Merci encore pour ton travail

Didier

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » Hier, 12:51

Bonjour, pour info, les méthodes en question sont sur la branche Feature/MethodNotYetTest dispo içi:https://github.com/thetrueavatar/Viessm ... tYetTested

Je te conseille de prendre le phar Viessmann-Api-0.4-SNAPSHOT.phar de cet branch alors pour être avoir les méthodes que j'ai listée.
Pour le problème d'affichage, je ne comprend pas vraiment où est le probème. Lors de l'appel php ou dans jeedom ?
Perso je n'ai aucune prise sur jeedom.
Pour info, en php, quand un résultat est un tableau, il ne faut pas utiliser la fonction echo mais bien print_r pour afficher les informations. C'est notamment le cas des schedule

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par djorg08 » Hier, 13:55

Bonjour
j'utilise bien le phar Viessmann-Api-0.4-SNAPSHOT.phar de cette branche (retéléchargé)

J'ai comme erreur
"Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Fatal error: Uncaught Viessmann\API\ViessmannApiException: Unable to get data for feature heating.burner.statistics Reason: FEATURE_NOT_FOUND in phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php:280 Stack trace: #0 phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php(187): Viessmann\API\ViessmannAPI->getEntity('heating.burner....') #1 /var/www/html/plugins/script/core/ressources/Viessmann-Api/example/GetBoilerStatistics.php(3): Viessmann\API\ViessmannAPI->getHeatingBurnerStatistics('hours') #2 {main} thrown in phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php on line 280 ) "

Le json est-il stocké en local ? si oui où ?

Concernant echo ou print_r, j'utilise tes scripts.

RQ : chez moi un
echo $viessmannApi->getBoilerTemperature(); fonctionne avec un script info numérique, j'ai "38" par ex en retour
mais un
echo "Température boiler " . $viessmannApi->getBoilerTemperature() . "\n"; ne fonctionne pas avec un script info autres (ou numérique) ?
j'ai "" (rien) en retour

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » Hier, 14:30

Reason: FEATURE_NOT_FOUND veut dire simplement que l'information n'est pas exposé sur le serveur viessmann pour ton équipement. Ca peut être temporaire ou juste pas prévu.
Dans ce cas là je throw une ViessmannApiException qui contient le message d'erreur.
J'ai mis dans le fichier GetActiveModeErrorHandling.php un exemple de gestion d'erreur:

Code : Tout sélectionner

<?php
include __DIR__.'/bootstrap.php';
use Viessmann\API\ViessmannApiException;
try {
    echo "Active mode for default circuit(): " . $viessmannApi->getActiveMode(3) . "\n";
} catch (ViessmannApiException $e) {
    echo "Message: " . $e->getMessage() . "\n";
    echo "Code: " . $e->getCode() . "\n";
    echo "Trace:" . $e->getTraceAsString() . "\n";
}
En pratique:
$e->getMessage() renverra

Code : Tout sélectionner

Message: Unable to get data for feature heating.circuits.3.operating.modes.active
Reason: FEATURE_NOT_FOUND
$e->getCode renverrra 1
$e->getTraceAsString() renverra

Code : Tout sélectionner

Trace:#0 phar:///home/clibois/personnel/git/Viessmann-API/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php(82): Viessmann\API\ViessmannAPI->getEntity('heating.circuit...')
#1 /home/clibois/personnel/git/Viessmann-API/example/GetActiveModeErrorHandling.php(7): Viessmann\API\ViessmannAPI->getActiveMode(3)
#2 {main}

Pour jeedom et le plugin script, celui-ci prend comme valeur ce qui est renvoyé le script et donc dans notre cas la fonction echo.
Donc si c'est echo "Température boiler " . $viessmannApi->getBoilerTemperature() . "\n"; il reçoit "Température boiler 38." au lieu de 38.

Pour rappel, mes scripts dans le répertoire exampel, sont des examples de l'utilisation de l'API. Ils sont à adapter en fonction de l'outils domotique(domoticz,jeedom,...). En pratique, la plupart fonctionne tel quel pour plugin script jeedom mais on peut faire autrement.
Dernière édition par thetrueavatar le 17 oct. 2018, 14:39, édité 1 fois.

Avataar120
Timide
Messages : 19
Inscription : 25 août 2018, 12:26

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Avataar120 » Hier, 14:38

Hello,

Je n'utilise pas ton script thetrueavatar, mais en tout cas, j'ai accès aux données de statistiques via les mêmes appel aux API que toi.
Je confirme donc que cela fonctionne depuis le 9 octobre 16:00 heure de la mise à jour du serveur Viessmann me concernant.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » Hier, 14:41

Merci pour le retour. Néanmoins, J'essaye plus de tester mon "parsing" des données que leur disponibilité effective.Le problème c'est que ça dépend d'un équipement à l'autre. Perso j'avais pas accès aux données de temp eau chaude alors que d'autres oui. Depuis 2-3 jours la donnée est enfin dispo pour moi aussi...

Avataar120
Timide
Messages : 19
Inscription : 25 août 2018, 12:26

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Avataar120 » Hier, 14:48

Je confirme, les données s'ajoutent au fil de l'eau.
Comment avais-tu récupéré les URL et structure JSON sans avoir les données accessibles sur ton API serveur ?
Veux-tu que je t'envoie mon JSON pour vérifier ton parsing ?

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » Hier, 16:26

J'ai découvert en décompilant l'applications ViCare une liste de json d'exemple. Je l'ai rajouté dans mon github sur https://github.com/thetrueavatar/Viessm ... atures.zip
Je me base dessus pour implémenter les fonctionnalités mais je peux pas tester en "live" pour certaines. D'où ma demande.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » Hier, 21:15

Bonsoir à tous,
je voulais savoir si la fonction: getDhwTemperature est déja intégrée?
j'ai aussi un souci avec GetHeatingBurnerActive.php, ne donne aucune valeur lors de mon test.

Denis

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » Hier, 21:29

denisvdb a écrit :
Hier, 21:15
Bonsoir à tous,
je voulais savoir si la fonction: getDhwTemperature est déja intégrée?
j'ai aussi un souci avec GetHeatingBurnerActive.php, ne donne aucune valeur lors de mon test.

Denis
Je l'avais mis dans la branche des méthodes non testées mais ça fonctionne sur mon équipement donc je l'ai rajoutée dans la branche develop.
C'est parce que la méthode renvoie un booléen. Hors en php le booléen false est converti en string vide alors que le true est converti en 1. Donc ça veut juste dire que ton boiler est pas actif. Chez moi jeedom l'interprète correctement.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » Hier, 21:33

Que faut il faire dans jeedom pour que ce soit bien interprèté?

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » Hier, 21:37

pour le getdhwtemperature: j'ai le message d'erreur suivant:
Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Fatal error: Uncaught Error: Call to undefined method Viessmann\API\ViessmannAPI::getDhwTemperature() in /var/www/html/plugins/script/core/ressources/GetDhwTemperature.php:3 Stack trace: #0 {main} thrown in /var/www/html/plugins/script/core/ressources/GetDhwTemperature.php on line 3 )

fmetz
Timide
Messages : 29
Inscription : 26 oct. 2015, 12:31

Re: Script pour Gestion Chaudière Viessmann connecté

Message par fmetz » Aujourd’hui, 01:26

Hello,

Bonjour, je suis en train de passer en revue tout ce qui marche chez moi mais j'ai un problème avec le "Viessmann-Api-0.4-SNAPSHOT.phar" car tous les "set" ne marchent plus alors qu'ils marchent très bien avec le phar 0.3 !
Par exemple, j'ai l'erreur suivante sur un SetCurve :

Code : Tout sélectionner

PHP Fatal error:  Uncaught TypeError: Argument 4 passed to Viessmann\Oauth\ViessmannOauthService::request() must be of the type array, string given, called in phar:///var/www/html/plugins/script/core/ressources/Viessmann/Viessmann-Api-0.4-SNAPSHOT.phar/src/Oauth/ViessmannOauthClientImpl.php on line 113 and defined in phar:///var/www/html/plugins/script/core/ressources/Viessmann/Viessmann-Api-0.4-SNAPSHOT.phar/src/Oauth/ViessmannOauthService.php:110
Stack trace:
#0 phar:///var/www/html/plugins/script/core/ressources/Viessmann/Viessmann-Api-0.4-SNAPSHOT.phar/src/Oauth/ViessmannOauthClientImpl.php(113): Viessmann\Oauth\ViessmannOauthService->request('operational-dat...', '{"shift":-5,"sl...', 'POST', '{"shift":-5,"sl...', Array)
#1 phar:///var/www/html/plugins/script/core/ressources/Viessmann/Viessmann-Api-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php(263): Viessmann\Oauth\ViessmannOauthClientImpl->setData('heating.circuit...', 'setCurve', '{"shift":-5,"sl...')
#2 phar:///var/www/html/plugins/script/core/ressources/Viessmann/Viessma in phar:///var/www/html/plugins/script/core/ressources/Viessmann/Viessmann-Api-0.4-SNAPSHOT.phar/src/Oauth/ViessmannOauthService.php on line 110

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : fmetz, thetrueavatar et 1 invité