Mit MQTT Werte an OCHSNER OTE über eBus schreiben
Verfasst: 12. Jul 2024 15:17
Ich habe eine Ochsner OTE Wärmepumpe, einen eBus V5 Adapter der per MQTT an mein openHAB angebunden ist. MQTT deshalb weil das eBus Binding für meine Ochsner Wärmepumpe keine Unterstützung bietet.
Mit Unterstützung im eBus Forum habe ich nun eine eBus Konfiguration gefunden die es mir erlaubt alle Werte die von der Wärmepumpe am eBus ausgegeben werden zu lesen und mit MQTT an openHAB weiterzugeben.
Was ich nun möchte ist einige dieser Werte von openHAB aus zu setzten, wie z.B. die Art des Heizbetriebes (Automatik, Sommer, ....) oder die Warmwasser Solltemperatur, um einige zu nennen.
Als Beispiel nehme ich die Warmwasser Solltemperatur:
thing:
item:
sitemap:
Im MQTT Explorer wird der vom eBus Adapter gelieferte Wert so angezeigt:
in der thing Definition sorgt der transformationPattern für das Auslesen des Temperaturwertes aus dem eBus Datagram.
Will ich nun diesen Wert verändern und zurückschreiben muss ich den veränderten Wert wieden an die siebte Stelle im String Array schreiben und dann per commandTopic in der thing Definition via MQTT auf den eBus schreiben.
Soweit die Theorie.
Mein erster Versuch
hat folgendes ergeben: Setze ich den Wert auf z.B. 58 und schreibe Ihn zurück steht nach kurzer Zeit im Display der OTE -17.5, andere Werte ergeben andere unsinnige Temperaturen.
Weitere Versuche wollte ich mit transformationPatternOut durchführen, was mir aber nicht gelingt ist im gelesenen String den Wert zu ersetzen, alle meine Versuche sind gescheitert.
Wie muß der transformationPatternOut aussehen um dieses Ziel zu erreichen?
LG
Werner
Mit Unterstützung im eBus Forum habe ich nun eine eBus Konfiguration gefunden die es mir erlaubt alle Werte die von der Wärmepumpe am eBus ausgegeben werden zu lesen und mit MQTT an openHAB weiterzugeben.
Was ich nun möchte ist einige dieser Werte von openHAB aus zu setzten, wie z.B. die Art des Heizbetriebes (Automatik, Sommer, ....) oder die Warmwasser Solltemperatur, um einige zu nennen.
Als Beispiel nehme ich die Warmwasser Solltemperatur:
thing:
Code: Alles auswählen
Type number : temperature_hotwater_setpoint [ stateTopic="ebusd/24849/temperature/hotwater.setpoint", transformationPattern="JS:|(input).split(';')[6]"]
Code: Alles auswählen
Number temperature_hotwater_setpoint "Warmwassertemperatur Soll [%.1f °C]" {channel="mqtt:topic:mosquitto:ebusd:temperature_hotwater_setpoint:Values"}
Code: Alles auswählen
Setpoint item=temperature_hotwater_setpoint step=1 minValue=10 maxValue=60
Code: Alles auswählen
hotwater.setpoint = 179;66;8d;°C;60.0;10.0;58.0
Will ich nun diesen Wert verändern und zurückschreiben muss ich den veränderten Wert wieden an die siebte Stelle im String Array schreiben und dann per commandTopic in der thing Definition via MQTT auf den eBus schreiben.
Soweit die Theorie.
Mein erster Versuch
Code: Alles auswählen
Type number : temperature_hotwater_setpoint [ stateTopic="ebusd/24849/temperature/hotwater.setpoint", commandTopic="ebusd/24849/temperature/hotwater.setpoint", transformationPattern="JS:|(input).split(';')[6]"]
Weitere Versuche wollte ich mit transformationPatternOut durchführen, was mir aber nicht gelingt ist im gelesenen String den Wert zu ersetzen, alle meine Versuche sind gescheitert.
Wie muß der transformationPatternOut aussehen um dieses Ziel zu erreichen?
LG
Werner