Releases: thetrueavatar/Viessmann-Api
2.0.0: Integration with IOT
Update client to use new IOT API from Viessmann.
Removed session_start() from code so that session is managed by the user of the api.
credentials.properties is now defined as key=value
Note: clientId is now mandatory and can be acquired on developper's portal https://developer.viessmann.com/
the clientId is the key delivered by a user to a third-party application. This key allows the third-party application(this code here) to access IOT API.
Once you got the key you have to set it into the credentials.properties into clientId field
1.4.0
Release Note:
- switch to idp v2 switch from https://api.viessmann-platform.io to https://api.viessmann.com for OAuth service and switch to Oauth scope IoT%20User and update token to v2
- Add getProperties PhilippeJ-code
- added addUnit to consumption method that would return the consumption unit
-included constants into ViessmannFeature.php for Viessmann PA2 fuel cell heating (probably will work with PT2, too)
-added a universal getter (getGenericFeaturePropertyAsJSON) to ViessmannAPI.php, - Improve Jeedom example 3djc
- rename getSupplyProgramTemperature into getSupplyTemperature
- fixed getAvailableFeatures lbscld
-Introduce an example for local Jeedom 3djc - Attempt for GatewayInformationInRaw.
Removed php 7.1 requirement and fixed GetAvailableFeature
To avoid people to upgrade to php 7.1 I have removed the usage of ?
GetAvailableFeature is now working as it used to be.
Fixed missing DateTime
Added DateTime import. This was causing problem for reset limit parsing if you tried getInstallationInformation method while being banned
Added getInstallationId and getGatewayID
Added getInstallationId and getGatewayID method to find value.
I have also swapped definition. You have to first write installationId, then gatewayId after user/pwd in credentials.properties
Fixed missing exception.
Add possibility to define gatewayId and installationId
To avoid one unecessary request, it's possible to define in the credentials.properties the gatewayId(3rd parameter) and installationId(4th parameter). If it's not define, the api will still do the request to get those value.
Adding caching system to reduce request
As mentionned, Viessmann as set 2 limit to their API:
120 calls for a time window of 10 minutes
1450 calls for a time window of 24 hours
I have done a refactoring to add cache. Once you are creating the ViessmanApi object it will do only 4 request and subsequent call on method will use cache.
So it's highly recommanded that you merge all your php file in a single one!!!!
For instance doing in one php file those method call will result in a total of 4 request.
<?php
include DIR . '/bootstrap.php';
echo "Température extérieure " . $viessmannApi->getOutsideTemperature() . “\n”;
echo "Température boiler " . $viessmannApi->getBoilerTemperature() . “\n”;
echo "Pente " . $viessmannApi->getSlope() . “\n”;
echo "Parallèle " . $viessmannApi->getShift() . “\n”;
echo "Mode chaudière " . $viessmannApi->getActiveMode() . “\n”;
echo "Programme actif " . $viessmannApi->getActiveProgram() . “\n”;
echo "Is Heating Burner active ? " . $viessmannApi->isHeatingBurnerActive() . “\n”;//in php false bool is converted into empty string
echo "Is Dhw mode active ? " . $viessmannApi->isDhwModeActive() . “\n”;
echo "Température de confort " . $viessmannApi->getComfortProgramTemperature() . “\n”;
echo "Température écho " . $viessmannApi->getEcoProgramTemperature() . “\n”;
echo "Température externe " . $viessmannApi->getExternalProgramTemperature() . “\n”;
echo "Température réduit " . $viessmannApi->getReducedProgramTemperature() . “\n”;
echo "Est en veille ? " . $viessmannApi->isInStandbyMode() . “\n”;
echo "Température eau chaude " . $viessmannApi->getHotWaterStorageTemperature() . “\n”;
Fixed start/stop OneOneTimeDhwCharge
Contribution of JueBag(thank you) that fixed the method.
1.2.0
Please note I have written a guide that would help you to add your own feature:
https://github.com/thetrueavatar/Viessmann-Api/wiki/How-to-add-you-own-feature-to-the-api
Added new feature(thanks to x6vde for the help)
- isInFixedPrograms: true if fixedProgram enable
- getHeatingSolarPowerProduction: Return the Heating Solar Power production
- getHeatingSolarSensorsTemperatureCollector
- getHeatingPowerConsumption: Return the Heating consumption.
- getHeatingTemperatureReturn: temperature of the return to the heating
- getHeatingConfigurationCoolingMode
- setHeatingConfigurationCoolingMode
Fixed:
- setRawDhwSchedule
1.1.0: Fix problem with recent change on Viessmann's server
Viessmann change a bit the way of handling OAuth on their server.
With previous version(<1.1.0) you are getting now a "Call to a member function getProperty() on null" error message. This release fix this problem.
I have also fixed the isOneTimeDhwCharge and added startOneTimeDhwCharge method(thanks to the rogrun's feedback).
Reminder: Don't forget to update the bootstrap.php to point to the new version of the phar.