Dear developer and smart home enthusiasts,
today, we want to contact you to talk with you about the recent activities that are taking place concerning the interface of the heating systems, also known as the Viessmann API. As most of you might have already received our Email in which we informed you about the upcoming changes concerning the use of the API, we would like to open this thread to continue the discussion openly and transparent with you and pick up on the discussions in this thread. Here is again a brief summary of the main points from our message:
> As Viessmann, it’s in our responsibility to provide our users with reliant and safe products, including features and services around those products
> We are impressed to see your interest in connecting and interacting with your heating system and that you found a solution for your specific use case without a description or support from our side
> However, 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
> What is even more important is that for these solutions, we as Viessmann currently cannot guarantee a safe and reliant operation of your heating system
This has the following steps that we have to take:
> In order to keep operation through our API safe and still give you the chance to interact with your system, we limit the use for all applications by setting a threshold for the requests. The limit is set for both a larger (e.g. daily) and a smaller (<15 mins) time scale. Reaching the limit will prevent you to execute any further requests with your account in the specific time frame. So please make sure to adapt the frequency of the requests of your current solution to avoid reaching the limitation.
> We are heavily working on providing a solution for all users that is 1) approved & safe to use, 2) properly explained and 3) gives you the functions and information you need for your specific use case. At the same time, this will also be moment when the solution is in place where we cannot allow any other ways of accessing our API. To make things clear: Your already built and currently used functions will still be able to use, it’s only that you will need a new API client provided through the Portal that can be self-managed by the user himself.
We also received a lot of questions via Mail and also in this forum, which we are going to answer for everyone individually. We also saw that the most common question among the responses was the demand for a local API. This is a reasonable request and we appreciate and take the demand very seriously. However, we will not able to provide you a solution for this in the near future. This feature (as all other features and requests by users) are permanently discussed and evaluated and brought together with all other strategic decisions that Viessmann is taking.
I again would like to encourage everyone to participate in the development and make sure to sign in here to get an early access to the Developer Portal. Also, we are hoping to have a constructive discussion here in this thread. We are really looking forward to work jointly together with you on ideas and co-create future solutions!
P.S.
As stated in the previous thread and in certain Emails we received, we are aware that some users might expect a communication in german from us, as Viessmann is of course a company with German heritage. However, since we are providing climate solutions all over the world and especially programming / APIs is natively described in english, there is no other option than communicating in english first. This has already been greatly explained by @thetrueavatar in the previous thread.
All the best!
Michael Hanna
Viessmann Developer Portal
EDIT:
In order to support you more on adjusting your current solutions according to the current limitation, here is how the threshold 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 requests until the time window ends. Then, with the next user request, a new time window opens.
Currently, we have the following limits active:
120 calls for a time window of 10 minutes
1450 calls for a time window of 24 hours
Please take note that we are taking the right to adjust the limits if seen necessary. Information about adjustment of the threshold will be given with a reasonable amount of time in advance for all affected user.
EDIT2:
For all who experienced a ban after the limitation time frame with a few number of API requests: Our team fixed an issue with the limitation, which is taking effect since today and should solve this problem. We are still analyzing the behavior, but for now it looks ok.
Dear Michael,
thank you for the explanation which was really misleading in the mail sent.
> The limit is set for both a larger (e.g. daily) and a smaller (<15 mins) time scale.
Can you further explain what exactly is the limit of the larger and smaller time scale? This is important to know imho.
Thanks and best regards
I have lowered the frequency of accessing the Viesmann API to 20 minutes. Would that allow access again for both my Openhab application (using the 'Thetrueavatar' php api) as well as my Vicare app ?
Hello,
Could you please give us more accurate information about the treshold ? Is this a global treshold for every features or different one for each feature ? So, basically, we need to set a polling interval of 15 minutes at least ? Is this treshold the same for ViCare ? Does it means we aren't allow to change value twice in 15 minutes ?
Hi, looks good, thanks ! Would be good if the API allows batch downloads of data, this will limit the number of API requests while maintaining a good resolution in time for analysis. Preferably a 1 min resolution or lower.
At the moment I only need 4 requests per day, for adapting supply temp of heating pump to weather forecast. But request every Min for analysis, which I personally don't need real-time, once each 15 min would be great.
Local access would be best, like sunspec for solar panel inverters, opentherm access would make things standardized for you and us. I don't know the specifics of Opentherm but if you can download historical data like I do now, that would be great.
Dear Michael,
Thanks for clarification. I haven't received a notification mail and just logged into this forum, when login to API failed.
Just to give you some user's feedback how the API is used:
I'm one of the users who polled the API once a minute to read out most inportant data and fill it into an SQL database to see change of water temperature, pressure, burner oszillations and so on.
You are right that 15 minutes polling interval might be enough for most users. But especially to see the burner oscillations a shorter interval of maybe 5 mins would be more convenient.
I also would prefer to read out local data instead of polling your servers, if this is possible.
Thanks,
jayvee
Hello Michael!
I use the API to read the data into my volkszaehler.
Sorry but i can not accept that Viessman would limit access to the data of my heating system.
I give Vissmann my data for free - and lots of other give thier data for free also, so Viessmann could build up "Big Data" and try to find in this data something that is important for Viessmann. Thats okay as long as I get unrestricted access to my data.
I bought a Vitoconnect 100, just to find out that I get no data from this device within my LAN - only via iOS-App. That was very disappointing.
I want to get --my-- data from --my-- heating system on minutely basis.
So to satisfy my need, i suggest one out of two solutions:
1. Upgrade the firmware of the Vitoconnect 100 for example with a static web-page that presents all parameters with its current value - so I can access the data on a 5th secondly timeframe (if i want to) and your servers do not have to cope with the load that such a timeframe would produce. This solution is independant from any API. Private users use the LAN access and professional users could use the API. Your servers just need to satisfy a few professionals.
2. Install more powerfull servers and create an API that is not so demanding on the hardware. At the end you have more clients that access this API. So a change in that API would generate a lot of unsatisfied customers. I suggest 1 is the better alternative.
I think it is fair to give someone access to its own data on a minutely timebase, because you get that data for free. The users even had paid for a device that gives no benifit to them other than an iOS-App where is no export possible. BTW. i want to know what my heating system is doing now and not what did my heating system one hour or a day ago.
Just my two cent.
Christoph
Hello Michael,
it would be very interesting when Viesmann would publish the numbers about the traffic caused by Vitoconnect / ViCare / VitoGuide, also under historic point of view.
In my opinion the traffic increased very fast caused by the non-standard usage which was not awaited by Viessmann at the beginning.
The calculation in the management was made surely only based on VitoGuide and Vicare tests with a 5% reserve for the nerds.
Now Viesmann has to deal with a crowd of experts that tune their home automation without using ViCare or VitoGuide because they are not useful for real automation. They are very useful for quick check or a quick adaptation beeing out of home. But not for automation.
And automation is what we really want when there is a cable connected to the Viessmann device which we can access on the other end.
In my case I have made a nice integratoin where the thermostates trigger the Viessmann device to work or not - independent of the heating internal program which cannot react. I can could increase the wished temperature at any thermostat (far away from the heating) which triggered via openhab / thetrueavatar-api changing mode of the heating. Without going to the cellar. Without grabbing my telephone. Whith saving a lot of money. But I am only an amateur.
I would like to encourage Viessmann to consider how many people and at which level have already implemented their automation of the heating at home to get comfortable and to save money (Just check the setting-commands in the traffic.). This would not work without Optolink / Vitoconnect. And thi is great.
I would further like to encourage VIessmann to consider a local access to the heating system using Vitoconnect. This would give a chance for all the high level automation implementations out there and would solve the traffic problem at Viessmann.
Other wise, I think, the experts will pull the Optolink cable from Vitoconnect and connect it to a next Raspberry-Pi instead. But maybe this is the strategy of Viessmann?
Best Regards
Zbig
PS.
It would be much easier for the user if Viessmann would first introduce the API, let the people use it for their integrations and afterwards restrict the access to the server that are forseen for ViCare/Vitoguide. We are now discussing access restrictions instead of the art and state of the API....
Hello everybody,
I registered here once because I am also affected by the change. I increased the interval to 30 minutes, but unfortunately I haven't had a connection since yesterday. Is my account blocked for further use of the API?
Unfortunately I did not receive the email and would also like to register for the developer portal. Where can I register?
Since the 16 April around 15:30 UTC I am unable to get data via the API and my ViCare is no longer connected to the server. My time-interval was set to collect data every minutes.
It was really "nice" to send the above "clarification" on those restrictions before they went into effect. The "clarification" does neither clarify how to corectly implement them ( a request every two days is out off bounce?) nor was it send in time to allow anybody to react on it.
Liebes Viessmann Team,
ich habe als API-Nutzer ebenfalls Ihre E-Mail bekommen und wurde dann direkt gestern damit konfrontiert, dass meine Automation, die ich über ioBroker und den dafür frei verfügbaren, von einem Community-Mitglied entwickelten Adapter realisiert habe, nicht mehr funktioniert. Das Ganze lief im Zusammenspiel mit einer Anwesenheitserkennung, wodurch ich natürlich die Warmwasserbereitung etc nur auf solche Zeiten beschränke, in denen auch wirklich jemand zu Hause ist. Das ist durch eine reine Zeitprogrammierung natürlich nicht zu erreichen. Die damit einhergehende Ersparnis an Energie geht mir natürlich dann ab jetzt ebenfalls verloren.
Aus den aktuellen Diskussionen rund um das Thema Nachhaltigkeit und Klimaschutz würde ich es daher sehr schätzen, wenn Sie doch bitte wieder die API freigeben, weil dadurch sicher nicht nur bei mir, sondern auch bei vielen anderen Nutzern Energie eingespart wird.
Weiterhin weiß ich ja auch nicht, was Ihre Controller an zusätzlichem Gewinn errechnet haben, wenn man für die Nutzung der API-Schnittstelle zahlen müsste. Aber hier frage ich Sie mal ernsthaft, ob das für Sie vertretbar wäre, würden vorherige Nutzer das nicht unterstützen und lieber mehr Geld an Ihren Energieversorger zahlen?
Aus meiner Sicht ist das gerade in der heutigen Zeit ein absoluter Rückschritt, was Sie hier gerade versuchen umzusetzen. Sie machen damit nicht nur Ihre Produkte für potentielle neue Kunden uninteressant (ich würde zumindest aktuell niemanden mehr ein Viessmann-Gerät empfehlen) sondern riskieren scheinbar auch einen erheblichen Imageschaden durch das Blockieren der Energiesparversuche Ihrer aktuellen Kundschaft.
Denken Sie mal drüber nach ...
Same for me. I have set my cron to ask every 20 minutes to get some basic information but my account is still blocked:
- slope/curve
- active mode
- active program
- external temperature
- room temperature
- boiler temperature
- heating burner status
- heating and water schedule
- normal and reduced program's temperature
So please could you be more accurate on how the treshold works ? For instance for each information I do a call. If it's a global threshold for every feature then I will update my code to get all information in only one call. That's not a problem but please provide us exact and accurate information.
Ok I have been digging into the error received here is what I have received as response:
{
"errorType": "RATE_LIMIT_EXCEEDED",
"extendedPayload": {
"clientId": "XXXX",
"limitReset": 1584462010106,
"name": "ViCare day limit",
"requestCountLimit": 1450,
"userId": "XXXX"
},
"message": "API calls rate limit has been exceeded. Please wait until your limit will renew.",
"statusCode": 429,
"viErrorId": "XXX"
}
The problem is that 1584462010106 is 17 march 17h20... It's way too long as limit reset datetime !!!!!!
BTW what does requestCountLimit means ? I guess it's a counter but when does this counter reset ? 1450 is quite a huge number of call indeed. I have the feeling that your reset policy extend the ban of an amount of time for every call behind the limit. I would expect the reset would be **bleep** a minimal idle time since the last call....
Ok I have been digging into the error received here is what I have received as response:
{
"errorType": "RATE_LIMIT_EXCEEDED",
"extendedPayload": {
"clientId": "XXXX",
"limitReset": 1584462010106,
"name": "ViCare day limit",
"requestCountLimit": 1450,
"userId": "XXXX"
},
"message": "API calls rate limit has been exceeded. Please wait until your limit will renew.",
"statusCode": 429,
"viErrorId": "XXX"
}
The problem is that 1584462010106 is 17 march 17h20... It's way too long as limit reset datetime !!!!!!
BTW what does requestCountLimit means ? I guess it's the maximum limit but when does this counter reset ? 1450 is quite a huge number of call indeed. Your reset policy seems to extend the ban of a fixed amount of time when we exceed the limit. But once we reach the datetime reset does this count reset to 0 ? I have the feeling that the banned attempt are being counted as well in the total amount of allowed request/day ? This should be 1450 succeed request !
Moreover I would expect the reset would be a minimal idle time since the last call....
This limit is pretty a non-sense with the HATEOAS approach of the current API. This approach is use for flexible api where the api needs to be discovered bit by bit. So this approach force client to do multiple call instead of a big one..
Hello!
Same for me - maybe we should disconnect our VitoConnect 100s from the Internet as a protest?
Dear Michael,
Apart from emphasising the need for access to the data from the heating system I have purchased from Viessmann, additional component that wasn't for free either I support previous opinions that this is our data.
Anyway could you please clarify 2 main open questions:
- what are the actual daily and 15 minutes limits and when do they reset? Now even my mobile app stopped working and I don't know when it will be back online.
- what is the intention behind the Developer Portal? What type of contribution do you expect from the developer community and what benefits do you intend to offer?
Kind regards,
Adam