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.
    • paul53
      paul53 last edited by

      @dtp:

      Allerdings verstehe ich da was nicht so ganz. `
      Wenn man mit setState() oder getState() einen Datenpunkt innerhalb der JS-Instanz des Skriptes adressiert, muss nicht die gesamte ID angegeben werden, sondern es genügt der Teil, mit dem der Datenpunkt per createState() erzeugt wurde.

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

        Ah. Danke für die Aufklärung.

        Gruß,

        Thorsten

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

          Jetzt hätte ich doch noch ein paar weitere Frage.

          Ist es möglich, direkt im Skript einzelne Datenpunkte (insb. Betriebsart, BetriebsartHK, BetriebParty, BetriebSpar) in entsprechend angelegte Systemvariable der CCU2 zu schreiben, oder sollte ich das doch lieber separat machen?

          Zum Steuern per Skript:

          Die weiter oben definierten Zustände

          states: '0:Aus;1:WW;2:WW+Hzg;3:Reduziert;4:Normal'
          

          dürften zu einem Problem führen, da die Vitotronic gemäß der vcontrold.xml direkt die Werte

          'Abschaltbetrieb', 'Nur Warmwasser', 'Heizen und Warmwasser', 'Dauernd red. Betrieb' und 'Dauernd Normalbetrieb' als Steuerparameter benötigt. Sind Leerschritte ein Problem?

          Gruß,

          Thorsten

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

            @dtp:

            Ist es möglich, direkt im Skript einzelne Datenpunkte (insb. Betriebsart, BetriebsartHK, BetriebParty, BetriebSpar) in entsprechend angelegte Systemvariable der CCU2 zu schreiben, oder sollte ich das doch lieber separat machen? `
            Ich würde das separat machen.
            @dtp:

            da die Vitotronic gemäß der vcontrold.xml direkt die Werte

            'Abschaltbetrieb', 'Nur Warmwasser', 'Heizen und Warmwasser', 'Dauernd red. Betrieb' und 'Dauernd Normalbetrieb' als Steuerparameter benötigt. `
            Wozu gibt es das Kommando "setVitoBetriebsart" in der vito.xml, wenn man es nicht nutzen kann ?

            Da der Datenpunkt "Betriebsart" bereits in list1 vorhanden ist und somit der Datenpunkt "Vitotronic.Betriebsart" bereits als Typ "string" existiert, muss der Datenpunkt zum Setzen der Betriebsart einen anderen Namen erhalten, z.B.

            createState('Vitotronic.setBetriebsart', 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.setBetriebsart", function(dp) {
               exec('vclient -h 127.0.0.1:3002 -c setVitoBetriebsart 0' + dp.state.val, function(err, stdout, stderr) {
                  if (err) log(stderr,'error');
               });
            });
            
            1 Reply Last reply Reply Quote 0
            • D
              dtp last edited by

              @paul53:

              Wozu gibt es das Kommando "setVitoBetriebsart" in der vito.xml, wenn man es nicht nutzen kann ? `

              Kann man doch. Nur eben nicht mit den von Dir im Skript angegebenen Parametern "0:Aus;1:WW;2:WW+Hzg;3:Reduziert;4:Normal", da diese so nicht in der vcontrold.xml definiert sind:

               <unit name="Betriebsart"><abbrev>BA</abbrev>
              	<type>enum</type></unit> 
              

              Man muss also mit "Abschaltbetrieb;Nur Warmwasser;Heizen und Warmwasser;Dauernd red. Betrieb;Dauernd Normalbetrieb" arbeiten, die dann von der XML-Datei in die jeweiligen Hex-Werte 00 bis 04 übersetzt werden.

              Die Frage war daher, ob ich in Deinem Skript die Zeile

              states: '0:Aus;1:WW;2:WW+Hzg;3:Reduziert;4:Normal'
              

              durch die Zeile

              states: 'Abschaltbetrieb;Nur Warmwasser;Heizen und Warmwasser;Dauernd red. Betrieb;Dauernd Normalbetrieb'
              

              ersetzen kann?

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

                Muss man wirklich den Text (text='betriebsartxx') an das Kommando übergeben ? Das würde mich sehr wundern 😮 Meiner Meinung nach sollte der Hexwert (als 2-Zeichen-String) der mit bytes='0n' definiert ist, übergeben werden.@dtp:

                Die Frage war daher, ob ich in Deinem Skript die Zeile

                Code: Alles auswählen

                states: '0:Aus;1:WW;2:WW+Hzg;3:Reduziert;4:Normal'

                durch die Zeile

                Code: Alles auswählen

                states: 'Abschaltbetrieb;Nur Warmwasser;Heizen und Warmwasser;Dauernd red. Betrieb;Dauernd Normalbetrieb'

                ersetzen kann? `
                Nein, das funktioniert so nicht.

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

                  Wenn das Kommando "setVitoBetriebsart" tatsächlich den Text übergeben haben will, muss man mit switch / case arbeiten:

                  createState('Vitotronic.setBetriebsart', 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.setBetriebsart", function(dp) {
                     var text;
                     switch(dp.state.val) {
                     	case 0: text = 'Abschaltbetrieb';
                     		break;
                     	case 1: text = 'Nur Warmwasser';
                     		break;
                     	case 2: text = 'Heizen und Warmwasser';
                     		break;
                     	case 3: text = 'Dauernd red. Betrieb';
                     		break;
                     	case 4: text = 'Dauernd Normalbetrieb';
                     		break;
                     	default: text = '?';
                     }
                     exec('vclient -h 127.0.0.1:3002 -c setVitoBetriebsart ' + text, function(err, stdout, stderr) {
                        if (err) log(stderr,'error');
                     });
                  });
                  
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 last edited by

                    @paul53:

                    Wenn das Kommando "setVitoBetriebsart" tatsächlich den Text übergeben haben will, muss man mit switch / case arbeiten `
                    oder mit einem Text-Array:

                    var texte = ['Abschaltbetrieb','Nur Warmwasser','Heizen und Warmwasser','Dauernd red. Betrieb','Dauernd Normalbetrieb'];
                    
                    on("javascript." + instance + ".Vitotronic.setBetriebsart", function(dp) {
                       exec('vclient -h 127.0.0.1:3002 -c setVitoBetriebsart ' + texte[dp.state.val], function(err, stdout, stderr) {
                          if (err) log(stderr,'error');
                       });
                    });
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • D
                      dtp last edited by

                      Danke. Werde es ausprobieren.

                      Gruß,

                      Thorsten

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

                        Hm.

                        Eigentlich hat das Skript soweit gut funktioniert. Doch seit den letzten ioBroker-Updates erhalte ich folgende Fehlermeldungen:

                        filename="2016-07-17_10h47_52.png" index="0">~~

                        EDIT: Ein Neustart des Raspi scheint das Problem gelöst zu haben.

                        Gruß,

                        Thorsten

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

                          Ich habe folgende script geschrieben:

                          GET:

                          `// NETWORK PARAMS
                          var srv_ip   = 'vcontrol';
                          var srv_port = 3002;
                          
                          // VCONTROLD VARIABLES TO GET
                          var vcontrolget = [
                              {
                                  id:'vcontrold.0.get.TempA',
                                  type: 'number',
                                  name: 'Vitotronic Temperatura Esterna',
                                  role: 'value.temperature',
                                  read: true,
                                  write: false,
                                  def: 0,
                                  min: -50,
                                  max: 100,
                                  re: /^(\d+\.\d+) Grad Celsius\s*$/,
                                  cmd: "getTempA",
                              },
                              {
                                  id:'vcontrold.0.get.TempWWist1',
                                  type: 'number',
                                  name: 'Vitotronic Temperatura acqua calda bassa',
                                  role: 'value.temperature',
                                  read: true,
                                  write: false,
                                  def: 0,
                                  min: -50,
                                  max: 100,
                                  re: /^(\d+\.\d+) Grad Celsius\s*$/,
                                  cmd: "getTempWWist1",
                              },
                              {
                                  id:'vcontrold.0.get.TempWWist2',
                                  type: 'number',
                                  name: 'Vitotronic Temperatura acqua calda alta',
                                  role: 'value.temperature',
                                  read: true,
                                  write: false,
                                  def: 0,
                                  min: -50,
                                  max: 100,
                                  re: /^(\d+\.\d+) Grad Celsius\s*$/,
                                  cmd: "getTempWWist2",
                              },
                              {
                                  id:'vcontrold.0.get.TempKist',
                                  type: 'number',
                                  name: 'Vitotronic Temperatura Puffer basso (riscaldamento)',
                                  role: 'value.temperature',
                                  read: true,
                                  write: false,
                                  def: 0,
                                  min: -50,
                                  max: 100,
                                  re: /^(\d+\.\d+) Grad Celsius\s*$/,
                                  cmd: "getTempKist",
                              },
                              {
                                  id: 'vcontrold.0.get.TempVListM1',
                                  type: 'number',
                                  name: 'Vitotronic Temperatura di mandata',
                                  role: 'value.temperature',
                                  read: true,
                                  write: false,
                                  def: 0,
                                  min: -50,
                                  max: 100,
                                  re: /^(\d+\.\d+) Grad Celsius\s*$/,
                                  cmd: "getTempVListM1",
                              },
                              {
                                  id:'vcontrold.0.get.BetriebArtM1',
                                  type: 'string',
                                  name: 'Vitotronic Modalità funzionamento',
                                  role: 'indicator',
                                  read: true,
                                  write: false,
                                  re: /^\W*(\w+\+*\w*)\W*$/,
                                  cmd: "getBetriebArtM1",
                              }
                          ];
                          
                          var getcmd ="";
                          
                          for (var i in vcontrolget) {
                              console.log('vcontrolget[i].cmd' + vcontrolget[i].cmd); 
                              getcmd += vcontrolget[i].cmd + "\r\n";
                              createState(vcontrolget[i].id, {
                                  type: vcontrolget[i].type,
                                  name: vcontrolget[i].name,
                                  role: vcontrolget[i].role,
                                  read: vcontrolget[i].read,
                                  write: vcontrolget[i].write,
                                  def: vcontrolget[i].def,
                                  min: vcontrolget[i].min,
                                  max: vcontrolget[i].max 
                          });
                          }
                          getcmd += "quit\r\n";
                          console.log('cmd: '+getcmd);
                          
                          function vitoget () {
                          var net = require('net');
                          
                          var client = new net.Socket();
                          client.connect(srv_port, srv_ip, function() {
                          	console.log('Connected');
                          	client.write(getcmd);
                          });
                          
                          var i=0;
                          var readingOK=true;
                          var data_tmp=[];
                          
                          client.on('data', function(data) {
                              var data_str;
                          	console.log('Received: ' + data);
                              var dummyre=/^vctrld/;
                              data_str=String(data);
                              if (dummyre.test(data_str)) {
                                  console.log('ignored: ' + data);
                          
                              } else if (vcontrolget[i].re.test(data_str)) {
                           	    data_tmp[i] = data_str.replace(vcontrolget[i].re, "$1");
                            	    console.log('data ok: ' +data_tmp[i]);
                          	    i++;
                              } else {
                                  readingOK=false;
                                  console.log('faulty data: ' + data);
                              }
                          });
                          
                          client.on('close', function() {
                              client.destroy();
                          	console.log('Connection closed');
                          	if (readingOK) {
                                  for (var i in vcontrolget) {
                                      console.log('store data: ' + vcontrolget[i].id +" = " +data_tmp[i]);
                          	        setState(vcontrolget[i].id, data_tmp[i],true);
                                  }
                          	} else {
                          	    console.log('data faulty'); 
                          	}
                          });   
                          }
                          
                          schedule("* * * * *", function () {vitoget();});  // ogni minuto` 
                          
                          SET:
                          `~~[code]~~// NETWORK PARAMS
                          var srv_ip   = 'vcontrol';
                          var srv_port = 3002;
                          
                          // VCONTROLD VARIABLES TO SET
                          var vcontrolset = [
                              {
                                  id:'vcontrold.0.set.BetriebArtM1',
                                  getid: 'vcontrold.0.get.BetriebArtM1',
                                  type: 'string',
                                  name: 'Vitotronic Modalità funzionamento',
                                  role: 'indicator',
                                  read: true,
                                  write: true,
                                  cmd: "setBetriebArtM1",
                              }
                          ];
                          
                          for (var i in vcontrolset) {
                              createState(vcontrolset[i].id, {
                                  type: vcontrolset[i].type,
                                  name: vcontrolset[i].name,
                                  role: vcontrolset[i].role,
                                  read: vcontrolset[i].read,
                                  write: vcontrolset[i].write,
                                  def: vcontrolset[i].def,
                                  min: vcontrolset[i].min,
                                  max: vcontrolset[i].max 
                              });
                          
                          }
                          
                          function vitoset() {
                          
                          var setcmd ="";
                          var param = "";
                          var getparam = "";
                          var cmdflag=false;
                          
                          for (var i in vcontrolset) {
                              console.log('vcontrolset[i].cmd' + vcontrolset[i].cmd); 
                          
                              param=getState(vcontrolset[i].id).val;
                              getparam=getState(vcontrolset[i].getid).val;
                              console.log('param: ' + param); 
                              console.log('getparam: ' + getparam); 
                          
                              if (param === null) {
                                  setState(vcontrolset[i].id,getparam,true);
                              } else if (param != getparam) {
                                  setcmd += vcontrolset[i].cmd + " " + param +"\r\n";
                                  cmdflag=true;
                              }
                          }
                          
                          setcmd += "quit\r\n";
                          console.log('cmd: '+setcmd);
                          
                          var net = require('net');
                          
                          var client = new net.Socket();
                          
                          if (cmdflag) {
                          client.connect(srv_port, srv_ip, function() {
                          	console.log('Connected');
                          	client.write(setcmd);
                          });
                          
                          client.on('data', function(data) {
                              var data_str;
                          	console.log('Received: ' + data);
                          });
                          
                          client.on('close', function() {
                              client.destroy();
                          	console.log('Connection closed');
                          
                          });   
                          
                          }
                          
                          }
                          
                          schedule("* * * * *", function () {vitoset();});  // ogni minuto` 
                          
                          Bei mit läuft vcontrold auf eine andere box und soll ich über tcp/ip zugreifen.
                          
                          Wass mich noch stört ist dass die object unter javascript erzeugt werden: javascript.0.vcontrold...bla bla
                          
                          Wie kann ich die auf dem root Baum erzeugen lassen (von javascript)?
                          
                          Danke für ein Tip, fileicht am schluss kann ich den Script in ein richtige Adapter umwandeln?!
                          
                          Grüsse
                          
                          Stek[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/code][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
                          
                          1 Reply Last reply Reply Quote 0
                          • D
                            dtp last edited by

                            Also meine Skripte sehen derzeit folgendermaßen aus.

                            Für get ("Vitotronic_get"):

                            ! ```
                            `// Werte aus Vitotronic auslesen
                            ! var list1 = ['Betriebsart','BetriebsartHK','BetriebParty','BetriebSpar','TempAussen','TempWWIst','TempSpeicher','TempWWAuslauf','TempKesselIst','TempRLIst','TempRaumHK','TempSolarkol','TempSolarspeicher','StatusPumpeSpeicher','StatusFlamme','StatusPumpeIntern','DrehzahlPumpeIntern','StatusPumpeHK','StatusPumpeZirku','StatusUmschaltventil','Systemzeit'];
                            var list2 = ['BetriebFerien','BeginnFerien','EndeFerien','TempRaumNorSoll','TempRaumRedSoll','TempPartySoll','TempWWSoll','TempKesselSoll','TempVLSoll','KennlinieNeigung','KennlinieNiveau','LaufzeitBrenner','StartsBrenner','LaufzeitSolar','LeistungSolar','ErtragTagSolar'];
                            var list3 = ['StatusStoerung','Stoerung1','Stoerung2','Stoerung3','Stoerung4','Stoerung5','Stoerung6','Stoerung7','Stoerung8','Stoerung9','Stoerung10','Anlagenschema'];
                            var list4 = ['TimerMoHeizen','TimerDiHeizen','TimerMiHeizen','TimerDoHeizen','TimerFrHeizen','TimerSaHeizen','TimerSoHeizen','TimerMoWW','TimerDiWW','TimerMiWW','TimerDoWW','TimerFrWW','TimerSaWW','TimerSoWW','TimerMoPumpeZirku','TimerDiPumpeZirku','TimerMiPumpeZirku','TimerDoPumpeZirku','TimerFrPumpeZirku','TimerSaPumpeZirku','TimerSoPumpeZirku'];
                            ! // Objekte setzen
                            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 löschen
                            }
                            ! // Skript starten
                            var cmds1 = init(list1);
                            var cmds2 = init(list2);
                            var cmds3 = init(list3);
                            var cmds4 = init(list4);
                            ! 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("javascript."+ instance + ".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]);
                            }
                            });
                            }
                            ! // Zeitintervalle definieren
                            setInterval(function() {
                            vito(cmds1, list1, false);
                            }, 180 * 1000); // alle 3 Minuten

                            setInterval(function() {
                            vito(cmds2, list2, false);
                            }, 1800 * 1000); // alle 30 Minuten

                            ! setInterval(function() {
                            vito(cmds3, list3, false);
                            }, 3600 * 1000); // alle 60 Minuten
                            ! setInterval(function() {
                            vito(cmds4, list4, true);
                            }, 7200 * 1000); // alle 120 Minuten ! Für set ("Vitotronic_set"): ! >! ~~[spoiler]~~[code]// Werte in Vitotronic schreiben
                            ! on("hm-rega.0.3903", function(obj) { // Betriebsart
                            var text;
                            switch(obj.state.val) {
                            case 0: text = 'Abschaltbetrieb';
                            break;
                            case 1: text = 'Nur Warmwasser';
                            break;
                            case 2: text = 'Heizen und Warmwasser';
                            break;
                            case 3: text = 'Dauernd red. Betrieb';
                            break;
                            case 4: text = 'Dauernd Normalbetrieb';
                            break;
                            }
                            log("setVitoBetriebsart: " + text);
                            exec('vclient -h 127.0.0.1:3002 -c "setVitoBetriebsart ' + text + '"', function(err, stdout, stderr) {
                            if (err) log(stderr,'error');
                            });
                            });
                            ! on("hm-rega.0.2883", function(obj) { // Partybetrieb
                            var text;
                            switch(obj.state.val) {
                            case 0: text = 'aus';
                            break;
                            case 1: text = 'an';
                            break;
                            }
                            log("setVitoBetriebParty: " + text);
                            exec('vclient -h 127.0.0.1:3002 -c "setVitoBetriebParty ' + text + '"', function(err, stdout, stderr) {
                            if (err) log(stderr,'error');
                            });
                            });
                            ! on("hm-rega.0.4221", function(obj) { // Sparbetrieb
                            var text;
                            switch(obj.state.val) {
                            case 0: text = 'aus';
                            break;
                            case 1: text = 'an';
                            break;
                            }
                            log("setVitoBetriebSpar: " + text);
                            exec('vclient -h 127.0.0.1:3002 -c "setVitoBetriebSpar ' + text + '"', function(err, stdout, stderr) {
                            if (err) log(stderr,'error');
                            });
                            });
                            [/code][/spoiler] ! Zusätzlich habe ich noch ein Skript, mit dem ich die auf der CCU2 angelegten Systemvariablen schreibe ("Vitotronic_CCU_set"): ! >! ~~[spoiler]~~[code]// Werte in CCU Systemvariablen schreiben
                            ! on('javascript.0.Vitotronic.Betriebsart', function (obj) { // Vitotronic Betriebsart
                            log("UG HWR SV Heizungsanlage Betriebsart: " + obj.newState.val);
                            switch (obj.newState.val) {
                            case "Abschaltbetrieb":
                            setState('hm-rega.0.3903', 0);
                            break;
                            case "Nur Warmwasser":
                            setState('hm-rega.0.3903', 1);
                            break;
                            case "Heizen und Warmwasser":
                            setState('hm-rega.0.3903', 2);
                            break;
                            case "Dauernd red. Betrieb":
                            setState('hm-rega.0.3903', 3);
                            break;
                            case "Dauernd Normalbetrieb":
                            setState('hm-rega.0.3903', 4);
                            break;
                            }
                            });
                            ! on('javascript.0.Vitotronic.BetriebParty', function(obj) { // Vitotronic Partybetrieb
                            log("UG HWR SV Heizungsanlage Partybetrieb: " + obj.newState.val);
                            switch (obj.newState.val) {
                            case "aus":
                            setState('hm-rega.0.2883', 0);
                            break;
                            case "an":
                            setState('hm-rega.0.2883', 1);
                            break;
                            }
                            });
                            ! on('javascript.0.Vitotronic.BetriebSpar', function(obj) { // Vitotronic Sparbetrieb
                            log("UG HWR SV Heizungsanlage Sparbetrieb: " + obj.newState.val);
                            switch (obj.newState.val) {
                            case "aus":
                            setState('hm-rega.0.4221', 0);
                            break;
                            case "an":
                            setState('hm-rega.0.4221', 1);
                            break;
                            }
                            });
                            ! on('javascript.0.Vitotronic.BetriebFerien', function(obj) { // Vitotronic Ferienbetrieb
                            log("UG HWR SV Heizungsanlage Ferienbetrieb: " + obj.newState.val);
                            switch (obj.newState.val) {
                            case "inaktiv":
                            setState('hm-rega.0.4905', 0);
                            break;
                            case "aktiv":
                            setState('hm-rega.0.4905', 1);
                            break;
                            }
                            });[/code]`[/spoiler]
                            ! Wenn Du die Datenpunkte nicht in javascript.0 schreiben willst, dann müsstest Du doch eigentlich nur den createState und den nachfolgenden setState-Befehl entsprechend anpassen. Bin mir da aber mangels ausreichender Javascript-Kenntnisse nicht so ganz sicher.
                            ! Gruß,
                            ! Thorsten
                            ! PS.: Das Ändern des Party- und des Sparbetriebs will aber im Moment noch nicht so richtig. Das Ändern der Betriebsart funktioniert dagegen einwandfrei. Da bin ich mir noch nicht so sicher, woran es liegt. Evtl. sind die entsprechenden Adressen zum Schreiben in die Vitotronic nicht korrekt. Müssten sie aber eigentlich. Im Log erhalte ich zumindest keine Fehlermeldungen.[/i][/i][/i][/i][/i]

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

                              Unten meine Aktuelle skripte, die functionieren sehr gut.

                              ich habe bei mir zwei "BetriebArtM1" eine für get und eine für set. ich werde nur setzen wenn get un set unterschidlich sind, dann mache ich ein setState, in nächste getstate werden beide gleich sein.

                              ich habe auch node-red script geschrieben um den valve state + set temperature zu lese, und anhand von dem werde ich WW, NORM oder RED setzen.

                              lesen un sezen im path vontrold.0.get funtkioniert, das creatState funktioniert "nur" unten javascript.0.

                              Dann habe ich alles dort gelassen..

                              vcontrold-get

                              ! ```
                              `//vcontrold-get
                              ! var debug=false;
                              ! // NETWORK PARAMS
                              var srv_ip = 'vcontrol';
                              var srv_port = 3002;
                              ! // VCONTROLD VARIABLES TO GET
                              var vcontrolget = [
                              {
                              id:'vcontrold.0.get.TempA',
                              type: 'number',
                              name: 'Vitotronic Temperatura Esterna',
                              role: 'value.temperature',
                              read: true,
                              write: false,
                              def: 0,
                              min: -50,
                              max: 100,
                              re: /^(\d+.\d+) Grad Celsius\s*$/,
                              cmd: "getTempA",
                              },
                              {
                              id:'vcontrold.0.get.TempWWist1',
                              type: 'number',
                              name: 'Vitotronic Temperatura acqua calda bassa',
                              role: 'value.temperature',
                              read: true,
                              write: false,
                              def: 0,
                              min: -50,
                              max: 100,
                              re: /^(\d+.\d+) Grad Celsius\s*$/,
                              cmd: "getTempWWist1",
                              },
                              {
                              id:'vcontrold.0.get.TempWWist2',
                              type: 'number',
                              name: 'Vitotronic Temperatura acqua calda alta',
                              role: 'value.temperature',
                              read: true,
                              write: false,
                              def: 0,
                              min: -50,
                              max: 100,
                              re: /^(\d+.\d+) Grad Celsius\s*$/,
                              cmd: "getTempWWist2",
                              },
                              {
                              id:'vcontrold.0.get.TempKist',
                              type: 'number',
                              name: 'Vitotronic Temperatura Puffer basso (riscaldamento)',
                              role: 'value.temperature',
                              read: true,
                              write: false,
                              def: 0,
                              min: -50,
                              max: 100,
                              re: /^(\d+.\d+) Grad Celsius\s*$/,
                              cmd: "getTempKist",
                              },
                              {
                              id: 'vcontrold.0.get.TempVListM1',
                              type: 'number',
                              name: 'Vitotronic Temperatura di mandata',
                              role: 'value.temperature',
                              read: true,
                              write: false,
                              def: 0,
                              min: -50,
                              max: 100,
                              re: /^(\d+.\d+) Grad Celsius\s*$/,
                              cmd: "getTempVListM1",
                              },
                              {
                              id:'vcontrold.0.get.BetriebArtM1',
                              type: 'string',
                              name: 'Vitotronic Modalità funzionamento',
                              role: 'state',
                              read: true,
                              write: false,
                              re: /^\W*(\w++\w)\W*$/,
                              cmd: "getBetriebArtM1",
                              }
                              ];
                              ! var dMAX=10;
                              var dMIN=-10;
                              ! var getcmd ="";
                              ! for (var i in vcontrolget) {
                              if (debug) {console.log('vcontrolget[i].cmd' + vcontrolget[i].cmd);}
                              getcmd += vcontrolget[i].cmd + "\r\n";
                              createState(vcontrolget[i].id, {
                              type: vcontrolget[i].type,
                              name: vcontrolget[i].name,
                              role: vcontrolget[i].role,
                              read: vcontrolget[i].read,
                              write: vcontrolget[i].write,
                              def: vcontrolget[i].def,
                              min: vcontrolget[i].min,
                              max: vcontrolget[i].max
                              });
                              }
                              getcmd += "quit\r\n";
                              if (debug) {console.log('cmd: '+getcmd);}
                              ! function vitoget () {
                              var net = require('net');
                              ! var client = new net.Socket();
                              client.connect(srv_port, srv_ip, function() {
                              if (debug) {console.log('Connected');}
                              client.write(getcmd);
                              });
                              ! var i=0;
                              var readingOK=true;
                              var data_tmp=[];
                              ! client.on('data', function(data) {
                              var data_str;
                              if (debug) {console.log('Received: ' + data);}
                              var dummyre=/^vctrld/;
                              data_str=String(data);
                              if (debug) {console.log('i ' + i);}
                              if (i < vcontrolget.length) {

                                  if (debug) {console.log('RE: ' + vcontrolget[i].re);}
                                  if (dummyre.test(data_str)) {
                                      if (debug) {console.log('ignored: ' + data);}
                              
                                 } else if (vcontrolget[i].re.test(data_str)) {
                                      if (vcontrolget[i].type === 'number') {
                              

                              ! data_tmp[i] = Number(data_str.replace(vcontrolget[i].re, "$1"));
                              if (debug) {console.log('data ok: ' +data_tmp[i]);}
                              ! // test plausibilità
                              var dval = data_tmp[i] - getState(vcontrolget[i].id).val;
                              if (debug) {console.log('Plausibility test (data_tmp[i]) ' + data_tmp[i]);}
                              if (debug) {console.log('Plausibility test (getState(vcontrolget[i].id).val) ' + getState(vcontrolget[i].id).val);}
                              if (debug) {console.log('Plausibility test (dval) ' + dval);}
                              if ((dval > dMAX) || (dval < dMIN)) {
                              readingOK=false;
                              if (debug) {console.log('ignored dval (dMAX/dMIN) ' + dval);}
                              }
                              } else {
                              data_tmp[i] = data_str.replace(vcontrolget[i].re, "$1");
                              }

                                     i++;
                                  } else {
                                      readingOK=false;
                                      if (debug) {console.log('faulty data: ' + data);}
                                  }   
                              } else {
                                  if (debug) {console.log('ignored' + data);}
                              }
                              

                              ! });
                              ! client.on('close', function() {
                              client.destroy();
                              if (debug) {console.log('Connection closed');}
                              if (readingOK) {
                              if (debug) {console.log('readingOK');}
                              for (var i in vcontrolget) {
                              if (debug) {console.log('store data: ' + vcontrolget[i].id +" = " +data_tmp[i]);}
                              setState(vcontrolget[i].id, data_tmp[i],true);
                              }
                              } else {
                              if (debug) {console.log('reading faulty');}
                              }
                              });
                              }
                              ! schedule("* * * * *", function () {vitoget();}); // ogni minuto ! vcontrold-set ! >! ~~[spoiler]~~[code]// vcontrold-set
                              ! debug=false;
                              ! // NETWORK PARAMS
                              var srv_ip = 'vcontrol';
                              var srv_port = 3002;
                              ! // VCONTROLD VARIABLES TO SET
                              var vcontrolset = [
                              {
                              id:'vcontrold.0.set.BetriebArtM1',
                              getid: 'vcontrold.0.get.BetriebArtM1',
                              type: 'string',
                              name: 'Vitotronic Modalità funzionamento',
                              role: 'state',
                              read: true,
                              write: true,
                              cmd: "setBetriebArtM1",
                              }
                              ];
                              ! for (var i in vcontrolset) {
                              createState(vcontrolset[i].id, {
                              type: vcontrolset[i].type,
                              name: vcontrolset[i].name,
                              role: vcontrolset[i].role,
                              read: vcontrolset[i].read,
                              write: vcontrolset[i].write,
                              def: vcontrolset[i].def,
                              min: vcontrolset[i].min,
                              max: vcontrolset[i].max
                              });

                              }

                              ! function vitoset() {

                              var setcmd ="";
                              var param = "";
                              var getparam = "";
                              var cmdflag=false;

                              ! for (var i in vcontrolset) {
                              if (debug) {console.log('vcontrolset[i].cmd' + vcontrolset[i].cmd);}

                              param=getState(vcontrolset[i].id).val;
                              getparam=getState(vcontrolset[i].getid).val;
                              if (debug) {console.log('param: ' + param);}
                              if (debug) {console.log('getparam: ' + getparam);}
                              

                              ! if (param === null) {
                              setState(vcontrolset[i].id,getparam,true);
                              } else if (param != getparam) {
                              setcmd += vcontrolset[i].cmd + " " + param +"\r\n";
                              cmdflag=true;
                              }
                              }
                              ! setcmd += "quit\r\n";
                              if (debug) {console.log('cmd: '+setcmd);}
                              ! var net = require('net');
                              ! var client = new net.Socket();
                              ! if (cmdflag) {
                              client.connect(srv_port, srv_ip, function() {
                              if (debug) {console.log('Connected');}
                              client.write(setcmd);
                              });
                              ! client.on('data', function(data) {
                              var data_str;
                              if (debug) {console.log('Received: ' + data);}
                              });
                              ! client.on('close', function() {
                              client.destroy();
                              if (debug) {console.log('Connection closed');}
                              ! });
                              ! }
                              ! }
                              ! schedule("* * * * *", function () {vitoset();}); // ogni minuto`
                              ! grüsse
                              ! Stek[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/code][/spoiler][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

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

                                @dtp:

                                // Werte in Vitotronic schreiben

                                on("hm-rega.0.3903", function(obj) {  // Betriebsart
                                  var text;
                                  switch(obj.state.val) {
                                    case 0: text = 'Abschaltbetrieb';
                                      break;
                                    case 1: text = 'Nur Warmwasser';
                                      break;
                                    case 2: text = 'Heizen und Warmwasser';
                                      break;
                                    case 3: text = 'Dauernd red. Betrieb';
                                      break;
                                    case 4: text = 'Dauernd Normalbetrieb';
                                      break;
                                  }
                                  log("setVitoBetriebsart: " + text);
                                  exec('vclient -h 127.0.0.1:3002 -c "setVitoBetriebsart ' + text + '"', function(err, stdout, stderr) {
                                    if (err) log(stderr,'error');
                                  });
                                });
                                
                                on("hm-rega.0.2883", function(obj) {  // Partybetrieb
                                  var text;
                                  switch(obj.state.val) {
                                    case 0: text = 'aus';
                                      break;
                                    case 1: text = 'an';
                                      break;
                                  }
                                  log("setVitoBetriebParty: " + text);
                                  exec('vclient -h 127.0.0.1:3002 -c "setVitoBetriebParty ' + text + '"', function(err, stdout, stderr) {
                                    if (err) log(stderr,'error');
                                  });
                                });
                                
                                on("hm-rega.0.4221", function(obj) {  // Sparbetrieb
                                  var text;
                                  switch(obj.state.val) {
                                    case 0: text = 'aus';
                                      break;
                                    case 1: text = 'an';
                                      break;
                                  }
                                  log("setVitoBetriebSpar: " + text);
                                  exec('vclient -h 127.0.0.1:3002 -c "setVitoBetriebSpar ' + text + '"', function(err, stdout, stderr) {
                                    if (err) log(stderr,'error');
                                  });
                                });
                                
                                

                                PS.: Das Ändern des Party- und des Sparbetriebs will aber im Moment noch nicht so richtig. Das Ändern der Betriebsart funktioniert dagegen einwandfrei. Da bin ich mir noch nicht so sicher, woran es liegt. Evtl. sind die entsprechenden Adressen zum Schreiben in die Vitotronic nicht korrekt. Müssten sie aber eigentlich. Im Log erhalte ich zumindest keine Fehlermeldungen. `

                                Hi,

                                erstmal Lob an alle Beteiligten (explizit Paul53)!

                                Ich nutze das Grund Skript von Paul53 jetzt auch.

                                Zum Thema Werte SCHREIBEN:

                                Nach einiges probieren in der Konsole habe ich herausgefunden das set Befehle an VCLIENT zwingend mit ' Hochkommas ' abgegeben werden müssen.

                                Ich habe mein Set- Skipt dann wie folgt geändert.:

                                function sparbetrieb(soll) {
                                
                                    var setzen = 'setBetriebSpar ' + soll;
                                    exec('vclient -h 192.168.2.xxx:3002 -c ' + "\'" + setzen + "\'" , function(err, stdout, stderr) {
                                    if (err) {
                                      log(stderr,'error');
                                              }
                                    });
                                }
                                

                                Haut soweit hin.

                                Wichtig hierbei:

                                \'
                                

                                vor und nach dem Setzbefehl

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

                                  Danke für den Hinweis. Werde ich bei Gelegenheit mal testen und Rückmeldung geben.

                                  Gruß,

                                  Thorsten

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

                                    Also mit den zusätzlichen Hochkommota bekomme ich eine Fehlermeldung beim P300-Protokoll:

                                    [506] Sat Oct 29 11:50:58 2016 : Client verbunden 127.0.0.1:52518 (FD:2)
                                    [506] Sat Oct 29 11:50:58 2016 : Child Prozess mit pid:1284 gestartet
                                    [1284] Sat Oct 29 11:50:58 2016 : Befehl: 'setVitoBetriebParty an'
                                    [1284] Sat Oct 29 11:50:58 2016 : Befehl: quit
                                    [1284] Sat Oct 29 11:50:58 2016 : Process 1284 released lock
                                    [1284] Sat Oct 29 11:50:58 2016 : Verbindung beendet (fd:2)
                                    [1284] Sat Oct 29 11:50:58 2016 : Child Prozess pid:1284 beendet
                                    

                                    Ohne Hochkommata sieht's so aus:

                                    [506] Sat Oct 29 11:54:03 2016 : Client verbunden 127.0.0.1:52696 (FD:2)
                                    [506] Sat Oct 29 11:54:03 2016 : Child Prozess mit pid:1290 gestartet
                                    [1290] Sat Oct 29 11:54:03 2016 : Befehl: setVitoBetriebParty an
                                    [1290] Sat Oct 29 11:54:03 2016 : Process 1290 tries to aquire lock
                                    [1290] Sat Oct 29 11:54:03 2016 : Process 1290 got lock
                                    [1290] Sat Oct 29 11:54:03 2016 : >FRAMER: open device /dev/ttyUSB0 ProtocolID 41
                                    [1290] Sat Oct 29 11:54:03 2016 : konfiguriere serielle Schnittstelle /dev/ttyUSB0
                                    [1290] Sat Oct 29 11:54:03 2016 : >SEND: 04
                                    [1290] Sat Oct 29 11:54:04 2016 : <recv: 29/2016/len="1" 05/(840.0/ms)/[1290]/sat/oct/11:54:04/:/<recv:/received="">FRAMER: closed
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 16
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 00
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 00
                                    [1290] Sat Oct 29 11:54:04 2016 : <recv: 29/2016/len="1" 06/(20.0/ms)/[1290]/sat/oct/11:54:04/:/<recv:/received="">FRAMER: opened
                                    [1290] Sat Oct 29 11:54:04 2016 : an -> 01
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 41
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 06
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 00
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 02
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 23
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 03
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 01
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 01
                                    [1290] Sat Oct 29 11:54:04 2016 : >SEND: 30
                                    [1290] Sat Oct 29 11:54:04 2016 : <recv: 29/2016/len="1" 06/(40.0/ms)/[1290]/sat/oct/11:54:04/:/<recv:/received="">FRAMER: addr was still active FE06
                                    [1290] Sat Oct 29 11:54:04 2016 : >FRAMER: Command send
                                    [1290] Sat Oct 29 11:54:04 2016 : >FRAMER: no preset result
                                    [1290] Sat Oct 29 11:54:04 2016 : <recv: 23/29/41/2016/len="1" (0.0/ms)/[1290]/sat/oct/11:54:04/:/<recv:/received/05/(10.0/01/02/03/2f/00/-=""> OK
                                    [1290] Sat Oct 29 11:54:04 2016 : OK
                                    [1290] Sat Oct 29 11:54:04 2016 : Befehl: quit</recv:></recv:></recv:></recv:>
                                    

                                    Nur leider wird der Befehl trotzdem nicht von der Heizung umgesetzt:

                                    [1395] Sat Oct 29 12:04:53 2016 : Befehl: getVitoBetriebParty
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 41
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 05
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 00
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 01
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 23
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 03
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 01
                                    [1395] Sat Oct 29 12:04:53 2016 : >SEND: 2D
                                    [1395] Sat Oct 29 12:04:53 2016 : <recv: 29/2016/len="1" 06/(80.0/ms)/[1395]/sat/oct/12:04:53/:/<recv:/received="">FRAMER: Command send
                                    [1395] Sat Oct 29 12:04:53 2016 : >FRAMER: no preset result
                                    [1395] Sat Oct 29 12:04:53 2016 : <recv: 23/29/41/2016/len="1" (0.0/ms)/[1395]/sat/oct/12:04:53/:/<recv:/received/06/01/(10.0/03/00/2f/-=""> aus</recv:></recv:>
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      dtp last edited by

                                      Hier mal zum Vergleich die angenommene Änderung der Betriebsart.

                                      Einmal das Setzen:

                                      [506] Sat Oct 29 12:25:10 2016 : Client verbunden 127.0.0.1:54822 (FD:2)
                                      [506] Sat Oct 29 12:25:10 2016 : Child Prozess mit pid:1576 gestartet
                                      [1576] Sat Oct 29 12:25:10 2016 : Befehl: setVitoBetriebsart Heizen und Warmwasser
                                      [1576] Sat Oct 29 12:25:10 2016 : Process 1576 tries to aquire lock
                                      [1576] Sat Oct 29 12:25:10 2016 : Process 1576 got lock
                                      [1576] Sat Oct 29 12:25:10 2016 : >FRAMER: open device /dev/ttyUSB0 ProtocolID 41
                                      [1576] Sat Oct 29 12:25:10 2016 : konfiguriere serielle Schnittstelle /dev/ttyUSB0
                                      [1576] Sat Oct 29 12:25:10 2016 : >SEND: 04
                                      [1576] Sat Oct 29 12:25:12 2016 : <recv: 29/2016/len="1" 05/(1440.0/ms)/[1576]/sat/oct/12:25:12/:/<recv:/received="">FRAMER: closed
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 16
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 00
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 00
                                      [1576] Sat Oct 29 12:25:12 2016 : <recv: 29/2016/len="1" 06/(10.0/ms)/[1576]/sat/oct/12:25:12/:/<recv:/received="">FRAMER: opened
                                      [1576] Sat Oct 29 12:25:12 2016 : Heizen und Warmwasser -> 02
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 41
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 06
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 00
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 02
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 23
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 23
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 01
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 02
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 51
                                      [1576] Sat Oct 29 12:25:12 2016 : <recv: 29/2016/len="1" 06/(40.0/ms)/[1576]/sat/oct/12:25:12/:/<recv:/received="">FRAMER: addr was still active FE06
                                      [1576] Sat Oct 29 12:25:12 2016 : >FRAMER: Command send
                                      [1576] Sat Oct 29 12:25:12 2016 : >FRAMER: no preset result
                                      [1576] Sat Oct 29 12:25:12 2016 : <recv: 23/29/41/2016/len="1" (0.0/ms)/[1576]/sat/oct/12:25:12/:/<recv:/received/05/01/02/(10.0/4f/00/-=""> OK
                                      [1576] Sat Oct 29 12:25:12 2016 : OK
                                      [1576] Sat Oct 29 12:25:12 2016 : Befehl: quit
                                      [1576] Sat Oct 29 12:25:12 2016 : >SEND: 04
                                      [1576] Sat Oct 29 12:25:12 2016 : <recv: 29/2016/len="1" 06/(10.0/ms)/[1576]/sat/oct/12:25:12/:/<recv:/received="">FRAMER: closed
                                      [1576] Sat Oct 29 12:25:12 2016 : Process 1576 released lock
                                      [1576] Sat Oct 29 12:25:12 2016 : Verbindung beendet (fd:2)
                                      [1576] Sat Oct 29 12:25:12 2016 : Child Prozess pid:1576 beendet</recv:></recv:></recv:></recv:></recv:>
                                      

                                      Und das nachfolgende Auslesen:

                                      [506] Sat Oct 29 12:25:51 2016 : Client verbunden 127.0.0.1:54860 (FD:2)
                                      [506] Sat Oct 29 12:25:51 2016 : Child Prozess mit pid:1579 gestartet
                                      [1579] Sat Oct 29 12:25:51 2016 : Befehl: getVitoBetriebsart
                                      [1579] Sat Oct 29 12:25:51 2016 : Process 1579 tries to aquire lock
                                      [1579] Sat Oct 29 12:25:51 2016 : Process 1579 got lock
                                      [1579] Sat Oct 29 12:25:51 2016 : >FRAMER: open device /dev/ttyUSB0 ProtocolID 41
                                      [1579] Sat Oct 29 12:25:51 2016 : konfiguriere serielle Schnittstelle /dev/ttyUSB0
                                      [1579] Sat Oct 29 12:25:51 2016 : >SEND: 04
                                      [1579] Sat Oct 29 12:25:52 2016 : <recv: 29/2016/len="1" 05/(1190.0/ms)/[1579]/sat/oct/12:25:52/:/<recv:/received="">FRAMER: closed
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 16
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 00
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 00
                                      [1579] Sat Oct 29 12:25:52 2016 : <recv: 29/2016/len="1" 06/(20.0/ms)/[1579]/sat/oct/12:25:52/:/<recv:/received="">FRAMER: opened
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 41
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 05
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 00
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 01
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 23
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 23
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 01
                                      [1579] Sat Oct 29 12:25:52 2016 : >SEND: 4D
                                      [1579] Sat Oct 29 12:25:52 2016 : <recv: 29/2016/len="1" 06/(20.0/ms)/[1579]/sat/oct/12:25:52/:/<recv:/received="">FRAMER: addr was still active FE06
                                      [1579] Sat Oct 29 12:25:52 2016 : >FRAMER: Command send
                                      [1579] Sat Oct 29 12:25:52 2016 : >FRAMER: no preset result
                                      [1579] Sat Oct 29 12:25:52 2016 : <recv: 23/29/41/51/2016/len="1" (0.0/ms)/[1579]/sat/oct/12:25:52/:/<recv:/received/06/(10.0/01/02/-=""> Heizen und Warmwasser
                                      [1579] Sat Oct 29 12:25:52 2016 : Heizen und Warmwasser</recv:></recv:></recv:></recv:>
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dtp last edited by

                                        Ha,

                                        dank @blauholsten tut sich was in Sachen https://github.com/misanorot/iobroker.viessmann für den ioBroker.

                                        Gruß,

                                        Thorsten

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          Blue14 last edited by

                                          Hallo Zusammen

                                          Bekomme in ein Paar wochen auch eine Viessmann Heizung und wollte mich schon mal Informieren hier.

                                          Ich habe bei Github gesehn das es einen Adapter dort für iobroker git ist der mit dem hier geposten skripten gleich zu setzten oder etwas anderes?

                                          https://github.com/misanorot/iobroker.viessmann

                                          Lg

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

                                            @Blue14:

                                            Hallo Zusammen

                                            Bekomme in ein Paar wochen auch eine Viessmann Heizung und wollte mich schon mal Informieren hier.

                                            Ich habe bei Github gesehn das es einen Adapter dort für iobroker git ist der mit dem hier geposten skripten gleich zu setzten oder etwas anderes?

                                            https://github.com/misanorot/iobroker.viessmann

                                            Lg `
                                            Hi,

                                            macht Quasi nichts anderes…

                                            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

                                            899
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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