NEWS
Neuer Adapter EMS-ESP für Bosch Heizungen
-
@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.
-
@calu Nochmal ein paar Anmerkungen von mir:
Der RC310 unterstützt bis zu 4 Heizkreise. Diese können Mischer-gesteuert sein / oder auch nicht.
Jeder dieser Heizkreise hat dann eine eigene Heizungspumpe und ggfs. einen Mischer.
Jeder Heizkreis kann unterschiedliche Reglungsparameter und Zeitprogramme haben.
Der Kessel nimmt dann die höchste ermittelte Vorlauftemperatur.Um einen effizienten Heizbetrieb zu gewährleisten, sollte die Anlage Außentemperatur-geführt sein. D.h. die Vorlauftemperatur ist dann abhängig von der Außentemperatur.
Der Kessel hat dann eine Wärmeanforderung, es sei denn die Anlage ist im Sommermodus oder die Parameter der Nachtabsenkung schalten die Heizung aus.
In deinem Fall mit Heizkörpern, sollte eine Heizungspumpe ausreichen, es sei denn Du möchtest eines der Geschosse ausschalten können. Ein hydraulischer Abgleich stellt dann sicher, dass alle Räume die gewünschte Temperatur erreichen.
-
@tp1de So, kurze Rückmeldung zu den neuen Versionen.
Seit 2.6.x funktioniert alles wieder und keine Fehlermeldungen mehr im Log.Eine Frage habe ich noch.
Kann man irgendwo einstellen wann der Datenpunktems-esp.0.energy.actualPower._Months
geschrieben wird? Bei mir ist ein Eintrag vom 16.10 (Installationsdatum nach Deinstallation) vorhanden. Natürlich wäre es schöner wenn ich den Datenpunkt auf den jeweils Monatsersten legen könnte.
Oder habe ich das einfach irgendwo übersehen? -
@chaot Sorry aber der Eintrag wird Mitte Monats und Mitte des Tages geschrieben. Ich verwende Balkendiagramme zur Darstellung in Flot, daran liegt das.