Skip to content

Commit

Permalink
Merge branch 'develop' into master
Browse files Browse the repository at this point in the history
# Conflicts:
#	README-en.md
#	README.md
#	composer.json
#	composer.lock
#	docs/classes/Viessmann.API.ViessmannAPI.html
#	docs/classes/Viessmann.API.ViessmannApiException.html
#	docs/classes/Viessmann.API.ViessmannFeature.html
#	docs/classes/Viessmann.API.proxy.ViessmannFeatureProxy.html
#	docs/classes/Viessmann.API.proxy.impl.ViessmannFeatureAbstractProxy.html
#	docs/classes/Viessmann.API.proxy.impl.ViessmannFeatureLocalProxy.html
#	docs/classes/Viessmann.API.proxy.impl.ViessmannFeatureRemoteProxy.html
#	docs/files/ViessmannAPI.html
#	docs/files/ViessmannAPI.php.txt
#	docs/files/ViessmannApiException.html
#	docs/files/ViessmannFeature.html
#	docs/files/ViessmannFeature.php.txt
#	docs/files/proxy.ViessmannFeatureProxy.html
#	docs/files/proxy.impl.ViessmannFeatureAbstractProxy.html
#	docs/files/proxy.impl.ViessmannFeatureLocalProxy.html
#	docs/files/proxy.impl.ViessmannFeatureRemoteProxy.html
#	docs/files/proxy/impl/ViessmannFeatureRemoteProxy.php.txt
#	docs/graphs/class.html
#	docs/graphs/classes.svg
#	docs/index.html
#	docs/namespaces/Viessmann.API.html
#	docs/namespaces/Viessmann.API.proxy.html
#	docs/namespaces/Viessmann.API.proxy.impl.html
#	docs/namespaces/Viessmann.html
#	docs/namespaces/default.html
#	docs/phpdoc-cache-4b/phpdoc-cache-file_02b0507e52a43dd8b19991035938b7e5.dat
#	docs/phpdoc-cache-aa/phpdoc-cache-file_411ced7a319b3f3b488dca40b8d61055.dat
#	docs/reports/deprecated.html
#	docs/reports/errors.html
#	docs/reports/markers.html
#	example/GetAllInformationJeedom.php
#	example/SetCurve.php
#	example/Viessmann-Api-1.4.0-SNAPSHOT.phar
#	example/bootstrap.php
#	resources/features.zip
#	src/API/ViessmannAPI.php
#	src/API/ViessmannFeature.php
#	src/API/proxy/impl/ViessmannFeatureRemoteProxy.php
#	src/Oauth/ViessmannOauthService.php
#	src/test/ViessmannApiTest.php
#	src/test/resources/features/heating/heating.solar.power.cumulativeProduced.json
#	src/test/resources/features/heating/heating.solar.pumps.circuit.json
#	src/test/resources/features/heating/heating.solar.rechargeSuppression.json
#	src/test/resources/features/heating/heating.solar.sensors.temperature.dhw.json
#	src/test/resources/features/heating/heating.solar.statistics.json
#	vendor/autoload.php
#	vendor/beberlei/assert/composer.json
#	vendor/beberlei/assert/lib/Assert/Assertion.php
#	vendor/composer/autoload_classmap.php
#	vendor/composer/autoload_files.php
#	vendor/composer/autoload_namespaces.php
#	vendor/composer/autoload_psr4.php
#	vendor/composer/autoload_real.php
#	vendor/composer/autoload_static.php
#	vendor/composer/installed.json
#	vendor/doctrine/instantiator/README.md
#	vendor/doctrine/instantiator/composer.json
#	vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php
#	vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php
#	vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
#	vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
#	vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
#	vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
#	vendor/phpdocumentor/reflection-common/.travis.yml
#	vendor/phpdocumentor/reflection-common/README.md
#	vendor/phpdocumentor/reflection-common/composer.json
#	vendor/phpdocumentor/reflection-common/src/Element.php
#	vendor/phpdocumentor/reflection-common/src/File.php
#	vendor/phpdocumentor/reflection-common/src/Fqsen.php
#	vendor/phpdocumentor/reflection-common/src/Location.php
#	vendor/phpdocumentor/reflection-common/src/Project.php
#	vendor/phpdocumentor/reflection-common/src/ProjectFactory.php
#	vendor/phpdocumentor/reflection-docblock/composer.json
#	vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php
#	vendor/phpdocumentor/type-resolver/README.md
#	vendor/phpdocumentor/type-resolver/composer.json
#	vendor/phpdocumentor/type-resolver/src/FqsenResolver.php
#	vendor/phpdocumentor/type-resolver/src/Type.php
#	vendor/phpdocumentor/type-resolver/src/TypeResolver.php
#	vendor/phpdocumentor/type-resolver/src/Types/Array_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Boolean.php
#	vendor/phpdocumentor/type-resolver/src/Types/Callable_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Compound.php
#	vendor/phpdocumentor/type-resolver/src/Types/Context.php
#	vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php
#	vendor/phpdocumentor/type-resolver/src/Types/Float_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Integer.php
#	vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Null_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Nullable.php
#	vendor/phpdocumentor/type-resolver/src/Types/Object_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Parent_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Resource_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Scalar.php
#	vendor/phpdocumentor/type-resolver/src/Types/Self_.php
#	vendor/phpdocumentor/type-resolver/src/Types/Static_.php
#	vendor/phpdocumentor/type-resolver/src/Types/String_.php
#	vendor/phpdocumentor/type-resolver/src/Types/This.php
#	vendor/phpdocumentor/type-resolver/src/Types/Void_.php
#	vendor/phpspec/prophecy/CHANGES.md
#	vendor/phpspec/prophecy/README.md
#	vendor/phpspec/prophecy/composer.json
#	vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php
#	vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php
#	vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php
#	vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php
#	vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php
#	vendor/phpunit/php-code-coverage/composer.json
#	vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php
#	vendor/phpunit/php-code-coverage/src/Node/Builder.php
#	vendor/phpunit/php-code-coverage/src/Node/File.php
#	vendor/phpunit/php-code-coverage/src/Report/Clover.php
#	vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php
#	vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php
#	vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php
#	vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css
#	vendor/phpunit/php-code-coverage/src/Report/Text.php
#	vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php
#	vendor/phpunit/php-code-coverage/src/Version.php
#	vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/BankAccount.php.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html
#	vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml
#	vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml
#	vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml
#	vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml
#	vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml
#	vendor/phpunit/php-code-coverage/tests/tests/BuilderTest.php
#	vendor/phpunit/php-file-iterator/composer.json
#	vendor/phpunit/php-timer/.php_cs.dist
#	vendor/phpunit/php-timer/.travis.yml
#	vendor/phpunit/php-timer/ChangeLog.md
#	vendor/phpunit/php-timer/LICENSE
#	vendor/phpunit/php-timer/composer.json
#	vendor/phpunit/php-timer/src/Exception.php
#	vendor/phpunit/php-timer/src/RuntimeException.php
#	vendor/phpunit/php-timer/src/Timer.php
#	vendor/phpunit/php-timer/tests/TimerTest.php
#	vendor/phpunit/php-token-stream/.travis.yml
#	vendor/phpunit/php-token-stream/ChangeLog.md
#	vendor/phpunit/php-token-stream/LICENSE
#	vendor/phpunit/php-token-stream/composer.json
#	vendor/phpunit/php-token-stream/phpunit.xml
#	vendor/phpunit/php-token-stream/src/Token.php
#	vendor/phpunit/php-token-stream/src/Token/Stream.php
#	vendor/phpunit/php-token-stream/tests/Token/ClassTest.php
#	vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php
#	vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php
#	vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php
#	vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
#	vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php
#	vendor/phpunit/phpunit/.editorconfig
#	vendor/phpunit/phpunit/.gitattributes
#	vendor/phpunit/phpunit/.github/CONTRIBUTING.md
#	vendor/phpunit/phpunit/.gitignore
#	vendor/phpunit/phpunit/.php_cs.dist
#	vendor/phpunit/phpunit/.travis.yml
#	vendor/phpunit/phpunit/LICENSE
#	vendor/phpunit/phpunit/README.md
#	vendor/phpunit/phpunit/build.xml
#	vendor/phpunit/phpunit/composer.json
#	vendor/phpunit/phpunit/phive.xml
#	vendor/phpunit/phpunit/phpunit
#	vendor/phpunit/phpunit/phpunit.xml
#	vendor/phpunit/phpunit/phpunit.xsd
#	vendor/phpunit/phpunit/src/Exception.php
#	vendor/phpunit/phpunit/src/Framework/Assert.php
#	vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
#	vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php
#	vendor/phpunit/phpunit/src/Framework/Constraint/Count.php
#	vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php
#	vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php
#	vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php
#	vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php
#	vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php
#	vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php
#	vendor/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php
#	vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php
#	vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method.tpl.dist
#	vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method_void.tpl.dist
#	vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php
#	vendor/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php
#	vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php
#	vendor/phpunit/phpunit/src/Framework/MockObject/MockObject.php
#	vendor/phpunit/phpunit/src/Framework/TestCase.php
#	vendor/phpunit/phpunit/src/Framework/TestResult.php
#	vendor/phpunit/phpunit/src/Framework/TestSuite.php
#	vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php
#	vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php
#	vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php
#	vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php
#	vendor/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php
#	vendor/phpunit/phpunit/src/Runner/PhptTestCase.php
#	vendor/phpunit/phpunit/src/Runner/ResultCacheExtension.php
#	vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php
#	vendor/phpunit/phpunit/src/Runner/Version.php
#	vendor/phpunit/phpunit/src/TextUI/Command.php
#	vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php
#	vendor/phpunit/phpunit/src/TextUI/TestRunner.php
#	vendor/phpunit/phpunit/src/Util/Blacklist.php
#	vendor/phpunit/phpunit/src/Util/Configuration.php
#	vendor/phpunit/phpunit/src/Util/Filesystem.php
#	vendor/phpunit/phpunit/src/Util/Log/JUnit.php
#	vendor/phpunit/phpunit/src/Util/Log/TeamCity.php
#	vendor/phpunit/phpunit/src/Util/Printer.php
#	vendor/phpunit/phpunit/src/Util/Test.php
#	vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php
#	vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php
#	vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php
#	vendor/phpunit/phpunit/src/Util/TestResultCache.php
#	vendor/phpunit/phpunit/tests/_files/CountConstraint.php
#	vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php
#	vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php
#	vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/SecondTest.php
#	vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/FirstTest.php
#	vendor/phpunit/phpunit/tests/_files/DataProviderTest.php
#	vendor/phpunit/phpunit/tests/_files/DataProviderTestDoxTest.php
#	vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php
#	vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php
#	vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php
#	vendor/phpunit/phpunit/tests/_files/ExceptionTest.php
#	vendor/phpunit/phpunit/tests/_files/ExceptionWithThrowable.php
#	vendor/phpunit/phpunit/tests/_files/FunctionCallback.php
#	vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClassTest.php
#	vendor/phpunit/phpunit/tests/_files/MultiDependencyTest_result_cache.txt
#	vendor/phpunit/phpunit/tests/_files/MultipleDataProviderTest.php
#	vendor/phpunit/phpunit/tests/_files/NamedConstraint.php
#	vendor/phpunit/phpunit/tests/_files/RequirementsTest.php
#	vendor/phpunit/phpunit/tests/_files/TestWarning.php
#	vendor/phpunit/phpunit/tests/_files/TestWithTest.php
#	vendor/phpunit/phpunit/tests/bootstrap.php
#	vendor/roave/signature/LICENSE
#	vendor/sebastian/diff/.gitignore
#	vendor/sebastian/diff/.travis.yml
#	vendor/sebastian/diff/ChangeLog.md
#	vendor/sebastian/diff/LICENSE
#	vendor/sebastian/diff/composer.json
#	vendor/sebastian/diff/src/Chunk.php
#	vendor/sebastian/diff/tests/ChunkTest.php
#	vendor/sebastian/diff/tests/DifferTest.php
#	vendor/sebastian/diff/tests/LongestCommonSubsequenceTest.php
#	vendor/sebastian/diff/tests/ParserTest.php
#	vendor/sebastian/environment/.gitignore
#	vendor/sebastian/environment/.travis.yml
#	vendor/sebastian/environment/ChangeLog.md
#	vendor/sebastian/environment/LICENSE
#	vendor/sebastian/environment/README.md
#	vendor/sebastian/environment/build.xml
#	vendor/sebastian/environment/composer.json
#	vendor/sebastian/environment/phpunit.xml
#	vendor/sebastian/environment/src/Console.php
#	vendor/sebastian/environment/src/OperatingSystem.php
#	vendor/sebastian/environment/src/Runtime.php
#	vendor/sebastian/environment/tests/ConsoleTest.php
#	vendor/sebastian/environment/tests/OperatingSystemTest.php
#	vendor/sebastian/environment/tests/RuntimeTest.php
#	vendor/sebastian/exporter/.gitignore
#	vendor/sebastian/exporter/.travis.yml
#	vendor/sebastian/exporter/LICENSE
#	vendor/sebastian/exporter/README.md
#	vendor/sebastian/exporter/build.xml
#	vendor/sebastian/exporter/composer.json
#	vendor/sebastian/exporter/src/Exporter.php
#	vendor/sebastian/exporter/tests/ExporterTest.php
#	vendor/sebastian/resource-operations/build.xml
#	vendor/sebastian/resource-operations/build/generate.php
#	vendor/sebastian/resource-operations/composer.json
#	vendor/symfony/polyfill-ctype/composer.json
#	vendor/theseer/tokenizer/.gitignore
#	vendor/theseer/tokenizer/.travis.yml
#	vendor/theseer/tokenizer/phive.xml
#	vendor/theseer/tokenizer/src/Tokenizer.php
#	vendor/theseer/tokenizer/src/XMLSerializer.php
#	vendor/theseer/tokenizer/tests/XMLSerializerTest.php
#	vendor/webmozart/assert/CHANGELOG.md
#	vendor/webmozart/assert/README.md
#	vendor/webmozart/assert/composer.json
#	vendor/webmozart/assert/src/Assert.php
  • Loading branch information
lbscld committed Feb 20, 2021
2 parents 4bf6294 + 9b25c77 commit fc4f6bd
Show file tree
Hide file tree
Showing 28 changed files with 1,193 additions and 553 deletions.
66 changes: 18 additions & 48 deletions README-en.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,25 @@
Warning:
----------
Since a few days, Viessmann as set a protection on their server to avoid unofficial third-party tools to overload their api. It's more than likely that the code here won't work for most of you. I won't do any modification to avoid this since it's their right to control the access to their service.
This api as always been a personal project I have shared but has nevre received any official consent/support from Viessman.
According to Viessmann site, the treshold should be 15 minutes between 2 call. Please update your polling interval to more than 15 minutes.
All information are available on this feed:
https://www.viessmann-community.com/t5/Experten-fragen/Q-amp-A-Viessmann-API/qaq-p/127660/comment-id/117597#M117597
Version 1.3.3
--------------

Here is the official communication you'll receive
Added missing DateTime import.
https://github.com/thetrueavatar/Viessmann-Api/releases/tag/1.3.3

>_Dear
>{{ insert first_name 'default=default' }} {{ insert last_name 'default=default' }},
>
>an
>evaluation has shown that you have used the web interface to Viessmann IoT Services very frequently in recent days.
>
>On
>the one hand, we are delighted to know you are taking a closer look at our products and solutions. Especially since you have >(apparently) found a solution for your specific use case without a description or our support from our side.
>On
>the other hand, it challenges us to check and channel the method and frequency of requests to our IoT Services in order to >keep those stable and available for all our users.
>
>That’s
>why we have now taken the decision to limit access to our API. From the coming week on, a threshold will become active that >prevents from unauthorized use of the API.
>This will affect all third-party solutions, which can thereby no longer be used.
>
>We
>are aware that the demand for APIs to our technologies for integration into other solutions and third-party systems is >increasing. To provide you with an opportunity for this, we will launch a portal
>in the next two
>months for all developers to get access
>to our API. With the Viessmann Developer Portal, we intend to open ourselves up, release a documentation of the interface >and co-develop new solutions together with you. In addition, we are planning to provide you with useful information around
>our heating systems you need for your development and to offer you a first-level support concerning our APIs.
>
>As one of the users who is already working with our API, we would like to invite you to an early access to the Developer >Portal. If you are interested, please fill out this
>short form. The access to the pre-version of the Portal will be sent to you within the next weeks.
>
>We
>hope you understand the decision that we have to take. If you are interested to support us, on further development on the >API and to explore new possibilities, we are very happy to welcome you to our Developer Portal soon!
>
>In
>the meantime in case you have any questions, feel free to contact us under [email protected].
>
>Thank
>you for your understanding.
>
>All
>the best!
>
>Your
>Viessmann Developer Portal Team_
Version 1.3.2
--------------
Warning. This version requires php and php-curl 7.1 to support "?".
Added caching to reduced load is available here : https://github.com/thetrueavatar/Viessmann-Api/releases/tag/1.3.2
It's also possible to define installationId(3rd line) and gatewayId(4th line) in the credentials.properties.
To get those value please use the getGatewayId and getInstallationid method.
This would reduce the total of request to 3. Moreover authentication(2 request) seems to not be taken into account so it will result in only 1 request counting in the quota.

Version 1.1.0 available !
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

If you wish to contribute or thanks me [![paypal](https://www.paypalobjects.com/fr_FR/BE/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3DAXXVZV7PCR6)

Version 1.1.0 available !
-------------------------

Implementation of an API to get data that are expose through the viessmann service.
This service is available through oauth2 autorization and use HATEOAS approach.
Expand Down
146 changes: 39 additions & 107 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
Version 1.3.4
-------------
Suppression de la dépendance sur php 7.1 et fix de GetAvailableFeatures
https://github.com/thetrueavatar/Viessmann-Api/releases/tag/1.3.4

Version 1.3.3
--------------

Ajout d'un import DateTime manquant créant une erreur lors du traitement du message de ban de Viessmann:
https://github.com/thetrueavatar/Viessmann-Api/releases/tag/1.3.3

Version 1.3.2
--------------
Attention, cette version nécessite php et php-curl 7.1 pour supporter l'utilisation du "?".
Translated documentation can be found here:
- English: https://github.com/thetrueavatar/Viessmann-Api/blob/develop/README-en.md

Ajout d'une cache et refactoring pour réduire la charge sur le serveur Viessmann https://github.com/thetrueavatar/Viessmann-Api/releases/tag/1.3.2
Il est désormais possible de définir dans le credentials.properties son installationId(3ème ligne) et son gatewayid(4ème ligne) ce qui réduit le nombre de requêtes nécessaire.
Ces valeurs peuvent être obtenues en appelant les méthodes getGatewayId and getInstallationId avec juste le user/pwd dans credentials.properties.
Cela réduira le nombre de requête à 3 dont 2 pour l'authentification qui ne comptent pas dans le quota.
La cache est utilisée pour tout appelle sur l'objet ViessmannApi.
Le code suivant ne fait donc qu'un seul appel au total:

<?php
include __DIR__ . '/bootstrap.php';
$viessmannApi->getOutsideTemperature());
$viessmannApi->getBoilerTemperature());
$viessmannApi->getSlope());
$viessmannApi->getShift());

Comme déjà expliqué Viessmann limite désormais le nombre de requête sur son service:
* 120 calls for a time window of 10 minutes
* 1450 calls for a time window of 24 hours

If you wish to contribute or thanks me /Si souhaitez me soutenir ou me remercier:[![paypal](https://www.paypalobjects.com/fr_FR/BE/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3DAXXVZV7PCR6)

News FR
----
Une nouvelle version utilisant une cache et évitant un nombre trop important d'appel est disponible en snapshot. Cette version a été développé à l'aveulge(mon compte est bloqué) mais fonctionne en test local. Faites-moi le plus de retour possible !
Expand All @@ -11,116 +48,11 @@ Exemple:
$viessmannApi->getSlope());

$viessmannApi->getShift());
`

News EN
----
A new version is available in snaphost that provide a caching to avoid account to be blocked. This version has been developed while I don't have access to my own account so please provide me feedback asap.

This cache only works if you do all the call in the same php file.
Example:

$viessmannApi->getOutsideTemperature());

$viessmannApi->getBoilerTemperature());

$viessmannApi->getSlope());

$viessmannApi->getShift());

Attention:
----------
Depuis quelques jours, Viessmann a activé une protection de son serveur pour éviter que des outils non-autorisés n'accèdent à leur api trop souvent. Il est probable que le code ici ne fonctionne plus chez bon nombre d'entre vous.
Je ne ferai aucun modification permettent de contourner cela car il est dans le droit de viessmann de contrôler qui peut accéder à leur serveur.
Cette api-ci a toujours été un projet personnel officieux sans support officiel de Viessmann.
Toutefois, Viessmann a indiqué sur son site qu'il limitait juste le nombre d'appel
Voici ce qu'ils indiquent:

* 120 calls for a time window of 10 minutes
* 1450 calls for a time window of 24 hours

Par contre, la limite semble un peu buggée et le ban spécialement long(24h). Il est préférable pour le moment de désactiver son cron sous peine d'avoir le ViCare bloqué pendant 24h

> I’m happy to provide you and all other user more concrete information on how the current restriction works:
We have a rate limit with sliding window. Whenever the first request arrives, we open a time window and count all request in that window. If the number of requests reach the limitation, we block all incoming user request until the time window ends. Then, with the next user request, a new time window opens.
Currently, we have two limits active:
120 calls for a time window of 10 minutes
1450 calls for a time window of 24 hours
We see these limitations reasonable, also based on your great explanation concerning cloud based services. So thank you for that!
Also, we decided against HATEOAS as it is deprecated and will sooner or later be switched off.

Toutes les informations sont disponibles sur le fil de discussion suivant chez Viessmann:
https://www.viessmann-community.com/t5/Experten-fragen/Q-amp-A-Viessmann-API/qaq-p/127660/comment-id/117597#M117597

Warning:
----------
Since a few days, Viessmann as set a protection on their server to avoid unofficial third-party tools to overload their api . It's more than likely that the code here won't work for most of you. I won't do any modification to avoid this since it's their right to control the access to their service.
This api as always been a personal project I have shared but has nevre received any official consent/support from Viessman.
According to Viessmann site, is defined such as:

* 120 calls for a time window of 10 minutes
* 1450 calls for a time window of 24 hours

HOWEVER, currently the treshold seems to be buggy so please be carreful since the ban last 24h

> I’m happy to provide you and all other user more concrete information on how the current restriction works:
We have a rate limit with sliding window. Whenever the first request arrives, we open a time window and count all request in that window. If the number of requests reach the limitation, we block all incoming user request until the time window ends. Then, with the next user request, a new time window opens.
Currently, we have two limits active:
120 calls for a time window of 10 minutes
1450 calls for a time window of 24 hours
We see these limitations reasonable, also based on your great explanation concerning cloud based services. So thank you for that!
Also, we decided against HATEOAS as it is deprecated and will sooner or later be switched off.

All information are available on this feed:
https://www.viessmann-community.com/t5/Experten-fragen/Q-amp-A-Viessmann-API/qaq-p/127660/comment-id/117597#M117597

Here is the official communication you'll receive

>_Dear
>{{ insert first_name 'default=default' }} {{ insert last_name 'default=default' }},
>
>an
>evaluation has shown that you have used the web interface to Viessmann IoT Services very frequently in recent days.
>
>On
>the one hand, we are delighted to know you are taking a closer look at our products and solutions. Especially since you have >(apparently) found a solution for your specific use case without a description or our support from our side.
>On
>the other hand, it challenges us to check and channel the method and frequency of requests to our IoT Services in order to >keep those stable and available for all our users.
>
>That’s
>why we have now taken the decision to limit access to our API. From the coming week on, a threshold will become active that >prevents from unauthorized use of the API.
>This will affect all third-party solutions, which can thereby no longer be used.
>
>We
>are aware that the demand for APIs to our technologies for integration into other solutions and third-party systems is >increasing. To provide you with an opportunity for this, we will launch a portal
>in the next two
>months for all developers to get access
>to our API. With the Viessmann Developer Portal, we intend to open ourselves up, release a documentation of the interface >and co-develop new solutions together with you. In addition, we are planning to provide you with useful information around
>our heating systems you need for your development and to offer you a first-level support concerning our APIs.
>
>As one of the users who is already working with our API, we would like to invite you to an early access to the Developer >Portal. If you are interested, please fill out this
>short form. The access to the pre-version of the Portal will be sent to you within the next weeks.
>
>We
>hope you understand the decision that we have to take. If you are interested to support us, on further development on the >API and to explore new possibilities, we are very happy to welcome you to our Developer Portal soon!
>
>In
>the meantime in case you have any questions, feel free to contact us under [email protected].
>
>Thank
>you for your understanding.
>
>All
>the best!
>
>Your
>Viessmann Developer Portal Team_
News
General info
-----

New Version(previous phar was corrupted) 1.2.1 available here ! : https://github.com/thetrueavatar/Viessmann-Api/releases/tag/1.2.1

Translated documentation can be found here:
- English: https://github.com/thetrueavatar/Viessmann-Api/blob/develop/README-en.md

Expand All @@ -139,7 +71,7 @@ De toute façon, cmme on dit dans l'open-source "Please contribute" ;-)

Pour voir les explications sur l'utilisation voir wiki: https://github.com/thetrueavatar/Viessmann-Api/wiki/French ou le code de example/Main.php

Voici la doc des méthodes de l'api [**Viessmann API**](https://htmlpreview.github.io/?https://raw.githubusercontent.com/thetrueavatar/Viessmann-Api/develop/docs/classes/Viessmann.API.ViessmannAPI.html):
Voici la doc des méthodes de l'api [**Viessmann API**](https://htmlpreview.github.io/?https://github.com/thetrueavatar/Viessmann-Api/blob/develop/docs/index.html):

Une fonctionnalité manque ? N'hésitez pas à l'ajouter vous-même ! Je suis en train de construire un petit guide pour le faire:
[How to add new feature by yourself](https://github.com/thetrueavatar/Viessmann-Api/wiki/How-to-add-you-own-feature-to-the-api):
Loading

0 comments on commit fc4f6bd

Please sign in to comment.