Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Viessmann-Adapter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Viessmann-Adapter

Scheduled Pinned Locked Moved ioBroker Allgemein
viesmann
523 Posts 50 Posters 158.0k Views 19 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.
  • D Offline
    D Offline
    dtp
    wrote on last edited by
    #32

    Hallo paul53,

    @paul53:

    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 = ',getVito' + list[i]; createState('Vitotronic.' + list[i]), '', { type: 'string', read: true, write: true, desc: 'Vitotronic ' + list[i], def: '' }); } ! cmds = cmds.slice(0, 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` ! Bekomme da leider zwei Fehlermeldungen. Die erste dürfte aus der Zeile ! `~~[code]~~createState('Vitotronic.' + list[i]), '', {` ! resultieren. Da schieint mir die geschlossene Klammer hinter "list_~~[i]~~" zu viel. Wenn ich die entferne, erhalte ich aber noch eine Fehlermeldung:_ ! `~~[code]~~[error] javascript.0 script.js.common.Vitotronic1: ReferenceError: TempAussen is not defined at script.js.common.Vitotronic1:3:13[/code]` ! Da scheint also was mit der Variablendeklaration im Argen zu sein. ! Gruß, ! Thorsten[/i][/i][/code][/i][/i][/i][/i] `

    ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

    1 Reply Last reply
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #33

      @dtp:

      Ich bin mir da leider nicht so ganz sicher, aber glaube, dass der CCU.IO-Adapter nicht den vclient verwendet, `
      Ja, das ist richtig.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #34

        @dtp:

        Da schieint mir die geschlossene Klammer hinter "list__" zu viel.__ __Stimmt.

        Das Array "list" muss mit strings gefüllt werden:_

        var list = ['TempAussen','TempWWIst','TempKesselSoll','TempKesselIst'];
        ````_ ` 

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Reply Last reply
        0
        • D Offline
          D Offline
          dtp
          wrote on last edited by
          #35

          Jetzt bekomme ich leider einen Segmentierungsfehler angezeigt:

          javascript.0 script.js.common.Vitotronic: Segmentation fault 
          

          Ne Idee?

          Die Datenpunkte werden aber schon mal korrekt angelegt.

          filename="2016-07-02_14h22_10.png" index="0">~~

          ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

          1 Reply Last reply
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #36

            @dtp:

            Ne Idee? `
            Leider nicht :(

            Füge mal ein Log ein:

            cmds = cmds.slice(0, 1);  // erstes Komma raus
            log(cmds);
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #37

              Ich habe wohl slice() falsch angewendet. Korrigiere bitte:

              cmds = cmds.slice(1, cmds.length);  // erstes Komma raus
              

              oder besser:

              cmds = cmds.substr(1);  // erstes Komma raus
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Reply Last reply
              0
              • D Offline
                D Offline
                dtp
                wrote on last edited by
                #38

                Hallo Paul,

                damit ist die Fehlermeldung zwar verschwunden, allerdings steht in cmds immer nur der letzte Parameter drin. Also im vorliegenden Fall "getVitoTempKesselIst".

                Hatte es mit

                `cmds[i] = ',getVito' + list[i];`
                
                versucht, aber das klappt leider nicht.
                
                Gruß,
                
                Thorsten[/i][/i]
                

                ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                1 Reply Last reply
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #39

                  @dtp:

                  …allerdings steht in cmds immer nur der letzte Parameter drin. `
                  Sorry, mein Fehler. In der for-Schleife muss es richtig lauten:

                   `cmds = cmds + ',getVito' + list[i];`
                  Das hatte ich auch vor und deshalb _~~[i]~~cmds[/i]_ mit einem Leerstring initialisiert. Habe dann wohl zu schnell getippt  ;)[/i]
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    dtp
                    wrote on last edited by
                    #40

                    Hi paul53,

                    exakt. Hatte es gerade eben selbst rausgefunden. Nachdem ich gestern weiter oben ja noch geschrieben hatte, dass Javascript und das HomeMatic-Scripting durchaus Parallelen haben, ist es mir dann vorhin wie Schuppen von den Haaren gefallen. ;)

                    Auf jeden Fall danke für Deinen Support. Nun funzt das Skript.

                    Gruß,

                    Thorsten

                    ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                    1 Reply Last reply
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #41

                      @dtp:

                      Nun funzt das Skript. `
                      Das freut mich zu lesen :D
                      @dtp:

                      Allerdings fände ich es sehr hilfreich, wenn ich … meine Heizungsanlage in den Heizung- und Warmwasser-, Nur-Warmwasser-, Abschalt-, Spar- oder Ferienbetrieb versetzen könnte. `
                      Das sollte funktionieren, wenn Du das Script um das Setzen der Betriebsart ergänzt:

                      createState('Vitotronic.Betriebsart', 0, {
                          type: 'number',
                          read: true,
                          write: true,
                          desc: 'Vitotronic Betriebsart setzen',
                          min: 0, 
                          max: 4, 
                          def: 0, 
                          states: '0:Aus;1:WW;2:WW+Hzg;3:Reduziert;4:Normal'
                      });
                      
                      on("javascript." + instance + ".Vitotronic.Betriebsart", function(dp) {
                      	exec('vclient -h 127.0.0.1:3002 -c setVitoBetriebsart ' + dp.state.val, function(err, stdout, stderr) {
                      		if (err) log(stderr,'error');
                      	});
                      });
                      
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Solear
                        wrote on last edited by
                        #42

                        Es macht Spaß, auch beim zaubern zuzusehen :)

                        @dtp

                        Könntest du am Ende bitte das ganze Skript bereitstellen, damit sich nicht jeder durchwühlen muss?

                        Gerne im Beitrag 1 mit einfügen. :geek:

                        iobroker als LXC unter Proxmox

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          dtp
                          wrote on last edited by
                          #43

                          Hallo,

                          die Nacht hat das Skript gut überstanden. ;) Eigentlich sind's zwei Skripte, da ich ca. 40 bis 50 Parameter auslese und ich feststellen musste, dass dann irgendwann Feierabend war. Hab's daher einfach zweigeteilt. Vermutlich ist sogar noch ein drittes Skript erforderlich, weil die ausgegebenen Timer-Werte für die Zeitsteuerung der Heizung und des Warmwassers jeweils aus vier Zeilen bestehen, die im aktuellen Skript noch nicht korrekt ausgelesen werden. Daher habe ich die erst mal raus genommen. Da macht die Zeile

                          stdout = stdout.split("\n");
                          

                          noch Schwierigkeiten.

                          @paul53:

                          Danke für Dein "Set"-Skript. Werde ich mal ausprobieren.

                          @Solear:

                          Wird gemacht. Allerdings werde ich da wohl besser einen neuen Thread im "Skripte"-Unterforum aufmachen, weil es hier ja eigentlich um den Adapter ging. Da hoffe ich auch noch so ein wenig auf die Unterstützung von @Eisbaeeer, auch wenn dank @paul53 schon mal ein gut funktionierender Workaround gefunden wurde.

                          Der Adapter soll ein paar Dinge universeller gestalten, wie z.B. das automatische Auslesen der getaddr- und setaddr-Parameter und die einfache Möglichkeit, individuelle Polling-Zeiten für jeden Parameter setzen zu können.

                          Gruß,

                          Thorsten

                          ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                          1 Reply Last reply
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #44

                            @dtp:

                            Eigentlich sind's zwei Skripte, da ich ca. 40 bis 50 Parameter auslese und ich feststellen musste, dass dann irgendwann Feierabend war. Hab's daher einfach zweigeteilt. `
                            Das lässt sich auch in einem Skript (mit 2 Listen) machen, wobei man dann gleich in eine Liste für schnelle Abfrage (z.B. Kessel-, Vorlauftemperaturen) und für langsame Abfrage (z.B. Aussen-, Warmwassertemperatur) unterscheiden sollte.

                            `// Werte aus Vitotronic auslesen
                            
                            var list1 = ['TempKesselIst',...];  // schnell veränderliche Werte
                            var list2 = ['TempAussen','TempWWIst','TempKesselSoll',...];  // träge Werte
                            var list3 = ['TimerSoWW',...];  // Timer
                            
                            function init(list) {
                               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: ''
                                  });
                               }
                               return cmds.substr(1); // erstes Komma raus
                            }
                            
                            // Script start
                            var cmds1 = init(list1);
                            var cmds2 = init(list2);
                            var cmds3 = init(list3);
                            
                            function vito(cmds, list, timer) {
                               exec('vclient -h 127.0.0.1:3002 -c ' + cmds, function(err, stdout, stderr) {
                                  if (err) {
                                     log(stderr,'error');
                                     return;
                                  }
                                  stdout = stdout.split("\n");
                                  var len = list.length;
                                  for(var i = 0; i < len; i++) {
                                     if(timer) setState("Vitotronic." + list[i], stdout[5*i+1]+" "+stdout[5*i+2]+" "+stdout[5*i+3]+" "+stdout[5*i+4]);
                                     else setState("javascript."+ instance + ".Vitotronic." + list[i], stdout[2 * i + 1]);
                                  }
                               });
                            }
                            
                            setInterval(function() {
                               vito(cmds1, list1, false);
                            }, 20 * 1000); // alle 20 Sekunden
                            
                            setInterval(function() {
                               vito(cmds2, list2, false);
                            }, 300 * 1000); // alle 5 Minuten
                            
                            setInterval(function() {
                               vito(cmds3, list3, true);
                            }, 300 * 1000); // alle 5 Minuten` [/i][/i][/i][/i][/i]
                            

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              dtp
                              wrote on last edited by
                              #45

                              Danke. Werde ich mal testen.

                              Du hast nicht zufällig noch ne Idee bzgl. der mehrzeiligen Timer-Ausgaben? Es sind immer vier Zeilen.

                              Gruß,

                              Thorsten

                              ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                              1 Reply Last reply
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by
                                #46

                                @dtp:

                                Du hast nicht zufällig noch ne Idee bzgl. der mehrzeiligen Timer-Ausgaben? Es sind immer vier Zeilen. `
                                Was ist der Inhalt der 4 Zeilen ? Welche Kommandos gehören dazu ?

                                Da wird man nach Kommandos in der Auswertung selektieren müssen. Oder man macht eine 3. Liste (nur Timer-Kommandos) und wertet dann in einer abgewandelten Funktion anders aus als für den Rest.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Reply Last reply
                                0
                                • D Offline
                                  D Offline
                                  dtp
                                  wrote on last edited by
                                  #47

                                  Hallo paul53,

                                  die Ausgabe sieht z.B. so aus:

                                  vctrld>getVitoTimerSoWW

                                  1:An:06:30 Aus:09:00

                                  2:An:12:00 Aus:14:00

                                  3:An:17:00 Aus:20:00

                                  4:An:– Aus:--

                                  Ist bei allen Timer-Einstellungen derselbe Aufbau.

                                  Gruß,

                                  Thorsten

                                  ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                                  1 Reply Last reply
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    wrote on last edited by
                                    #48

                                    Möchtest Du die 4 Zeitspannen in einem Datenpunkt darstellen oder in 4 DP ?

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Reply Last reply
                                    0
                                    • D Offline
                                      D Offline
                                      dtp
                                      wrote on last edited by
                                      #49

                                      Nee, in einem.

                                      ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                                      1 Reply Last reply
                                      0
                                      • D Offline
                                        D Offline
                                        dtp
                                        wrote on last edited by
                                        #50

                                        @paul53:

                                        Das lässt sich auch in einem Skript (mit 2 Listen) machen… `

                                        Läuft super. Danke.

                                        ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                                        1 Reply Last reply
                                        0
                                        • paul53P Offline
                                          paul53P Offline
                                          paul53
                                          wrote on last edited by
                                          #51

                                          @dtp:

                                          Nee, in einem. `
                                          Unter der Voraussetzung, dass alle Timer-Kommandos in der Liste mit "Timer" beginnen, sollte eine Erweiterung der setState-Schleife genügen:

                                           `for(var i = 0; i < len; i++) {
                                                   if(list[i].substr(0,5) == "Timer") {
                                                   setState("Vitotronic." + list[i], stdout[2*i+1]+" "+stdout[2*i+2]+" "+stdout[2*i+3]+" "+stdout[2*i+4]);
                                                   }
                                                   else setState("Vitotronic." + list[i], stdout[2 * i + 1]);
                                                }`
                                          
                                          EDIT: Das funktioniert so einfach leider nicht, da bei den Timern der Abstand von 2 Elementen im Array nicht zutrifft. Also besser mit 3\. Liste: Habe das Skript oben entsprechend abgewandelt.[/i][/i][/i]
                                          

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          561

                                          Online

                                          32.7k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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