Page 33 sur 33

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

Publié : 23 juin 2019, 22:19
par Allard-elec
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


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

Publié : 24 juin 2019, 00:12
par thetrueavatar
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.

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

Publié : 11 juil. 2019, 19:04
par banane63
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

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

Publié : 11 juil. 2019, 19:47
par thetrueavatar
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

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

Publié : 11 juil. 2019, 20:37
par thetrueavatar
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.

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

Publié : 12 juil. 2019, 10:32
par thetrueavatar
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

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

Publié : 12 juil. 2019, 18:41
par banane63
Cool, ça marche ! Merci !

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

Publié : 12 juil. 2019, 19:02
par Manouille
C'est reparti chez moi également.
Merci

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

Publié : 25 juil. 2019, 12:40
par denisvdb
j'ai mis en place le dernier fichier .phar et adapter le fichier bootstrap.php.
Ca fonctionne à nouveau.
Merci

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

Publié : 29 juil. 2019, 11:57
par thetrueavatar
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.

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

Publié : 07 août 2019, 16:39
par stanthewizzard
Impatient que quelqu'un se penche pour faire un plugin !!!
:D

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

Publié : 10 août 2019, 10:03
par Manouille
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);

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

Publié : 22 août 2019, 15:10
par stanthewizzard
Un plugin serait tout de meme cool

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

Publié : 25 août 2019, 04:24
par herigs
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