NEWS
Neuer Adapter EMS-ESP für Bosch Heizungen
-
{ "id": "/recordings/heatSources/actualPower?interval=2021", "type": "yRecording", "writeable": 0, "recordable": 1, "recordedResource": { "id": "/heatSources/actualPower", "uri": "http://192.168.178.55/heatSources/actualPower" }, "interval": "2021", "sampleRate": "P30D", "recording-type": "actual", "recording": [ { "y": 3611009, "c": 3956 }, { "y": 957744, "c": 42063 }, { "y": 1750662, "c": 21072 }, { "y": 535804, "c": 43168 }, { "y": 353751, "c": 43168 }, { "y": 122990, "c": 43168 }, { "y": 68466, "c": 41707 }, { "y": 116853, "c": 42368 }, { "y": 152338, "c": 42253 }, { "y": 313592, "c": 43172 }, { "y": 518660, "c": 40591 }, { "y": 1002205, "c": 43167 } ] }
-
@mwolle Das sieht gut aus, Recordings sind also vorhanden und werden richtig gelesen.
Bist Du sicher, dass in den "_"-States keine Daten vorhanden sind?Ruf mal die Graphik für 12 oder mehr Monate Zeitraum auf - oder Flot.
... und bist Du sicher, dass der SQL-Adapter richtig funktioniert? (teste mal an States, wo Du manuell änderst)
-
@tp1de
die _states sind 0...12m steht was. Ich werde das noch mal mit der SQL DB prüfen
-
@tp1de kannst du mir so sagen, was hier das Problem ist?
-
-
die _states sind 0...12m steht was. Ich werde das noch mal mit der SQL DB prüfen
Irgendwas stimmt mit den Verbrauchsdaten nicht. Oder hast du wirklich 1.5 Mio kWh in 12 Monaten verbraucht ??
Meine sampleRates sind P1H,P1D und P31D (hours, days, months). Deine Sample Rate für Monat ist P30D ... siehe oben.
-
@tp1de doch es gibt alle drei Datenpunkte auch bei mir, mit dem Unterschied das der Datenpunkt heatSources.hs1.actualModulation bei mir hier liegen:
ems-esp.0.heatSources.actualModulation also nicht unter hs1. Die anderen beide stehen da, wie du geschrieben hast. -
@tp1de said in Neuer Adapter EMS-ESP für Bosch Heizungen:
Irgendwas stimmt mit den Verbrauchsdaten nicht. Oder hast du wirklich 1.5 Mio kWh in 12 Monaten verbraucht ??
Meine sampleRates sind P1H,P1D und P31D (hours, days, months). Deine Sample Rate für Monat ist P30D ... siehe oben.
Nein 1,5 Mio waren es nicht wahrscheinlich ist die Auswertung jahresscharf, da waren es vlt 14.000 kWh. Ich hatte kurzzeitig gedacht das der "Faktor" falsch ist. Denn mit ist schon aufgefallen, dass die Therme nicht mit 14 kW angegeben ist, sondern mit 1.4 kW
.
ich muss also die Verbräuche immer mit 0.14 multiplizieren um den richtigen Wert zu bekommen. Ich nutze das Skript aus dem km200 Thread, da hat ja schon einer ein Skript geschrieben, der die recordings auseinandernimmt. -
@mwolle sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
doch es gibt alle drei Datenpunkte auch bei mir, mit dem Unterschied das der Datenpunkt heatSources.hs1.actualModulation bei mir hier liegen:
ems-esp.0.heatSources.actualModulation also nicht unter hs1. Die anderen beide stehen da, wie du geschrieben hast.Da muss ich den Code anpassen.
@mwolle sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
ich muss also die Verbräuche immer mit 0.14 multiplizieren um den richtigen Wert zu bekommen. Ich nutze das Skript aus dem km200 Thread, da hat ja schon einer ein Skript geschrieben, der die recordings auseinandernimmt.
Da ich eh den Code anpassen muss kann ich auch einen Multiplikator mit aufnehmen. Macht das Sinn?
Die y-Werte sind (bei mir) die aufkumulierten Leistungswerte und die C-Werte die Anzahl der Samples. Bei mir wird jede Minute ein Sample genommen. Stundenwerte haben also c = 60, Tageswerte c = 60*24 usw.
Einzelne Samples können fehlen.
Wenn ich das richtig sehe, sind die c-Werte bei Dir kleiner ... schau mal.Ich bau gerade den Adapter um und erweitere ihn um eine Wärmebedarfsrechnung und dynamische An- und Abschaltung der Heizkreise in Abhängigkeit des Wärmebedarfes. (um Takten zu vermeiden)
Das wird dann eine Beta-Version 1.9.x. D.h. die Änderungen dauern dann noch ein paar Tage. -
@tp1de said in Neuer Adapter EMS-ESP für Bosch Heizungen:
@mwolle sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
doch es gibt alle drei Datenpunkte auch bei mir, mit dem Unterschied das der Datenpunkt heatSources.hs1.actualModulation bei mir hier liegen:
ems-esp.0.heatSources.actualModulation also nicht unter hs1. Die anderen beide stehen da, wie du geschrieben hast.Da muss ich den Code anpassen.
ggf. dynamisch zuweisen lassen vom User? Es gibt auch tatsächlich Junkers die auch die Rücklauftemperatur woanders stehen haben...
@mwolle sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
ich muss also die Verbräuche immer mit 0.14 multiplizieren um den richtigen Wert zu bekommen. Ich nutze das Skript aus dem km200 Thread, da hat ja schon einer ein Skript geschrieben, der die recordings auseinandernimmt.
Da ich eh den Code anpassen muss kann ich auch einen Multiplikator mit aufnehmen. Macht das Sinn?
bei mir schon. Bei den meisten steht aber der richtige Leistungswert der Heizung.
Die y-Werte sind (bei mir) die aufkumulierten Leistungswerte und die C-Werte die Anzahl der Samples. Bei mir wird jede Minute ein Sample genommen. Stundenwerte haben also c = 60, Tageswerte c = 60*24 usw.
Einzelne Samples können fehlen.
Wenn ich das richtig sehe, sind die c-Werte bei Dir kleiner ... schau mal.
prüfe ich gleich malIch bau gerade den Adapter um und erweitere ihn um eine Wärmebedarfsrechnung und dynamische An- und Abschaltung der Heizkreise in Abhängigkeit des Wärmebedarfes. (um Takten zu vermeiden)
Das wird dann eine Beta-Version 1.9.x. D.h. die Änderungen dauern dann noch ein paar Tage.das finde ich total gut, ich habe das Momentan über zwei Heizprogramme gelöst, wenn Heizung taktet, dann schreibe Heizprogramm mit "Dauerfrost" weg, ist die Temperatur z.B. um ein Grad dann abgesenkt, (von 21 auf 20 Grad) wird Heizungsprogramm "Normal" geschrieben. Bei mir hängt die Steuerung FW200 im Wohnzimmer. Da sie an der Außenwand hängt, muss ich ein Offset einrechnen, aber das geht gut. Ich berücksichtige dadurch auch Sonneneinstrahlung und Wintergartenwärme. Die Leistung kann ich leider nicht verändern, die ist nicht beschreibbar bei mir.
-
@tp1de said in Neuer Adapter EMS-ESP für Bosch Heizungen:
Da ich eh den Code anpassen muss kann ich auch einen Multiplikator mit aufnehmen. Macht das Sinn?
Die y-Werte sind (bei mir) die aufkumulierten Leistungswerte und die C-Werte die Anzahl der Samples. Bei mir wird jede Minute ein Sample genommen. Stundenwerte haben also c = 60, Tageswerte c = 60*24 usw.
Einzelne Samples können fehlen.
Wenn ich das richtig sehe, sind die c-Werte bei Dir kleiner ... schau mal.es ist tatsächlich so, dass es C = 59 Werte gibt, es gibt auch C = 0 Werte. Das gibt es auch bei Tages- und Monatswerten. Die Kumulierung leidet dann scheinbar auch darunter.
-
Ich habe gerade den Adapter auf einem IOBroker Slave installiert,
Version 1.4.0 node: v14.19.0, js-controller: 4.0.19
Nach ca. 2min hängt er sich auf mit folgendem Error:host.slave 2022-04-18 16:18:53.353 warn Do not restart adapter system.adapter.ems-esp.0 because restart loop detected host.slave 2022-04-18 16:18:53.352 info Restart adapter system.adapter.ems-esp.0 because enabled host.slave 2022-04-18 16:18:53.351 error instance system.adapter.ems-esp.0 terminated with code 6 (UNCAUGHT_EXCEPTION) ems-esp.0 2022-04-18 16:18:52.684 warn Terminated (UNCAUGHT_EXCEPTION): Without reason ems-esp.0 2022-04-18 16:13:09.725 warn Terminated (UNCAUGHT_EXCEPTION): Without reason ems-esp.0 2022-04-18 16:13:09.724 info terminating ems-esp.0 2022-04-18 16:13:09.696 error Cannot read property 'length' of undefined ems-esp.0 2022-04-18 16:13:09.695 error TypeError: Cannot read property 'length' of undefined at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.ems-esp/main.js:357:34) at processImmediate (internal/timers.js:466:21) ems-esp.0 2022-04-18 16:13:09.693 error uncaught exception: Cannot read property 'length' of undefined ems-esp.0 2022-04-18 16:13:09.690 error Cannot read property 'length' of undefined ems-esp.0 2022-04-18 16:13:09.689 error TypeError: Cannot read property 'length' of undefined at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.ems-esp/main.js:379:30) at processImmediate (internal/timers.js:466:21) ems-esp.0 2022-04-18 16:13:09.687 error uncaught exception: Cannot read property 'length' of undefined ems-esp.0 2022-04-18 16:13:09.683 error Cannot read property 'length' of undefined ems-esp.0 2022-04-18 16:13:09.682 error TypeError: Cannot read property 'length' of undefined at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.ems-esp/main.js:379:30) at processImmediate (internal/timers.js:466:21) ems-esp.0 2022-04-18 16:13:09.677 error uncaught exception: Cannot read property 'length' of undefined
Vorher kommen noch folgende Warnungen wenn ich zu Influxdb schreiben will.
Da denke ich mal das ist diese Retention Police welche ich die ganze zeit versuche anders ein zu stellen. Aber ich glaube die Warnungen bedeuten ja nur das er nicht so weit in die Vergangenheit schreiben darf.influxdb.0 2022-04-18 16:15:01.098 info Discard point that had error for ems-esp.0.recordings.dhwCircuits.dhw1.actualTemp._Months, error-count=10 influxdb.0 2022-04-18 16:15:01.097 warn Error on writePoint("{"value":47.4,"time":"2021-04-14T22:00:00.000Z","from":"","q":0,"ack":true}): HttpError: failure writing points to database: partial write: points beyond retention policy dropped=1 / "failure writing points to database: partial write: points beyond retention policy dropped=1"" influxdb.0 2022-04-18 16:15:01.096 warn Point could not be written to database: iobrokerdata influxdb.0 2022-04-18 16:15:01.089 info Add point that had error for ems-esp.0.recordings.dhwCircuits.dhw1.actualTemp._Months to buffer again, error-count=9 influxdb.0 2022-04-18 16:15:01.088 warn Error on writePoint("{"value":47.4,"time":"2021-04-14T22:00:00.000Z","from":"","q":0,"ack":true}): HttpError: failure writing points to database: partial write: points beyond retention policy dropped=1 / "failure writing points to database: partial write: points beyond retention policy dropped=1"" influxdb.0 2022-04-18 16:15:01.088 warn Point could not be written to database: iobrokerdata influxdb.0 2022-04-18 16:15:01.080 info Add point that had error for ems-esp.0.recordings.dhwCircuits.dhw1.actualTemp._Months to buffer again, error-count=8 influxdb.0 2022-04-18 16:15:01.079 warn Error on writePoint("{"value":47.4,"time":"2021-04-14T22:00:00.000Z","from":"","q":0,"ack":true}): HttpError: failure writing points to database: partial write: points beyond retention policy dropped=1 / "failure writing points to database: partial write: points beyond retention policy dropped=1"" influxdb.0 2022-04-18 16:15:01.079 warn Point could not be written to database: iobrokerdata influxdb.0 2022-04-18 16:15:01.069 info Add point that had error for ems-esp.0.recordings.dhwCircuits.dhw1.actualTemp._Months to buffer again, error-count=7 influxdb.0 2022-04-18 16:15:01.069 warn Error on writePoint("{"value":47.4,"time":"2021-04-14T22:00:00.000Z","from":"","q":0,"ack":true}): HttpError: failure writing points to database: partial write: points beyond retention policy dropped=1 / "failure writing points to database: partial write: points beyond retention policy dropped=1"" influxdb.0 2022-04-18 16:15:01.063 warn Point could not be written to database: iobrokerdata influxdb.0 2022-04-18 16:15:01.054 info Add point that had error for ems-esp.0.recordings.dhwCircuits.dhw1.actualTemp._Months to buffer again, error-count=6 influxdb.0 2022-04-18 16:15:01.054 warn Error on writePoint("{"value":47.4,"time":"2021-04-14T22:00:00.000Z","from":"","q":0,"ack":true}): HttpError: failure writing points to database: partial write: points beyond retention policy dropped=1 / "failure writing points to database: partial write: points beyond retention policy dropped=1"" influxdb.0 2022-04-18 16:15:01.053 warn Point could not be written to database: iobrokerdata influxdb.0 2022-04-18 16:15:01.043 info Add point that had error for ems-esp.0.recordings.dhwCircuits.dhw1.actualTemp._Months to buffer again, error-count=5 influxdb.0 2022-04-18 16:15:01.043 warn Error on writePoint("{"value":47.4,"time":"2021-04-14T22:00:00.000Z","from":"","q":0,"ack":true}): HttpError: failure writing points to database: partial write: points beyond retention policy dropped=1 / "failure writing points to database: partial write: points beyond retention policy dropped=1"" influxdb.0 2022-04-18 16:15:01.042 warn Point could not be written to database: iobrokerdata influxdb.0 2022-04-18 16:15:01.033 info Add point that had error for ems-esp.0.recordings.dhwCircuits.dhw1.actualTemp._Months to buffer again, error-count=4 influxdb.0 2022-04-18 16:15:01.033 warn Error on writePoint("{"value":47.4,"time":"2021-04-14T22:00:00.000Z","from":"","q":0,"ack":true}): HttpError: failure writing points to database: partial write: points beyond retention policy dropped=1 / "failure writing points to database: partial write: points beyond retention policy dropped=1"" influxdb.0 2022-04-18 16:15:01.032 warn Point could not be written to database: iobrokerdata
Weiß jemand was da falsch läuft?
MfG
Patrick -
@marsmännchen Stimmen deine Systemzeiten?
Du versuchst am 18.04. einen Datenpunkt mit dem Zeitstempel vom 14.4 zu schreiben.
Da ist doch was komplett falsch. -
@marsmännchen
Der Fehler tritt bei Schreiben der km200 "Recordings" auf.
Der Adapter liest die Vergangenheitsdaten aus dem km200 Gateway und schreibt diese in die Datenbank. Bei InfluxdB 1.x muss die Retentionperiod auf > 170 weeks gesetzt werden ... siehe Doku https://github.com/tp1de/ioBroker.ems-esp/blob/main/README.md -
@chaot sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
@marsmännchen Stimmen deine Systemzeiten?
Du versuchst am 18.04. einen Datenpunkt mit dem Zeitstempel vom 14.4 zu schreiben.
Da ist doch was komplett falsch.Nee ist richtig. Es werden Verbrauchsdaten der letzten 2 bis 2/2 Jahre gelesen und per DB-Befehl direkt geschrieben.
-
@chaot
Ah, jetzt sehe ich es auch. Wie das zu Stande kommt kann ich aber nicht sagen.
Jetzt funktioniert es schon seit ca. 20min. Ich habe die Instanz und Datenpunkte gelöscht, habe den KM200 Adapter gestoppt welcher mir vormals immer die Werte übertragen hat, und die Instanz wieder installiert. Vielleicht war eines davon die Lösung?
Und meine dämliche Spielerei in den Adaptereinstellungen mit einmal Influx, einmal Sql, dann wieder Influx,... hab ich auch unterlassen. -
@tp1de
Ich hab das neue Influx 2.1.1.
Da suche ich gerade noch wie ich die Retentionperiod einstelle. -
@marsmännchen sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
Ich hab das neue Influx 2.1.1.
Da suche ich gerade noch wie ich die Retentionperiod einstelle.Influx V2 kennt nur eine Retentionperiod für die ganze Datenbank. Wenn ich das richtig verstanden habe wird die vom InfluxdB-Adapter gesetzt. Die Storage Vorhaltezeit mus auf "keine automatische Löschung" stehen.
Da ich aber unterschiedliche Retentionperiods für unterschiedliche States für sinnvoll halte, bin ich wieder zurück zu mySQL / MariaDB.
Der ems-esp Adapter löscht aus Sicherheitsgründen nur States ohne DB-Fortschreibung. Bei Problemen musst Du ggfs. selber die Recordings und Statistics States löschen wenn du zwischen den Datenbanken hin- und herspringst.
-
@tp1de
Ja da sieh an... Genau dort hat sich die gesuchte Einstellung versteckt. In Adaptereinstellungen von InfluxDB. Ich Pfusche die ganze zeit in dem CLI von Influx rum. Hab sie im Moment auf "keine automatische Löschung" um mich die nächsten Wochen erst mal mit den Datenpunkten vertraut zu machen. Vielleicht seh ich mir später mal mySQL genauer an.
Vielen Dank!! -
@tp1de Anbei die Adapterenstellungen: