NEWS
Neuer Adapter EMS-ESP für Bosch Heizungen
-
@tp1de Ich habe noch das ganz alte Pegelwandler Modul das er vor ein paar Jahren (2017 oder 2018) mal entwickelt hat. Damals war es noch ein Abenteuer den auf einen ESP8266 zu installieren und per MQTT in den ioBroker zu bringen.
Für mich hat er ganz am Anfang die Sieger Heizung mit implementiert.
Der ursprüngliche Link:
https://github.com/bbqkees/Nefit-Buderus-EMS-bus-Arduino-DomoticzAn der Menge der Telegramme habe ich soweit ich mich erinnern kann nichts verändert. Kann man überhaupt das Polling einstellen? Wenn ja, würde ich an deiner Stelle etwas runtergehen. Die schiere Menge an Daten wird ja eh nicht gebraucht.
Einen NodeMCU habe ich noch bei meiner Beleuchtung im Einsatz. Der wird demnächst rausfliegen, weil der ab und zu kurz ausfällt. Allerdings läuft der dort seit 2 Jahren und ich habe das für Alterung gehalten. Früher ist mir das nie aufgefallen.
Für ES32 verwende ich normalerweise diese Platinen:
https://de.aliexpress.com/item/33052923558.html?
Da habe ich genug Platz und kann alles anklemmen, auch wenn die etwas größer sind. -
Neue Version EMS_ESP Firmware v3.1.2b1 hat Breaking Changes bei den Feldnamen.
Die aktuellste Firmware hat geänderte Namen bei den Syteminfos unter ems-esp.0.esp. Das # in den Namen ist entfallen. Damit werden nun neue States vom Adapter angelegt. Ich lösche aber aktuell nicht die alten States. Das muss dann manuell geschehen.
-
@tp1de bei mir läuft alles soweit stabil habe auch keine reeboots die werte stimmen auch überein.
ich benutze auch das modul von bbqkees hat noch den esp 8266 drauf denn ich dann gegen den esp32 getauscht habe.
Kann ich auch die eingestellt Raum Temperatur über den adapter ändern ? -
@iccube sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
Kann ich auch die eingestellt Raum Temperatur über den adapter ändern ?
Ja sollte generell funktionieren ist aber je nach Thermostat / Heizung etwas anders.
Bei mir (RC310) gibt es ems-esp.0.heatingCircuits.hc1.comforttemp - das ist die Temperaturvorgabe tagsüber. Die kann verändert werden und bleibt dann als Parameter gesetzt. Mit ems-esp.0.heatingCircuits.hc1.seltemp sollte die Temperatur temporär, d.h. bis zum nächsten definierten Schaltzeitpunkt verändert werden. Probier mal aus,
Generell gilt aber damit wird nur die Vorlauftemperatur in Abhängigkeit des Außentemperatur und der eingestellten Heizukurve verändert. Darüber hinaus kannst Du ggfs. auch den Raumeinfluss mit berücksichtigen: ems-esp.0.heatingCircuits.hc1.roominfluence. Bedenke aber, dass dann ggfs. die Vorlauftemperatur für den ganzen Heizkreis angepasst wird.
-
@iccube sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
@tp1de bei mir läuft alles soweit stabil habe auch keine reeboots die werte stimmen auch überein.
ich benutze auch das modul von bbqkees hat noch den esp 8266 drauf denn ich dann gegen den esp32 getauscht habe.Scheinbar bin ich der Einzige, beim dem der ESP32 regelmäßig rebooted wird.
Hat zwar für den Adapter keine Auswirkung, ist aber unschön. Ich suche noch nach der Ursache. -
Ich habe gerade eine neue Version des Adapters hochgeladen: v0.9.3
Dabei sind die Polling Frequenzen für EMS-ESP und KM200 nun Parameter der Instanz.
Die Standardparameter sind nun aber erhöht: EMS-ESP auf 60 und KM200 auf 300 Sekunden.Diese können verändert werden auf Minimum 15 bzw. 90 Sekunden - d.h. die bisherigen Werte.
-
@tp1de Hi, die Ungereimtheitenhabe ich in der Verbrauchsstatistik. Diese passen irgendwie nicht zu denen aus der APP. Ich speichere die recordings in der influxdb und betreibe 2 Heizungen jeweils mit MBLAN. Beide Häuser liegen ca. 200m auseinander und sind praktisch identisch (Baujahr, Typ, etc.). Auch der Gasverbruach nach Rechnung ist ziemlich gleich. Nach der Statistik braucht aber die intanz.0 teilweise doppelt soviel wie die instanz.1.
- Stundenwerte habe ich gerade keine, hat schon mal funktioniert, liegt ev. an meinen Grafana-EInstellungen
km200.1.recordings.heatSources.actualCHPower._Hours [0,0,0,0,0,0,0.233,0.467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3,0,0.45,0,0,0,0,0,0,0,0] km200.1.recordings.heatSources.actualDHWPower._Hours [0,0.233,0,0,0.133,0,0,0,0.817,0.3,0.1,0.217,0.05,0,0,0.05,0.05,0,0.05,0,0,0,0.05,0.15,0,0.133,0,0.233,0.15,0,0.117,0.183,0,0.3,0,0,0.233,0,0,0,0,0.1,0.567,0.233,0.233,1.8,0,0,0,0,0,0,0,0,0.283,0.15,0,0.267,0.05,0,0.15,0.317,0,0,0] km200.1.recordings.heatSources.actualPower._Hours [0,0,0,0,0,0,0.667,0.233,0.767,0.483,0.1,0.05,0,0,0,0.05,0,0,0,0.2,0,0,0.05,0.133,0,0,0,0.15,0,0,0.65,0.167,0,0.333,0,0,0,0.4,0,0.167,0,0.4,0.15,0,0.467,1.817,0,0,0,0.233,0,0,0.233,0,1.417,0.15,0.233,0.467,0.05,0,0.15,0.317,0,0,0]
- in den Montatswerten bei instanz1 (SF) fehlt der März, das liegt aber an den vorhandenen Daten, hier die aus dem km200.1. Kann nicht erklären wo das NaN herkommt.
km200.1.recordings.heatSources.actualCHPower._Months [773.083, 303.817, 303.683,230.133, 1047.2, 1132.383,2125.05, 2339.1, 2553.583,3087.45, 2143.567, 539.2,988.333, 388.283, 242.983,154.017, 617.667, 1279.3,1875.267, 2726.75, 749.917,NaN, 348.2, 244.883,518.783, 190.317, 6.883] km200.1.recordings.heatSources.actualDHWPower._Months [245.633, 289.9, 280.683, 230.017,358.583, 272.65, 352.5, 351.867,343.683, 360.917, 314.667, 149.333,276.65, 254.5, 222.067, 153.967,264.85, 291.083, 284.117, 358.567,83.417, NaN, 24.717, 15.133,85.05, 111.467, 5.017] km200.1.recordings.heatSources.actualPower._Months [773.083, 303.817, 303.683,230.133, 1047.2, 1132.383,2125.05, 2339.1, 2553.583,3087.45, 2143.567, 539.2,988.333, 388.283, 242.983,154.017, 617.667, 1279.3,1875.267, 2726.75, 749.917,NaN, 348.2, 244.883,518.783, 190.317, 6.883]
Das kann natürlich nicht an Deinem Adapter liegen, aber mein Vorschlag: Damit man das besser nachvollziehen und zum km200 vergleichen kann, wäre es gut, wenn du die Statistikwerte so wie der km200 Adapter als Array in die Datenpunkte ablegen würdest.Ich habe noch 0.9.0 am Laufen. Abstürze habe ich keine.
Danke für Deine tolle Arbeit!
-
@manrum1
Mit Influxdb hatte ich auch erhebliche Probleme. Z.T. auch mit mySQL. Bei MySQL bekam ich "packets out of order" Fehler.
Das liegt an der aktuellen Logik, dass ich jede Stunde die Daten lösche und dann neu schreibe. Wenn das Schreiben zu schnell geht, dann kommen bei MySQL Fehler. Versuch doch mal versuchsweise MySQL oder installiere mal 0.9.3 da ist ein bischen was geändert (250 msek wait nach jedem SQL insert)..Arraywerte wie im km200 Adapter geht nicht, da SQL-Fortschreibung eingeschaltet ist und dann die arrays fortgeschrieben werden.
Bei den km200 arrays hatte ich immer das Problem nicht genau zu wissen, für welches Datum die Werte stehen. Auch der km200 spinnt manchmal und Werte fehlen. -
@tp1de Danke für die Antwort, aber mysql hatte ich schon mal installiert und auch einige für mich unerklärlichen Effekte. Ich glaube, dass der NaN aus der Heizung selber kommt und nichts mit dem Adapter zu tun hat.
Noch eine Frage: Wie berechnest du die Durchschnittswerte?: ems-esp.0.recordings.actualDHWPower.avg12m, ems-esp.0.recordings.actualPower.avg12m -
@manrum1 sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
Noch eine Frage: Wie berechnest du die Durchschnittswerte?: ems-esp.0.recordings.actualDHWPower.avg12m, ems-esp.0.recordings.actualPower.avg12m
ems-esp.0.recordings.actualDHWPower.avg12m ist der monatliche Durchschnittswert für Warmwasser-Erzeugung über 12 Monate
ems-esp.0.recordings.actualPower.avg12m ist der Gesamtverbrauch der letzten 12 Monate. (gleitender 12 Monatsdurchschnitt) .Ich glaube die Namen sind verbesserungsbedürftig. Ich habe eh vor in der nächsten Zeit die Recordings noch einmal zu überarbeiten. Ich habe aber Probleme mit dem asynchronen Verhalten des Befehls adapter.sendToAsync.
Mit "await" sollte er warten, bis der Befehl ausgeführt wurde, bei Datenbanken (mySQL / InfluxDB) scheint das aber nicht zu funktionieren. Früher hatte ich JS-Skripts mit SQL-Befehlen, die funktionieren aber nicht für InfluxDB. -
@tp1de sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
@chaot
Der Adapter verwendet Api V3 welche nur mit ESP32 funktioniert. Wenn Du noch den noch nicht hast, dann musst Du den kaufen. Alibaba 3 bis 4 Euro ... bei Amazon 8 Euro. Und dann die ESP32 dev Firmware einmal manuell flashen. In den Settings kannst Du dann einstellen ob der Token für writes verwendet wird. Probier erst einmal ohne.
Unter security settings siehst Du dann den Token per user .... SchlüsselsymbolIch blicke trotz dieses Threads und der Docu nicht durch.
Von BBQKees habe ich einen "EMS-ESP" 2020 erworben. Der tut auch brav bei meiner Junkers Daten liefern.
Ist mein EMS-ESP für deinen Adapter aureichend oder gänzlich falsch? Ich fürchte zu verstehen, es geht nur mit einem ESP32 und ich habe da einen ESP 8266 verbaut.LG und Dank, mxa
-
@metaxa sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
Von BBQKees habe ich einen "EMS-ESP" 2020 erworben. Der tut auch brav bei meiner Junkers Daten liefern.
Tja ich auch mit ESP8266. Den musst Du für zukünftige Weiterentwicklungen und den ioBroker Adapter austauschen gegen einen ESP32 mini. Entweder bei Ebay / Amazon / Alibaba kaufen und dann selber flashen oder einen fertig geflashten für 20 Euro + Versand bei BBQKees bestellen.
Schau bei BBQKees auf der Webseite nach, da ist alles mit Bildern beschrieben :
https://bbqkees-electronics.nl/wiki/gateway/upgrade-the-gateway-to-an-esp32.html -
@metaxa Ja, leider funktioniert der mit dem Adapter nicht.
Du kannst aber alternativ auch über MQTT die Daten in den ioBroker bringen. Die Werte kommen dann als JSON und müssen per Script zerlegt werden.
Wenn du willst kannst du von mir die Scripte haben und die dir dann selber anpassen.
Der Adapter ersetzt im Grunde nur die zerlegerei und ist fähig (teilweise) Steuerbefehle abzusetzen.
Wenn du nur die Werte willst reichen dir auch die Scripte. -
@chaot
Der EMS-ESP Adapter V2 mit dem 8266 wird nicht mehr weiterentwickelt. Der ESP32 ist wesentlich leistungsfähiger und wird noch sehr aktiv weiterentwickelt. Dafür würde ich die paar Euro ausgeben, egal ob MQTT oder API genutzt wird.Übrigens sind alle schreibbaren Felder über den ioBroker Adapter veränderbar.
-
@tp1de habe das jetzt mal getestet.
Er übernimmt aber die Werte nicht , ich kann die eintippen jedoch schreibt er die nach der Aktualisirung wieder auf den alten Wert zurück.
Im Dasboard bei dem EMS -ESP übernimmt er die Werte jedoch. Irgedwie schreibt der Adapter die werte nicht in die EMS-ESP.
Auszug aus dem Log
ems-esp.0 2021-07-06 20:33:26.958 error (7496) ems-esp http write error:http://172.16.111.76/api/thermostat/hc1/seltemp ems-esp.0 2021-07-06 20:33:11.913 error (7496) ems-esp http write error:http://172.16.111.76/api/thermostat/hc1/seltemp ems-esp.0 2021-07-06 20:33:03.936 error (7496) ems-esp http write error:http://172.16.111.76/api/thermostat/hc1/seltemp
-
@iccube benutzt du Access Token?
was steht in den EMS-ESP settings? Bypass token? -
@tp1de ja benutze den Token
muss der hacken hesetzt sein ?
-
@chaot sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
Wenn du willst kannst du von mir die Scripte haben und die dir dann selber anpassen.
Der Adapter ersetzt im Grunde nur die zerlegerei und ist fähig (teilweise) Steuerbefehle abzusetzen.Herzlichsten Dank @Chaot !
Ich weiß nicht mehr woher genau hier im Forum, aber ich hab seit Monaten ein Script zum Zerlegen erfolgreich laufen. (Eventuell eh von dir?) Ich hatte mich nur gefreut, dass es viell. eine Möglichkeit gibt den primitiven Knopf auf dem Junkers Raumthermostat "Warmwasser Anforderung jetzt" via Befehl auslösen zu können. -
@tp1de mit dem bypass active geht es
das dauert aber lange erst beim 3 -4 mal nach dem er die daten neu holt wird der wert geändert -
@iccube seltemp ist ein besonderer Fall. Im Sommerbetrieb ist der eh inaktiv. Aus meiner Sicht funktioniert seltemp eh falsch, auf jedem Fall anders als im km200. Vielleicht ist dein Token falsch oder mit Leerstellen kopiert worden. Ich teste morgen noch mal.