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

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

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
fmetz
Timide
Messages : 69
Inscription : 26 oct. 2015, 12:31

Re: Script pour Gestion Chaudière Viessmann connecté

Message par fmetz » 31 oct. 2018, 08:55

getHeatingGasConsumption("month") sort un tableau de 12 valeurs, 1 par mois.
Donc tu ne peux pas mettre ça dans ton virtuel directement. Si tu veux récupérer le mois en cours, tu dois récupérer la 1ère valeur du tableau.
Alors moi je n'y connais pas grand chose en php et je ne peux pas tester là mais essaye ça :

Code : Tout sélectionner

$res=$viessmannApi->getHeatingGasConsumption("month");
jeedom_post("191", $res[0]);

Manouille
Timide
Messages : 31
Inscription : 29 juil. 2017, 12:59
Localisation : Anjou

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Manouille » 31 oct. 2018, 10:19

OK merci fmetz, je comprends le principe.
J'ai maintenant une valeur.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 31 oct. 2018, 15:55

bonjour,
je viens aussi d'essayer cette méthode: $res=$viessmannApi->getHeatingGasConsumption("month");
jeedom_post("191", $res[0]);
j’obtiens bien une valeur. la valeur est 3696. Seulement ça représente quoi exactement?
merci
Denis

Manouille
Timide
Messages : 31
Inscription : 29 juil. 2017, 12:59
Localisation : Anjou

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Manouille » 01 nov. 2018, 00:40

Je ne sais pas encore comment transformer ce chiffre en Kwh

A priori, la commande getHeatingGasConsumption ne fait ressortir que la consommation gaz en mode chauffage.
Exemple :
Sur octobre (m-1), ma chaudière fonctionnait en chauffage et eau chaude -> conso gaz de 2048 retournée par le script (conso totale affichée sur la chaudière : 518 Kwh)
En septembre (m-2), elle ne fonctionnait qu'en eau chaude -> conso gaz à 0 retournée par le script (conso eau chaude affichée sur la chaudière : 133 Kwh)
Pas encore de conso sur le mois en cours (01/11/2018 - 00h26).

Image

Manouille
Timide
Messages : 31
Inscription : 29 juil. 2017, 12:59
Localisation : Anjou

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Manouille » 01 nov. 2018, 11:24

Ce matin, 18 Kwh affiché sur la chaudière en conso gaz chauffage et 72 retourné par le script : -> multiple de 4 ?

Sur la conso annuelle, 27368 - 27296 = 72 également. C'est la même échelle.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par fmetz » 01 nov. 2018, 11:53

@Manouille
Je ne voudrais pas être désagréable mais peut-être que tu pourrais bien regarder ce que les autres écrivent, cela t'éviterait de chercher longtemps et à moi en tout cas, cela me ferait plaisir de savoir que le temps que je passe à tester et à partager sert à quelque chose...

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 01 nov. 2018, 12:23

Je pense que Manouille n'a pas vu que tu avais mis tes explications en commentaires du code. Je les ressort pour que ça soit plus clair et mieux faire partager les résultats de test tests :
fmetz a écrit :

Code : Tout sélectionner

print_r($viessmannApi->getHeatingGasConsumption("day"));

Conso(kWh)=8*retour sur 7 jours de j à j-6 ; avec VitoTrol on avait 8 jours
Marche mais en ce moment ma conso ne dépasse pas 128kWh (voir ci-dessous le bug avec les autres consos)

Code : Tout sélectionner

print_r($viessmannApi->getHeatingGasConsumption("week"));
conso(kWh)=8*retour sur 52 semaines de s à s-51 ; avec VitoTrol on avait 53 semaines
Marche si conso<=128kWh, il y a un pb de codage au-delà. Le codage semble être un modulo de 128kWh (modulo 1024)
Au dessus de 128(codé 1024), je retrouve la conso de ma chaudière si j'ajoute les paquets de 1024 qui manquent.
Je pense qu'il faut attendre que la fonction marche dans ViCare...

Code : Tout sélectionner

print_r($viessmannApi->getHeatingGasConsumption("month"));
conso(kWh)=8*retour sur 12 mois de m à m-12 ; avec VitoTrol on avait 13 mois
bug modulo 1024

Code : Tout sélectionner

print_r($viessmannApi->getHeatingGasConsumption("year"));
conso(kWh)=8*retour sur 2 années de a à a-1 ; avec VitoTrol on avait 3 ans
bug modulo 1024
Si vous le souhaitez, je peux éventuellement "corriger les données" renvoyées pour que ça correspondent à l'affichage de la chaudière sur base de l'analyse de fmetz ou attendre que ViCare l'affiche pour avoir l'"Algorithme" de conversion officiel.
Dernière édition par thetrueavatar le 01 nov. 2018, 12:29, édité 2 fois.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 01 nov. 2018, 13:13

Juste pour préciser, pour convertir un booléen en 1/0 il suffit de le "caster" en int. Exemple:

Code : Tout sélectionner

<?php
include __DIR__.'/bootstrap.php';
echo (int)$viessmannApi->isHeatingBurnerActive();

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par fmetz » 01 nov. 2018, 13:17

Merci et désolé pour mon message de tout à l'heure, je suis un peu sur les nerfs aujourd'hui...

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 01 nov. 2018, 14:00

Bonjour,
j'avoue j'ai du mal à comprendre le bug pour l'affichage des conso de gaz.
je souhaiterai avoir un exemple pour la conversion en kwh de la valeur obtenue par vicaire. (par ex pour la consom. mensuelle)
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 » 01 nov. 2018, 14:58

Re bonjour,
avez-vous testé le GetBoilerStatistics.php?
chez moi il ne fonctionne pas. erreur suivante:

Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => PHP Warning: fopen(http://192.168.0.68/core/api/jeeApi.php ... =EauChaude Chauffage): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /var/www/html/plugins/script/core/ressources/test1.php on line 16 PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/plugins/script/core/ressources/test1.php on line 20 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-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php:280 Stack trace: #0 phar:///var/www/html/plugins/script/core/ressources/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/test1.php(101): Viessmann\API\ViessmannAPI->getHeatingBurnerStatistics('hours') #2 {main} thrown in phar:///var/www/html/plugins/script/core/ressources/Viessmann-Api-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php on line 280 )

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 01 nov. 2018, 15:28

J'ai aussi testé:
GetSupplyTemperature.php
donne l'erreur: 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::getSupplyTemperature() in /var/www/html/plugins/script/core/ressources/GetSupplyTemperature.php:3 Stack trace: #0 {main} thrown in /var/www/html/plugins/script/core/ressources/GetSupplyTemperature.php on line 3 )

et GetCirculationSchedule.php me donne tj 0 comme résultat.

Manouille
Timide
Messages : 31
Inscription : 29 juil. 2017, 12:59
Localisation : Anjou

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Manouille » 01 nov. 2018, 15:49

Je suis désolé, j'ai bien lu ton message fmetz mais à mon avis on ne se comprends pas.
Je ne dois pas comprendre le language de developpeur / booléen ou autre... :)

J'essaye comprendre à mon humble niveau :(

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 01 nov. 2018, 15:52

denisvdb a écrit :
01 nov. 2018, 15:28
J'ai aussi testé:
GetSupplyTemperature.php
donne l'erreur: 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::getSupplyTemperature() in /var/www/html/plugins/script/core/ressources/GetSupplyTemperature.php:3 Stack trace: #0 {main} thrown in /var/www/html/plugins/script/core/ressources/GetSupplyTemperature.php on line 3 )

et GetCirculationSchedule.php me donne tj 0 comme résultat.
La méthode a été renommée en getProgramSupplyTemperature. j'ai corrigé l'appel et renommé le fichier GetProgramSupplytemperature.
Pour le reste, je t'invite à relire ce qui a été dit plus haut sur le message: FEATURE_NOT_FOUND

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 01 nov. 2018, 17:06

Pour éviter tout soucis de ce genre, j'ai installé et configuré apigen qui me génère la documentation sur base du code. Je vais faire en sorte qu'à chaque push ça soit relancé. C'est indiqué dans le readme mais le lien pour celle-ci est :
https://htmlpreview.github.io/?https:// ... n.API.html
Pour l'instant ça n'est que les noms techniques. Pour info, ça sera documenté en anglais(désolé c'est la langue internationale) tant que je n'ai pas trouvé de moyen facile de faire de l'i18n.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par denisvdb » 01 nov. 2018, 18:16

ok merci pour toutes les infos
que signifie ProgramSupplyTemperature? c'est la temp. de quoi exactement? c'est différent du boiler temp?
merci d'avance.

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 01 nov. 2018, 19:26

No idea. Faut demander à Viessmann ;-)

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 01 nov. 2018, 19:37

Salut à tous,
I'm back. Vous ne vous souvenez peut être pas, mais j'avais un soucis avec mon Jeedom et PHP 5.6
@thetrueavatar se souvient sans doute, et j'en profite pour encore le remercier chaleureusement.
J'ai essayé de voir comment migrer, mais trop risqué alors j'avais temporisé. Et puis comme cela m'énervait :) j'ai décidé de faire tourner l'API sur mon NAS, et aller chercher l'info depuis mon Jeedom. Cela fonctionne et c'est cool, encore un grand merci à @thetrueavatar ;)

J'ai lu pas mal de vos post même sans écrire, et maintenant que cela fonctionne, je vais le mettre ne place tranquillement. Suis entrain de réfléchir comment capter et organiser les données (virtuel, interaction avec d'autres éléments, …). Je vous ferai un topo quand j'y verrais plus clair.

Du reste, j'ai mis un Cron pour faire un refresh toutes les 5 minutes. Mais je me rend compte dans l'historique que par moment j'ai bien l'info avec une occurrence de 5mn, et des fois rien pendant une heure. Cela vous le fait aussi ? j'essaye de déterminer si c'est le Jeedom qui déconne ou bien si par moment le serveur Viessmann foire, et comme je ne gère pas de timeout pour le moment je suis en aveugle. Un petit feedback de votre expérience me serait utile ;)

Sinon, pour la consommation et les conversions, @thetrueavatar je pense qu'il faut que tu laisses les données brutes. On ne sait pas ce que va changer Viessmann, et c'est facile de notre côté de convertir.
Pour info, j'avais pris un métrique de mon compteur de Gaz début Octobre. Un mois plus tard, j'ai un Delta de 160 au compteur. Je l'ai saisi chez Engie, et il me l'a transformé en 1843 kWh. Pourquoi, je ne sais pas :) . Et le retour de l'API et la function

Code : Tout sélectionner

getDhwGasConsumption("month")
pour Octobre, et de 6088. Si on applique le ratio de 4 comme dit dans un Post, on trouve 1522. Ce qui pourquoi pas pourrait correspondre à la conso chauffage sans l'eau chaude.

Voilà mon premier retour d'expérience.
bonne fin de journée, et bon pont à ceux qui le font :)
a+

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par thetrueavatar » 01 nov. 2018, 23:23

J'avais le même soucis pour l'historique des valeurs mais en faites c'est parce que par défaut l'historisation des commandes ne stocke que les données qui ont changées. Pour changer le comportement, il faut clicker sur la roue dentée de la commande, allez dans l'onglet Configuration et dans Gestion de la répétition des valeurs mettre "Toujours répéter".
Par contre, perso je configure le cron pour avoir une valeur toutes les minutes mais en pratiques ça ne fait une exécution que toutes les 5 minutes...

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

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Mikado » 02 nov. 2018, 10:10

thetrueavatar a écrit :
01 nov. 2018, 23:23
J'avais le même soucis pour l'historique des valeurs mais en faites c'est parce que par défaut l'historisation des commandes ne stocke que les données qui ont changées. Pour changer le comportement, il faut clicker sur la roue dentée de la commande, allez dans l'onglet Configuration et dans Gestion de la répétition des valeurs mettre "Toujours répéter".
Par contre, perso je configure le cron pour avoir une valeur toutes les minutes mais en pratiques ça ne fait une exécution que toutes les 5 minutes...
Bien vu, je pense que j'aurais mis un peu de temps à trouver :)

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

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