Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Auslesen der Viessmann Cloud für Heizung?!?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Auslesen der Viessmann Cloud für Heizung?!?

    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      OMCastle last edited by

      Hast Du schon Teile der Login-Routine nach JS versucht zu übersetzen?

      ToDo liegt aus meiner Sicht dabei, die folgenden 3 PHP-Funktionen nach JavaScript zu übersetzen?!?

      Gibt es hier einen JavaScript Spezi, der das umschreiben kann?

      function getCode() {

      global $client_id, $authorizeURL, $callback_uri;

      global $isiwebuserid, $isiwebpasswd;

      $url = "$authorizeURL?client_id=$client_id&scope=openid&redirect_uri=$callback_uri&response_type=code";

      $header = array("Content-Type: application/x-www-form-urlencoded");

      $curloptions = array(

      CURLOPT_URL => $url,

      CURLOPT_HTTPHEADER => $header,

      CURLOPT_SSL_VERIFYPEER => false,

      CURLOPT_RETURNTRANSFER => true,

      CURLOPT_USERPWD => "$isiwebuserid:$isiwebpasswd",

      CURLOPT_HTTPAUTH => CURLAUTH_BASIC,

      CURLOPT_POST => true,

      );

      $curl = curl_init();

      curl_setopt_array($curl, $curloptions);

      $response = curl_exec($curl);

      curl_close($curl);

      $matches = array();

      $pattern = '/code=(.*)"/';

      preg_match_all($pattern, $response, $matches);

      return ($matches[1][0]);

      }

      function getAccessToken($authorization_code) {

      global $token_url, $client_id, $client_secret, $callback_uri;

      global $isiwebuserid, $isiwebpasswd;

      $header = array("Content-Type: application/x-www-form-urlencoded;charset=utf-8");

      $params = array(

      "client_id" => $client_id,

      "client_secret" => $client_secret,

      "code" => $authorization_code,

      "redirect_uri" => $callback_uri,

      "grant_type" => "authorization_code");

      $curloptions = array(

      CURLOPT_URL => $token_url,

      CURLOPT_HEADER => false,

      CURLOPT_HTTPHEADER => $header,

      CURLOPT_SSL_VERIFYPEER => false,

      CURLOPT_RETURNTRANSFER => true,

      CURLOPT_POST => true,

      CURLOPT_POSTFIELDS => rawurldecode(http_build_query($params)));

      $curl = curl_init();

      curl_setopt_array($curl, $curloptions);

      $response = curl_exec($curl);

      curl_getinfo($curl);

      curl_close($curl);

      if ($response === false) {

      echo "Failed\n"; echo curl_error($curl);

      // } elseif (json_decode($response)->error) {

      // echo "Error:\n"; echo $authorization_code; echo $response;

      }

      return json_decode($response)->access_token;

      }

      // we can now use the access_token as much as we want to access protected resources

      function getResource($access_token, $api) {

      //echo "ok\n";

      $header = array("Authorization: Bearer {$access_token}");

      //var_dump($header);

      $curl = curl_init();

      curl_setopt_array($curl, array(

      CURLOPT_URL => $api,

      CURLOPT_HTTPHEADER => $header,

      CURLOPT_SSL_VERIFYPEER => false,

      CURLOPT_RETURNTRANSFER => true,

      ));

      $response = curl_exec($curl);

      curl_close($curl);

      //return json_decode($response, true);

      return ($response);

      }

      1 Reply Last reply Reply Quote 0
      • thovid
        thovid last edited by

        Hallo zusammen, bin vor kurzem auch auf die php Skripte zur Anbindung der Viessmann API gestoßen, und da ich wie andere hier die Garantieverlängerung mitnehmen wollte und daher die vitroconnect dran habe, habe eine erste Version für einen ioBroker Adapter geschrieben. Das ganze kann hier: https://github.com/thovid/ioBroker.viessmannapi auf github gefunden werden, die eigentliche Verbindung mit dem Viessmann Server ist in eine eigenen Lib ausgelagert (https://github.com/thovid/node-viessmann-api-client)

        Installation erfolgt über die github url, in den Einstellungen müssen Benutzername und Passwort des Viessmann Accounts eingetragen werden. Der Adapter fragt dann ein mal pro Minute die Werte der Heizung ab und legt diese in entsprechenden States ab.

        Derzeit kann man noch nichts schalten über den Adapter, d.h. alle Werte sind rein lesend. Würde mich über Feedback, Bugreports und Verbesserungsvorschläge freuen (gerne auf Github).

        Viele Grüße,

        Thomas

        1 Reply Last reply Reply Quote 0
        • Neuschwansteini
          Neuschwansteini last edited by

          Hallo,

          super, vielen Dank!! Ich hab ihn installiert, funktioniert auf Anhieb!

          Finde die Daten etwas unübersichtlich sortiert, da in unter-unter-unter Datenpunkten.. aber das liegt wohl bei Viessmann an der Struktur..

          ist mir auch egal, in welchem Pfad, Hauptsache, sie sind da 🙂 :mrgreen: :mrgreen:

          Super!!

          Achso, hab ihn auf Debug-Level installiert, und es treten auch keinerlei Fehler auf. Alles bestens hier. Kann leider kein Issue anlegen. :mrgreen: :mrgreen:

          1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators last edited by

            Nice wollte gerade damit anfangen dann kann ich den ja Skippen [emoji847]

            Sent from my iPhone using Tapatalk

            1 Reply Last reply Reply Quote 0
            • Neuschwansteini
              Neuschwansteini last edited by

              @Dutchman:

              Nice wollte gerade damit anfangen dann kann ich den ja Skippen [emoji847]

              Sent from my iPhone using Tapatalk `

              Ähm, wenn du Zeit und Lust hast, kannst du dir mal den Wifilight-Adapter vorknöpfen? Der braucht unbedingt n Update, damit er Alexa- und Material-Kompatibel wird.. sprich die Datenpunkte wie .color.temp, color.hue etc sollen erzeugt werden.. ausserdem hängt er sich ab und zu mal auf und braucht n Neustart.. :mrgreen:

              1 Reply Last reply Reply Quote 0
              • Dutchman
                Dutchman Developer Most Active Administrators last edited by

                Lol wenn icj WiFi light hätte währe das einfacher

                Hast du dazu issued in github hinterlegt

                Sent from my iPhone using Tapatalk

                1 Reply Last reply Reply Quote 0
                • thovid
                  thovid last edited by

                  Danke für's Ausprobieren, und schön, dass es läuft 🙂

                  @ilovegym:

                  Finde die Daten etwas unübersichtlich sortiert, da in unter-unter-unter Datenpunkten.. aber das liegt wohl bei Viessmann an der Struktur..

                  ist mir auch egal, in welchem Pfad, Hauptsache, sie sind da 🙂 :mrgreen: :mrgreen: `

                  Ja, die Datenstruktur von Viessmann ist … interessant 😉 Da ich aber nicht weiß, wie die Daten bei anderen Heizungsinstallationen aussehen, hatte ich mich dazu entschieden, einfach das durchzureichen was der Viessmann Server liefert. Vielleicht fällt mir in Zukunft noch was schlaueres ein..

                  Grüße

                  1 Reply Last reply Reply Quote 0
                  • R
                    RicoGesch last edited by

                    Hallo,

                    irgendwie bekomme ich den Adapter nicht installiert….

                    Kann mir jemand helfen..?

                    Danke...

                    <code>$ ./iobroker url "https://github.com/thovid/ioBroker.viessmannapi" --debug
                    install https://github.com/thovid/ioBroker.viessmannapi/tarball/master
                    npm install https://github.com/thovid/ioBroker.viessmannapi/tarball/master --production --save --prefix "/opt/iobroker" (System call)
                    npm
                     WARN addRemoteGit Error: not found: gitnpm WARN addRemoteGit     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:14:12)
                    npm WARN addRemoteGit     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:69:19)
                    
                    npm WARN addRemoteGit     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:81:29)npm WARN addRemoteGit     at /usr/lib/node_modules/npm/node_modules/which/which.js:90:16
                    npm WARN addRemoteGit     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:44:5
                    npm WARN addRemoteGit     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/access.js:8:5
                    npm WARN addRemoteGit     at FSReqWrap.oncomplete (fs.js:123:15)
                    npm WARN addRemoteGit  git+https://github.com/thovid/node-viessmann-api-client.git resetting remote /root/.npm/_git-remotes/git-https-github-com-thovid-node-viessmann-api-client-git-8fdff86b because of error: { Error: not found: git
                    npm WARN addRemoteGit     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:14:12)
                    npm
                    
                    WARN addRemoteGit
                         at F (/usr/lib/node_modules/npm/node_modules/which/which.js:69:19)npm WARN addRemoteGit     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:81:29)
                    npm WARN addRemoteGit     at /usr/lib/node_modules/npm/node_modules/which/which.js:90:16
                    npm WARN
                     addRemoteGit     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:44:5npm WARN addRemoteGit     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/access.js:8:5
                    npm WARN addRemoteGit     at FSReqWrap.oncomplete (fs.js:123:15) code: 'ENOGIT' }
                    
                    npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror https://github.com/thovid/node-viessmann-api-client.git /root/.npm/_git-remotes/git-https-github-com-thovid-node-viessmann-api-client-git-8fdff86b: undefinednpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror https://github.com/thovid/node-viessmann-api-client.git /root/.npm/_git-remotes/git-https-github-com-thovid-node-viessmann-api-client-git-8fdff86b: undefined
                    
                    npm
                     ERR! Linux 4.9.0-7-amd64npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/thovid/ioBroker.viessmannapi/tarball/master" "--production" "--save" "--prefix" "/opt/iobroker"
                    npm ERR! node v6.14.4
                    npm ERR! npm  v3.10.10
                    
                    npm ERR! code ENOGIT
                    
                    npm ERR! not found: gitnpm ERR! 
                    npm ERR! Failed using git.
                    npm ERR! This is most likely not a problem with npm itself.
                    npm ERR! Please check if you have git installed and in your PATH.
                    
                    npm ERR! Please include the following file with any support request:npm ERR!     /npm-debug.log
                    
                    process exited with code 0/code]</code>
                    
                    1 Reply Last reply Reply Quote 0
                    • thovid
                      thovid last edited by

                      Danke für's Ausprobieren! Für die Installation muss (derzeit noch) git auf dem host installiert sein. Entweder nachinstallieren (sudo apt-get install git), oder warten, bis https://github.com/thovid/node-viessman … t/issues/3 erledigt ist. Bis es soweit ist, nehme ich einen Hinweis in die Readme auf.

                      1 Reply Last reply Reply Quote 0
                      • R
                        radierer last edited by

                        Mahlzeit,

                        habs gerade erst gesehen das hier im Thread wieder Leben ist. Erstmal vielen Dank an @thovid! Ich werde den Adapter heute Abend dann auch mal direkt installieren und entsprechendes Feedback geben! 🙂

                        [Edit]

                        So denn .. hab den Adapter installiert. Lief soweit ohne Probleme. Die Werte werden korrekt aktualisiert.

                        Hat jemand vllt schon ne Idee, wieso die Werte unter gas/consumption bei Warmwasser und Heizung gleich sind? Also zumindest bei mir werden da komplett die gleichen Werte angezeigt (Vitodens 242-F)?!

                        Ansonsten wie schon gesagt ein großes Danke an thovid! 😄

                        1 Reply Last reply Reply Quote 0
                        • O
                          OMCastle last edited by

                          Auch von mir ein herzliches Dankeschön an thovid.

                          Der Adapter läuft hervorragend!!!

                          Evtl. Anrgegungen oder Ideen dann in github….

                          Grüße

                          Olli

                          1 Reply Last reply Reply Quote 0
                          • chucky666
                            chucky666 last edited by

                            Ich freue mich schon auf den Adapter

                            Ich hoffe Github install kommt bald

                            Gesendet von iPad mit Tapatalk Pro

                            1 Reply Last reply Reply Quote 0
                            • thovid
                              thovid last edited by

                              Danke euch für's ausprobieren! 🙂

                              @radierer:

                              Hat jemand vllt schon ne Idee, wieso die Werte unter gas/consumption bei Warmwasser und Heizung gleich sind? Also zumindest bei mir werden da komplett die gleichen Werte angezeigt (Vitodens 242-F)?! `
                              Das frage ich mich auch, ist bei mir auch so. Sobald die Basisfunktionalitäten im Adapter umgesetzt sind, will ich mich mal mit den Werten im Detail beschäftigen und z.B. mit den Daten ablgeichen, die direkt über die Heizung auslesbar sind…

                              1 Reply Last reply Reply Quote 0
                              • R
                                radierer last edited by

                                @thovid:

                                Das frage ich mich auch, ist bei mir auch so. Sobald die Basisfunktionalitäten im Adapter umgesetzt sind, will ich mich mal mit den Werten im Detail beschäftigen und z.B. mit den Daten ablgeichen, die direkt über die Heizung auslesbar sind… `

                                Ich könnte mir vorstellen, dass Viessmann da irgendwo ne Formel hinterlegt hat, die aufgrund Pumpendrehzahl bzw. -laufzeit, eingestellten Temperaturen etc. die einzelnen Verbräuche rechnet?! Bei der Darstellung des Solarertrages wird das ja ähnlich gemacht .. der wird auch nur anhand von Drehzahl und Dauer der Solarkreispumpe errechnet.

                                1 Reply Last reply Reply Quote 0
                                • M
                                  mamoel last edited by

                                  Der Adapter funktioniert super und das auf Anhieb. Aber leider wird für meine Kombination aus VITOTRONIC 200 (Typ KO2B) und VITORODENS 222-F (Typ BS2A) der wichtigste Wert nicht angezeigt: die Brennerstunden. Die brauche ich aber um den Ölverbrauch zu berechnen.

                                  Jetzt muss ich leider doch wieder den Raspi mit vcontrold anschließen.

                                  1 Reply Last reply Reply Quote 0
                                  • Neuschwansteini
                                    Neuschwansteini last edited by

                                    @mamoel:

                                    Der Adapter funktioniert super und das auf Anhieb. Aber leider wird für meine Kombination aus VITOTRONIC 200 (Typ KO2B) und VITORODENS 222-F (Typ BS2A) der wichtigste Wert nicht angezeigt: die Brennerstunden. Die brauche ich aber um den Ölverbrauch zu berechnen.

                                    Jetzt muss ich leider doch wieder den Raspi mit vcontrold anschließen. `

                                    Leg doch bitte ein Issue auf Github dafuer an, das interessiert noch mehr Leute und sollte eingebaut werden.. Je mehr soetwas nachfragen, umso eher passiert was 😉

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      mamoel last edited by

                                      Ich habe dein Issue einfach kommentiert.

                                      Ich hoffe die API gibt das auch wirklich her. Ich befürchte eine hinreichend genaue Berechnung der Betriebszeit anhand des Brennerstatus wird mit einem vertretbaren Pollingintervall nicht möglich sein.

                                      1 Reply Last reply Reply Quote 0
                                      • StM47
                                        StM47 last edited by

                                        Hallo,

                                        ich bekomme den Adapter nicht installiert.

                                        Folgende Fehlermeldung erhalte ich bei der Installation:

                                        ! 9039_bildschirmfoto_2018-12-20_um_15.16.31.png

                                        S 1 Reply Last reply Reply Quote 0
                                        • thovid
                                          thovid last edited by

                                          Hallo StM47,

                                          der Adapter wird über die folgende Url installiert: https://github.com/thovid/ioBroker.viessmannapi

                                          @StM47:

                                          ich bekomme den Adapter nicht installiert. `

                                          Grüße

                                          Thomas

                                          1 Reply Last reply Reply Quote 0
                                          • StM47
                                            StM47 last edited by

                                            @thovid:

                                            Hallo StM47,

                                            der Adapter wird über die folgende Url installiert: https://github.com/thovid/ioBroker.viessmannapi

                                            @StM47:

                                            ich bekomme den Adapter nicht installiert. `

                                            Grüße

                                            Thomas `

                                            Geht auch nicht

                                            Kann nicht installiert werden.

                                            ! 9039_bildschirmfoto_2018-12-22_um_12.41.57.png

                                            Edit: Der Adapter ist jetzt direkt über IOBroker verfügbar und dort konnte er installiert werden.

                                            Danke und schöne Weihnachten!!

                                            <emoji seq="1f384">🎄</emoji><emoji seq="1f385-1f3fb">🎅🏻</emoji>

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            799
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            34
                                            109
                                            19892
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo