NEWS
Neuer Adapter EMS-ESP für Bosch Heizungen
-
@tp1de Ja, die Version ist aktuell mit 2.5.1
Wo finde ich dann die Werte in der DB?
Unter welcher Bezeichnung?
Ich will die mit Grafana auswerten.
Wenn die direkt geschrieben werden besteht da die Möglichkeit einen eigenen Alias dafür zu vergeben? -
@tp1de Danke für deine Antwort.
Habs noch mal probiert. Bleibt gleich, in meinen beiden Instanzen (Ems.0, ems.1) wird sowohl ems-esp als auch im km200 Tab die Datenbankauswahl nicht übernommen.
-
@mwolle said in Neuer Adapter EMS-ESP für Bosch Heizungen:
@mwolle said in Neuer Adapter EMS-ESP für Bosch Heizungen:
@tp1de: Ich habe ja nun meine Skripte angepasst auf diesen Adapter nun. Ich habe aber auch gleichzeitig den Regler getauscht, das heißt vom FW200 mit IPM2 auf CW400 und MM200. Ich habe ein Skript welches Anhand der Außentemperatur unterschiedliche Heizprogramme lädt oder aber auch bei Taktverhalten die Heizung per Heizprogramm ausschaltet. Leider werden die Heizprogramme nicht in den Regler geschrieben. (Ich bekomme aber auch keine Fehlermeldung). Hat einer Erfahrung mit dem CW 400 Regler? Bei dem FW 200 Regler gab es keine Probleme.
Das Problem bleibt leider noch: Es handelt sich um diesen Datenpunkt: km200:heatingCircuits.hc1.activeSwitchProgram
Das ändern des Datenpunkt bewirkt keine Änderung am Regler. Über die EasyRemote App klappt alles. Vorher mit dem FW 200 Regler ging es auch. Der Datenpunkt ist writeable habe ich gerade noch mal geschaut.Der Herbst ist da und die Heizung an...jetzt will ich das Thema hier noch mal zu Ende bringen
Also ich möchte zwischen Heizprogrammen schalten, in der CW 400 gehen nur noch zwei Heizprogramme. Ich kann über die Objektliste die Heizprogramme anpassen, nur per Skript nicht, und ich weiß nicht warum. Ggf. ist das hier falsch, dann müsste ich das noch mal im Skripte Thread schieben. Aber die Objekte sehen so aus:
Ich kann zwischen dem Wert A und B schalten, bei der FW200 musste ich im Skript Nummer nehmen (0 bis 4). Hier funktioniert das nicht, weder A und B 0 und 1 oder 1 und 2 (wie in der EasyControll App). Jetzt weiß ich noch so recht, wie ich den State ansteuern kann. Kann das hier einer für eine CW 400 mal gemacht?
So schalte ich den State:// Prüfung, ob Heizung Taktet, wenn ja, Heizleistung um 2 verringern. if (Brennerstarts <= 30) { Element2 += 1; setState("javascript.0.Merker_Heizleistung", (Element2),true); Counterschleife = 2; } else { Element2 = 0; setState("javascript.0.Merker_Heizleistung", (Element2),true); Counterschleife = 3; } if (Element2 >= 2){ //setState("ems-esp.0.heatingCircuits.hc2.activeSwitchProgram"/*heatingCircuits.hc2.activeSwitchProgram*/, 5, true); setState("ems-esp.0.heatingCircuits.hc2.activeSwitchProgram"/*heatingCircuits.hc2.activeSwitchProgram*/, "B", true); setState("ems-esp.0.heatingCircuits.hc1.activeSwitchProgram"/*heatingCircuits.hc2.activeSwitchProgram*/, "B", true); Element2 = 0; setState("javascript.0.Merker_Heizleistung", (Element2),); Counterschleife = 4; sendTo("whatsapp-cmb", "send", { text: 'Heizung ausgeschaltet. Folgende Parameter:' + (Brennerstarts) +' Minuten Brennerstarts und ' + (actualPower) + ' Heizung an' });
-
@manrum1 sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
Habs noch mal probiert. Bleibt gleich, in meinen beiden Instanzen (Ems.0, ems.1) wird sowohl ems-esp als auch im km200 Tab die Datenbankauswahl nicht übernommen.
Sollte in der aktuellen Version (2.5.1) nicht mehr vorkommen. Benutzt du die Version?
-
@mwolle sagte in Neuer Adapter EMS-ESP für Bosch Heizungen:
(0 bis 4). Hier funktioniert das nicht, weder A und B 0 und 1 oder 1 und 2 (wie in der EasyControll App). Jetzt weiß ich noch so recht, wie ich den State ansteuern kann. Kann das hier einer für eine CW 400 mal gemacht?
So schalte ich den State:Ich wieder hole mich ..... (schon einige Male erklärt) :
Im ioBroker werden Werteveränderungen vom Adapter nur verarbeitet, wenn "Acknowledged" auf false gesetzt wird.
Dies ist bei allen Adaptern der Fall ! ACK = True bedeutet der Adapter hat den Wert gesetzt / False = Adapter muss den Wert verarbeiten ... -
@tp1de Nein, 2.4.1. da ich stable nutze.
Habe auf beta umgestellt und 2.51 installiert. DB-Eintrag wird jetzt übernommen.Danke!!
-
@tp1de Ich komme leider auch nicht klar. Mich würde vor allem das das Konzept der Objektstruktur und wohin die Daten in der Datenbank gespeichert werden interssieren. Gibt es dafür eine Doku?
So schaut das bei mir aus:
Vielen Dank im Voraus!
-
@manrum1 lest ihr eigentlich die readme zum Adapter? Dort ist die PDF Doku verlinkt. Seite 7
-
@tp1de Ja, ich habe die Doku gelesen. Aber ich habe sie nicht richtig verstanden. Ich habe nämlich verzweifelt versucht dem Datenpunkt einen Alias zuzuweisen und den dann in der Datenbank gesucht. Das hat aber nicht geklappt.
@manrum1 Die Daten werden in deinem Beispiel unter
ems-esp.0.recordings.heatSources.actualPower.km200._Days ems-esp.0.recordings.heatSources.actualPower.km200._Hours ems-esp.0.recordings.heatSources.actualPower.km200._Month
geschrieben.
Steht tatsächlich auch so in der Doku, wenn man weiß wie man das verstehen soll. -
Ich habe ein Problem mit der Wärmebedarfsfunktion. Heizung ist Buderus WLW196i mit zwei Heizkreisen. Der erste Heizkreis wird mit eine Fernsteuerung aus der zu vermietenden Erdgeschoss-Wohnung gesteuert und funktioniert.
Meine Vorstellung war es den zweiten Heizkreis über das KM200 in Verbindung mit dem EMS-ESP Adapter fernzusteuern. Die Verbindung steht. Ich kann Daten auslesen. Ich sehe, wenn ich die Temperatur an der Fernsteuerung des ersten Heizkreise ändere. Alles gut. Für den zweiten Heizkreis habe ich die Ist- und Solltemperaturen aus Loxone. Funktioniert auch. Werte sind im Objektbaum. Und jetzt kommt das aber: Obwohl im Moment eine Wärmeanforderung vorliegt, springt die Heizung nicht an.
So sehen die Objekte bei Controls aus für den Heizkreis 2:
Da 2>1 sollte das ja korrekterweise einen Heizbedarf bedeuten.Im Reiter "Heating circuits" sieht es so aus und ich denke, da liegt der Hase im Pfeffer:
Current room set point kann ich nur direkt an der Heizung oder in der Buderus App einstellen. Den temporary room set point könnte ich ggf. überschreiben. Aber das Problem dürfte die Roomtemperature sein, die da bei -32xx liegt. Die Heizung scheint zu vergleichen zwischen Raumtemperatur und roomsetpoint, egal ob temporary oder current.Irgendwo ist der Fehler, aber ich habe keine Idee mehr.
-
@calu poste mal die Adapter Konfigurationsseite für Heatdemand.
Du scheinst keinen Raumsensor zu haben, bzw. die Heizungssteuerung (Thermostat) ist in der Heizung installiert und nicht im Wohnzimmer. Dann solltest Du die Regelungsparameter auf "Außentemperatur" eingestellt haben.
Du must dann herausfinden, wie Du die Heizkreise ein bzw. ausschalten kannst. Der temporary room setpoint funktioniert dann nicht.
Der Vorteil dieses Datenpunktes ist, dass er dann nur bis zum nächsten Schaltzeitpunkt gesetzt wird.Alternativ kannst Du auch zwischen Sommer- und Wintermodus umschalten. Falls der Adapter oder ioBroker inaktiv ist, dann kann es passieren, dass die Heizung in diesem Modus verbleibt.
-
@tp1de Das ist so. Für den ersten Heizkreis gibt es eine Fernsteuerung im Wohnzimmer EG.
Für den zweiten Heizkreis (Ober- und Dachgeschoss) gibt es das nicht. So sieht die heat demand-Seite aus.Meine andere Überlegung wäre gewesen, die beiden Heizkreise zusammenzulegen und als einen Heizkreis anzusteuern.
Einen Regelungsparameter "Außentemperatur" habe ich nicht gefunden. Meinst Du in der Heizung oder im Adapter. In der Heizung könnte Sinn machen. Ich suche da mal im Menü der Heizung. -
@calu Meine zwei Heizkreise haben auch nur einen RC310 Regler/Thermostat im Wohnzimmer. Die Heizkreise sind so konfiguriert, dass dieser Raumtemperaturwert genutzt wird. Ich habe sogar 2 Häuser mit einer Heizung verbunden, und dieser Wert ist so natürlich nicht richtig. Deshalb frage ich ja den Heizbedarf ab, um dann ggfs. den Heizkreis ein bzw. aus zu schalten.
Wenn ansonsten deine Heizung richtig funktioniert, dann kannst du natürlich auch heatingCircuits.hc1/2.suWiSwitchMode umschalten:
Bei mir ist 0= Sommermodus - 2= Wintermodus (1 = automatisch mit eingestellter Sommertemperatur).Eine Anmerkung: Deine Parameter sind so, dass wenn irgendein Raum Heizbedarf meldet, dann soll die Heizung angehen. Bei mir würde die Heizung dann ggfs. takten, wenn der Heizkörper klein ist. D.h. ich schalte den Heizkreis nur ein, wenn mehrere Räume Heizbedarf melden oder das Wohnzimmer.
Ist dein hc1 eine Fußbodenheizung? savesettemp ist nur bei FB-Heizung notwendig / Sinnvoll. Falls vorhanden solltest du aber einen separaten Raumthermostat verwenden. HC2 muss der Haken raus !
Erklärung zum "setsavetemp":
(1) Wenn der Heizbedarf über separate Thermostate ermittelt wird --> savesettemp = false
(2) Wenn der Heizbedarf direkt aus dem Vergleich zwischen currentRoomSetpoint und roomtemperature ermittelt wird, dann funktioniert dies nicht mehr, da der currentRoomSetpoint auf 0 gesetzt wird um den HK auszuschalten.
D.h. der "bisherige" Wert muss vorher gemerkt werden. savesettemp = true -
Was versucht der Adapter hier zu machen?
influxdb.0 2023-10-20 17:13:28.810 error Cannot find value to delete for ems-esp.0.energy.actualPower._Months: {"ts":1694818799500,"val":225.07,"ack":true}
Ich habe in paar solcher Meldungen im Log in denen versucht wird irgendwelche Daten von verschiedenen Datenpunkten zu löschen.
influxdb.0 2023-10-20 00:03:27.075 error Cannot find value to delete for ems-esp.0.energy.actualDHWPower._Days: {"ts":1697846400000,"val":4.04,"ack":true} influxdb.0 2023-10-20 00:03:22.610 error Cannot find value to delete for ems-esp.0.energy.actualCHPower._Days: {"ts":1697846400000,"val":38.99,"ack":true} influxdb.0 2023-10-20 00:03:18.817 error Cannot find value to delete for ems-esp.0.energy.actualPower._Days: {"ts":1697846400000,"val":43.03,"ack":true}
Adapter Version2.5.2
-
@chaot InfluxDB V2?
Funktioniert die vorherige Version 2.5.1? Wenn ja, dann installiere bitte diesse wieder. -
@tp1de Ja, die hat einwandfrei funktioniert und scheint auch immer noch gut zu sein.
Danke erstmal. -
Danke fürs Feedback. So langsam habe ich von ioBroker die "Schnauze voll".
Ich verwende im Adapter ioBroker Standardfunktionen mit sendTo('datenbank', ....);
Damit sollte der Adapter unterschiedliche Datenbanken verarbeiten können (mySQL/MariaDB, InfluxDB und History).Die Funktionen getHistory mit Aggregation und storeState funktionieren auf einmal nicht mehr wie früher.
Ob das am js-controller v5 hängt oder woran auch immer kann ich nicht beurteilen.
Ich bin aber nicht mehr in der Lage und Willens all das "nachzuarbeiten".Die Version 2.5.2 unterscheidet sich von 2.5.1 dadurch, dass ich vor der "storeState" (einfügen neuer Records) ein "update" versuche um vorhandene Records upzudaten. Wenn der Status auf einen Fehler hindeutet, dann füge ich ein. Das war notwendig für den History Adapter. Bei mir funktioniert dies auch für InfluxDB ohne Fehler. In 2.5.1 habe ich einfach ein storeState gemacht und dieser hat die Werte überschrieben. (ist aber eigentlich unsauber und hat für History auf einmal nicht mehr funktioniert. Der Entwickler rät auch dringend davon ab). Warum auf einmal "delete Fehler" auftreten weiß ich nicht. Ich löse im Adapter keine "deletes" aus.
Da bei InfluxDB V2 das Löschen aus ioBroker heraus nicht funktioniert und aus meiner Sicht die Implementation nicht vollständig ist, werde ich InfluxDB in Zukunft nicht mehr unterstützen. Ich empfehle dringend auf mySQL/MariaDB umzustellen !!!!
Ansonsten steht es jedem Anwender frei die JSON-Arrays zu lesen und per eigenem Script in eine Datenbank zu schreiben. -
@tp1de Ich habe die letzten Tage damit herumgebastelt. Ich komme da nicht auf einen grünen Zweig.
Mein erstes Problem: Das RC310 kann nur mit zwei Heizkreisen umgehen, wenn auch ein Mischer installiert ist. Das ist bei mir nicht der Fall. Da muss ich mal schauen, ob ich das nachrüsten lasse. Aber mein größeres Problem ist folgendes:
Es gibt kein Objekt, das "write" zulässt und genutzt werden kann um den Heizbedarf zu erzeugen. Bei mir vergleicht das RC310 die Raumtemperatur vom RC100 und die Solltemperatur. Aber beide Temperaturen sind über den Adapter und das KM200 "read only". Auch wenn ich das RC100 rausnehme, bleibt die Raumtemperatur "read only" und kriegt -3xxx als Wert.
Ich habe jetzt noch ein Idee, nämlich die Temperatur des hinterlegten Programmes zu ändern.
Trotzdem habe ich massive Zweifel, ob sich das über das KM200 sinnvoll machen lässt und überlege, mir das EMS Gateway von bbqkees zu besorgen, falls man da tiefer eingreifen kann. Kannst Du zum Vergleich der beiden Gateways was sagen? -
@calu Ich kann nicht nachvollziehen was du machen willst. Je nach Regelungsart - Außentemperatur oder Raumtemperatur geführt - wird die Vorlauftemperatur berechnet. Dazu wird die Sollvorgabe der Raumtemperatur verwendet. In der Regel aus dem Zeitprogramm. Mit dem temporaryRoomSetpoint kannst du den verändern.
-1 = automatisch, 0 = aus, oder Werte > 5 = Solltemperatur. Damit wird dann ggf. Heizbedarf erzeugt.Mit dem ems-esp Gateway würde das genauso funktionieren. Dort kannst du noch zusätzlich die Regelungsparameter verändern, analog zu den Einstellungen aus der Service-Ebene am RC 310. Für Heizbedarf brauchst du das nicht.
-
@tp1de
Ich hole nochmal etwas aus.
Erdgeschoss: Wohnzimmer mit RC100 als Fernbedienung. Heizkörper mit mechanischen Thermostaten.
Obergeschoss: Einzelraumregelung mit ferngesteuerten Thermostaten. Alle Raumtemperaturen werden erfasst, Thermostate über Loxone gesteuert.Wenn ich über den TemporaryRoomSetpoint -1 vorgebe, vergleicht der RC100 im Wohnzimmer EG die Raumtemperatur mit der Solltemperatur aus dem Zeitprogramm und legt so fest, ob es einen Heizbedarf gibt.
Wenn 0 vorgegeben ist, schaltet er ab.Jetzt könnte ich natürlich eine andere Temperatur vorgeben, da habe ich aber zwei Probleme:
- Welche Temperatur? Da die Temperatur ja dann immer mit der Raumtemperatur im Wohnzimmer EG verglichen wird, erzeugt die Zieltemperatur eines beliebigen Raumes, der Heizbedarf hat, nicht zwangsweise einen Heizbedarf. Nimm an, ich möchte auf 19°C im Schlafzimmer heizen und habe da gerade 18°C. Im Wohnzimmer sind 22° Raumtemperatur und 22° gewünscht. Dann bringen mir 19°C als Vorgabe im Wohnzimmer überhaupt nichts, wenn ich Heizbedarf im Schlafzimmer habe.
- Ist es mir noch nicht gelungen, den State für ON aus der HeatDemand-Berechnung an den TemporarySetpoint zu übergeben. Keine Ahnung, wo es da klemmt.
- Passt ja dann die Sollangabe des RC100 nicht mehr zu der Sollangabe des Raumes, wo er montiert wird, weil ich die überschreibe. Deshalb frage ich mich, was passiert, wenn jemand am RC100 dreht.
Ich habe versucht, für's erste das RC100 rauszunehmen, um die Raumtemperatur selbst vorgeben zu können. Aber den Raumtemperatur-State für den Heizkreis kann ich trotzdem nicht beschreiben.
Dementsprechend glaube ich:
-
dass eine unabhängige Regelung des EG und des OG so nicht möglich ist und dazu ein Mischermodul nachgerüstet werden müsste, sodass der erste Heizkreis einfach über das RC100 im EG läuft.
-
dass ein Mischermodul mein Problem aber auch nicht vollständig löst. Wenn ich nämlich den zweiten Heizkreis ohne RC100 habe, geht der nur außentemperaturgeführt, weil die Raumtemperatur im OG nicht über's KM200 rein geht. D.h. der zweite Heizkreis muss ohne Vorgabe der Temperatur von innen laufen.
Ich habe mir was ausgedacht und probiere jetzt erstmal noch was. Danke erstmal.