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. Tester
  4. Test ViessmannAPI v2.0.0

NEWS

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

  • 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

Test ViessmannAPI v2.0.0

Test ViessmannAPI v2.0.0

Scheduled Pinned Locked Moved Tester
802 Posts 127 Posters 279.6k 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.
  • 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 Offline
    I Offline
    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 Offline
                  I Offline
                  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.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

                    I Offline
                    I Offline
                    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
                      • I io2345

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

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

                        @io2345

                        Also sowas wuerde ich nicht ueber die Api im Netzwerk machen, wenn Viessman Wartungsarbeiten haben oder so, dann funktioniert das nicht.

                        Mit dem tuya-Adapter holst du dir den Wassermelder auch lokal in den iobroker, sofern er nicht mit Batterien betrieben ist..
                        und dann ne Schaltsteckdose oder n Sonoff Basic oder Shelly PM zwischen die Pumpe, damit du abschalten kannst..

                        I 1 Reply Last reply
                        0
                        • ? A Former User

                          @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 Offline
                          I Offline
                          io2345
                          wrote on last edited by
                          #716

                          @ilovegym
                          Das von dir gepostete Script hatte ich als Basis für die Weiterentwicklung genommen und dahingehend verbessert, dass die an der Wärmepumpensteuerung eingestellten Werte vorher ausgelesen und zwischengespeichert werden, dann die Zirkulationspumpe eingeschaltet wird
                          (bei mir ganztägig - 0 bis 24 Uhr) für ein paar Minuten. Am Ende wird der vorher zwischengespeicherte Wert wieder zurück geschrieben.
                          Heißt: Ändert man an der Wärmepumpensteuerung den Zeitplan für die Zirkulation, bleibt dieser nach dem Scriptlauf auch so erhalten.

                          Das Script selbst funktioniert einwandfrei:

                          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.properties.entries.value'/*value*/).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 = 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();
                            }
                          });
                          

                          es kommt lediglich beim Starten und Stoppen die Meldung im Log
                          State value to set for "viessmannapi.0.133007.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue" has to be one of type "string", "number", "boolean" but received type "object"
                          Diese Meldung müsste im übrigen bei dir genauso auftauchen, in deinem Script ist das Zeile 10. Kommt bei dir kein Logeintrag im iobroker-Log?

                          I 1 Reply Last reply
                          0
                          • ? A Former User

                            @io2345

                            Also sowas wuerde ich nicht ueber die Api im Netzwerk machen, wenn Viessman Wartungsarbeiten haben oder so, dann funktioniert das nicht.

                            Mit dem tuya-Adapter holst du dir den Wassermelder auch lokal in den iobroker, sofern er nicht mit Batterien betrieben ist..
                            und dann ne Schaltsteckdose oder n Sonoff Basic oder Shelly PM zwischen die Pumpe, damit du abschalten kannst..

                            I Offline
                            I Offline
                            io2345
                            wrote on last edited by io2345
                            #717

                            @ilovegym
                            Na ja, ein Restrisiko besteht natürlich weiterhin. Solange man sein Gerät nicht aus der Tuya-Cloud befreit, ist man mit einer Steckdose aber weiterhin von einem Provider abhängig.
                            Über die Viessmann API hätte halt den Charme, dass man nicht noch ein weiteres Gerät haben muss und wäre somit meine favorisierte Lösung.

                            Der Wassermelder läuft im Übrigen mit einer Batterie (vermutlich alle haben eine)

                            ==========================
                            Update: Dank eines Hinweises auf "rustimation.eu" habe ich es jetzt für mich zufriedenstellend hinbekommen. Die Abschaltung ist zwar nicht 100%ig, da zumindest bei Frostgefahr in der Anlage diese sich wieder aktivieren würde. Aber eine Zeitlang wäre zumindest "aus" und somit ausreichend Gelegenheit, zu reagieren.
                            Script hierzu:

                            //Bei Wasser am Sensor neben dem Primärwärmetauscher wird die
                            //Wärmepumpe abgeschalten. Zum Einschalten in der Steuerung der WP
                            //die Betriebsart "Warmwasser, Heizen und Kühlen" einstellen oder Datenpunkt 
                            //"viessmannapi.0.133000.0.features.heating.circuits.1.operating.modes.active.commands.setMode.setValue"
                            //auf "dhwAndHeatingCooling" setzen
                            
                            on({ id: [].concat(['tuya.0.bf709929d1fb102bc7am0v.1'/*watersensor state*/]), change: 'ne' }, async (obj) => {
                              let value = obj.state.val;
                              let oldValue = obj.oldState.val;
                              if ((obj.state ? obj.state.val : "") == false) {
                                setState('viessmannapi.0.133000.0.features.heating.circuits.1.operating.modes.active.commands.setMode.setValue', "standby");
                                sendTo("email", "send", {
                                   text: 'Heizung Alarm. Leckage an Primärpumpe oder Heizung?',
                                   to: '<deineMailAdresse>@<provider.com>',
                                   subject: 'Alarm Heizung Leckage',
                                   from: '<deineMailAdresse>@<provider.com>'
                                });
                              }
                            });
                            
                            
                            ? 1 Reply Last reply
                            0
                            • I io2345

                              @ilovegym
                              Na ja, ein Restrisiko besteht natürlich weiterhin. Solange man sein Gerät nicht aus der Tuya-Cloud befreit, ist man mit einer Steckdose aber weiterhin von einem Provider abhängig.
                              Über die Viessmann API hätte halt den Charme, dass man nicht noch ein weiteres Gerät haben muss und wäre somit meine favorisierte Lösung.

                              Der Wassermelder läuft im Übrigen mit einer Batterie (vermutlich alle haben eine)

                              ==========================
                              Update: Dank eines Hinweises auf "rustimation.eu" habe ich es jetzt für mich zufriedenstellend hinbekommen. Die Abschaltung ist zwar nicht 100%ig, da zumindest bei Frostgefahr in der Anlage diese sich wieder aktivieren würde. Aber eine Zeitlang wäre zumindest "aus" und somit ausreichend Gelegenheit, zu reagieren.
                              Script hierzu:

                              //Bei Wasser am Sensor neben dem Primärwärmetauscher wird die
                              //Wärmepumpe abgeschalten. Zum Einschalten in der Steuerung der WP
                              //die Betriebsart "Warmwasser, Heizen und Kühlen" einstellen oder Datenpunkt 
                              //"viessmannapi.0.133000.0.features.heating.circuits.1.operating.modes.active.commands.setMode.setValue"
                              //auf "dhwAndHeatingCooling" setzen
                              
                              on({ id: [].concat(['tuya.0.bf709929d1fb102bc7am0v.1'/*watersensor state*/]), change: 'ne' }, async (obj) => {
                                let value = obj.state.val;
                                let oldValue = obj.oldState.val;
                                if ((obj.state ? obj.state.val : "") == false) {
                                  setState('viessmannapi.0.133000.0.features.heating.circuits.1.operating.modes.active.commands.setMode.setValue', "standby");
                                  sendTo("email", "send", {
                                     text: 'Heizung Alarm. Leckage an Primärpumpe oder Heizung?',
                                     to: '<deineMailAdresse>@<provider.com>',
                                     subject: 'Alarm Heizung Leckage',
                                     from: '<deineMailAdresse>@<provider.com>'
                                  });
                                }
                              });
                              
                              
                              ? Offline
                              ? Offline
                              A Former User
                              wrote on last edited by
                              #718

                              @io2345

                              Danke fuer die Infos und das Update, ich finds immer gut, wenn andere auch Ihre Scripte teilen, und wissen lassen, woran es gelegen hat...
                              🙂

                              1 Reply Last reply
                              0
                              • I io2345

                                @ilovegym
                                Das von dir gepostete Script hatte ich als Basis für die Weiterentwicklung genommen und dahingehend verbessert, dass die an der Wärmepumpensteuerung eingestellten Werte vorher ausgelesen und zwischengespeichert werden, dann die Zirkulationspumpe eingeschaltet wird
                                (bei mir ganztägig - 0 bis 24 Uhr) für ein paar Minuten. Am Ende wird der vorher zwischengespeicherte Wert wieder zurück geschrieben.
                                Heißt: Ändert man an der Wärmepumpensteuerung den Zeitplan für die Zirkulation, bleibt dieser nach dem Scriptlauf auch so erhalten.

                                Das Script selbst funktioniert einwandfrei:

                                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.properties.entries.value'/*value*/).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 = 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();
                                  }
                                });
                                

                                es kommt lediglich beim Starten und Stoppen die Meldung im Log
                                State value to set for "viessmannapi.0.133007.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue" has to be one of type "string", "number", "boolean" but received type "object"
                                Diese Meldung müsste im übrigen bei dir genauso auftauchen, in deinem Script ist das Zeile 10. Kommt bei dir kein Logeintrag im iobroker-Log?

                                I Offline
                                I Offline
                                io2345
                                wrote on last edited by
                                #719

                                @io2345 said in Test ViessmannAPI v2.0.0:

                                Zur Info, nicht dass andere sich wundern: Das Zirkulationspumpenscript (fünf Posts weiter oben) bringt mittlerweile nicht mehr den gewünschten Effekt, warum auch immer.

                                Mit

                                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}]}'
                                    setState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue', JSON.parse(pump_on));
                                

                                kann ich den setValue-Datenpunkt zwar beschreiben, die Zirkulationspumpe startet jedoch nicht (zumindest bei mir). Den Grund hierfür kenne ich noch nicht, wollte aber die Info weitergeben.

                                M I 2 Replies Last reply
                                0
                                • I io2345

                                  @io2345 said in Test ViessmannAPI v2.0.0:

                                  Zur Info, nicht dass andere sich wundern: Das Zirkulationspumpenscript (fünf Posts weiter oben) bringt mittlerweile nicht mehr den gewünschten Effekt, warum auch immer.

                                  Mit

                                  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}]}'
                                      setState('viessmannapi.0.133000.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue', JSON.parse(pump_on));
                                  

                                  kann ich den setValue-Datenpunkt zwar beschreiben, die Zirkulationspumpe startet jedoch nicht (zumindest bei mir). Den Grund hierfür kenne ich noch nicht, wollte aber die Info weitergeben.

                                  M Online
                                  M Online
                                  mading
                                  wrote on last edited by
                                  #720

                                  @io2345 sagte in Test ViessmannAPI v2.0.0:

                                  @io2345 said in Test ViessmannAPI v2.0.0:

                                  Zur Info, nicht dass andere sich wundern: Das Zirkulationspumpenscript (fünf Posts weiter oben) bringt mittlerweile nicht mehr den gewünschten Effekt, warum auch immer.

                                  Danke, hat das bei dir immer zuverlässig funktioniert? Bei mir nicht, daher bin ich auf ein Kabel mit Schaltsteckdose umgestiegen…

                                  I 1 Reply Last reply
                                  0
                                  • M mading

                                    @io2345 sagte in Test ViessmannAPI v2.0.0:

                                    @io2345 said in Test ViessmannAPI v2.0.0:

                                    Zur Info, nicht dass andere sich wundern: Das Zirkulationspumpenscript (fünf Posts weiter oben) bringt mittlerweile nicht mehr den gewünschten Effekt, warum auch immer.

                                    Danke, hat das bei dir immer zuverlässig funktioniert? Bei mir nicht, daher bin ich auf ein Kabel mit Schaltsteckdose umgestiegen…

                                    I Offline
                                    I Offline
                                    io2345
                                    wrote on last edited by io2345
                                    #721

                                    @mading
                                    Danke für deine Info. Das kann ich, ehrlich gesagt, gar nicht beurteilen. Bei der Einrichtung damals hatte es funktioniert, ich hatte die Hand an der Pumpe. Kann aber natürlich sein, dass es zwischendurch auch schon nicht funktionierte. Merkt man ja nicht unmittelbar, da nach einer gewissen Zeit ja ohnehin warmes Wasser kommt.
                                    Sobald ich Zeit finde, schaue ich mir das nochmal an.

                                    Eine API die nicht zuverlässig funktioniert, ist jedenfalls nicht zu gebrauchen, da gebe ich die vollumfänglich recht.

                                    1 Reply Last reply
                                    0
                                    • I Offline
                                      I Offline
                                      io2345
                                      wrote on last edited by io2345
                                      #722

                                      @io2345
                                      Wenn ich mir die Doku der API auf
                                      Viessmann Developers
                                      so ansehe, kann doch da ohnehin was nicht stimmen. Da steht:

                                      heating.circuits.N.dhw.pumps.circulation.schedule
                                      Shows the schedule of the domestic hot water (DHW) pump circulation for heating circuit N and provides a command to set a new schedule

                                      Aber den Pfad gibt es im Viessmann-Adapter des ioBroker gar nicht. Unter

                                      ...heating -> circuits -> 1 ->

                                      gibt's bei mir kein "dhw."
                                      Der naheliegendste Eintrag heißt bei mir "circulation". Das passt aber mit der Doku nicht zusammen.

                                      Kann es sein, dass es daran liegt, dass es nicht funktioniert?

                                      Die oben genannten Pfade liegen alle unterhalb von
                                      viessmannapi.0.<Anlagen-ID>.0.features.

                                      G T Rene55R 3 Replies Last reply
                                      0
                                      • I io2345

                                        @io2345
                                        Wenn ich mir die Doku der API auf
                                        Viessmann Developers
                                        so ansehe, kann doch da ohnehin was nicht stimmen. Da steht:

                                        heating.circuits.N.dhw.pumps.circulation.schedule
                                        Shows the schedule of the domestic hot water (DHW) pump circulation for heating circuit N and provides a command to set a new schedule

                                        Aber den Pfad gibt es im Viessmann-Adapter des ioBroker gar nicht. Unter

                                        ...heating -> circuits -> 1 ->

                                        gibt's bei mir kein "dhw."
                                        Der naheliegendste Eintrag heißt bei mir "circulation". Das passt aber mit der Doku nicht zusammen.

                                        Kann es sein, dass es daran liegt, dass es nicht funktioniert?

                                        Die oben genannten Pfade liegen alle unterhalb von
                                        viessmannapi.0.<Anlagen-ID>.0.features.

                                        G Offline
                                        G Offline
                                        guitardoc
                                        wrote on last edited by
                                        #723

                                        @io2345 Der Adapter scheint nicht alle Datenpunkte aus der Viessmann Developers Beschreibung zu liefern. Es gibt zwar eine aktuellere Version des Adapters auf Github (2.4.0), aber auch da sind nicht alle Datenpunkte drin (hab sie gerade mal testweise installiert). Am besten, du machst auf Github mal ein Issue auf und fragst mal nach - wenn ich es richtig sehe, wird an dem Adapter gerade aktiv gearbeitet.

                                        1 Reply Last reply
                                        0
                                        • I io2345

                                          @io2345
                                          Wenn ich mir die Doku der API auf
                                          Viessmann Developers
                                          so ansehe, kann doch da ohnehin was nicht stimmen. Da steht:

                                          heating.circuits.N.dhw.pumps.circulation.schedule
                                          Shows the schedule of the domestic hot water (DHW) pump circulation for heating circuit N and provides a command to set a new schedule

                                          Aber den Pfad gibt es im Viessmann-Adapter des ioBroker gar nicht. Unter

                                          ...heating -> circuits -> 1 ->

                                          gibt's bei mir kein "dhw."
                                          Der naheliegendste Eintrag heißt bei mir "circulation". Das passt aber mit der Doku nicht zusammen.

                                          Kann es sein, dass es daran liegt, dass es nicht funktioniert?

                                          Die oben genannten Pfade liegen alle unterhalb von
                                          viessmannapi.0.<Anlagen-ID>.0.features.

                                          T Offline
                                          T Offline
                                          TomRacoon
                                          wrote on last edited by
                                          #724

                                          @io2345 Nicht alle Datenpunkte sind für alle Geräte verfügbar (hierfür gab es mindestens letztes Jahr auch keine Matrix seitens Viessmann) und dann gibt es noch Datenpunkte, die man käuflich erwerben muss (hier war der "Tipp" von Viessmann an mich mal den kostenlosen Testmonat dafür zu nutzen , um rauszufinden, welche Datenpunkte für meine Anlage gegen Geld zusätzlich zur Verfügung stehen würden)...
                                          Meine Erfahrung mit dem Adapter: Wenn er was nicht als Datenpunkt anbietet, dann liefert Viessmann die Werte gar nicht erst...

                                          S I 2 Replies 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

                                          81

                                          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