Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Viessmann Developer-API mit ioBroker

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Viessmann Developer-API mit ioBroker

Viessmann Developer-API mit ioBroker

Scheduled Pinned Locked Moved Entwicklung
27 Posts 15 Posters 22.4k Views 15 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U Unterstedter

    Läuft auch bei mir, ganz, ganz vielen Dank dafür!
    Kurze Frage, gibt es eine maximale Anzahl abrufr, die viessmann zulässt? Habe leider selber dazu noch nichts gefunden.

    A Offline
    A Offline
    asblass
    wrote on last edited by
    #13

    Hi @unterstedter

    Findest Du unter Preise: Freie API-Aufrufe pro Tag: 1450
    Es gibt auch eine History Anzeige: https://developer.viessmann.com/de/clients/history

    Grüße
    Andreas

    T 1 Reply Last reply
    0
    • A asblass

      Hi @unterstedter

      Findest Du unter Preise: Freie API-Aufrufe pro Tag: 1450
      Es gibt auch eine History Anzeige: https://developer.viessmann.com/de/clients/history

      Grüße
      Andreas

      T Offline
      T Offline
      tombox
      wrote on last edited by
      #14

      @asblass zur Zeit werden bei einer Anlage mit einem Gerät 3 Anfragen pro interval gemacht

      Feature Gerät
      Feature gateway was bisher leer ist
      Events

      U 1 Reply Last reply
      0
      • T tombox

        @asblass zur Zeit werden bei einer Anlage mit einem Gerät 3 Anfragen pro interval gemacht

        Feature Gerät
        Feature gateway was bisher leer ist
        Events

        U Offline
        U Offline
        Unterstedter
        wrote on last edited by
        #15

        @tombox @asblass

        also wenn ich das richtig verstehe:

        1450 pro Tag
        3x Abrufe pro zyklus
        ~500 Zyklen pro Tag
        ~20 Zyklen pro Stunde, also minimales intervall 3 Minuten, aber dann ist nix mehr übrig, um eigene Werte zu setzen, oder?

        1 Reply Last reply
        0
        • C cheussen

          Folgend eine Schritt-für Schritt-Anleitung um Daten über die Developer-API von Viessmann mittels ioBroker abzurufen und zu setzen.
          Die Intention in dieser Anleitung liegt darin, die Wartezeit auf eine Aktualisierung des Viessmannapi-Adapters zu überbrücken.
          In meinem Beispiel greife ich die Daten einer Viessmann Vitocal 200 Wärmepumpenheizung über ioBroker ab und steuere die Kesseltemperatur.

          Dieses Beispiel lässt sich anhand der Dokumentation, welche im Viessmann Developer Portal zu finden ist, auf viele andere Geräte und Datenpunkte übertragen.
          Hier die aktuelle Kompatibilitätsliste:
          Regelungen für Wand- oder Kompaktgeräte
          Vitotronic 200, Typ HO1, HO1A, HO1B, HO1D, HO2B, HO2C
          Vitotronic 200 RF, Typ HO1C, HO1E
          Regelungen für bodenstehende Heizkessel
          Vitotronic 200, Typ KO1B, KO2B, KW6, KW6A, KW6B, KW1, KW2, KW4, KW5
          Vitotronic 300, Typ KW3
          Regelungen für Wärmepumpen und Hybridgeräte
          Vitotronic 200, Typ WO1A, WO1B, WO1C
          Regelungen für Festbrennstoffkessel
          Vitoligno 200-S mit Ecotronic (ab Softwarestand 2.03)
          Vitoligno 250-S mit Ecotronic (ab Softwarestand 2.00)
          Vitoligno 300-C mit Ecotronic (ab Softwarestand 2.12)
          Vitoligno 300-P mit Vitotronic 200 FO1
          Vitoligno 300-S mit Ecotronic (ab Softwarestand 2.04)

          Anleitung:

          Schritt 1 - Registrierung
          Um vollen Zugriff auf die Developer-API zu bekommen müsst ihr euch unter folgender Adresse anmelden:
          https://developer.viessmann.com/de
          Die Login-Daten sind dieselben, die für die ViCare-App gebraucht werden.
          In dem Web-Portal findet ihr die komplette Dokumentation der API und eine kleine Schnellstartanleitung, welche das wichtigste erklärt.

          Nach der Anmeldung erscheint in der Navigation der Punkt "API-Schlüssel", hier müsst ihr einen OAuth Client anlegen.
          Der Name spielt keine Rolle aber die Client-ID solltet ihr euch für später notieren.

          Schritt 2 - Access-Token erzeugen
          Um Zugriff auf die API zu bekommen muss man sich ein Token erzeugen lassen, dies habe ich mittels Postman gemacht.
          Das Postman Environment und die Collection habe ich angehangen.
          Tutorials wie man diese Importiert und wie man generell mit Postman umgeht findet ihr im Web.

          2.1 Code erzeugen
          Um mittel Postman ein Token erzeugen zu können muss erstmal ein Code angefordert werden.
          Folgende Adresse über einen Web-Browser eurer Wahl aufrufen:

          https://iam.viessmann.com/idp/v2/authorize?
          client_id={{clientid}}
          &redirect_uri=http://localhost:4200/
          &response_type=code
          &code_challenge=2e21faa1-db2c-4d0b-a10f-575fd372bc8c-575fd372bc8c
          &scope=IoT%20User%20offline_access
          

          {{clientid}} ist in dem Fahll die Client-ID aus dem Developer- Portal, alle anderen Daten müssen nicht angepasst werden.

          Info:
          redirect_uri bezeichnet die Adresse auf die nach der Codererstellung weiter geleitet wird.
          code_challenge ist im Grunde ein zufälliger Wert wird aber später nochmal gebraucht, also notieren.
          Der Parameter offline_access unter scope erzeugt zusätzlich ein Refresh-Token, dazu später mehr.

          Auf der folgenden Seite mit euren ViCare-Benutzerdaten anmelden, anschließend werden ihr auf die von euch angegebene URL weitergeleitet mit dem Code als Parameter in der Adresszeile.
          code.PNG
          Diesen Code bitte notieren.

          2.2 Access-Token erzeugen
          Nun Postman öffnen, das Environment und die Collection aus diesem Post importieren und aktivieren.
          Anschließend im Environment euren Code, sowie Client-ID und die code-challenge in die entsprechenden Variablen eintragen.
          89200c7e-1704-4cba-b01b-f16921067bb9-image.png
          Jetzt könnt ihr euch mit der ersten "GET_Token"-Abfrage ein Access-Token erzeugen.
          GET_token.PNG
          Nachdem die Abfrage gelaufen ist, wird das Access-Token und das Refresh-Token im Environment als Variable für zukünftige Anfragen gespeichert.
          token_ready.png
          Um alle übrigen Daten zu vervollständigen müssen noch die zwei Abfragen "GET_install_id" und "GET_gateway_serial" abgesendet werden.
          Auch hier werden die Daten anschließend automatisch als Variable im Environment abgespeichert.

          Info:
          Zur späteren Abfrage wird auch die Device-ID benötigt, eine entsprechende Abfrage ist in der Collection.
          Bei mir beziehen sich allerdings alle Abfragen auf die Device-ID "0", alle Device-ID`s seht ihr als Antwort auf die Abfrage "GET_device_id" falls ihr eine andere benötigen solltet.

          Schritt 3 - Token automatisch verlängern lassen
          Da das Token automatisch Abläuft, muss es zyklisch erneuert werden, in diesem Fall alle 45 Minuten.
          Hierzu lasse ich ein ioBroker Script laufen, welches das Token in regelmäßigen Abständen erneuert und als Objekt im ioBroker speichert.

          schedule("*/45 * * * *", function () {
              var request = require('request');
          
              var url = "https://iam.viessmann.com/idp/v2/token"
              var payload = 'grant_type=refresh_token&client_id={{CLIENT-ID}}&refresh_token={{REFRESH-TOKEN}}'
              var headers = {'Content-Type': 'application/x-www-form-urlencoded'}
              var result;
          
              var options = {url: url, method: 'POST', headers: headers, body: payload};
              request(options, function(error, response, body) 
              {
                  if (!error && response.statusCode == 200) {
                  var info = JSON.parse(body);  // info ist ein Objekt
                  var x = info.xy;  // xy ist eine Eigenschaft des Objektes info
              }
              result = JSON.parse(body)
              setState('0_userdata.0.Viessmann-API.Access-Token'/*Access-Token*/, result["access_token"], true);
          
              console.log("Viessmann-API: Token erneuert.");
              });
          });
          

          Unter payload die Platzhalter {{CLIENT-ID}} und {{REFRESH-TOKEN}} durch eure eigenen ersetzen.

          Info:
          Eine Erneuerung des Tokens funktioniert ohne Anmedung über die Website.
          Sollte das Token aber dennoch mal Ablaufen muss erst wieder ein neues über das Web-Portal erzeugt werden und entsprechend euer Refresh-Token anpassen.

          Schritt 4 - Daten abfragen
          Da ioBroker nun immer ein gültiges Token kennt, können wir nun anfangen mit der API zu arbeiten.
          In diesem Beispiel lese ich die Temperatur vom Außentemperatursensor in zyklischen Abständen (In diesem Fall alle 30 Minuten) aus und speichere die Daten in einem ioBroker-Objekt.

          schedule("*/30 * * * *", function () {
              var request = require('request');
          
              var url = "https://api.viessmann.com/iot/v1/equipment/installations/{{INSTALL-ID}}/gateways/{{GATEWAY-ID}}/devices/0/features/heating.sensors.temperature.outside"
              var access_token =  getState('0_userdata.0.Viessmann-API.Access-Token'/*Access-Token*/).val
              var headers = {'Authorization': 'Bearer ' + access_token}
              var result;
          
              var options = {url: url, method: 'GET', headers: headers};
              request(options, function(error, response, body) 
              {
                  if (!error && response.statusCode == 200) {
                  var info = JSON.parse(body);  // info ist ein Objekt
                  var x = info.xy;  // xy ist eine Eigenschaft des Objektes info
              }
              result = JSON.parse(body)
              setState('0_userdata.0.Viessmann-API.Außentemperatur'/*Außentemperatur*/, result["data"]["properties"]["value"]["value"], true);
              console.log("Viessmann-API: Außentemperatur aktualisiert.");
              });
          });
          

          Hier die Platzhalter durch eure eigenen Daten ersetzen.

          Info:
          Alle weiteren Datenpunkte findet ihr in der Dokumentation im Developer Portal oder über folgende Anfrage "Alle Datenpunkte" aus der Collection an die API.

          Schritt 5 - Daten setzen
          Über den Call "setWaterTermperature" aus der Collection lässt sich die Temperatur des Brauchwasserkessels setzen.
          Der Call lässt sich wie unter Punkt 5 auch aus ioBroker absetzen um von dort aus die Kesseltemperatur steuern zu können.
          Dies will ich später zusammen mit einer PV-Anlage nutzen um bei Energieüberschuss die Kesseltemperatur höher zu setzen damit der Eigenverbrauch gesteigert wird.

          Postman Environment & Collection
          Viessmann.postman_environment.json
          Viessmann.postman_collection.json

          Das ist alles Quick&Dirty aber läuft erstmal und deck alles ab, was ich vorher mit dem Viessmannapi-Adapter erledigt habe.
          Ich bin kein Entwickler, daher sind Anregungen und Verbesserungen gerne gesehen 😉

          Gruß
          Christian

          W Offline
          W Offline
          Wing.Stefan
          wrote on last edited by
          #16

          @cheussen
          Hallo, ich bräuchte etwas das mit VitoConnect und Loxone zusammen arbeitet über IOBroker, bis vor kurzem hatte ich sowas über Loxberry, leider gibt es dort nichts mehr und IOBroker wäre mir sowieso lieber 🙂
          'Kannst du da etwas machen 🙄

          1 Reply Last reply
          0
          • C Offline
            C Offline
            CBR-35
            wrote on last edited by
            #17

            Hallo zusammen,
            ich bin die oberen Punkte durchgegangen und bekomme beim GET_Token folgende Rückmeldung:

            {
                "error": "invalid-token-request"
            }
            

            Hat sich der Zugriff in der Zwischenzeit geändert?
            Kann es sein das ich noch OAuth 2.0 bei Authorization einstellen muss und wenn ja, weiß jemand ich da alles eintragen muss?

            Bin leider absoluter Anfänger in der Thematik.

            Danke schon mal im Voraus.

            T R 2 Replies Last reply
            0
            • C CBR-35

              Hallo zusammen,
              ich bin die oberen Punkte durchgegangen und bekomme beim GET_Token folgende Rückmeldung:

              {
                  "error": "invalid-token-request"
              }
              

              Hat sich der Zugriff in der Zwischenzeit geändert?
              Kann es sein das ich noch OAuth 2.0 bei Authorization einstellen muss und wenn ja, weiß jemand ich da alles eintragen muss?

              Bin leider absoluter Anfänger in der Thematik.

              Danke schon mal im Voraus.

              T Offline
              T Offline
              Test04
              wrote on last edited by
              #18

              @cbr-35

              Ich hänge aktuell beim selben Punkt fest, was für Daten muss ich eingeben um den Token zu bekommen und wie funktioniert das dann mit dem GET_refresh_Token?

              1 Reply Last reply
              0
              • T Offline
                T Offline
                tombox
                wrote on last edited by
                #19

                @test04 @CBR-35
                was ist mit dem Adapter
                https://forum.iobroker.net/topic/46778/test-viessmannapi-v2-0-0

                C 1 Reply Last reply
                0
                • C CBR-35

                  Hallo zusammen,
                  ich bin die oberen Punkte durchgegangen und bekomme beim GET_Token folgende Rückmeldung:

                  {
                      "error": "invalid-token-request"
                  }
                  

                  Hat sich der Zugriff in der Zwischenzeit geändert?
                  Kann es sein das ich noch OAuth 2.0 bei Authorization einstellen muss und wenn ja, weiß jemand ich da alles eintragen muss?

                  Bin leider absoluter Anfänger in der Thematik.

                  Danke schon mal im Voraus.

                  R Offline
                  R Offline
                  Rui Couto
                  wrote on last edited by
                  #20

                  @cbr-35 Habe das gleiches Problem.
                  Konntest du das losen?

                  C 1 Reply Last reply
                  0
                  • R Rui Couto

                    @cbr-35 Habe das gleiches Problem.
                    Konntest du das losen?

                    C Offline
                    C Offline
                    crinc
                    wrote on last edited by
                    #21

                    @rui-couto said in Viessmann Developer-API mit ioBroker:

                    be das gleiches Problem.
                    Konntest du das l

                    Ich bin grade an der gleichen Stelle, siehe auch hier: https://www.viessmann-community.com/t5/Getting-started-programming-with/Step-2-Authorization-code-exchange-gt-invalid-token-request/td-p/231992

                    Bei mir hat es geholfen per Postman alles vorzubereiten und die Werte für code_verifier und code_challenge aus dem Beispiel zu übernehemen, hatte zuvor selbst welche erstellt damit hat es aber nicht funktioniert. Bedenke auch dass mittlerweile ein bescheuertes 20 Sekunden Limit von Step 1 Get Request bis Abschluss Step2 Post besteht.

                    So jetzt versuche ich mal die API in den IOBroker zu bringen, aber wenn ich hier richtig lese ist der ViessmannAPI Adapter für den IOBroker mittlerweile obsolet? Na toll...

                    ? 1 Reply Last reply
                    0
                    • C crinc

                      @rui-couto said in Viessmann Developer-API mit ioBroker:

                      be das gleiches Problem.
                      Konntest du das l

                      Ich bin grade an der gleichen Stelle, siehe auch hier: https://www.viessmann-community.com/t5/Getting-started-programming-with/Step-2-Authorization-code-exchange-gt-invalid-token-request/td-p/231992

                      Bei mir hat es geholfen per Postman alles vorzubereiten und die Werte für code_verifier und code_challenge aus dem Beispiel zu übernehemen, hatte zuvor selbst welche erstellt damit hat es aber nicht funktioniert. Bedenke auch dass mittlerweile ein bescheuertes 20 Sekunden Limit von Step 1 Get Request bis Abschluss Step2 Post besteht.

                      So jetzt versuche ich mal die API in den IOBroker zu bringen, aber wenn ich hier richtig lese ist der ViessmannAPI Adapter für den IOBroker mittlerweile obsolet? Na toll...

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by A Former User
                      #22

                      @crinc Hi,
                      der Viessmannapi Adapter ist up to date und wird auch gepflegt, siehe den Thread hier im Forum.

                      C 1 Reply Last reply
                      0
                      • ? A Former User

                        @crinc Hi,
                        der Viessmannapi Adapter ist up to date und wird auch gepflegt, siehe den Thread hier im Forum.

                        C Offline
                        C Offline
                        crinc
                        wrote on last edited by
                        #23

                        @ilovegym said in Viessmann Developer-API mit ioBroker:

                        @crinc Hi,
                        der Viessmannapi Adapter ist up to date und wird auch gepflegt, siehe den Thread hier im Forum.

                        Ja, hatte ich dann auch gesehen. Habs am laufen und einige Datenpunkte bereits bis zur Anzeige in Grafana gebracht, grade bin ich auf der Suche nach gas.consumption was bei mir irgendwie nicht im Adapter angezeigt wird. Der Adapter ist wirklich gelungen und es macht Spaß damit herumzuspielen.

                        M 1 Reply Last reply
                        0
                        • C crinc

                          @ilovegym said in Viessmann Developer-API mit ioBroker:

                          @crinc Hi,
                          der Viessmannapi Adapter ist up to date und wird auch gepflegt, siehe den Thread hier im Forum.

                          Ja, hatte ich dann auch gesehen. Habs am laufen und einige Datenpunkte bereits bis zur Anzeige in Grafana gebracht, grade bin ich auf der Suche nach gas.consumption was bei mir irgendwie nicht im Adapter angezeigt wird. Der Adapter ist wirklich gelungen und es macht Spaß damit herumzuspielen.

                          M Offline
                          M Offline
                          MyioBroker
                          wrote on last edited by
                          #24

                          @crinc Hab meine Anlage erst in diesem Jahr mit viel Eigeninitiative installieren lassen und denke dass es ein guter Schritt war ☺ Mit ViCare kann man ja einiges machen aber sehen was wirklich passiert und gar "Optmieren" wohl eher nicht 🤔 Durch die Fussbodenheizung mit ihren "trägen" Reaktionen geht es mir auch nicht um eine permanente Steuerung von Temperaturen in den einzelnen Räumen sondern um die "Sammlung" von Informationen um zu sehen wo sich was "Ereignet". Temperaturverläufe sind da sicher ein erster Schritt, aber auch welche Einstellungen z.B. bei der Warmwasserumwälzpumpe sinnvoll sind und kann ich die gar steuern?
                          Der "Verzeichnisbaum" des Iobrokers-Adapters scheint unendlich lang, aber welche Punkte sind wirklich relevant? (Außen~temperatur, Vorlauf / Rücklauf ~, Einschaltzeiten Warmwasserpumpe (wo?) Welche Werte kann ich in der Basic-Version wirklich beeinflussen?

                          1 Reply Last reply
                          0
                          • T tombox

                            @test04 @CBR-35
                            was ist mit dem Adapter
                            https://forum.iobroker.net/topic/46778/test-viessmannapi-v2-0-0

                            C Offline
                            C Offline
                            CBR-35
                            wrote on last edited by
                            #25

                            @tombox sagte in Viessmann Developer-API mit ioBroker:

                            @test04 @CBR-35
                            was ist mit dem Adapter
                            https://forum.iobroker.net/topic/46778/test-viessmannapi-v2-0-0

                            Danke, ich habe heute mal einen neuen Anlauf gestartet.
                            Mit dem Adapter funktioniert es super!

                            @MyioBroker: In der Hilfe von Viessmann sind die einzelne Punkte ganz gut beschrieben.

                            1 Reply Last reply
                            0
                            • C Offline
                              C Offline
                              CBR-35
                              wrote on last edited by
                              #26

                              Laut Viessmann Beschreibung müsste das Umschalten von den Programmen z.B. Normal -> Reduziert ebenfalls über die API funktionieren.

                              Ich habe die Möglichkeit gefunden um die Temperatur in einem Programm zu ändern, aber nicht das Programm selber.

                              Hat die Möglichkeit jemand gefunden oder kennt jemand eine Lösung?
                              Wenn es Nachts kalt ist und tagsüber unerwartet Warm wird, möchte ich gerne die erhöhte Außentemperatur nutzen und schon vor meinem Zeitprogramm auf die Normale Temperatur hoch schalten ohne die Tmperatur im Programm selber ändern zu müssen.

                              Simon RenaudS 1 Reply Last reply
                              0
                              • C CBR-35

                                Laut Viessmann Beschreibung müsste das Umschalten von den Programmen z.B. Normal -> Reduziert ebenfalls über die API funktionieren.

                                Ich habe die Möglichkeit gefunden um die Temperatur in einem Programm zu ändern, aber nicht das Programm selber.

                                Hat die Möglichkeit jemand gefunden oder kennt jemand eine Lösung?
                                Wenn es Nachts kalt ist und tagsüber unerwartet Warm wird, möchte ich gerne die erhöhte Außentemperatur nutzen und schon vor meinem Zeitprogramm auf die Normale Temperatur hoch schalten ohne die Tmperatur im Programm selber ändern zu müssen.

                                Simon RenaudS Offline
                                Simon RenaudS Offline
                                Simon Renaud
                                wrote on last edited by Simon Renaud
                                #27

                                Hat es eigentlich jemand mal hinbekommen, das Feriensprogram (Holiday Schedule) zu aktivieren? Man kann einen "Setvalue" schreiben, aber mir ist nicht klar in welchem Format, konnte das auch bei Viessmann und durch probieren nicht herausfinden.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                625

                                Online

                                32.4k

                                Users

                                81.3k

                                Topics

                                1.3m

                                Posts
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                ioBroker Community 2014-2025
                                logo
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Recent
                                • Tags
                                • Unread 0
                                • Categories
                                • Unreplied
                                • Popular
                                • GitHub
                                • Docu
                                • Hilfe