Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test ViessmannAPI v2.0.0

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Test ViessmannAPI v2.0.0

Scheduled Pinned Locked Moved Tester
818 Posts 128 Posters 298.7k Views 124 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.
  • M MAXI885

    @ilovegym
    Hallo,
    aktuell nutze ich den Adapter noch nicht, hätte aber eine Frage zur Anschaffung der Hardware.
    Es gibt für den VITOCONNECT 100 OPT01 auch einen Nachfolger, den OPTO2, ist das für die Verwendung mit iobroker egal,
    welches Gerät man benutzt ?

    Vielen Dank & Grüße !

    T Offline
    T Offline
    tombox
    wrote on last edited by
    #695

    @maxi885 Kompatibilitätsliste: https://documentation.viessmann.com/static/compatibility

    M 1 Reply Last reply
    0
    • T tombox

      @maxi885 Kompatibilitätsliste: https://documentation.viessmann.com/static/compatibility

      M Offline
      M Offline
      MAXI885
      wrote on last edited by
      #696

      @tombox said in Test ViessmannAPI v2.0.0:

      @maxi885 Kompatibilitätsliste: https://documentation.viessmann.com/static/compatibility

      super, vielen Dank !
      Die Liste bezieht sich schon auf den neuen OPTO2, da steht meine etwas ältere Vitotronic 200 KW1 sogar dabei :-)

      1 Reply Last reply
      0
      • B Offline
        B Offline
        Backes
        wrote on last edited by
        #697

        Guten Morgen,

        ist es normal, dass wenn das RateLimit einmal erreicht wurde, das der Adapter manuell neugestartet werden muss damit er wieder funktioniert am nächsten Tag? Hab das RateLimit letzte Woche einmal überschritten und er hat seitdem gehangen und keine Daten mehr gezogen.

        Beste Grüße!

        Dominik F.D 1 Reply Last reply
        0
        • B Backes

          Guten Morgen,

          ist es normal, dass wenn das RateLimit einmal erreicht wurde, das der Adapter manuell neugestartet werden muss damit er wieder funktioniert am nächsten Tag? Hab das RateLimit letzte Woche einmal überschritten und er hat seitdem gehangen und keine Daten mehr gezogen.

          Beste Grüße!

          Dominik F.D Offline
          Dominik F.D Offline
          Dominik F.
          wrote on last edited by
          #698

          Hallo zusammen,

          ich habe heute den Adapter installiert und soweit ich das überblicken kann funktioniert alles.

          Ich nutze bei meiner Heizung die geofencing Funktion. Gibt es dazu Datenpunkte wo ich sehen kann wer im Umkreis ist und wer nicht?

          1 Reply Last reply
          0
          • I Online
            I Online
            io2345
            wrote on last edited by io2345
            #699

            Jetzt bräuchte ich doch nochmal Hilfe von Spezialisten:
            Wollte das Script verbessern, dass es den eingestellten Zirkulationspumpen-Schedule aus der WP zunächst ausliest und ganz am Schluss wieder zurückschreibt.
            Das klappt aber nicht so recht. Es kommt beim Schreiben von Werten immer der Hinweis:

            State value to set for ... has to be one of type "string", "number", "boolean" but received type "object"

            Nun habe ich schon einige Forumseinträge hierzu gelesen, wo es um "stringify" oder "toString" geht, oder auch, dass der Adapter selbst das regeln muss. Vermutlich bin ich einfach nicht helle genug, bisher habe ich jedenfalls nicht verstanden, was ich nun konkret tun muss, um das Problem zu umgehen. Könnt ihr mir helfen?

            Hier der Code:

            async function start_zirk() {
                // Schedule wird zum Einschalten der Pumpe temporär verändert, so dass die Pumpe
                // zwischen 00:00 und 23:59 Uhr zuverlässig eingeschaltet ist. Das in der Wärmepumpe 
                // vorhandene Zeitprogramm der Zirkulationspumpe wird in einen eigenen Datenpunkt gesichert
                
                var pump_on = '{"mon":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"tue":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"wed":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"thu":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"fri":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sat":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sun":[{"start":"00:00","end":"23:59","mode":"on","position":0}]}';
                var schedule_sichern = getState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue').val;
                
                setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule', schedule_sichern.val);
                setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_off
            }
            
            async function stop_zirk() {
                // Der urspüngliche Schedule wird zurückgeschrieben. 
                
                var schedule_wiederherstellen = getState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule').val;
                setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", schedule_wiederherstellen.val);
            }
            
            
            on({ id: [].concat(['0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_']), change: 'ne' }, async (obj) => {
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              if ((obj.state ? obj.state.val : "") == true) {
                await start_zirk();
                log ("Zirkulationspumpe läuft für zwei Minuten");
                await wait(120000);
                setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_' /* EigeneDatenpunkte.Heizung.ZirkulationAn  */, false, true);
                await stop_zirk();
              }
            });
            
            M 1 Reply Last reply
            0
            • I io2345

              Jetzt bräuchte ich doch nochmal Hilfe von Spezialisten:
              Wollte das Script verbessern, dass es den eingestellten Zirkulationspumpen-Schedule aus der WP zunächst ausliest und ganz am Schluss wieder zurückschreibt.
              Das klappt aber nicht so recht. Es kommt beim Schreiben von Werten immer der Hinweis:

              State value to set for ... has to be one of type "string", "number", "boolean" but received type "object"

              Nun habe ich schon einige Forumseinträge hierzu gelesen, wo es um "stringify" oder "toString" geht, oder auch, dass der Adapter selbst das regeln muss. Vermutlich bin ich einfach nicht helle genug, bisher habe ich jedenfalls nicht verstanden, was ich nun konkret tun muss, um das Problem zu umgehen. Könnt ihr mir helfen?

              Hier der Code:

              async function start_zirk() {
                  // Schedule wird zum Einschalten der Pumpe temporär verändert, so dass die Pumpe
                  // zwischen 00:00 und 23:59 Uhr zuverlässig eingeschaltet ist. Das in der Wärmepumpe 
                  // vorhandene Zeitprogramm der Zirkulationspumpe wird in einen eigenen Datenpunkt gesichert
                  
                  var pump_on = '{"mon":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"tue":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"wed":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"thu":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"fri":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sat":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sun":[{"start":"00:00","end":"23:59","mode":"on","position":0}]}';
                  var schedule_sichern = getState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue').val;
                  
                  setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule', schedule_sichern.val);
                  setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_off
              }
              
              async function stop_zirk() {
                  // Der urspüngliche Schedule wird zurückgeschrieben. 
                  
                  var schedule_wiederherstellen = getState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule').val;
                  setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", schedule_wiederherstellen.val);
              }
              
              
              on({ id: [].concat(['0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_']), change: 'ne' }, async (obj) => {
                let value = obj.state.val;
                let oldValue = obj.oldState.val;
                if ((obj.state ? obj.state.val : "") == true) {
                  await start_zirk();
                  log ("Zirkulationspumpe läuft für zwei Minuten");
                  await wait(120000);
                  setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_' /* EigeneDatenpunkte.Heizung.ZirkulationAn  */, false, true);
                  await stop_zirk();
                }
              });
              
              M Online
              M Online
              Michi_Pi
              wrote on last edited by
              #700

              @io2345 ich bin jetzt kein Spezialist, aber was mir auffällt ist, dass du beim zurückspeichern das nicht als JSON machst.
              Probier mal

              JSON.parse(schedule_wiederherstellen.val))
              
              I 1 Reply Last reply
              0
              • M Michi_Pi

                @io2345 ich bin jetzt kein Spezialist, aber was mir auffällt ist, dass du beim zurückspeichern das nicht als JSON machst.
                Probier mal

                JSON.parse(schedule_wiederherstellen.val))
                
                I Online
                I Online
                io2345
                wrote on last edited by
                #701

                @michi_pi
                Danke für die Rückmeldung. Hätte erwähnen sollen, dass ich das schon probiert hatte. Dann kommt allerdings ein tiefroter Fehler:

                script.js.common.Zirkulation_kurz_einschalten_verbessert_JS: SyntaxError: Unexpected token u in JSON at position 0
                error at JSON.parse (<anonymous>)
                at start_zirk (script.js.common.Zirkulation_kurz_einschalten_verbessert_JS:9:103)
                at Object.<anonymous> (script.js.common.Zirkulation_kurz_einschalten_verbessert_JS:25:11)
                at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38)
                at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
                at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62)
                at processImmediate (node:internal/timers:476:21)

                Denke, das ist der Grund, warum der fixe Wert in Codezeile 6 in Hochkommata steht. Weiss aber nicht, wie ich das mit den anderen, zu übergebenden Werten, hinbekomme.

                M 1 Reply Last reply
                0
                • I io2345

                  @michi_pi
                  Danke für die Rückmeldung. Hätte erwähnen sollen, dass ich das schon probiert hatte. Dann kommt allerdings ein tiefroter Fehler:

                  script.js.common.Zirkulation_kurz_einschalten_verbessert_JS: SyntaxError: Unexpected token u in JSON at position 0
                  error at JSON.parse (<anonymous>)
                  at start_zirk (script.js.common.Zirkulation_kurz_einschalten_verbessert_JS:9:103)
                  at Object.<anonymous> (script.js.common.Zirkulation_kurz_einschalten_verbessert_JS:25:11)
                  at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38)
                  at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:645:29)
                  at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62)
                  at processImmediate (node:internal/timers:476:21)

                  Denke, das ist der Grund, warum der fixe Wert in Codezeile 6 in Hochkommata steht. Weiss aber nicht, wie ich das mit den anderen, zu übergebenden Werten, hinbekomme.

                  M Online
                  M Online
                  Michi_Pi
                  wrote on last edited by Michi_Pi
                  #702

                  @io2345 probiers mal hiermit. Die lokale Zwischenspeichern hab ich jetzt mal wegelassen.

                  var pump_on, schedule_sichern, schedule_wiederherstellen;
                  
                  async function start_zirk() {
                      // Schedule wird zum Einschalten der Pumpe temporär verändert, so dass die Pumpe
                      // zwischen 00:00 und 23:59 Uhr zuverlässig eingeschaltet ist. Das in der Wärmepumpe 
                      // vorhandene Zeitprogramm der Zirkulationspumpe wird in einen eigenen Datenpunkt gesichert
                      
                      pump_on = '{"mon":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                      "tue":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                      "wed":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                      "thu":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                      "fri":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                      "sat":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                      "sun":[{"start":"00:00","end":"23:59","mode":"on","position":0}]}'
                      schedule_sichern = getState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue').val;
                      
                      //setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule', JSON.parse(schedule_sichern));
                      setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_off
                  }
                   
                  async function stop_zirk() {
                      // Der urspüngliche Schedule wird zurückgeschrieben. 
                      
                      //schedule_wiederherstellen = getState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule').val;
                      schedule_wiederherstellen = schedule_sichern;
                      setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(schedule_wiederherstellen));
                  }
                   
                   
                  on({ id: [].concat(['0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_']), change: 'ne' }, async (obj) => {
                    let value = obj.state.val;
                    let oldValue = obj.oldState.val;
                    if ((obj.state ? obj.state.val : "") == true) {
                      await start_zirk();
                      log ("Zirkulationspumpe läuft für zwei Minuten");
                      await wait(120000);
                      setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_' /* EigeneDatenpunkte.Heizung.ZirkulationAn  */, false, true);
                      await stop_zirk();
                    }
                  });
                  
                  I 1 Reply Last reply
                  0
                  • M Michi_Pi

                    @io2345 probiers mal hiermit. Die lokale Zwischenspeichern hab ich jetzt mal wegelassen.

                    var pump_on, schedule_sichern, schedule_wiederherstellen;
                    
                    async function start_zirk() {
                        // Schedule wird zum Einschalten der Pumpe temporär verändert, so dass die Pumpe
                        // zwischen 00:00 und 23:59 Uhr zuverlässig eingeschaltet ist. Das in der Wärmepumpe 
                        // vorhandene Zeitprogramm der Zirkulationspumpe wird in einen eigenen Datenpunkt gesichert
                        
                        pump_on = '{"mon":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                        "tue":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                        "wed":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                        "thu":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                        "fri":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                        "sat":[{"start":"00:00","end":"23:59","mode":"on","position":0}],\
                                        "sun":[{"start":"00:00","end":"23:59","mode":"on","position":0}]}'
                        schedule_sichern = getState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue').val;
                        
                        //setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule', JSON.parse(schedule_sichern));
                        setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_off
                    }
                     
                    async function stop_zirk() {
                        // Der urspüngliche Schedule wird zurückgeschrieben. 
                        
                        //schedule_wiederherstellen = getState('0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule').val;
                        schedule_wiederherstellen = schedule_sichern;
                        setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(schedule_wiederherstellen));
                    }
                     
                     
                    on({ id: [].concat(['0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_']), change: 'ne' }, async (obj) => {
                      let value = obj.state.val;
                      let oldValue = obj.oldState.val;
                      if ((obj.state ? obj.state.val : "") == true) {
                        await start_zirk();
                        log ("Zirkulationspumpe läuft für zwei Minuten");
                        await wait(120000);
                        setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_' /* EigeneDatenpunkte.Heizung.ZirkulationAn  */, false, true);
                        await stop_zirk();
                      }
                    });
                    
                    I Online
                    I Online
                    io2345
                    wrote on last edited by
                    #703

                    @michi_pi said in Test ViessmannAPI v2.0.0:
                    ...probiers mal hiermit.

                    Danke und aha! Wir nähern uns dem Erfolg. Jetzt kommt der Fehler nicht gleich am Anfang, sondern erst, wenn das Stop-Script läuft. Da ist wohl noch der Wurm drin:
                    SyntaxError: Unexpected token o in JSON at position 1

                    Frage ist vermutlich, wie bringe ich den Wert "schedule_wiederherstellen" in Hochkommata? Hab es mal so probiert:
                    "'"JSON.parse(schedule_wiederherstellen)"'");
                    aber da kommt gleich beim Speichern ein "compile failed" an ebendieser Stelle.

                    I 1 Reply Last reply
                    0
                    • I io2345

                      @michi_pi said in Test ViessmannAPI v2.0.0:
                      ...probiers mal hiermit.

                      Danke und aha! Wir nähern uns dem Erfolg. Jetzt kommt der Fehler nicht gleich am Anfang, sondern erst, wenn das Stop-Script läuft. Da ist wohl noch der Wurm drin:
                      SyntaxError: Unexpected token o in JSON at position 1

                      Frage ist vermutlich, wie bringe ich den Wert "schedule_wiederherstellen" in Hochkommata? Hab es mal so probiert:
                      "'"JSON.parse(schedule_wiederherstellen)"'");
                      aber da kommt gleich beim Speichern ein "compile failed" an ebendieser Stelle.

                      I Online
                      I Online
                      io2345
                      wrote on last edited by
                      #704

                      @PAUL53
                      Paul53, kannst du hier eventuell helfen? Ich hab von dir ein paar gute Sachen in anderen Beiträgen gelesen, du scheinst dich in JScript wirklich gut auszukennen.
                      Ist wahrscheinlich nur eine Kleinigkeit, die hier fehlt. Das Stop-Script besteht ja eigentlich nur aus der Zeile

                      setState("<Objekt>", JSON.parse(schedule_wiederherstellen));

                      Jetzt müsste man nur noch wissen, warum der Wert nicht richtig übergeben wird. Die Fehlermeldung lautet
                      "SyntaxError: Unexpected token o in JSON at position 1"
                      Ich denke, der Wert ist nur nicht richtig formatiert vom Typ her. Wenn man ihn - wie im Start-Script - als festen Wert übergibt, geht's ja.

                      I 1 Reply Last reply
                      0
                      • I io2345

                        @PAUL53
                        Paul53, kannst du hier eventuell helfen? Ich hab von dir ein paar gute Sachen in anderen Beiträgen gelesen, du scheinst dich in JScript wirklich gut auszukennen.
                        Ist wahrscheinlich nur eine Kleinigkeit, die hier fehlt. Das Stop-Script besteht ja eigentlich nur aus der Zeile

                        setState("<Objekt>", JSON.parse(schedule_wiederherstellen));

                        Jetzt müsste man nur noch wissen, warum der Wert nicht richtig übergeben wird. Die Fehlermeldung lautet
                        "SyntaxError: Unexpected token o in JSON at position 1"
                        Ich denke, der Wert ist nur nicht richtig formatiert vom Typ her. Wenn man ihn - wie im Start-Script - als festen Wert übergibt, geht's ja.

                        I Online
                        I Online
                        io2345
                        wrote on last edited by io2345
                        #705

                        Da hier Funkstille herrschte, hab ich überlegt ob das nun bedeutet "Die Sache ist so einfach, da kommt er selbst drauf" oder "Das ist so schwer, da fällt mir keine Lösung ein".
                        Ich bin jetzt mal davon ausgegangen, dass ersteres gemeint war, und hab weiter rumprobiert.
                        Eine funktionierende Script-Variante habe ich nun gefunden, die sieht so aus:

                        async function start_zirk() {
                            // Schedule wird zum Einschalten der Pumpe temporär verändert, so dass die Pumpe
                            // zwischen 00:00 und 23:59 Uhr zuverlässig eingeschaltet ist. Das in der Wärmepumpe 
                            // vorhandene Zeitprogramm der Zirkulationspumpe wird in einen eigenen Datenpunkt gesichert
                            
                            pump_on = '{"mon":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"tue":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"wed":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"thu":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"fri":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sat":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sun":[{"start":"00:00","end":"23:59","mode":"on","position":0}]}';
                            schedule_sichern = getState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue').val;
                            
                            setState("0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule",JSON.parse(JSON.stringify(schedule_sichern)));
                            
                            setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_off
                        }
                        
                        async function stop_zirk() {
                            // Der urspüngliche Schedule wird zurückgeschrieben. 
                            
                            schedule_wiederherstellen = schedule_sichern;
                            setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(JSON.stringify(schedule_wiederherstellen)));
                        }
                        
                        
                        on({ id: [].concat(['0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_']), change: 'ne' }, async (obj) => {
                          let value = obj.state.val;
                          let oldValue = obj.oldState.val;
                          if ((obj.state ? obj.state.val : "") == true) {
                            await start_zirk();
                            log ("Zirkulationspumpe läuft für zwei Minuten");
                            await wait(120000);
                            setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_' /* EigeneDatenpunkte.Heizung.ZirkulationAn  */, false, true);
                            await stop_zirk();
                          }
                        });
                        

                        Er meckert zwar im Log "State value to set for <Datenpunkt> has to be one of type "string", "number", "boolean" but received type "object"", aber es läuft zumindest durch.
                        Wenn jetzt jemand noch Hinweise hätte, wie ich die o.g. Logeinträge vermeiden kann, gerne her damit.

                        ? 1 Reply Last reply
                        0
                        • I io2345

                          Da hier Funkstille herrschte, hab ich überlegt ob das nun bedeutet "Die Sache ist so einfach, da kommt er selbst drauf" oder "Das ist so schwer, da fällt mir keine Lösung ein".
                          Ich bin jetzt mal davon ausgegangen, dass ersteres gemeint war, und hab weiter rumprobiert.
                          Eine funktionierende Script-Variante habe ich nun gefunden, die sieht so aus:

                          async function start_zirk() {
                              // Schedule wird zum Einschalten der Pumpe temporär verändert, so dass die Pumpe
                              // zwischen 00:00 und 23:59 Uhr zuverlässig eingeschaltet ist. Das in der Wärmepumpe 
                              // vorhandene Zeitprogramm der Zirkulationspumpe wird in einen eigenen Datenpunkt gesichert
                              
                              pump_on = '{"mon":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"tue":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"wed":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"thu":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"fri":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sat":[{"start":"00:00","end":"23:59","mode":"on","position":0}],"sun":[{"start":"00:00","end":"23:59","mode":"on","position":0}]}';
                              schedule_sichern = getState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue').val;
                              
                              setState("0_userdata.0.EigeneDatenpunkte.Heizung.ZwischenspeicherZirkulationspumpeSchedule",JSON.parse(JSON.stringify(schedule_sichern)));
                              
                              setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_off
                          }
                          
                          async function stop_zirk() {
                              // Der urspüngliche Schedule wird zurückgeschrieben. 
                              
                              schedule_wiederherstellen = schedule_sichern;
                              setState("viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(JSON.stringify(schedule_wiederherstellen)));
                          }
                          
                          
                          on({ id: [].concat(['0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_']), change: 'ne' }, async (obj) => {
                            let value = obj.state.val;
                            let oldValue = obj.oldState.val;
                            if ((obj.state ? obj.state.val : "") == true) {
                              await start_zirk();
                              log ("Zirkulationspumpe läuft für zwei Minuten");
                              await wait(120000);
                              setState('0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn_' /* EigeneDatenpunkte.Heizung.ZirkulationAn  */, false, true);
                              await stop_zirk();
                            }
                          });
                          

                          Er meckert zwar im Log "State value to set for <Datenpunkt> has to be one of type "string", "number", "boolean" but received type "object"", aber es läuft zumindest durch.
                          Wenn jetzt jemand noch Hinweise hätte, wie ich die o.g. Logeinträge vermeiden kann, gerne her damit.

                          ? Offline
                          ? Offline
                          A Former User
                          wrote on last edited by
                          #706

                          @io2345

                          Hi,
                          wenn du am Anfang deines Scripts die Variablen definierst, und den Datenpunkt als String anlegst, dann sollte das gehen, ganz ohne Fehler..

                          Also oben noch drueber:

                          var pump_off, pump_on, schedule_sichern, schedule_wiederherstellen
                          
                          
                          I 1 Reply Last reply
                          0
                          • G Offline
                            G Offline
                            guitardoc
                            wrote on last edited by
                            #707

                            Hallo zusammen,

                            Ich habe ein Hybridsystem bestehend aus einer Viessmann Gasheizung und einer (neuen) Viessmann Wärmepumpe. Im Moment heize ich mit Gas, welches hier sehr viel preiswerter als Strom ist. Dazu habe ich den Parameter 7B02 der Wärmepumpe auf einen hohen Wert gestellt, damit diese nicht anspringt.
                            Da ich aber noch eine PV-Anlage auf dem Dach habe, welche an sonnigen Tagen mehr Strom produziert als ich verbrauche bzw. im Akku speichern kann, könnte ich mit dem überschüssigen Strom die Wärmepumpe betreiben und auch das Gas sparen.
                            Nach meinen bisherigen Recherchen wäre das mit dem Parameter 7B02 in der Wärmepumpe realisierbar, welcher dann eben auf einen sehr hohen (Gasheizung soll laufen) oder einen niedrigeren (Wärmepumpe soll laufen) Wert der Bivalenztemperatur eingestellt wird, je nachdem, ob und wie viel überschüssiger Strom vorhanden ist.
                            Steuern wollte ich das über ioBroker. Allerdings finde ich im Viessmannapi-Adapter den Parameter 7B02 nicht. Daher meine Fragen:

                            • Gibt es eine Möglichkeit, diesen Adapter per ioBroker und die Viessmann API in die Wärmepumpe zu schreiben?
                            • Oder ist die Vorgehensweise über den Parameter 7B02 gar nicht sinnvoll und es gibt eine viel bessere Variante für mein Vorhaben?

                            Danke schon einmal vorab für die Hilfe!

                            PS. Hab die Frage schon im allgemeinen Forum gepostet - nicht wundern dass das doppelt erscheint.

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              dan11hh
                              wrote on last edited by
                              #708

                              Kurze Frage, weil ich mir gerade eine WP ggf. von Viessmann anschaffen möchte:
                              Was muss eine Viessmann WP haben um vernünftig in den ioBroker integriert werden zu können? Geht auch die kleinste, die 150-A?

                              1 Reply Last reply
                              0
                              • W Offline
                                W Offline
                                wmendelin
                                wrote on last edited by
                                #709
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • W Offline
                                  W Offline
                                  wmendelin
                                  wrote on last edited by
                                  #710

                                  Ich habe seit einiger Zeit das Problem, das ich keine Daten mehr angezeigt bekomme.
                                  Nun habe ich mal die Viessmann Api 2.3.0 neu installiert und auch bei Viessmann den User gelöscht und neu angelegt.
                                  Das eigenartige ist das ich im Vicare alle Daten habe so wie sonst auch.
                                  Aber nun im Log von IO Broker diese Fehlermeldungen, siehe Screenshot.

                                  Screenshot 2024-03-18 150111.png

                                  Weiß jemand wie ich das gefixt bekomme?

                                  T 1 Reply Last reply
                                  0
                                  • W wmendelin

                                    Ich habe seit einiger Zeit das Problem, das ich keine Daten mehr angezeigt bekomme.
                                    Nun habe ich mal die Viessmann Api 2.3.0 neu installiert und auch bei Viessmann den User gelöscht und neu angelegt.
                                    Das eigenartige ist das ich im Vicare alle Daten habe so wie sonst auch.
                                    Aber nun im Log von IO Broker diese Fehlermeldungen, siehe Screenshot.

                                    Screenshot 2024-03-18 150111.png

                                    Weiß jemand wie ich das gefixt bekomme?

                                    T Offline
                                    T Offline
                                    tombox
                                    wrote on last edited by
                                    #711

                                    @wmendelin was sagt v2.4.0 oder die github version

                                    1 Reply Last reply
                                    0
                                    • ? A Former User

                                      @io2345

                                      Hi,
                                      wenn du am Anfang deines Scripts die Variablen definierst, und den Datenpunkt als String anlegst, dann sollte das gehen, ganz ohne Fehler..

                                      Also oben noch drueber:

                                      var pump_off, pump_on, schedule_sichern, schedule_wiederherstellen
                                      
                                      
                                      I Online
                                      I Online
                                      io2345
                                      wrote on last edited by io2345
                                      #712

                                      @ilovegym
                                      Die Idee ist naheliegend, bringt allerdings keine Änderung.
                                      Problem an der Sache ist, dass das Feld
                                      viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue
                                      offenbar ein object sein muss. Setzte ich da [string String] beschwert er sich lautstark im Log:

                                      "{"viErrorId":"|00-df1620f45a6c415286355551f42a7806-5c26a61706d64cad-01.baf6ebd4_","statusCode":400,"errorType":"DEVICE_COMMUNICATION_ERROR","message":"","extendedPayload":{"httpStatusCode":"BadRequest","code":"400","reason":"VALIDATION_ERROR","details":"The parameter newSchedule="[string String]" does not meet the constraints {"type":"Schedule","modes":["5/25-cycles","5/10-cycles","on"],"maxEntries":8,"resolution":10,"defaultMode":"off","overlapAllowed":true}: The parameter should be an object."}}"

                                      ? 1 Reply Last reply
                                      0
                                      • T tombox

                                        Hi ich habe ein neuen Adapter für Viessman erstellt

                                        Man benötigt eine ClientID von der Viessmann API

                                        https://app.developer.viessmann-climatesolutions.com besuchen und eine Client ID mit diesen Optionen erstellen:

                                        Name: iobroker
                                        Google reCAPTCHA deaktivieren
                                        Redirect URI: http://localhost:4200/

                                        Die Client ID in die Einstellungen kopieren

                                        Außentemperatur findet sich z.B. hier:
                                        viessmannapi.0.XXXXX.0.features.heating.sensors.temperature.outside.properties.value.value

                                        Weitere Beispiele siehe Unten

                                        Remote Befehle sind möglich unter
                                        viessmannapi.0.XXXXX.0.features.heating.dhw.temperature.main.commands.setTargetTemperature.setValue

                                        Zum Installieren:
                                        Via Adaptersuche

                                        In den Instanzoptionen die jeweiligen Optionen einstellen.

                                        Github
                                        https://github.com/TA2k/ioBroker.viessmannapi

                                        Kompatibilitätsliste:
                                        https://documentation.viessmann.com/static/compatibility
                                        Regelungen für Wand- oder Kompaktgeräte
                                        Vitotronic 200, Typ HO1, HO1A, HO1B, HO1D, HO2B, HO2C
                                        Vitotronic 200 RF, Typ HO1C, HO1E
                                        Regelungen für bodenstehende Heizkessel
                                        Vitotronic 200, Typ KO1B, KO2B, KW6, KW6A, KW6B, KW1, KW2, KW4, KW5
                                        Vitotronic 300, Typ KW3
                                        Regelungen für Wärmepumpen und Hybridgeräte
                                        Vitotronic 200, Typ WO1A, WO1B, WO1C
                                        Regelungen für Festbrennstoffkessel
                                        Vitoligno 200-S mit Ecotronic (ab Softwarestand 2.03)
                                        Vitoligno 250-S mit Ecotronic (ab Softwarestand 2.00)
                                        Vitoligno 300-C mit Ecotronic (ab Softwarestand 2.12)
                                        Vitoligno 300-P mit Vitotronic 200 FO1
                                        Vitoligno 300-S mit Ecotronic (ab Softwarestand 2.04)

                                        Liste aller Datenpunkte:
                                        https://documentation.viessmann.com/static/iot/data-points

                                        Frage zu fehlende Datenpunkte bitte direkt an Viessmann
                                        https://www.viessmann-community.com/t5/The-Viessmann-API/bd-p/dev-viessmann-api

                                        Beispiele:

                                        Vorlauftemperatur: 
                                        viessmannapi.0.XXXX.features.heating.circuits.0.sensors.temperature.supply.properties.value.value, 
                                        
                                        Brennerstatus:
                                        viessmannapi.0.XXXX.0.features.heating.burners.0.properties.active.value
                                        
                                        Anzahl Zündungen:
                                        viessmannapi.0.XXXXX.features.heating.burners.0.statistics.properties.starts.value
                                        
                                        Betriebsstunden
                                        viessmannapi.0.XXXXX.features.heating.burners.0.statistics.properties.hours.value
                                        
                                        Kesseltemperatur
                                        viessmannapi.0.XXXXX.features.heating.boiler.sensors.temperature.main.properties.unit.value
                                        
                                        Kompressor aktiv:		viessmannapi.0.xxx.0.features.heating.compressors.0.properties.active.value
                                        Heizkreispumpe aktiv:		viessmannapi.0.xxx.0.features.heating.circuits.1.circulation.pump.properties.status.value
                                        Warmwasserbereitung:		viessmannapi.0.xxx.0.features.heating.dhw.charging.properties.active.value
                                        Heizungsmodus:			viessmannapi.0.xxx.0.features.heating.circuits.1.operating.modes.active.properties.value.value
                                        Heizprogramm:			viessmannapi.0.xxx.0.features.heating.circuits.1.operating.programs.active.properties.value.value
                                        Temperatur Heizprogramm normal:	viessmannapi.0.xxx.0.features.heating.circuits.1.operating.programs.normal.properties.temperature.value
                                        Temperatur Heizprogramm reduz.:	viessmannapi.0.xxx.0.features.heating.circuits.1.operating.programs.reduced.properties.temperature.value
                                        Warmwasser Soll Temperatur:	viessmannapi.0.xxx.0.features.heating.dhw.temperature.properties.value.value
                                        Warmwasser Ist Temperatur:	viessmannapi.0.xxx.0.features.heating.dhw.sensors.temperature.hotWaterStorage.properties.value.value
                                        Temperatur Außensensor:		viessmannapi.0.xxx.0.features.heating.sensors.temperature.outside.properties.value.value
                                        Statistik Kompressor Starts:	viessmannapi.0.xxx.0.features.heating.compressors.0.statistics.properties.starts.value
                                        Statistik Kompressor Stunden:	viessmannapi.0.xxx.0.features.heating.compressors.0.statistics.properties.hours.value
                                        Temperatursensoren der Heizkreise:   viessmannapi.0.xxxxxxx.0.features.heating.circuits.0.sensors.temperature.supply.properties.value.value
                                         
                                        Primärkreis Vorlauftemperatur:		viessmann.0.xxx.0.features.heating.primaryCircuit.sensors.temperature.supply.properties.value.value
                                        Sekundärkreis Vorlauftemperatur:	viessmann.0.xxx.0.features.heating.secondaryCircuit.sensors.temperature.supply.properties.value.value
                                        Sekundärkreis Rücklauftemperatur:	viessmann.0.xxx.0.features.heating.secondaryCircuit.sensors.temperature.return.properties.value.value
                                        ?					viessmann.0.xxx.0.features.heating.sensors.temperature.return.properties.value.value
                                        
                                        
                                        Heizung an (Kompressor): viessmannapi.0.x.0.features.heating.compressors.0.properties.active.value
                                        
                                        WW Temp viessmannapi.0.x.0.features.heating.dhw.sensors.temperature.hotWaterStorage.properties.value.value
                                        
                                        HW Temp  viessmannapi.0.x.0.features.heating.buffer.sensors.temperature.main.properties.value.value
                                        
                                        ZP features.heating.circuits.1.circulation.pump.properties.status.value
                                        
                                        WP_Aussentemperatur 0.features.heating.sensors.temperature.outside.properties.value.value
                                        WP_gemeinsame Vorlauftemperatur 0.features.heating.boiler.sensors.temperature.commonSupply.properties.value.value
                                        WP_Temperatur Pufferspeicher 0.features.heating.buffer.sensors.temperature.main.properties.value.value
                                        WP_Heizkörper_Umwälzpumpe ON/OFF 0.features.heating.circuits.0.circulation.pump.properties.status.value
                                        WP_Heizkörper_Umwälzpumpe_Frostschutz 0.features.heating.circuits.0.frostprotection.properties.status.value
                                        WP_Heizkörper_Niveau 0.features.heating.circuits.0.heating.curve.properties.shift.value
                                        WP_Heizkörper_Neigung 0.features.heating.circuits.0.heating.curve.properties.slope.value
                                        WP_Heizkörper_Zeitplan 0.features.heating.circuits.0.heating.schedule.properties.entries.value
                                        WP_Heizkörper_Komfort_Solltemperatur 0.features.heating.circuits.0.operating.programs.comfortHeating.properties.temperature.value
                                        WP_Heizkörper_Normal_Solltemperatur 0.features.heating.circuits.0.operating.programs.normalHeating.properties.temperature.value
                                        WP_Heizkörper_Reduziert_Solltemperatur 0.features.heating.circuits.0.operating.programs.reducedHeating.properties.temperature.value
                                        WP_Vorlauftemperatur Heizkörper 0.features.heating.circuits.0.sensors.temperature.supply.properties.value.value
                                        ???? 0.features.heating.circuits.0.operating.programs.comfortEnergySaving.properties.reason.value
                                        ???? 0.features.heating.circuits.0.operating.programs.normalEnergySaving.properties.reason.value
                                        WP_Heizkörper_FBH ON/OFF 0.features.heating.circuits.1.circulation.pump.properties.status.value
                                        WP_FBH_Umwälzpumpe_Frostschutz 0.features.heating.circuits.1.frostprotection.properties.status.value
                                        WP_FBH_Niveau 0.features.heating.circuits.1.heating.curve.properties.shift.value
                                        WP_FBH_Neigung 0.features.heating.circuits.1.heating.curve.properties.slope.value
                                        WP_FBH_Zeitplan 0.features.heating.circuits.1.heating.schedule.properties.entries.value
                                        
                                        WP_FBH_Komfort_Solltemperatur 0.features.heating.circuits.1.operating.programs.comfortHeating.properties.temperature.value
                                        WP_FBH_Normal_Solltemperatur 0.features.heating.circuits.1.operating.programs.normalHeating.properties.temperature.value
                                        WP_FBH_Reduziert_Solltemperatur 0.features.heating.circuits.1.operating.programs.reducedHeating.properties.temperature.value
                                        
                                        WP_FBH_Vorlauftemperatur 0.features.heating.circuits.1.sensors.temperature.supply.properties.value.value
                                        
                                        WP_Stromverbrauch_HEUTE 0.features.heating.power.consumption.summary.heating.properties.currentDay.value
                                        WP_Stromverbrauch_MONAT 0.features.heating.power.consumption.summary.heating.properties.currentMonth.value
                                        WP_Stromverbrauch_JAHR 0.features.heating.power.consumption.summary.heating.properties.currentYear.value
                                        WP_Stromverbrauch_LETZTER_MONAT 0.features.heating.power.consumption.summary.heating.properties.lastMonth.value
                                        WP_Stromverbrauch_LETZTEN_7_TAGE 0.features.heating.power.consumption.summary.heating.properties.lastSevenDays.value
                                        WP_Stromverbrauch_LETZTES_JAHR 0.features.heating.power.consumption.summary.heating.properties.lastYear.value
                                        WP_Primärkreis_Temperatur 0.features.heating.primaryCircuit.sensors.temperature.supply.properties.value.value
                                        WP_Sekundärkreis_Temperatur 0.features.heating.secondaryCircuit.sensors.temperature.supply.properties.value.value
                                        WP_Rücklauftemperatur 0.features.heating.sensors.temperature.return.properties.value.value
                                        WP_Volumenstrom 0.features.heating.sensors.volumetricFlow.allengra.properties.value.value
                                        Betriebsstunden Verdichter 0.features.heating.compressors.0.statistics.properties.hours.value
                                        

                                        Beispiel zum setzen eines Schedule:

                                        var standard = '{"mon":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],"tue":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],\
                                                      "wed":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],"thu":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],\
                                                      "fri":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],"sat":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],\
                                                      "sun":[{"start":"00:00","end":"24:00","mode":"standard","position":0}]}'
                                         
                                        setState("viessmannapi.0.xxxxxxx.0.features.ventilation.schedule.commands.setSchedule.setValue", JSON.parse(standard)); 
                                        

                                        Beispiel zirkulationspumpe

                                        // schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr
                                        var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}'
                                        // schedule leeren - pumpe ausschalten
                                        var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' 
                                         
                                        setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_off
                                        

                                        Die Max. Heizleistung gibt es nicht als API Datenpunkt, kann nur am Gerät geändert werden.

                                        Kostenlose Paket enthält:
                                        23a824bd-cb36-4930-b8c0-cde030634129-image.png

                                        Zum Installieren:
                                        https://github.com/TA2k/ioBroker.viessmannapi

                                        Für die aktuelle Version bitte das latest Repo auswählen:

                                        2d049982-5353-4202-a33f-996f344bd4ae-image.png

                                        I Online
                                        I Online
                                        io2345
                                        wrote on last edited by
                                        #713

                                        Nach einem kurzen Blick über die verfügbaren Datenpunkte, die man setzen kann, gibt es wohl keinen, mit dem man die Primärpumpe einer Wasser/Wasser-Wärmepumpe (oder wahlweise die ganze Anlage) abschalten kann. Sehe ich das richtig?

                                        Ich möchte vermeiden, dass die Primärpumpe (Grundwasserpumpe) bei einer Leckage im Keller mir denselben flutet. Habe deshalb einen Tuya-Wassersensor angeschafft, mit dessen Hilfe ich über die Viessmann-API in jedem Fall eine zuverlässige Abschaltung erreichen will. Erst mal egal, ob nur die Primärpumpe deaktiviert wird, oder gleich die ganze Wärmepumpe abgeschalten wird. Hauptsache, die Primärpumpe fördert dann nicht mehr.
                                        Alarm würde ja über die Tuya "Smart Home" App kommen. Aber was ist, wenn das Smartphone nachts aus ist oder ich nicht zuhause?

                                        Hat einer von euch eine Idee, wie man das realisieren könnte?
                                        Wenn sonst keine Möglichkeit besteht, das über die API zu machen, habe ich mir schon überlegt, einen Smart Switch zusätzlich anzuschaffen, der im Fehlerfall die Sicherheitskeitskette (Klemmen X3.8 / 3.9) unterbricht. Aber möglicherweise geht's ja doch über die API ???

                                        ? 1 Reply Last reply
                                        0
                                        • I io2345

                                          @ilovegym
                                          Die Idee ist naheliegend, bringt allerdings keine Änderung.
                                          Problem an der Sache ist, dass das Feld
                                          viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue
                                          offenbar ein object sein muss. Setzte ich da [string String] beschwert er sich lautstark im Log:

                                          "{"viErrorId":"|00-df1620f45a6c415286355551f42a7806-5c26a61706d64cad-01.baf6ebd4_","statusCode":400,"errorType":"DEVICE_COMMUNICATION_ERROR","message":"","extendedPayload":{"httpStatusCode":"BadRequest","code":"400","reason":"VALIDATION_ERROR","details":"The parameter newSchedule="[string String]" does not meet the constraints {"type":"Schedule","modes":["5/25-cycles","5/10-cycles","on"],"maxEntries":8,"resolution":10,"defaultMode":"off","overlapAllowed":true}: The parameter should be an object."}}"

                                          ? Offline
                                          ? Offline
                                          A Former User
                                          wrote on last edited by
                                          #714

                                          @io2345

                                          ich schalte die Zirkulationspumpe so (das Skript hat hier auch schon einer mal gepostet):

                                          // schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr
                                          var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}'
                                          // schedule leeren - pumpe ausschalten
                                          var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' 
                                           
                                          on({id: '0_userdata.0.Schalter.Zirkulationspumpe'/*Zirkulationspumpe*/, change: "ne"}, async function (obj) {
                                            var value = obj.state.val;
                                            var oldValue = obj.oldState.val;
                                            if ((obj.state ? obj.state.val : "")) {
                                              setState('viessmannapi.0.84605.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue', JSON.parse(pump_on)); // oder pump_off
                                            } else {
                                              setState('viessmannapi.0.84605.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue', JSON.parse(pump_off)); // oder pump_off
                                            }
                                          });
                                           
                                          
                                          

                                          Da gibts keine Fehlermeldungen bei mir..

                                          I 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

                                          572

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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