Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

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

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Allard-elec
Timide
Messages : 75
Inscription : 21 mai 2017, 21:33

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

Message par Allard-elec » 23 juin 2019, 22:19

Thetrueavatar aurait tu le temps de m'expliquer comment tu mets ton script en place j'ai pas tout compris malgré la Doc ...

Merci

Envoyé de mon TREKKER-X3 en utilisant Tapatalk


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

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

Message par thetrueavatar » 24 juin 2019, 00:12

Ma documentation concerne l'api qui est agnostique de jeedom. A titre personnel j'utilise le plugin script pour faire appel à cette dernière mais ce n'est pas obligatoire. Pour tout ce qui est utilisation du plugin script je pense que le plus simple est d'aller voir dans la section du forum concernant le plugin script. comme je disais en message précédent mon api est libre de droit donc si quelqu'un a le courage de faire un plugin pour simplifier la vie des débutants pas de souci mais je n'en ai pas le temps ni l'énergie pour le moment.

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

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

Message par banane63 » 11 juil. 2019, 19:04

Y'a que chez moi que ça marche plus ?

PHP Notice: Undefined offset: 0 in phar:///home/pi/Viessmann-Api/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/Oauth/ViessmannOauthClientImpl.php on line 60 PHP Fatal error: Uncaught Error: Call to a member function getProperty() on null in phar:///home/pi/Viessmann-Api/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/Oauth/ViessmannOauthClientImpl.php:61 Stack trace: #0 phar:///home/pi/Viessmann-Api/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/API/ViessmannAPI.php(43): Viessmann\Oauth\ViessmannOauthClientImpl->__construct(Array) #1 /home/pi/Viessmann-Api/example/bootstrap.php(17): Viessmann\API\ViessmannAPI->__construct(Array) #2 /home/pi/Viessmann-Api/example/GetRoomTemperature.php(2): include('/home/pi/Viessm...') #3 {main} thrown in phar:///home/pi/Viessmann-Api/example/Viessmann-Api-0.4-SNAPSHOT.phar/src/Oauth/ViessmannOauthClientImpl.php on line 61
Raspberry Pi 3 Jeedom - RFX433 - HUE - Mobile Alerts La Crosse Technology - Volets SOMFY - Viessmann Vitoconnect - Google Home Chromecast Wifi

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

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

Message par thetrueavatar » 11 juil. 2019, 19:47

Pareil, je vois l'erreur suivante durant le processus de récupération des paramètres de l'installation.
"{"statusCode":400,"errorType":"BAD_REQUEST","meszage":"Request does not contain authentication context","privateDetails":{"service":"EVEREST"},"error":"NO TOKEN AVAILABLE"}"
J'imagine qu'il faut un autre paramètre désormais. Le temps de "sniffer" niveau réseau dans ViCare et ça devrait être résolu si pas trop complexe

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

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

Message par thetrueavatar » 11 juil. 2019, 20:37

Voila j'ai mis en ligne une nouvelle version qui devrait fonctionner.
En gros, juste passage de l'authorization method de Oauth à Bearer et ajout d'un head "x-api-key" qui n'était pas là avant.
Un petit retour pour voir si c'est ok aussi chez vous et je passe en mode release.

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

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

Message par thetrueavatar » 12 juil. 2019, 10:32

Il y avait encore un souci que j'ai corrigé. J'ai fait une version 1.1.0 officielle(https://github.com/thetrueavatar/Viessm ... /tag/1.1.0) et je suis passé en 1.2.0-SNAPSHOT en dev. Oubliez pas de changer le numéro de version du phar dans le fichier bootstrap.php

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

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

Message par banane63 » 12 juil. 2019, 18:41

Cool, ça marche ! Merci !
Raspberry Pi 3 Jeedom - RFX433 - HUE - Mobile Alerts La Crosse Technology - Volets SOMFY - Viessmann Vitoconnect - Google Home Chromecast Wifi

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

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

Message par Manouille » 12 juil. 2019, 19:02

C'est reparti chez moi également.
Merci

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

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

Message par denisvdb » 25 juil. 2019, 12:40

j'ai mis en place le dernier fichier .phar et adapter le fichier bootstrap.php.
Ca fonctionne à nouveau.
Merci

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

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

Message par thetrueavatar » 29 juil. 2019, 11:57

J'ai ajouté une méthode getScheduledHolidayProgram afin d'obtenir la date de début et de fin programmée du mode vacances.
J'ai aussi accepté un pull request de HE:
getHeatingSolarPowerProduction($period = "day")
getHeatingSolarSensorsTemperatureCollector($circuit = NULL)
getHeatingPowerConsumption($period = "day")

Je ne peux pas tester mais à priori, ça me semblait bien.

stanthewizzard
Timide
Messages : 477
Inscription : 26 oct. 2015, 13:46

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

Message par stanthewizzard » 07 août 2019, 16:39

Impatient que quelqu'un se penche pour faire un plugin !!!
:D

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

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

Message par Manouille » 10 août 2019, 10:03

Pas franchement besoin de plugin, thetrueavatar a déjà fait un bon boulot.
Suffit de poser tous les fichiers php au bon endroit.
Pour simplifier les choses, tu fais un fichier php avec toutes les informations que tu veux récupérer et ensuite autant de virtuel.

Exemple : ViCare.php

Code : Tout sélectionner

?php
include __DIR__.'/bootstrap.php';
use Viessmann\API\ViessmannFeature;

function post_request($url, array $params) {
  $query_content = http_build_query($params);
  $fp = fopen($url, 'r', FALSE, // do not use_include_path
    stream_context_create([
    'http' => [
      'header'  => [ // header array does not need '\r\n'
        'Content-type: application/x-www-form-urlencoded',
        'Content-Length: ' . strlen($query_content)
      ],
      'method'  => 'POST',
      'content' => $query_content
    ]
  ]));
  if ($fp === FALSE) {
    fclose($fp);
    return json_encode(['error' => 'Failed to get contents...']);
  }
  $result = stream_get_contents($fp); // no maxlength/offset
  fclose($fp);
  return $result;
}

function jeedom_post($cmd_id, $value) {
  $jeedom_apikey = "*********************";
  $jeedom_url_retour = "http://***.***.***.***:80/core/api/jeeApi.php?plugin=virtual&apikey={$jeedom_apikey}&type=virtual&id={$cmd_id}&value={$value}";
  $jeedom_params = array('key1' => '', 'key2' => '');
  $result = post_request($jeedom_url_retour, $jeedom_params);
  return $result;
}

jeedom_post("180", $viessmannApi->getOutsideTemperature());
jeedom_post("181", $viessmannApi->getBoilerTemperature());
jeedom_post("182", $viessmannApi->getHotWaterStorageTemperature());
jeedom_post("183", $viessmannApi->getSupplyProgramTemperature());
jeedom_post("184", $viessmannApi->getSlope());
jeedom_post("185", $viessmannApi->getShift());
jeedom_post("205", $viessmannApi->GetNormalProgramTemperature());
jeedom_post("206", $viessmannApi->GetEcoProgramTemperature());
jeedom_post("207", $viessmannApi->GetActiveProgram());

$res = $viessmannApi->getActiveMode();
if ( $res == "standby" ):
  $res = "Arret";
elseif ( $res == "dhw"):
  $res = "Eau Chaude";
elseif ( $res == "dhwAndHeating"):
  $res = "Eau Chaude + Chauffage";
elseif ( $res == "forcedReduced"):
  $res = "Mode Réduit";
elseif ( $res == "forcedNormal"):
  $res = "Mode Forcé";
else:
  $res = "Erreur";
endif;
jeedom_post("186", $res);

$res = $viessmannApi->isHeatingBurnerActive();
if ( $res == True ):
  $res = "1";
else:
  $res = "0";
endif;
jeedom_post("188", $res);

$res=$viessmannApi->getHeatingBurnerStatistics("hours");
jeedom_post("218", $res);

$res=$viessmannApi->getHeatingBurnerStatistics("starts");
jeedom_post("298", $res);

stanthewizzard
Timide
Messages : 477
Inscription : 26 oct. 2015, 13:46

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

Message par stanthewizzard » 22 août 2019, 15:10

Un plugin serait tout de meme cool

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

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

Message par herigs » 25 août 2019, 04:24

Bonjour,

Merci à tous pour ce super boulot.

Je possède une Vitocaldens 222F équipée de Vitoconnect 100.

N'étant pas expert en php, j'ai suivi comme j'ai pu les conseils de tous. J'arrive maintenant à récupérer pas mal d'infos.

Je bloque néanmoins sur l'affichage des "set heating". Je récupère (voir pièce jointe).

Comment pourrais-je afficher les infos de manière plus lisible ?

Merci d'avance.

Herigs
Pièces jointes
Capture d’écran 2019-08-25 à 06.47.50.png
Capture d’écran 2019-08-25 à 06.47.50.png (160.12 Kio) Consulté 2479 fois

PhoBoS88
Timide
Messages : 34
Inscription : 13 nov. 2017, 21:01

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

Message par PhoBoS88 » 01 sept. 2019, 17:47

Bonjour,

Arrivez vous à allumer ou éteindre la chaudière ? J'arrive à récupérer l'état, la passer en mode eco ou reception, mais je ne vois pas comment l'allumer ou la passer en veille.

Merci d'avance pour vos retour.

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

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

Message par Xavier.g » 04 sept. 2019, 13:18

Pour la passer en veille, j'utilise un php SetActiveMode_StdBy :

Code : Tout sélectionner

<?php
include __DIR__.'/bootstrap.php';
$viessmannApi->setActiveMode("standby");
les autres modes sont :
- auto : setActiveMode("dhwAndHeating")
- eco : setActiveMode("forcedReduced")
- normal : setActiveMode("forcedNormal")

j'ai un php pour chacun

PhoBoS88
Timide
Messages : 34
Inscription : 13 nov. 2017, 21:01

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

Message par PhoBoS88 » 04 sept. 2019, 13:47

Bonjour Xavier,

Merci pour ta réponse.
Je n'y connais rien en PHP, il me suffit de créer les 4 fichiers PHP en les appelant setActiveModestandby.php ; setActiveModereduced.php etc et les coller dans le fichier exemple ?

EDIT: C'est parfait merci beaucoup, ça fonctionne .

Fredtje
Timide
Messages : 21
Inscription : 08 oct. 2018, 22:11

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

Message par Fredtje » 06 sept. 2019, 23:14

Bonjour a tous,

J’ai un truc bizarre : depuis un jour ou 2 j’ai remarqué que :
echo $viessmannApi->getSupplyProgramTemperature()
Ne fonctionne plus. J’ai ceci en retour :
Message: Property "value" was not found. Code: 1

Une idée?

Merci

Fred

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

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

Message par thetrueavatar » 09 sept. 2019, 21:31

Ca a déjà fonctionné par le passé ? Comme déjà mentionné Viessmann renvoie parfois des erreurs différentes pour un même problème.
Il arrive parfois qu'il réponde que la feature n'existe pas si le serveur estime que la chaudière ne dispose pas de la fonctionnalité mais parfois il renvoie une réponse qui est vide(d'où l'absence du champs valeur).

jpty
Timide
Messages : 333
Inscription : 01 juin 2018, 10:54
Localisation : Nancy

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

Message par jpty » 11 sept. 2019, 18:15

Bonjour,

Je n'ai plus de valeur pour la feature heating.circuits.0.sensors.temperature.supply depuis début septembre.
Dans le json, pour cette feature properties status value est: notConnected

J'utilise à la place la feature heating.boiler.sensors.temperature.main
Je n'ai qu'un seul circuit et les 2 courbes étaient très proches.

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

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