Skip to content
thetrueavatar edited this page Sep 1, 2018 · 33 revisions

Viessman-Api

Le code a été développé en php 7. Les dépendances sont gérées via composer. Le client Oauth est implémenté à l'aide la librairie PHPoAuthLib https://github.com/Lusitanian/PHPoAuthLib Le parsing Siren Json est fait avec siren-php https://github.com/tomphp/siren-php Le Main.php montre un simple exemple d'appel. Il suffit d'ajouter son user à la 1ère ligne de credentials.properties et son password à la 2ème ligne. Tout le reste de la partie Oauth se fait de façon transparente à l'instanciation de l'api. La méthode getFeatures() permet de récupérer le tableau des features en json. Les autres méthodes renvoie les valeurs directement.

<?php


require __DIR__ . '/../vendor/autoload.php';
use Viessmann\API\ViessmannAPI;
$credentials = file("../resources/credentials.properties");
$params=[
    "user"=>trim("$credentials[0]","\n"),
    "pwd"=>"$credentials[1]",
    "uri"=>"vicare://oauth-callback/everest"
];
$viessmanApi=new ViessmannAPI($params);
echo "Température extérieure ".$viessmanApi->getOutsideTemperature()."\n";
echo "Température boiler ".$viessmanApi->getBoilerTemperature()."\n";
echo "Pente ".$viessmanApi->getSlope()."\n";
echo "Parallèle ".$viessmanApi->getShift()."\n";
echo "Mode chaudière ".$viessmanApi->getActiveMode()."\n";
echo "Programme actif ".$viessmanApi->getActiveProgram()."\n";
echo "Is Heating Burner active ? ".$viessmanApi->isHeatingBurnerActive()."\n";//in php false bool is converted into empty string
echo "Is Dhw mode active ? ".$viessmanApi->isDhwModeActive()."\n";
echo "Température de confort ".$viessmanApi->getComfortProgramTemperature()."\n";
echo "Température écho ".$viessmanApi->getEchoProgramTemperature()."\n";
echo "Température externe ".$viessmanApi->getExternalProgramTemperature()."\n";
echo "Température réduit ".$viessmanApi->getReducedProgramTemperature()."\n";
echo "Température supply ".$viessmanApi->getSupplyProgramTemperature()."\n";
echo "Est en veille ? ".$viessmanApi->isInStandbyMode()."\n";
Clone this wiki locally