Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fisch last edited by

      mmmm leider meldet das Skript bei mir in Zeile 6 Fehler...übrigens habe ich doch keine Pfade ändern müssen..genauso wie in deinem Skript...

      Hast du vielleicht noch eine Idee?

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

        natürlich müssen die createstate am anfang sein. Sonst hast du ja keinerlei states.
        auch brauchst du n trigger, sonst wird da garnichts ausgeführt.

        ichs chick dir dann mal das ganze programm, dies war ja nur der teil der die berechnung asuführt, das ist bei mir in einem riesen programm drin, dass alle meine verbrauchsberechnungen ausführt

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

          hab den rest mal rausgeworfen.
          ohne trigger (hier minülich zum debuggen) würde das programm doch niemals ausgeführt werden.

          Du kannst mal nachsehen ob du es evtl nur einmal am tag (vielleicht um 00:05) ausführen willst

          
          createState("javascript.0.Heizung.Verbrauch.actualCHPower.Daily", 0.0, {name: "Verbrauch Heizkreise heute", type: 'number', unit: 'kWh'});
          createState("javascript.0.Heizung.Verbrauch.actualCHPower.Yesterday", 0.0, {name: "Verbrauch Heizkreise gestern ", type: 'number', unit: 'kWh'});
          createState("javascript.0.Heizung.Verbrauch.actualDHWPower.Daily", 0.0, {name: "Verbrauch Warmwasser heute", type: 'number', unit: 'kWh'});
          createState("javascript.0.Heizung.Verbrauch.actualDHWPower.Yesterday", 0.0, {name: "Verbrauch Warmwasser gestern", type: 'number', unit: 'kWh'});
          createState("javascript.0.Heizung.Verbrauch.actualPower.Daily", 0.0, {name: "Verbrauch Gesamtsystem heute", type: 'number', unit: 'kWh'});
          createState("javascript.0.Heizung.Verbrauch.actualPower.Yesterday", 0.0, {name: "Verbrauch Gesamtsystem gestern", type: 'number', unit: 'kWh'});
          
          schedule("* * * * *", function () {
          
          
              //verbrauch heizung
              var powertype =['actualCHPower','actualDHWPower','actualPower']
          
              for(var n=0; n<3; n++){
                  var temp = getState('km200.0.recordings.heatSources.'+powertype[n]+'._Days').val;
                  temp = temp.toString().replace(/[/g, "");
                  temp = temp.toString().replace(/]/g, "");
                  temp = temp.toString().replace(/\ /g, "");
                  var tempArray = temp.split(","); 
                  var value1 = Math.round(100*tempArray.slice(-1))/100; //letztes element: heute
                  var value2 = Math.round(100*tempArray.slice(-2)[0])/100; //vorletztes element: gestern
                  setState('javascript.0.Heizung.Verbrauch.'+powertype[n]+'.Daily', value1, true);
                  setState('javascript.0.Heizung.Verbrauch.'+powertype[n]+'.Yesterday', value2, true);
                  var temp = getState('km200.0.recordings.heatSources.'+powertype[n]+'._Months').val;
                  temp = temp.toString().replace(/[/g, "");
                  temp = temp.toString().replace(/]/g, "");
                  temp = temp.toString().replace(/\ /g, "");
                  var tempArray = temp.split(","); 
                  setState('javascript.0.Heizung.Verbrauch.'+powertype[n]+'.Monthly', parseFloat(tempArray[0]), true);
              }
          
          });
          
          F 1 Reply Last reply Reply Quote 0
          • F
            fisch @jmeister79 last edited by

            @jmeister79

            hey vielen dank...das du mir hilfst ..brauvhe nur die werte in iobroker..weiterverarbeitung in nodered ist klar...

            habe jetzt Gensau das Skript genommen und erhalte die Fehlermeldung...

            Bildschirmfoto 2019-11-17 um 07.40.46.png

            jmeister79 1 Reply Last reply Reply Quote 0
            • jmeister79
              jmeister79 @fisch last edited by

              @fisch

              hm..
              nehmen wir das mal auseinander

              die states am anfang wurden angelegt? Kannst Du sie sehen?

              Die drei werte die ich in der FOR Schleife abfrage gibt es auch?
              km200.0.recordings.heatSources.actualCHPower._Days usw?

              was ich grad noch sehe:

              Zeile 24 bis 29 müssen raus.
              hatte ja gesagt, es ist teil eines großen scripts bei mir

              createState("javascript.0.Heizung.Verbrauch.actualCHPower.Daily", 0.0, {name: "Verbrauch Heizkreise heute", type: 'number', unit: 'kWh'});
              createState("javascript.0.Heizung.Verbrauch.actualDHWPower.Daily", 0.0, {name: "Verbrauch Warmwasser heute", type: 'number', unit: 'kWh'});
              createState("javascript.0.Heizung.Verbrauch.actualPower.Daily", 0.0, {name: "Verbrauch Gesamtsystem heute", type: 'number', unit: 'kWh'});
               
              schedule("* * * * *", function () {
               
                  //verbrauch heizung
                  var powertype =['actualCHPower','actualDHWPower','actualPower']
               
                  for(var n=0; n<3; n++){
                      var temp = getState('km200.0.recordings.heatSources.'+powertype[n]+'._Days').val;
                      temp = temp.toString().replace(/[/g, "");
                      temp = temp.toString().replace(/]/g, "");
                      temp = temp.toString().replace(/\ /g, "");
                      var tempArray = temp.split(","); 
                      var value1 = Math.round(100*tempArray.slice(-1))/100; //letztes element: heute
                      setState('javascript.0.Heizung.Verbrauch.'+powertype[n]+'.Daily', value1, true);
                  }
               
              });
              
              

              die yesterday werte brauchst du evtl auch nicht

              F 1 Reply Last reply Reply Quote 0
              • F
                fisch @jmeister79 last edited by

                @jmeister79 said in Adapter für Buderus KM200 (und eventuell auch anderen KMxxx):

                                                                                                                                            createState("javascript.0.Heizung.Verbrauch.actualCHPower.Daily", 0.0, {name: "Verbrauch Heizkreise heute", type: 'number', unit: 'kWh'});                                                                                                                                                                            createState("javascript.0.Heizung.Verbrauch.actualDHWPower.Daily", 0.0, {name: "Verbrauch Warmwasser heute", type: 'number', unit: 'kWh'});                                                                                                                                                                            createState("javascript.0.Heizung.Verbrauch.actualPower.Daily", 0.0, {name: "Verbrauch Gesamtsystem heute", type: 'number', unit: 'kWh'});                                                                                                                                                                                                                                                                                                                                                         schedule("* * * * *", function () {                                                                                                                                                                                                                                                                                                                                                             //verbrauch heizung                                                                                                                                                                                var powertype =['actualCHPower','actualDHWPower','actualPower']                                                                                                                                                                                                                                                                                                                                                             for(var n=0; n<3; n++){                                                                                                                                                                                    var temp = getState('km200.0.recordings.heatSources.'+powertype[n]+'._Days').val;                                                                                                                                                                                    temp = temp.toString().replace(/[/g, "");                                                                                                                                                                                    temp = temp.toString().replace(/]/g, "");                                                                                                                                                                                    temp = temp.toString().replace(/\ /g, "");                                                                                                                                                                                    var tempArray = temp.split(",");                                                                                                                                                                                     var value1 = Math.round(100*tempArray.slice(-1))/100; //letztes element: heute                                                                                                                                                                                    setState('javascript.0.Heizung.Verbrauch.'+powertype[n]+'.Daily', value1, true);                                                                                                                                                                                }                                                                                                                                                                                                                                                                                                                                                         });                                                                                                                                                                                                                         
                

                so habe jetzt nur mal die states angelegt mitten ersten drei Zeilen von dir...

                wenn ich alles auf einmal reinpacke bricht das Skript ab...mitd er Fehlermeldung..

                Bildschirmfoto 2019-11-17 um 12.14.42.png

                jmeister79 1 Reply Last reply Reply Quote 0
                • jmeister79
                  jmeister79 @fisch last edited by

                  @fisch said in Adapter für Buderus KM200 (und eventuell auch anderen KMxxx):

                  createState("javascript.0.Heizung.Verbrauch.actualCHPower.Daily", 0.0, {name: "Verbrauch Heizkreise heute", type: 'number', unit: 'kWh'}); createState("javascript.0.Heizung.Verbrauch.actualDHWPower.Daily", 0.0, {name: "Verbrauch Warmwasser heute", type: 'number', unit: 'kWh'}); createState("javascript.0.Heizung.Verbrauch.actualPower.Daily", 0.0, {name: "Verbrauch Gesamtsystem heute", type: 'number', unit: 'kWh'}); schedule("* * * * ", function () { //verbrauch heizung var powertype =['actualCHPower','actualDHWPower','actualPower'] for(var n=0; n<3; n++){ var temp = getState('km200.0.recordings.heatSources.'+powertype[n]+'._Days').val; temp = temp.toString().replace(/[/g, ""); temp = temp.toString().replace(/]/g, ""); temp = temp.toString().replace(/\ /g, ""); var tempArray = temp.split(","); var value1 = Math.round(100tempArray.slice(-1))/100; //letztes element: heute setState('javascript.0.Heizung.Verbrauch.'+powertype[n]+'.Daily', value1, true); } });

                  git es denn die werte de du abfragst als objekte im km200 adapter?

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fisch @jmeister79 last edited by

                    @jmeister79

                    siehe screenshot

                    Bildschirmfoto 2019-11-17 um 13.03.22.png

                    jmeister79 1 Reply Last reply Reply Quote 0
                    • jmeister79
                      jmeister79 @fisch last edited by jmeister79

                      @fisch jetzt sehe ich es.

                      escape doch mal bitte in den replace zeilen die drei characters

                      so

                      temp = temp.toString().replace(/[/g, "");
                            temp = temp.toString().replace(/]/g, "");
                            temp = temp.toString().replace(/\ /g, "");
                      
                      1 Reply Last reply Reply Quote 0
                      • jmeister79
                        jmeister79 last edited by jmeister79

                        verdammt hier schluckt er die "" also:
                        vor [ , ] udn das leerzeichen ejweil ein \

                        Sorry hab übersehen, dass er das verschluckt hat

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          fisch @jmeister79 last edited by fisch

                          @jmeister79

                          sorry ich , dass ich es nicht kapiere 🙂 ist es in Zeile 12/13/14 so schonmal richtig?

                          createState("javascript.0.Heizung.Verbrauch.actualCHPower.Daily", 0.0, {name: "Verbrauch Heizkreise heute", type: 'number', unit: 'kWh'});
                          createState("javascript.0.Heizung.Verbrauch.actualDHWPower.Daily", 0.0, {name: "Verbrauch Warmwasser heute", type: 'number', unit: 'kWh'});
                          createState("javascript.0.Heizung.Verbrauch.actualPower.Daily", 0.0, {name: "Verbrauch Gesamtsystem heute", type: 'number', unit: 'kWh'});
                           
                          schedule("* * * * *", function () {
                           
                              //verbrauch heizung
                              var powertype =['actualCHPower','actualDHWPower','actualPower']
                           
                              for(var n=0; n<3; n++){
                                  var temp = getState('km200.0.recordings.heatSources.'+powertype[n]+'._Days').val;
                                 temp = temp.toString().replace(//[/g, /"");
                                temp = temp.toString().replace(//]/g, /"");
                                temp = temp.toString().replace(//\ /g, /"");
                                  var tempArray = temp.split(","); 
                                  var value1 = Math.round(100*tempArray.slice(-1))/100; //letztes element: heute
                                  setState('javascript.0.Heizung.Verbrauch.'+powertype[n]+'.Daily', value1, true);
                              }
                           
                          });
                          

                          Jetzt meckert er bei Zeile 15

                          javascript.0 (10765) script.js.Skript_1 compile failed:
                          at script.js.Skript_1:15

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

                            andersrum 😉

                            F 1 Reply Last reply Reply Quote 0
                            • F
                              fisch @jmeister79 last edited by fisch

                              @jmeister79

                              ich glaube es geht...moment

                              jmeister79 1 Reply Last reply Reply Quote 0
                              • jmeister79
                                jmeister79 @fisch last edited by

                                @fisch Unbenannt.png

                                ichs agte doch man kann es nicht posten. Darum als Bild.

                                Ich fidne du solltest erstmal blockly machen und dann die mal in JS switchen und guckenw as da steht und dichs tück für stück vortasten.

                                Es gibt gute Online Editoren dafür:

                                https://playcode.io/online-javascript-editor

                                1 Reply Last reply Reply Quote 0
                                • F
                                  fisch last edited by

                                  wow es geht @jmeister79
                                  Bildschirmfoto 2019-11-17 um 20.04.06.png

                                  vielen vielen dank für deine Geduld!!!

                                  was würdest du als
                                  schedule "* * * * *" nehmen?

                                  jmeister79 M 2 Replies Last reply Reply Quote 0
                                  • jmeister79
                                    jmeister79 @fisch last edited by

                                    @fisch

                                    ich hatte zum debuggen minütlich. Du willst es ja einmal am Tag machen also würde ich 5 0 * * * (00:05)

                                    Hier, nutze ich auch jedesmal aufs neue;-)
                                    https://crontab.guru/

                                    Hab gern geholfen, die anderen haben hier ja auch ejde Menge Geduld mit mir. 😉

                                    1 Reply Last reply Reply Quote 1
                                    • R
                                      RichieXX last edited by

                                      Hab auf die schnelle leider keine Möglichkeit gefunden, hier im Thread zu suchen, deshalb frage ich hier mal:
                                      Kann ich mit diesem Adapter eine Bosch Anlage mit CW400/MB LAN2 steuern? Wenn ja, geht das über die Cloud oder eine API im lokalen LAN?

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        mrMuppet last edited by

                                        Vielen Dank für den Adapter. Habe ihn auch seit heute morgen im Einsatz.
                                        Benutze ihn bisher ganz passiv und beobachte mal alle Werte.
                                        Frage: Kann ich mir den Aussensensor sparen wenn ich irgendwelche Werte über iobroker in den Adapter schreibe? Hab da noch nichts gefunden.

                                        Ich habe dafür einige wiederkehrende Fehlermeldungen im Adapter, deshalb habe ich mal mein Log angehängt:

                                        km200.0	2019-11-28 13:23:01.024	info	(50449) Update State 7 err: TypeError: Cannot read property 'switchPoints' of undefinedat km200.get.then (/opt/iobroker/node_modules/iobroker.km200/km200.js:556:35)at process._tickCallback (internal/
                                        km200.0	2019-11-28 13:23:01.024	warn	(50449) Skip service data of /dhwCircuits/dhw1/switchPrograms/A
                                        km200.0	2019-11-28 12:53:01.042	info	(50449) Update State 7 err: TypeError: Cannot read property 'switchPoints' of undefinedat km200.get.then (/opt/iobroker/node_modules/iobroker.km200/km200.js:556:35)at process._tickCallback (internal/
                                        km200.0	2019-11-28 12:53:01.041	warn	(50449) Skip service data of /dhwCircuits/dhw1/switchPrograms/A
                                        km200.0	2019-11-28 12:23:00.990	info	(50449) Update State 7 err: TypeError: Cannot read property 'switchPoints' of undefinedat km200.get.then (/opt/iobroker/node_modules/iobroker.km200/km200.js:556:35)at process._tickCallback (internal/
                                        km200.0	2019-11-28 12:23:00.989	warn	(50449) Skip service data of /dhwCircuits/dhw1/switchPrograms/A
                                        km200.0	2019-11-28 11:53:01.047	info	(50449) Update State 7 err: TypeError: Cannot read property 'switchPoints' of undefinedat km200.get.then (/opt/iobroker/node_modules/iobroker.km200/km200.js:556:35)at process._tickCallback (internal/
                                        km200.0	2019-11-28 11:53:01.046	warn	(50449) Skip service data of /dhwCircuits/dhw1/switchPrograms/A
                                        km200.0	2019-11-28 11:23:01.025	info	(50449) Update State 7 err: TypeError: Cannot read property 'switchPoints' of undefinedat km200.get.then (/opt/iobroker/node_modules/iobroker.km200/km200.js:556:35)at process._tickCallback (internal/
                                        km200.0	2019-11-28 11:23:01.024	warn	(50449) Skip service data of /dhwCircuits/dhw1/switchPrograms/A
                                        km200.0	2019-11-28 10:53:01.022	info	(50449) Update State 7 err: TypeError: Cannot read property 'switchPoints' of undefinedat km200.get.then (/opt/iobroker/node_modules/iobroker.km200/km200.js:556:35)at process._tickCallback (internal/
                                        km200.0	2019-11-28 10:53:01.022	warn	(50449) Skip service data of /dhwCircuits/dhw1/switchPrograms/A
                                        km200.0	2019-11-28 09:22:59.452	info	(50449) Adapter km200 initialization finished with 116 states.
                                        km200.0	2019-11-28 09:22:29.949	info	(50449) Slow Interval=6 hours, Slow-List: recordings.dhwCircuits.dhw1.actualTemp._Days,recordings.dhwCircuits.dhw1.actualTemp._Months,recordings.heatSources.actualCHPower._Days,recordings.heatSources
                                        km200.0	2019-11-28 09:22:29.949	info	(50449) Fast Interval=2 min, Fast-List: dhwCircuits.dhw1.actualTemp,heatSources.actualModulation,heatSources.actualPower,heatSources.hs1.actualModulation,heatSources.hs1.actualPower,heatingCircuits.h
                                        km200.0	2019-11-28 09:22:29.949	info	(50449) Interval=30 min, Norm-list: dhwCircuits.dhw1.charge,dhwCircuits.dhw1.chargeDuration,dhwCircuits.dhw1.currentSetpoint,dhwCircuits.dhw1.holidayMode.activated,dhwCircuits.dhw1.operationMode,dhwC
                                        km200.0	2019-11-28 09:22:29.944	info	(50449) KM200 found 116 states, get their values now.
                                        km200.0	2019-11-28 09:22:28.374	info	(50449) Services found: 123
                                        km200.0	2019-11-28 09:21:36.805	info	(50449) km200.0 address: http://192.168.178.155
                                        km200.0	2019-11-28 09:21:36.804	info	(50449) km200 initialization started...
                                        km200.0	2019-11-28 09:21:36.669	info	(50449) starting. Version 2.0.3 in /opt/iobroker/node_modules/iobroker.km200, node: v10.16.3
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          mrMuppet last edited by

                                          Ich habe mit meinem Heizungsinstallateur gesprochen. Ich habe ihn gefragt wie ich meine Therme Buderus GB172 24 kW Logamax ohne Wasserspeicher einstellen soll. Da ich über Homematic Heizkörperthermostate die Raumtemperatur einstelle brauche ich die Raumtemp ja eigentlich nicht zu berücksichtigen. Er meinte ich solle die Temperatur an der Therme immer etwas höher einstellen als bei den Heizkörpern und dann so lassen.

                                          Genauso war seine Aussage, dass es nicht nötig sei in meinem Fall eine Nachabsenkung in der Therme zu Programmieren, weil die Nachabsenkung der Homematic Thermostate schon dazu führe, dass die Therme aus ginge (weil keine Wärmeabnahme).
                                          Ist das richtig? Oder sollte ich die doppelte Absenkung (Therme und Heizkörperthermostate) einrichten?

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            mrMuppet @mrMuppet last edited by

                                            Die Therme auf geschlossene Ventile laufen zu lassen scheint nicht gut zu sein. Trotz moderner Technik! Vorlauf ganz schnell auf 100 Grad. Brauche ich doch ein Wärmeanforderungsskript, dass die Ventilstellungen überwacht und dann die Therme startet.
                                            Wie macht ihr das denn?
                                            Und welchen Datenpunkt verwendet ihr zum steuern im km200 Adapter. Ich habe bisher nur km200.0.heatingCircuits.hc1.temporaryRoomSetpoint gefunden, über den ich das machen kann. Gibt's da was eleganteres?

                                            T 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            423
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            99
                                            686
                                            182212
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo