NEWS
Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)
-
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? -
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? -
Ich habe das zweite Zeitprogramm so eingestellt, dass es im permanenten Absenkmodus läuft.
So kann ich über den Datenpunkt km200.0.heatingCircuits.hc1.activeSwitchProgram bzw. bei mir auch hc2 (FB Hzg) die Heizkreise in den Absenkbetrieb schicken. Das "Durchlaufen" der Heizkreise unter der eingestellten Absenk-Grenztemperatur (bei mir 0° Aussentemperatur) ist gewollt.
Das Zeitprogramme A (aktiv) laufen aber bei mir auch zeitgesteuert. (Fussbodenheizung von 5 -20 Uhr da träge und Heizkörper von 6 bis 21 Uhr). Je nach Isolierung / Trägheit des Hauses ist das anzupassen.
Die Heizung durchlaufen zu lassen ist nicht anzuraten, da häufiges Takten des Brenners + unnötiger Energieverbrauch der Pumpen.
-
Damit es nicht so langweilig wird habe ich mal etwas neues: eine KM300. Hier gilt mal wieder mein Lieblingsspruch: Es geht zwar aber es funktioniert nicht
Die KM300 unterscheidet sich grundlegend von der KM200. Die KM300 bringt eine ganze Menge eigene Ein-/Ausgänge mit, die ich aber alle nicht brauche. Ich muss die (teuere) KM300 verwenden, da nur diese mit meiner Steuerung (4311) zusammenarbeitet. Dazu gibt es dann diese (ebenfalls teuere) "Logamatic Eco Soft" mit der man die Steuerung auslesen und parametrisieren kann.
Da ich nicht weiss was überhaupt geliefert wird habe ich das Filter-Feld im Adapter erst mal leer gelassen. Der Adapter kann auch eine Verbindung herstellen und etwas auslesen:
Alles was unter "gateway" zu finden ist sind die KM300 internen Ein-/Ausgänge und Einstellungen (Netz, TZ, etc.). Was mich interessiert, die Heizungssteuerung, wird dann aber nicht ausgelesen. Das müsste ja dann unter einem der "subsys" Einträge auftauchen. Mit der "Logamatic Eco Soft" kann ich den Status auslesen und es wird auch alles was interessant ist angezeigt:
Wie kann ich jetzt vorgehen um das zu bekommen was ich möchte, die Werte der Heizung im iBroker?
-
Kann mir jemand sagen, ob ich über dem km200 Adapter auch meine an die Buderus Heizung angeschlossene Zirkulationspumpe beeinflussen kann?
Ich würde diese gerne bei Abwesenheit abschalten und bei Anwesenheit bzw. zu bestimmten Zeitpunkten einschalten.
-
Hatte ich doch schon geschrieben, dass die Zirkulationspumpe nicht steuerbar ist ....
-
Jetzt habe ich mal Debuging angeschaltet und das einzige was interessant aussieht ist das:
2019-12-07 11:14:10.478 - info: km200.0 <span style="color:darkblue;">debug: try to get services for [ '/system/subsys2/bus/monMapTable' ]</span> 2019-12-07 11:14:10.588 - info: km200.0 <span style="color:darkblue;">debug: Service[system.subsys2.bus.monMapTable]={ id: '/system/subsys2/bus/monMapTable', type: 'busLogTable', writeable: 0, recordable: 0, value: '80003A020081003B020084003E02008700410200880042020089004302009A005402009E0058020000005B0200' }</span> 2019-12-07 11:14:10.609 - info: km200.0 <span style="color:darkblue;">debug: try to get services for [ '/system/subsys2/bus/paramMapTable' ]</span> 2019-12-07 11:14:10.718 - info: km200.0 <span style="color:darkblue;">debug: Service[system.subsys2.bus.paramMapTable]={ id: '/system/subsys2/bus/paramMapTable', type: 'busLogTable', writeable: 0, recordable: 0, value: '01000000000700060000080007000009000800000A000900000B000A00000C000B00000D000C00000E000D000010000F00001100100000120011000013001200001400130000150014000016001500001700160000180017000019001800001A001900001B001A00001C001B00001D001C00001E001D00001F001E000020001F00002300220000240023000025002400002600250000' }</span> 2019-12-07 11:14:10.739 - info: km200.0 <span style="color:darkblue;">debug: try to get services for [ '/system/subsys2/bus/contentOf' ]</span> 2019-12-07 11:14:10.848 - info: km200.0 <span style="color:darkblue;">debug: Service[system.subsys2.bus.contentOf]={ id: '/system/subsys2/bus/contentOf', type: 'busLogContent', writeable: 1, recordable: 0, PacketStartIdx: 0, value: '0E00000003000100000E0E0B075C7701' }</span> 2019-12-07 11:14:10.868 - info: km200.0 <span style="color:darkblue;">debug: try to get services for [ '/system/subsys2/bus/liveUpdates' ]</span> 2019-12-07 11:14:10.988 - info: km200.0 <span style="color:darkblue;">debug: Service[system.subsys2.bus.liveUpdates]={ id: '/system/subsys2/bus/liveUpdates', type: 'streamData', writeable: 0, recordable: 0, value: '02050110065DEB7B723F220080010102030301390305016E030701000309010C030B0100030D013A030F010B031101000200810101020303012A0305016E0307010003090100030B0100030D012A030F01FB031101000200840101600303014C030501000307010003090100030B010002008801013A0303014603050100030701A2030901FF030B0164030D014C030F01000311010003130103031501000317010003190121031B0100031D016E031F013F0321011403230100032501000327016E0329010002009E01010003030100030501000307010103090100030B016E030D01FF030F01000311010003130100031501000317010003190109031B0100031D010B031F01000321012403230100' }</span> 2019-12-07 11:14:11.008 - info: km200.0 <span style="color:darkblue;">debug: try to get services for [ '/system/subsys2/bus/mirrorStatus' ]</span> 2019-12-07 11:14:11.138 - info: km200.0 <span style="color:darkblue;">debug: Service[system.subsys2.bus.mirrorStatus]={ id: '/system/subsys2/bus/mirrorStatus', type: 'stringValue', writeable: 0, recordable: 0, value: 'COLLECTING_DONE', allowedValues: [ 'COLLECTING_DATA', 'COLLECTING_DONE', 'NOT_CONNECTED' ] }</span>
Die Nodes "monMapTable", "paramMapTable" und "liveUpdates" tauchen aber, wie man in meinem vorhergehden Post sieht, nicht im Objekt-Tree auf.
-
@tom57 sagte in Adapter für Buderus KM200 (und eventuell auch anderen KMxxx):
Hatte ich doch schon geschrieben, dass die Zirkulationspumpe nicht steuerbar ist ....
Hab ich nicht gesehen, sorry!
Hab sogar die Suche benutzt!Dann bleibt mir wohl nur übrig eine separate Leitung zu ziehen und über einen KNX Schaltaktor anzusteuern.
-
@loverz mit sowas wäre ich vorsichtig.
Du greifst da arg in die Regelung ein.
zB hat das einen Grund, dass die Pumpe bei niedrigen Temperaturen läuft,damit dir der Kram nicht einfriert.
Mach dir unbedingt sehr viel Gedanken unter welchen Umständen du sie abschaltest und was die übrige Heizung dann tun kann.
Zb wenn der Brenner aufheizt und die Heizung die Pumpe ansteuern will, du sie aber abgeschaltet hast usw. Er erwartet dann ja bei eienr gewissen Vorlauftemperatur irgendwann gewissen Raumtemperaturen und einen Rücklauf und all das passiert ja nicht mehr wie geplant. Das kann unter Umständen problematisch werden denke ich. (Bin kein Heizungsfachmann aber vielleicht sprichst du sowas man in einem Forum dafür an(?) )Nils
-
Hat von euch jemand ein schönes Script um die Werte km200.0.recordings.heatSources.hs1.actualPower._Days u.ä. schön darzustellen? Ich würde ja gerne so schöne Grafiken bauen wie Buderus sie auf Ihrer Website anbietet.
Also natürlich ergänzt um die Außentemperatur.
Leider werden die Werte im km-Adapter etwas kompliziert angeliefert, sie kommen ja alle nur in einem Datenpunkt, mit Komma hintereinandergesetzt an. Ich hatte schon überlegt, sie am Komma zu trennen und dann wenigstens den aktuellen und den vom Vortag in einer Variable zu speichern. Dann kann ich wenigstens die vergangenen Daten schön in flot darstellen. Aber wie bekomme ich dann noch den aktuellen Wert da rein?
Oder habt ihr ne andere Lösung? -
@mrMuppet siehe meine posts aus November. Zb am 217. Da hast du einen Ansatz die "arrays" auszulesen. Der rest ist iobroker Standard
-
@jmeister79 Vielen Dank für die Hilfe. Leider läuft bei mir influx und ich kann den JS-code leider auch nicht auf die Schnelle anpassen.
Deshalb hab ich es bei mir anders gelöst: Es wird quasi die Verbrauch der gerade vergangenen Stunde (Tag, Monat) abgelegt und kann dann in flot dargestellt werden. Nur der aktuelle Verbrauch fehlt mir dann noch.
-
Schärfer als Tagesgenau geht es m.E. nach nicht
-
Hallo, vielleicht kann mir hier jemand helfen. Ich habe eine Buderus KB195i Ölbrennwertkessel. Ich kann mich über die Buders MyDevice App oder über Web über Buderus Connect einwählen. Nur Lokal einwählen geht über die App auch. Aber irgendwie bekomme ich IoBroker bzw. den KM200 Adapter nicht damit verbunden. Unter den Objekten taucht bei mir nur Syntax.Error auf, bzw. ich bekomme keine Verbindung und keine Daten.
Weiss jemand woran das liegen kann?
Der KB195i sollte doch kompatibel sein und hat meines Wissens ein KB200.Im Log steht folgendes:
So sind meine Einstellungen in der Instanz
-
Hier mal noch mein komplettes KM200 Log mit Debug-Daten
km200.0 2019-12-29 11:50:33.818 info (21190) Adapter km200 initialization finished with 8 states. km200.0 2019-12-29 11:50:33.812 info (21190) Update State system err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.812 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.805 info (21190) Update State solarCircuits err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.805 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.800 info (21190) Update State recordings err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.799 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.793 info (21190) Update State notifications err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.793 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.787 info (21190) Update State heatingCircuits err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.786 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.781 info (21190) Update State heatSources err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.780 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.774 info (21190) Update State gateway err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.773 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.767 info (21190) Update State dhwCircuits err: 'KM200.get service parameter not as requested \'undefined\'' km200.0 2019-12-29 11:50:33.766 warn (21190) KM200.get service parameter not as requested 'undefined' km200.0 2019-12-29 11:50:33.766 info (21190) debug: updateStates: 'all' @Sun Dec 29 2019 11:50:33 GMT+0100 (GMT+01:00) km200.0 2019-12-29 11:50:33.764 info (21190) Slow Interval=6 hours, Slow-List: km200.0 2019-12-29 11:50:33.764 info (21190) Fast Interval=2 min, Fast-List: km200.0 2019-12-29 11:50:33.764 info (21190) Interval=15 min, Norm-list: dhwCircuits,gateway,heatSources,heatingCircuits,notifications,recordings,solarCircuits,system km200.0 2019-12-29 11:50:33.762 info (21190) KM200 found 8 states, get their values now. km200.0 2019-12-29 11:50:33.751 info (21190) debug: ChangeState ack:true of system = { error:SyntaxError: Unexpected token in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/m km200.0 2019-12-29 11:50:33.732 info (21190) debug: ChangeState ack:true of solarCircuits = { error:SyntaxError: Unexpected token � in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myad km200.0 2019-12-29 11:50:33.714 info (21190) debug: ChangeState ack:true of recordings = { error:SyntaxError: Unexpected token � in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapt km200.0 2019-12-29 11:50:33.695 info (21190) debug: ChangeState ack:true of notifications = { error:SyntaxError: Unexpected token in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myad km200.0 2019-12-29 11:50:33.678 info (21190) debug: ChangeState ack:true of heatingCircuits = { error:SyntaxError: Unexpected token � in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/my km200.0 2019-12-29 11:50:33.661 info (21190) debug: ChangeState ack:true of heatSources = { error:SyntaxError: Unexpected token * in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadap km200.0 2019-12-29 11:50:33.637 info (21190) debug: ChangeState ack:true of gateway = { error:SyntaxError: Unexpected token � in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/ km200.0 2019-12-29 11:50:33.616 info (21190) debug: ChangeState ack:true of dhwCircuits = { error:SyntaxError: Unexpected token C in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadap km200.0 2019-12-29 11:50:33.529 info (21190) Services found: 8 km200.0 2019-12-29 11:50:33.507 info (21190) debug: Service[system]={ error:SyntaxError: Unexpected token in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapter.js:411:2 km200.0 2019-12-29 11:50:33.374 info (21190) debug: Service[solarCircuits]={ error:SyntaxError: Unexpected token � in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapter.j km200.0 2019-12-29 11:50:33.104 info (21190) debug: Service[notifications]={ error:SyntaxError: Unexpected token in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapter. km200.0 2019-12-29 11:50:32.953 info (21190) debug: Service[heatSources]={ error:SyntaxError: Unexpected token * in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapter.js km200.0 2019-12-29 11:50:32.674 info (21190) debug: Service[heatingCircuits]={ error:SyntaxError: Unexpected token � in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapte km200.0 2019-12-29 11:50:32.547 info (21190) debug: Service[gateway]={ error:SyntaxError: Unexpected token � in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapter.js:411 km200.0 2019-12-29 11:50:32.310 info (21190) debug: Service[dhwCircuits]={ error:SyntaxError: Unexpected token C in JSON at position 0at JSON.parse (<anonymous>)at Function.J (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapter.js km200.0 2019-12-29 11:50:32.165 info (21190) debug: add to blocked /.*\/recordings\/.*$/ km200.0 2019-12-29 11:50:32.165 info (21190) debug: add to blocked /^\/Gateway.*$/ km200.0 2019-12-29 11:50:32.164 info (21190) debug: KM200 init(192.168.178.246, 24,242,45,252,62,114,98,246,42,84,151,64,18,119,213,192,180,17,226,12,20,112,164,135,158,232,130,160,177,146,30,113) done! km200.0 2019-12-29 11:50:32.161 info (21190) km200.0 address: http://192.168.178.246:80 km200.0 2019-12-29 11:50:32.159 info (21190) km200 initialization started... km200.0 2019-12-29 11:50:32.048 info (21190) starting. Version 2.0.3 in /opt/iobroker/node_modules/iobroker.km200, node: v10.18.0 km200.0 2019-12-29 11:50:28.382 warn (19233) Adapter will exit in latest 1 sec with code false! km200.0 2019-12-29 11:50:28.382 info (19233) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason km200.0 2019-12-29 11:50:28.381 info (19233) terminating km200.0 2019-12-29 11:50:28.380 info (19233) Adapter disconnected and stopped with dostop(false) and callback(true) km200.0 2019-12-29 11:50:28.379 info (19233) Got terminate signal TERMINATE_YOURSELF
-
Hallo, ich bin neu hier und sehr frisch im iobroker. Leider habe ich auch viele Sorgen mit meinem KM200. Es vergeht kein Tag ohne einen Fehler. Ich Regel meine 2 Heizkreisläufe abhängig von den Raumthermostaten. Ist einer unter 19 Grad Sollwert Heizung (heatingCircuits.hc1.temperatureRoomSetpoint=20) sind alle darüber (heatingCircuits.hc1.temperatureRoomSetpoint=0). Null ist aber nicht erlaubt weil ein Minimum von 5 eingetragen ist. Wie kann ich im Blockly dem Adapter die 0 vorgeben ohne das ich das Opjekt im Expertenmodus von 5 auf 0 ändere. Gebe ich die 0 vor kommt es zum Fehler "2020-01-13 17:42:08.991 - info: km200.0 (3616) Could not find state for heatingCircuits.hc1.temperatureRoomSetpoint". Aber eben nicht immer nur 1x am Tag. Dann hilft nur Heizung und Adapter neu starten.
Danke für Eure Hilfe -
@tom57
Hallo Tom,
ich versuche gerade mit deinem Script ein paar Verbrauchsdaten aus meiner Bosch Therme in eine DB zu bekommen. Danke übrigens für das zur Verfügungsstellen des Scriptes.
Wie hast du das mit dem "mcrypt Modul in er javascript Instanz" gelöst?
Bekomme Fehlerjavascript.0 2020-01-29 17:03:36.856 error const MCrypt = require('mcrypt').MCrypt; javascript.0 2020-01-29 17:03:36.856 error script.js.common.Heizung.Gasverbrauch_KM200: script.js.common.Heizung.Gasverbrauch_KM200:2 javascript.0 2020-01-29 17:03:36.855 error at ContextifyScript.Script.runInContext (vm.js:59:29) javascript.0 2020-01-29 17:03:36.855 error at script.js.common.Heizung.Gasverbrauch_KM200:2:16 javascript.0 2020-01-29 17:03:36.855 error script.js.common.Heizung.Gasverbrauch_KM200: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../mcrypt'
Danke für deine Hilfe.
-
@RichieXX , ich habe auch eine Bosch Therme und nutze den KM200 Adapter. Funktioniert wunderbar. Liefert der Adapter nicht die gewünschten Daten?
-
Der Adapter funktioniert wunderbar, keine Frage. Ich möchte nur den Gasverbrauch aus dem Adapter in eine DB schreiben um dann weiter zu verarbeiten. Das Script von Tom (ich weiß, in meinem Beitrag fehlt irgendwie der Bezug dazu: https://forum.iobroker.net/post/256744) bietet hier die Möglichkeit diese Daten einfach aufzuarbeiten. Leider ist der Datenpunkt nur ein Array, den aber das Script schon wunderbar zerlegt hat.
-
Hast Du im Javasript-Adapter (Instanzen) mcrypt unter zusätzliche NPM Module eingetragen?