Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Viessmann-Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Viessmann-Adapter

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

      Ich schau mir mal den ccu.io Adapter an. Kann dir aber nichts versprechen.

      1 Reply Last reply Reply Quote 0
      • D
        dtp last edited by

        @derAuge:

        Was kast du denn für eine Steuerung?

        Protokolle

        Es sind für die Vitotronic Steuerungen 3 Datenprotokolle bekannt:

        • GWG - Ältere Gaswandgeräte
        KW - Vitotronic Baureihen 50/100/200
        
        300 - Neuere Geräte wie z.B. Vitodens 300 `  
        

        Hallo Jürgen,

        ich habe eine Vitodens 200W mit eingebauter Vitotronic (VScotH01, 20CB) und benutze aktuell das P300-Protokoll. Meine XML-Dateien sind aber so konfiguriert, dass ich auch schnell zum KW2-Protokoll umschalten kann. Hab mal meine XML-Dateien angehängt. Damit kann ich problemlos alle wesentlichen Parameter meiner Anlage auslesen.

        996_vito.xml
        996_vcontrold.xml

        Mit dem Setzen von Parametern, insb. unter Verwendung des P300-Protokolls, haperte es zwar mit der Version R106 von vcontrold noch, aber evtl. klappt das jetzt mit der aktuellen Version R107, die ich kürzlich aufgespielt habe. Aber das hat ja eher nichts mit dem vitotronic-Adapter für den ioBroker zu tun.

        Bis dann,

        Thorsten

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

          @Eisbaeeer:

          So wie ich das lese, hast du einen Raspberry mit dem Linux daemon laufen? Dann könntest du die Abfrage direkt per Socket machen. Dazu müsstest du aber einem Adapter schreiben oder jemand finden, der das kann. Ich scheide da aus, da ich keine Vito habe. Sorry. `

          Schau mal unter:

          http://openv.wikispaces.com/vcontrold+mit+Raspberry+Pi

          runter bis

          10. Regelung der Vitotronic auf Basis von Wettervorhersage

          Die Regelung nutzt die Möglichkeit des Raspberry Pi mittels Node.js-Script die Wettervorhersage aus Openweathermap.org bzw. Wunderground.com einzulesen und aufgrund den Daten aus zukünftiger Temperatur und Wolkenbedeckung die Heizung mittels VCLIENT anzupassen

          Ist das ein Ansatz?

          1 Reply Last reply Reply Quote 0
          • D
            dtp last edited by

            @Eisbaeeer:

            Ich schau mir mal den ccu.io Adapter an. Kann dir aber nichts versprechen. `

            Das ist klar. Aber auf alle Fälle schon mal vielen Dank für Deine Unterstützung.

            Bis dann,

            Thorsten

            1 Reply Last reply Reply Quote 0
            • D
              dtp last edited by

              @derAuge:

              Ist das ein Ansatz? `

              Nicht so ganz. Primär möchte ich den Adapter zur Anzeige der Heizungsparameter in vis nutzen. Die Steuerung bzw. Regelung der Heizungsanlage steht dabei für mich gar nicht so im Fokus, zumal diese ja eh schon die Außentemperatur misst und berücksichtigt. Allerdings fände ich es sehr hilfreich, wenn ich über entsprechende vis-Widgets meine Heizungsanlage in den Heizung- und Warmwasser-, Nur-Warmwasser-, Abschalt-, Spar- oder Ferienbetrieb versetzen könnte.

              Bis dann,

              Thorsten

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                Hast du gesehen, dass hier http://openv.wikispaces.com/Vorschlag__ … terdateien ein User "http://www.wikispaces.com/user/view/martyk77" von der Anbindung an ioBroker schreibt?
                @martyk77 in http://openv.wikispaces.com/Vorschlag__Vito-Masterdateien:

                Servus, vielen Dank für die Datenbank und OPENV generell. Echt gut!

                Bei meiner V200KW2 bekomme ich den Ölverbrauch durch folgende Umrechnung sauber dargestellt hin:

                in vito.xml:

                <command name="getOelverbrauch" protocmd="getaddr"></command>

                <addr>7574</addr>

                <len>4</len>

                <unit>OV</unit>

                <description>Ermittle angezeigten Oelverbrauch</description>

                in

                <unit name="Oelverbrauch"><abbrev>OV</abbrev>

                <calc get="V/1000" set="V*1000"><type>int</type>

                <entity>l</entity></calc></unit>

                getestet am Objekt 🙂

                PS:Um die abgefragten Daten in Node-Red/IOBroker leichter per Node-Red "split" Kommando verarbeiten zu können, nutze ich folgende Kommandozeile in einem Node-Red Shell Block:

                vclient -h localhost -p 3002 -c getOelverbrauch getBrennerstarts -k | sed 's/v1://' | sed 's/ v[0-9]*:/;/g'

                Dann erhält man direkt einen per Semikolon getrennten String auf der Kommandozeile (497.272949;8231.000000). Besser währe aber vermutlich eine json Ausgabe zu erzeugen. `

                Gruß

                Pix

                1 Reply Last reply Reply Quote 0
                • D
                  dtp last edited by

                  Danke für den Hinweis. Der letzte Satz sagt dann aber auch, dass eine json-Ausgabe wohl die bessere Alternative wäre. Und das macht ja der vitotronic-Adapter unter CCU.IO.

                  Man könnte, denke ich, den Aufruf mittels vclient auch direkt über ein ioBroker-Skript erledigen, das regelmäßig aufgerufen wird. Die reinen Werte als solche finde ich aber nicht so hilfreich. Mir wäre lieber, sie würden in entsprechende Datenpunkte geschrieben werden, um sie ggf. auch per Flot oder dergleichen als Chart anzeigen zu können.

                  Gruß,

                  Thorsten

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators last edited by

                    Hallo THorsten,

                    wie heisst es so schön: "grau ist alle Theorie" 😉

                    Ich habe deinen schönen Post im HM-Forum natürlich auch gelesen. Daher weiss ich, dass du dich noch nicht sehr intensiv um die anderen Adapter von ioBroker außer HM-Adapter und vis gekümmert hast.

                    DSu solltest UNBEDINGT mal mit node-red spielen. Viele deiner Fragen würden sich dann sehr wahrscheinlich erübrigen.

                    Selbst ich, der kein javascript spricht, habe damit per klick und klack funktionierende Abfragen von xy ind ioBroker Datenpunkte geschafft.

                    node-red ist so toll, da kann man so viel mit relativ einfachen Mittel schaffen, dass viele Dinge, die hier später in einem Adapter geendet sind, mit einem node-red flow begonnen haben.

                    Was ich selber nicht geschafft habe war allerdings das parsen und zerlegen komplexerer Websiten.

                    Gruß

                    Rainer

                    1 Reply Last reply Reply Quote 0
                    • D
                      dtp last edited by

                      Hallo Rainer,

                      vielen Dank für den Tipp. Im Moment gibt es da für mich aber noch einige weitere Baustellen beim Umstieg von CCU.IO auf den ioBroker, die ich gerne vorher abgearbeitet hätte. Aber das mit node-red werde ich mir bei Gelegenheit sicherlich mal ansehen.

                      Kann man node-red vielleicht ein wenig mit ScriptGUI vergleichen? Klar, die Funktionalität ist eine komplett andere, aber ich meine so von der Grundidee her.

                      Gruß,

                      Thorsten

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        @dtp:

                        Kann man node-red vielleicht ein wenig mit ScriptGUI vergleichen? `
                        Leider nein, In einigen nodes musst du auch javascripts eingeben, z.B. um Daten zu zerlegen.

                        Natürlich ist die Grundidee eine graphische Programmierung, das ist aber schon alles.

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • D
                          dtp last edited by

                          Hallo Rainer,

                          das macht's nicht unbedingt leichter für mich. Ehrlich gesagt würde ich lieber nach Java fliegen, als damit zu programmieren. 8-)

                          So ein wenig hoffe ich ja noch auf den Support vom Eisbaeeern. winkewinke

                          Bis dann,

                          Thorsten

                          1 Reply Last reply Reply Quote 0
                          • D
                            dtp last edited by

                            Ich habe die Hoffnung ja irgendwie noch nicht aufgegeben. Vielleicht findet sich ja noch jemand, der sich der Sache annehmen möchte. winkewinke

                            Das würde den Schritt weg von CCU.IO hin zum ioBroker für mich dann absolut abrunden. Nur leider bin ich zumindest aktuell etwas zu "blöd" für die Adapter-Programmierung.

                            Gruß,

                            Thorsten

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

                              @dtp:

                              Eigentlich macht der Adapter nichts anderes, als die Datenpunkte einer xml-Datei (vito.xml) auszulesen sowie sie zu den einstellbaren Zeitintervallen abzufragen `
                              Wie ich das sehe, ist vito.xml eine Konfigurationsdatei, die Kommandos enthält.

                              Für das Abfragen bzw. Setzen von Werten kann http://openv.wikispaces.com/vclient dienen. Das kann man periodisch per Script ausführen und sich so die Werte in Datenpunkte holen:

                              // Aussen- und Warmwassertemperatur auslesen
                              function vito() {
                                  exec('vclient -h 127.0.0.1:3002 -c getVitoTempAussen,getVitoTempWWIst', function(err, stdout, stderr) {
                                  if (err) {
                                      log(stderr,'error');
                                      return;
                                      }
                                  log(stdout);
                                  stdout = stdout.split("\n");
                                  setState(wwtempid, parseFloat(stdout[3]));
                                  setState(aussentempid, parseFloat(stdout[1]));
                                  });
                              }
                              
                              schedule("*/1 * * * *", vito);
                              
                              

                              Erst einmal anschauen, wie das log(stdout) aussieht !

                              EDIT: Noch besser: Erst einmal auf der Console eingeben
                              > vclient -h 127.0.0.1:3002 -c getVitoTempAussen,getVitoTempWWIst
                              und die Consolenausgabe posten.

                              1 Reply Last reply Reply Quote 0
                              • Eisbaeeer
                                Eisbaeeer Developer last edited by

                                Hallo Thorsten. Ich hab dich nicht vergessen. Bin gerade in den letzten Zügen mit meinem derzeitigen Projekt.

                                In wie weit wäre es kritisch, wenn du die Schnittstelle nach aussen frei gibst? Damit ich debuggen kann? Gibt es eine Möglichkeit mit user/passwort abzusichern?

                                Oder bist du fit in VPN einrichten? Hast du eine Fritzbox?

                                1 Reply Last reply Reply Quote 0
                                • D
                                  dtp last edited by

                                  Hallo paul53 und Eisbaeeer,

                                  vielen, vielen Dank schon mal für Eure Unterstützung.

                                  @paul53: Dein Javaskript bietet mir auf jeden Fall schon mal eine sehr gute Grundlage, falls es mit dem Adapter nichts werden sollte.

                                  @Eisbaeeer: Habe zwar eine FRITZ!Box mit eingerichetem VPN-Server, allerdings würde ich dessen Daten sehr ungerne weitergeben. Gibt es da eine Möglichkeit, eine separate VPN-Testverbindung einzurichten, mit der Du nur Zugriff auf meinen mit der Heizungsanlage verbundenen Raspi erhältst, ohne dass ich Dich als weiteren User auf der FRITZ!Box einrichten muss? Auf jeden Fall könnte ich sehr leicht einen Raspi 2 einrichten, auf dem vcontrold und ioBroker (ohne Zugriff auf meine CCU) installiert sind. Oder würde Dir schon ein Raspi genügen, auf dem unter Jessie nur vcontrold läuft?

                                  Gruß,

                                  Thorsten

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dtp last edited by

                                    @paul53:

                                    EDIT: Noch besser: Erst einmal auf der Console eingeben
                                    > vclient -h 127.0.0.1:3002 -c getVitoTempAussen,getVitoTempWWIst
                                    und die Consolenausgabe posten.

                                    Hallo paul53,

                                    hier die Ausgabe:

                                    filename="2016-06-30_18h49_09.png" index="0">~~

                                    Passt soweit.

                                    Gruß,

                                    Thorsten

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

                                      Dann müsste auch das Setzen der Datenpunkte passen.

                                      Es lassen sich beliebig viele Kommandos mit einem vclient-Aufruf übergeben, d.h. alle zu lesenden Werte in einem Rutsch abfragen.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dtp last edited by

                                        Hab jetzt mal folgendes Skript ausprobiert:

                                        createState('VitoTempAussen', {
                                            type: 'string',
                                            name: 'Vitotronic Außentemperatur',
                                            def: 'leer'
                                        });
                                        
                                        var TempAussen = '';
                                        
                                        function vitotempaussen() {
                                            exec('vclient -h 127.0.0.1:3002 -c getVitoTempAussen', function(err, stdout, stderr) {
                                            if (err) {
                                                log(stderr,'error');
                                                return;
                                                }
                                            log(stdout);
                                            stdout = stdout.split("\n");
                                            TempAussen = parseFloat(stdout[1]);
                                            });
                                        }
                                        
                                        setInterval(function () {
                                            vitotempaussen();
                                            setState("javascript."+ instance + ".VitoTempAussen", TempAussen);
                                        }, 10 * 1000); // alle 10 Sekunden
                                        
                                        

                                        Das liefert mir dann zwar folgenden Output:

                                        filename="2016-06-30_19h30_52.png" index="1">~~

                                        Aber leider auch folgende Warnungen:

                                        filename="2016-06-30_19h31_35.png" index="0">~~

                                        Naja, ist immerhin ein Anfang. 😉

                                        Bis dann,

                                        Thorsten

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

                                          Du hast den Datenpunkt "VitoTempAussen" als Typ "string" erstellt, schreibst aber Daten vom Typ "number" mit setState. Lass das parseFloat im Skript weg, dann klappt es auch ohne Warnung:

                                              TempAussen = stdout[1];
                                          
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 last edited by

                                            Mit dem folgenden Skript sollte sich eine ganze Liste von Werten aus der Vitotronic in Datenpunkte übertragen lassen:

                                            `// Werte aus Vitotronic auslesen
                                            
                                            var list = ['TempAussen','TempWWIst','TempKesselSoll','TempKesselIst',...];
                                            var len = list.length;
                                            var cmds = '';
                                            
                                            for(var i = 0; i < len; i++) {
                                            	cmds = cmds + ',getVito' + list[i];
                                            	createState('Vitotronic.' + list[i], '', {
                                            		type: 'string',
                                            		read: true,
                                            		write: true,
                                            		desc: 'Vitotronic ' + list[i],
                                            		def: ''
                                            	});
                                            }
                                            
                                            cmds = cmds.substr(1);  // erstes Komma raus
                                            
                                            function vito() {
                                                exec('vclient -h 127.0.0.1:3002 -c ' + cmds, function(err, stdout, stderr) {
                                            		if (err) {
                                            			log(stderr,'error');
                                            			return;
                                                    }
                                            		stdout = stdout.split("\n");
                                            		for(var i = 0; i < len; i++) {
                                            			setState("javascript."+ instance + ".Vitotronic." + list[i], stdout[2 * i + 1]);
                                            		}
                                                });
                                            }
                                            
                                            setInterval(vito, 20 * 1000); // alle 20 Sekunden` 
                                            
                                            EDIT: Korrigiert[/i][/i][/i][/i]
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            464
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            viesmann
                                            50
                                            523
                                            125444
                                            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