Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Viessmann-Adapter

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    271

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Viessmann-Adapter

Viessmann-Adapter

Scheduled Pinned Locked Moved ioBroker Allgemein
viesmann
523 Posts 50 Posters 149.5k 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
    #59

    @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?

    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
      #60

      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.

      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
        #61

        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');
           });
        });
        

        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
          #62

          @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');
             });
          });
          
          

          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
            #63

            Danke. Werde es ausprobieren.

            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
            • D Offline
              D Offline
              dtp
              wrote on last edited by
              #64

              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

              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
              • stekS Offline
                stekS Offline
                stek
                wrote on last edited by
                #65

                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
                0
                • D Offline
                  D Offline
                  dtp
                  wrote on last edited by
                  #66

                  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]

                  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
                  • stekS Offline
                    stekS Offline
                    stek
                    wrote on last edited by
                    #67

                    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
                    0
                    • blauholstenB Offline
                      blauholstenB Offline
                      blauholsten
                      Developer
                      wrote on last edited by
                      #68

                      @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

                      Entwickler vom: - Viessman Adapter
                      - Alarm Adapter

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

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

                        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
                        • D Offline
                          D Offline
                          dtp
                          wrote on last edited by
                          #70

                          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:>
                          

                          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
                            #71

                            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:>
                            

                            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
                              #72

                              Ha,

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

                              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
                              • B Offline
                                B Offline
                                Blue14
                                wrote on last edited by
                                #73

                                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
                                0
                                • blauholstenB Offline
                                  blauholstenB Offline
                                  blauholsten
                                  Developer
                                  wrote on last edited by
                                  #74

                                  @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…

                                  Entwickler vom: - Viessman Adapter
                                  - Alarm Adapter

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

                                    Das ist der Adapter von Sebastian aka @blauholsten/@misanrot, den ich weiter oben bereits verlinkt hatte.

                                    Sebastian hat ihn programmiert, und ich durfte ihn parallel an meinem System on the fly testen. Läuft soweit 1 a und ist recht einfach zu konfigurieren, sofern eine lauffähige vcontrold-Installation samt vito.xml und vcrontrold.xml vorhanden ist.

                                    Es gibt zwar noch ein paar kleinere Baustellen, aber ich denke, Bluefox kann den Adapter in Kürze freigeben.

                                    Man kann ihn aber auch schon jetzt testen. Dazu einfach auf der Admin-Seite von ioBroker auf das Github-Symbol klicken, den Link "https://github.com/misanorot/iobroker.viessmann" in das Textfeld eingeben und bestätigen. Der Adapter wird dann binnen weniger Sekunden installiert. Danach eine Instanz installieren und den Adapter konfigurieren.

                                    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
                                    • S Offline
                                      S Offline
                                      Smokey
                                      wrote on last edited by
                                      #76

                                      Hallo Zusammen,

                                      hat das alles was hier geschrieben wurde noch mal jemand (evtl. in einem anderen Threat) als HowTo so zusammengefasst, dass es auch jemand mit wenig Erfahrung Schritt für Schritt umsetzen kann? Wäre sehr klasse. Also ich habe halt den Optolink via WLAN direkt in meinem Netz daheim. Und irgendwie weiß ich jetzt doch nicht was ich machen muss. Wenn ich hier nur falsch bin, verziehe ich mich auch sofort wieder und entschuldige mich. Aber fündig geworden bin ich trotz Suche bisher nicht.

                                      Gruß

                                      Markus

                                      1 Reply Last reply
                                      0
                                      • blauholstenB Offline
                                        blauholstenB Offline
                                        blauholsten
                                        Developer
                                        wrote on last edited by
                                        #77

                                        @Smokey:

                                        Hallo Zusammen,

                                        hat das alles was hier geschrieben wurde noch mal jemand (evtl. in einem anderen Threat) als HowTo so zusammengefasst, dass es auch jemand mit wenig Erfahrung Schritt für Schritt umsetzen kann? Wäre sehr klasse. Also ich habe halt den Optolink via WLAN direkt in meinem Netz daheim. Und irgendwie weiß ich jetzt doch nicht was ich machen muss. Wenn ich hier nur falsch bin, verziehe ich mich auch sofort wieder und entschuldige mich. Aber fündig geworden bin ich trotz Suche bisher nicht.

                                        Gruß

                                        Markus `

                                        Hallo,

                                        Die hier beschriebenen Sachen sind vermutlich eine andere als du sie benutzt. Du benutzt anscheinend das originale von Viessmann vertriebene Modul mit dem man seine Heizungsanlage und die viessmann App steuern kann. Mir ist momentan keine Lösung bekannt, um damit eine Schnittstelle mit iobroker herzustellen.

                                        Die hier beschriebenen Variante ist eine wo man zusätzlich einen Rechner braucht, worauf das Programm vcontrold läuft. Infos findest du hier

                                        https://openv.wikispaces.com/vcontrold

                                        Entwickler vom: - Viessman Adapter
                                        - Alarm Adapter

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

                                          Wäre schön, wenn Bluefox den Adapter "offiziell" machen würde. Er läuft bei mir seit Wochen absolut zuverlässig. Woran hapert es?

                                          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
                                          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

                                          171

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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