{"id":1868,"date":"2023-01-16T15:01:58","date_gmt":"2023-01-16T14:01:58","guid":{"rendered":"https:\/\/www.rustimation.eu\/?p=1868"},"modified":"2025-09-18T08:44:13","modified_gmt":"2025-09-18T06:44:13","slug":"a-viessmann-api-und-node-red","status":"publish","type":"post","link":"https:\/\/www.rustimation.eu\/index.php\/a-viessmann-api-und-node-red\/","title":{"rendered":"Viessmann API und Node-Red &#8211; Teil 1"},"content":{"rendered":"<p><strong>Dies ist eine eigene Serie in meinem Blog, die sich an Besitzer von Viessmann W\u00e4rmeerzeugern und sonstigen Ger\u00e4ten dieses Herstellers richtet, welche mit dem Internet verbunden sind.<\/strong><\/p>\n<h1><span style=\"font-size: 24pt;\">\u00dcberblick<\/span><\/h1>\n<p>Prinzipiell sind alle neueren Viessmann Steuerungen mit E3 Plattform oder\u00a0 Vitotronic\u00a0 (au\u00dfer Vitotronic 100) daf\u00fcr ausgelegt, mit dem Internet verbunden zu werden.<\/p>\n<p><!--more--><\/p>\n<p>Die Variantenvielfalt der Viessmann Ger\u00e4te ist schier unendlich. Die meisten Hinweise in diesem Blog gelten trotzdem f\u00fcr alle Arten von ViCare bzw. Viessmann API Implementationen. Auf einzelne Modelle einzugehen, w\u00fcrde zu weit f\u00fchren, zumal ich mich prim\u00e4r nur mit meiner eigenen Heizanlage auskenne.<\/p>\n<p>Die Verbindung ins Internet geschieht bei den sogenannten Legacy Ger\u00e4ten \u00fcber eine optische Schnittstelle namens Optolink &#8211; ein Stecker steckt im Viessmann \"V\" an der Vorderseite des Ger\u00e4ts und ist mit dem Vitoconnect K\u00e4stchen verbunden. Bei den neueren One Base (E3) Ger\u00e4ten\u00a0 erfolgt die Internetverbindung direkt mit der integrierten\u00a0 WiFi Connectivity des Ger\u00e4ts &#8211; z.B. bei Gasheizger\u00e4ten ab\u00a0 Baujahren ab ca. 2020. <a href=\"https:\/\/www.viessmann.de\/de\/produkte\/steuerung-und-konnektivitaet\/vitoconnect.html\" target=\"_blank\" rel=\"noopener\">Kompatibilit\u00e4tsliste siehe hier <\/a>(bei <em>unterst\u00fctzte Regelungen<\/em>).<\/p>\n<p>Otto Normalverwender wird derartige Anlagen meist \u00fcber die ViCare App auf dem Handy kontrollieren und steuern. Das funktioniert, indem die Anlage \u00fcber das Vitoconnect- oder integrierte Interface eine Internetverbindung zu den Viessmann Servern aufbaut und diese dann\u00a0 mit ViCare App auf dem Mobiltelefon kommmunizieren. Kommunikation \"\u00fcber Bande\" sozusagen.<\/p>\n<p><a href=\"https:\/\/www.rustimation.eu\/img_1991\/\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1870 aligncenter\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/IMG_1991-768x1024.png\" alt=\"\" width=\"245\" height=\"327\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/IMG_1991-768x1024.png 768w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/IMG_1991-225x300.png 225w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/IMG_1991-1152x1536.png 1152w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/IMG_1991.png 1536w\" sizes=\"auto, (max-width: 245px) 100vw, 245px\" \/><\/a><\/p>\n<p>Viessmann ist hier also immer \"the man in the middle\".\u00a0 Das hat dann auch den Vorteil, dass die eigene Heizung von \u00fcberall auf der Welt angefunkt werden kann, ohne dass man irgendwelche Ports am Router freischalten muss. Bei den millionenfach verbauten IP \u00dcberwachungskameras, Rasenm\u00e4h- und Putzrobotern funktioniert das genauso.<\/p>\n<p>Manche sehen das auch kritisch, weil Viessmann so eine Menge \u00fcber unser Heiz- und K\u00fchlverhalten lernt. Ich habe allerdings den Eindruck, dass sich besonders diejenigen dar\u00fcber aufregen, welche bedenkenlos Whatsapp, Facebook, Tiktok \ud83d\ude16, Google Search und Maps oder Youtube verwenden. Immerhin stehen die Server nicht in China.<\/p>\n<p>Die kommerzielle Seite, n\u00e4mlich, dass man unter Umst\u00e4nden f\u00fcr das Beziehen seiner eigenen Daten Geld bezahlen muss, sehe ich allerdings auch ausgsprochen kritisch.<\/p>\n<p><strong>Update<\/strong>: mit der ab September 2025 geltenden Gesetze bzgl. der Hoheit \u00fcber die eigenen Daten d\u00fcrfte das Thema kostenpflichtige \"Premium-Daten\" inzwischen Geschichte sein.<\/p>\n<p>Gro\u00dfartige Sorgen um die Sicherheit der Daten mache ich mir weniger. Der Zugang zu den Viessmann Servern ist ziemlich vernagelt und wohl nur schwer zu knacken &#8211; aber wer wei\u00df&#8230;<\/p>\n<h2>Viessmann API<\/h2>\n<p>Irgendwann ist man bei Viessmann wohl auf die Idee gekommen, das <em>Application Program Interface<\/em> (API) \u00f6ffentlich zug\u00e4nglich zu machen, um allen, die sich intensiver mit Internet of Things besch\u00e4ftigen, eine M\u00f6glichkeit zur Integration zu bieten. Hierf\u00fcr gibt es auch eine Reihe von Schnittstellen zu Hausautomatisierungsl\u00f6sungen wie FHEM, Open Hab, Home Assistant, Homematic und so weiter.<\/p>\n<p>Das Ganze funktioniert wieder \u00e4hnlich wie bei der ViCare App. Die IoT L\u00f6sung zuhause funkt den oder die Viessmann Server an, holt sich Daten, verarbeitet diese und stellt sie dar. Ebenso k\u00f6nnen die Parameter der Anlage (Temperaturen oder Betriebsmodi) eingestellt werden. Auch hier also wieder der \"Viessmann in the middle\" .<\/p>\n<p>Die kostenfreien Basisfunktionen der API reichen f\u00fcr die meisten Anwendungsf\u00e4lle aus, weitergehende Abfragen und Funktionen k\u00f6nnen kostenpflichtig (ViCare+) hinzubestellt werden.<\/p>\n<h2>Alternative lokale Anbindungen<\/h2>\n<p>Rein lokale, inoffizielle\u00a0 L\u00f6sungen unter Umgehung der Viessmann Server gibt es\u00a0 auch, viele sind meiner Meinung nach nicht so ausgereift und generell von der Umsetzung her sehr viel anspruchsvoller. Zwei L\u00f6sungen m\u00f6chte ich dennoch erw\u00e4hnen:<\/p>\n<h3>Optolink Splitter<\/h3>\n<p>Der Viessman User HerrP hat im April 2024 seinen Optolink Splitter <a href=\"https:\/\/community.viessmann.de\/t5\/Konnektivitaet\/Optolink-Switch-Splitter-Vitoconnect-MQTT-amp-TCP-IP\/td-p\/439982\" target=\"_blank\" rel=\"noopener\"> in der Viessmann Community<\/a> ver\u00f6ffentlicht, mit dem er eine sehr interessante L\u00f6sung zur Offline-Verarbeitung der Viessmann Daten aufzeigt &#8211; und das ohne auf VitoConnect zu verzichten.<br \/>\nLeider funktioniert diese L\u00f6sung nur f\u00fcr die \u00e4lteren Viessmann Ger\u00e4te mit Optolink Schnittstelle.<br \/>\nDas Ganze ist ziemlich genial: Ein Raspberry Pi (o.\u00e4.) wird anstatt des VitoConnect K\u00e4stchens an die Optolink Schnittstelle angesteckt und das VitoConnect mit einem USB2TTL Converter an die serielle Schnittstelle des Raspi angeschlossen.<br \/>\nEin Python Skript auf dem Pi zieht die Daten aus dem Ger\u00e4t und reicht sie an VitoConnect und\/oder per MQTT oder TCP\/IP an die Hausautomatisierung weiter.<br \/>\nDie Parametrisierung, d.h. die Adressen der Viessmann Datenpunkte und deren Abfrage bzw. Manipulation ist nicht trivial aber f\u00fcr ambitionierte IoT Bastler l\u00f6sbar.<br \/>\nEine umfassende Beschreibung findet sich in <a href=\"https:\/\/github.com\/philippoo66\/optolink-splitter\/\" target=\"_blank\" rel=\"noopener\">Github<\/a>. Ein <a href=\"https:\/\/www.youtube.com\/watch?v=95WIPFBxMsc\" target=\"_blank\" rel=\"noopener\">Youtube Video<\/a> gibt's auch.<br \/>\nIch habe mein Node-Red Dashboard inzwischen komplett auf den Optolink-Splitter umgestellt und habe meine Erfahrungen <a href=\"https:\/\/www.rustimation.eu\/index.php\/viessmann-ohne-api-optolink-splitter-1\/\">hier ver\u00f6ffentlicht<\/a>.<\/p>\n<h3>open3e<\/h3>\n<p>Hier werden die neueren E3 Ger\u00e4te \u00fcber den CAN Bus angesprochen. Informationen gibt's bei der <a href=\"https:\/\/community.viessmann.de\/t5\/Konnektivitaet\/CAN-Bus-Home-Automation-E3-Generation-lokal-und-kostenlos\/td-p\/356066\" target=\"_blank\" rel=\"noopener\">Viessmann Community<\/a> und\/oder <a href=\"https:\/\/github.com\/open3e\/open3e\" target=\"_blank\" rel=\"noopener\">Github.<\/a><\/p>\n<h2>Node-Red<\/h2>\n<p>Ich pers\u00f6nlich finde die fertigen Haus Automatisierungssysteme etwas zu komplex und m\u00e4chtig f\u00fcr meine kleinen Smart Home Anwendungen. Au\u00dferdem sind die Smart Home Systeme oft nur mit propriet\u00e4ren Protokollen und Aktoren (Schaltern, Sensoren etc.) und extra Gateway verwendbar und so bei kleinen IoT Installationen auch relativ teuer.<\/p>\n<p>Meine Anspr\u00fcche sind deutlich geringer. Mein IoT Zoo enth\u00e4lt neben den \u00fcblichen Basteleien mit Shelly Schaltern (\u00fcber WiFi), selbstgel\u00f6teten WiFi <a href=\"https:\/\/www.rustimation.eu\/index.php\/esp8266-d1-mini-sensor-mit-mqtt\/\" target=\"_blank\" rel=\"noopener\">Sensoren<\/a> auf Basis ESP8266, MQTT als Datenprotokoll, einen Raspberry Pi als \"Gehirn\" mit <strong>Node-Red<\/strong> als universeller und leicht erlernbarer Programmierplattform. So bleibt alles unter meiner Kontrolle. Zus\u00e4tzlich zur Vitodens 200-W B2HB Therme mit VitoConnect Opto2 habe ich noch drei Viessmann Solarthermie Panels, einen Hoxter Heizkamin und einen Viessmann (Italia) Solarcell HSK 1000 Liter Kombispeicher.<\/p>\n<p>Node-Red ist ein graphisches Entwicklungstool zum Programmieren von Abl\u00e4ufen. Es ist wunderbar auf einem Raspberry Pi (ab Pi Zero) lauff\u00e4hig, wobei ich komplexere Anwendungen eher auf einem Pi 3B+ oder Pi 4B laufen lassen w\u00fcrde.<\/p>\n<p><span style=\"color: #000000;\">Ferner empfehle ich, dass der Raspberry Pi mit einer SSD Festplatte versehen wird, wenn man einmal \u00fcber das Experimentierstadium hinaus ist. Allermindestens sollte eine 32GB\u00a0 oder besser eine 64GB SD Karte in \"Industrial Quality\" oder \"Max Endurance\" verwendet werden (z.B. <a href=\"https:\/\/www.reichelt.de\/microsdxc-speicherkarte-64gb-sandisk-max-endurance-sdsqqvr064ggn6ia-p298161.html?&amp;nbc=1\">diese hier<\/a>). Unsere Software Komponenten schreiben jede Menge Logs auf die \"Platte\". Auch wenn diese Logs nach einiger Zeit gel\u00f6scht werden, eine SD Karte vertr\u00e4gt\u00a0 nur eine begrenzte Anzahl von L\u00f6sch-\/Schreibzyklen. Bei einer gro\u00dfen Kapazit\u00e4t sorgt das Disk Management f\u00fcr eine bessere Verteilung. Statt einer SSD Festplatte kann man notfalls auch\u00a0 einen USB Stick mit entsprechender Kapazit\u00e4t verwenden. Wie Datentr\u00e4ger am USB Port eingerichtet werden, steht vielfach beschrieben im Internet.<\/span><\/p>\n<p>Die Ablauflogik wird \u00fcber Drag &amp; Drop von sogenannten Nodes (Knoten) realisiert, komplexere Operationen werden in Javascript Funktionsbl\u00f6cken implementiert. Allgemeine Programmierkenntnisse (z.B. Python oder BASIC) braucht man schon, Javascript ist dem sehr \u00e4hnlich und man kommt relativ schnell damit zurecht. Zudem unterst\u00fctzt der Editor beim Erstellen von Funktionen, indem er auf Fehler hinweist. Gew\u00f6hnungsbed\u00fcrftig ist, dass Zeilen in der Regel mit einem Semikolon abgeschlossen werden m\u00fcssen. Ferner m\u00fcssen Variablen immer vorher mit <em>var<\/em> oder <em>let<\/em> definiert werden. Daf\u00fcr ist Javascript ausgesprochen tolerant bei Variablentypen wie String oder Float.<\/p>\n<p>Das Sch\u00f6ne ist, dass es bei Node-Red bereits existierende Verkn\u00fcpfungen (Interface-Nodes) mit dem Raspberry Pi (GPIO), dem MQTT Protokoll, One Wire Sensoren, Datenbanken und externen Diensten (Wetter,\u00a0 Astronomie etc.) gibt. Die selbst entwickelten Logiken bzw. Abl\u00e4ufe lassen sich \u00fcber ein Dashboard visualisieren. Auch einfache Diagramme zur Wertedarstellung sind m\u00f6glich. Wenn man etwas tiefer einsteigt, sind wirklich sehr h\u00fcbsche und funktionale Panels realisierbar.<\/p>\n<p>Der erste Schritt ist die Installation von Node-Red auf dem Raspberry Pi. Das Ganze ist hier sehr gut (auf englisch) beschrieben: <a href=\"https:\/\/nodered.org\/docs\/getting-started\/raspberrypi\" target=\"_blank\" rel=\"noopener\">https:\/\/nodered.org\/docs\/getting-started\/raspberrypi<\/a><\/p>\n<p>Weiterf\u00fchrende Tutorials gibt es tonnenweie (meist auf englisch) im Internet.<\/p>\n<figure id=\"attachment_2251\" aria-describedby=\"caption-attachment-2251\" style=\"width: 1680px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/2023-02-15-16_28_33-Centralina-\u2013-Mozilla-Firefox.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2251 size-full\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/2023-02-15-16_28_33-Centralina-\u2013-Mozilla-Firefox.png\" alt=\"\" width=\"1680\" height=\"1050\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/2023-02-15-16_28_33-Centralina-\u2013-Mozilla-Firefox.png 1680w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/2023-02-15-16_28_33-Centralina-\u2013-Mozilla-Firefox-300x188.png 300w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/2023-02-15-16_28_33-Centralina-\u2013-Mozilla-Firefox-1024x640.png 1024w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/2023-02-15-16_28_33-Centralina-\u2013-Mozilla-Firefox-768x480.png 768w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2023\/01\/2023-02-15-16_28_33-Centralina-\u2013-Mozilla-Firefox-1536x960.png 1536w\" sizes=\"auto, (max-width: 1680px) 100vw, 1680px\" \/><\/a><figcaption id=\"caption-attachment-2251\" class=\"wp-caption-text\">Mein Energie-Dashboard mit Heizkreis-Temperatureinstellung<\/figcaption><\/figure>\n<p>Geplant bzw. verf\u00fcgbar sind in diesem Blog folgende Artikel:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/1_zugang_api\/\">Teil 2 &#8211; Zugriff auf die API<\/a><\/li>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/vicare-daten-abfragen\/\">Teil 3 &#8211; Daten abfragen und visualisieren<\/a><\/li>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/viessmann-api-und-node-red-teil-4\/\">Teil 4 &#8211; Werte \u00e4ndern<\/a><\/li>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/viessmann-api-und-node-red\/\">Teil 5 &#8211; Node-Red Dashboard Tipps &amp; Tricks<\/a><\/li>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/viessmann-api-und-node-red-teil-6\/\">Teil 6a &#8211; Installation der InfluxDB<\/a><\/li>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/viessmann-api-und-node-red-teil-6b\/\">Teil 6b &#8211; InfluxDB und Diagramme<\/a><\/li>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/vicare-solarertrag-ausrechnen\/\">Teil 7 &#8211; Solarthermie: Ertrag ohne W\u00e4rmemengenmesser ausrechnen<\/a><\/li>\n<li><a href=\"https:\/\/www.rustimation.eu\/index.php\/viessmann-api-und-node-red-teil-8\/\">Teil 8 &#8211; Sonstige Tipps &amp; Tricks<\/a>\n<ul>\n<li>Kommunikationsfehler abfangen<\/li>\n<\/ul>\n<\/li>\n<li><a class=\"row-title\" href=\"https:\/\/www.rustimation.eu\/index.php\/viessmann-api-und-node-red-die-leidige-zirkulation\/\" aria-label=\"\u201eViessmann API und Node Red \u2013 Teil 9 \u2013 Steuern der Warmwasser Zirkulationspumpe \u00fcber die API\u201c (Bearbeiten)\">Teil 9 &#8211; Steuern der Warmwasser Zirkulationspumpe \u00fcber die API<\/a><\/li>\n<li>Geofencing kostenlos.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Allgemeiner \u00dcberblick \u00fcber die Viessmann Internet Connectivity und Node-Red als universeller, grafischer Entwicklungsplattform zur Integration der Viessmann W\u00e4rmeerzeuger \u00fcber API<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53,4,151,10,159,190],"tags":[164,163,162,174],"class_list":["post-1868","post","type-post","status-publish","format-standard","hentry","category-iot","category-json","category-node-red","category-raspberry-pi","category-viessmann-api","category-viessmann-api-2","tag-allgemeines","tag-einleitung","tag-ueberblick","tag-viessmann-api"],"_links":{"self":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/1868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1868"}],"version-history":[{"count":1,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/1868\/revisions"}],"predecessor-version":[{"id":3676,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/1868\/revisions\/3676"}],"wp:attachment":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/categories?post=1868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/tags?post=1868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}