Modul für EBV / Rotex Heizung

Begonnen von heiko322, 01 April 2015, 10:10:32

Vorheriges Thema - Nächstes Thema

heiko322

Hallo,
nachdem unserer FHEM Server nun seit über einer Jahr gut läuft und zuverlässig Werte von Umwelt, Stromverbrauch und Solarerzeugung liefert, wollte ich unsere Rotex Heizung noch integrieren. Leider gab es dazu bisher kein Modul und im Internet findet man zum Protokoll rein gar nichts. Ich habe mich deshalb mal selbst daran gemacht und versucht die Kommunikation zwischen der Rotex GSU 540 Gas-Solar-Unit und ihrer Steuerung, der EBV Gamma RS 30 zu entschlüsseln. Heraus gekommen ist ein Modul das alle aktuellen Werte und den Status der Heizungsregelung ausliest und das ich hiermit gerne der Community zur Verfügung stelle.
Ich sollte vielleicht noch erwähnen, dass ich zum ersten Mal mit Perl in Kontakt bin und auch im Allgemeinen eher wenig mit Programmierung zu tun habe. Als Basis diente mir das Modul 00_WHR962.pm. Dennoch hoffe ich, dass das Modul sauber arbeitet - hier verrichtet es zumindest seit fast 2 Wochen unauffällig seinen Dienst.
Noch etwas zur notwendigen Hardware: Die Rotex GSU ist mit der EBV Gamma über eine 2-Draht RS485 Busleitung verbunden. Es ist für FHEM somit nur ein RS485 to USB Adapter (oder ähnliches) notwendig. Der Serial-Port wird auf 9600, 8 Bits, 1 Stopbit, Keine Flusskontrolle, keine Parität eingestellt, wobei für FHEM nur die Baudrate relevant ist. Wenn von Interesse kann ich auch gerne meine bisherigen Erkenntnisse zum Aufbau des Protokolls mitteilen. Das Modul arbeitet ausschließlich lesend, d. h., es sendet von sich aus keinerlei Daten. Eine Regelung der Heizung ist somit (bisher) noch nicht möglich. Wer möchte kann sich daran gerne mal versuchen.
Im Anhang das Modul.

Gruß Heiko

heiko322

Screenshot der möglichen Werte und Plots:

wiz

Danke - da weiß ich was ich im Herbst/Winter mal probieren werde. Gibt es Doku wie der Bus an den RS485 angeschlossen werden muss? Oder ist das bei der Heizung halbwegs eindeutig?

Tobi133

Hallo,
ich versuche mich gerade an dem RS485 Protokoll meiner Rotex HPSU Wärmepumpe. Bis jetzt hatte ich jedoch noch keinen Erfolg das Protokoll zu entschlüsseln. Die RS485 Daten greife ich direkt an der vorgesehenen Schnittstelle ab. Wäre klasse, wenn man an das Protokoll rankommen könnte.
Es geht mir nur ums Auslesen.
Danke im Voraus.
Gruß, Tobi

heiko322

#4
Hallo und sorry, dass ich erst jetzt antworte. Ich hatte leider keine Mitteilung bekommen, dass in diesen Thread neue Nachrichten vorliegen. Zur Entschlüsselung des Protokolls habe ich ein paar Notizen direkt im Modul als Kommentar hinterlassen. Hier ist der relevante Bereich:

# Da das Datenprotokol unprotokoliert ist folgen nun einige Hinweise und
# meine bisherigen Entschlüsselungsversuche:
# Der Serial-Port wird auf 9600, 8 Bits, 1 Stopbit, Keine Flusskontrolle, 
# keine Parität eingestellt, wobei wohl nur die Baudrate relevant ist.
# Die einzelnen Sequenzen im Sendefluss haben eine CRC16 Checksumme vom
# Typ RC-CCITT Kermit (width=16 poly=0x1021 init=0x0000 refin=true
# refout=true xorout=0x0000 check=0x2189 name="KERMIT").
# Zum Testen: http://www.lammertbies.nl/comm/info/crc-calculation.html .
# Die komplette Sequenz wird ziemlich genau 4x pro Minute gesendet.
# Startbyte ist 0x82, davor liegt 0x06 oder 0x41 bzw. eine Folge dieser
# beiden Bytes. Das Schlussbyte ist 0x03. Davor befinden sich 2 Bytes
# welche die CRC16 Checksumme der Sequenz beginnend nach dem Startbyte
# bis zur Checksumme bilden. Es folgt eine vollständige Datenfolge zur
# Verdeutlichung:
#410641 82 60 20 01 21 F1 D1A8 03 06
#410641 82 60 20 10 21 01020238000000000000000000000000 A944 03 06 424242C3C3C3444444C5C5C5C6C6C6474747484848
#410641 82 60 20 01 21 F2 4A9A 03 06
#410641 82 60 20 10 21 00000000000000000000000000000000 ED5A 03 06
#410641 82 60 20 01 21 F3 C38B 03 06
#410641 82 60 10 01 21 09 E49F 03 06
#             82 41 20 09 21 032B243908DB080D12 4C2A 03
#410641 82 60 20 01 21 F4 7CFF 03 06
#410641 82 60 10 01 21 09 E49F 03 06
#             82 41 20 09 21 040CF6FB3C0B310100 26A4 03
#410641 82 60 20 01 21 F5 F5EE 03 06
#410641 82 60 10 01 21 09 E49F 03 06
#             82 41 20 09 21 056400B31194119407 C1AB 03
#410641 82 60 20 01 21 F6 6EDC 03 06
#410641 82 60 10 01 21 09 E49F 03 06
#             82 41 20 09 21 069E640A020AFF2500 CE93 03 424242C3C3C3444444C5C5C5C6C6C6474747484848 D1D1D16060601D1D1D1E1E1E9F9F9FD1D1D1D2D2D2535353D4D4D4555555565656D7D7D7D8D8D85959595A5A5ADBDBDB5C5C5CDDDDDDDEDEDE5F5F5F
# Nach Byte 0x21 folgen die eigentlichen Daten. Das Byte davor scheint
# die Länge der Daten anzugeben. Wiederrum davor steht vermutlich die
# Adressierung und die Art der Sequenz. Das konnte ich bisher noch nicht
# entziffern.
# Die Daten, die ich bisher zuordnen konnte befinden sich im obigen
# Beispiel in Zeile 7 und dort wie bereits erwähnt nach 0x21:
# 032B243908 -> 0x03 ist die Funktion/Register?, 0x2B=43 ist die
# Vorlauftemperatur, 0x24=36 ist die Rücklauftemperatur, 0x39=57 ist
# die Temperatur des Warmwassers und 0x08=8 ist die Außentemperatur.
# Diese Werte stammen vom Heizkessel. In Zeile 2 befinden sich die
# Soll-Werte die von der Steuerung kommen: Das zweite 0x02 ist der
# Soll-Zustand (2 = HK ein/WW aus; 0 = HK aus/WW aus; 3 = HK ein/
# WW ein; 1 = HK aus/WW ein) und 0x38=56 ist die Soll-Vorlauftemperatur.
# Dann noch gegen Ende der Sequenz in Zeile 10: 0x01 gibt den
# Betriebszustand des Kessels aus:
0 = Ruhelage / 1 = Belüften / 2 = Zündung / 3 = Heizen / 4 = Warmwasser / 5 = Warten / 6 = Brenner aus / 7 = Pumpennachlauf Heizung / 8 = Pumpennachlauf


Gruß Heiko

hpd96

Hallo,
habe auch eine HPSU compact 508 von 2012 - v1.4.
im Menü sehe ich den Eintrag 'schnittstelle' mit zyklus 30sec und Baudrate.

Weiss jmd. wo die Schnittstelle sitzt? (hatte die Steuerung schon auf für Einbau BSK-Karte für Solaris)
rs232 oder rs485 ?
CAN wohl erst bei neueren Modellen ?

danke und Gruss Peter

Volker

#6
@heiko322

Hallo,

ich wollte heute mal dein Modul ausprobieren, scheitere aber aber schon beim Verbindungsaufbau.

Beim definieren des Gerätes erhalte ich folgende Fehlermeldung

Global symbol "%EBV_sets" requires explicit package name at /opt/fhem/FHEM/69_EBV.pm line 287

Ich kann nirgends die definition für " $EBV_sets{"logmode"}" finden.

Hast du eine Idee wie ich dein Modul zum laufen bringen kann?
MfG

Volker

RasPi als FHEM-Plattform, BananaPi, HMLan, HM-LC_Bl1PBU-FM, HM-LC-SW4-DR, HM-LC-SW4-PCB, HM-TC-IT-WM-W-EU, HM-CC-RT-DN

heiko322

#7
Hallo Volker,
das scheint wohl an einer etwas anderen Perl Version als der meinigen zu liegen.
Quick&Dirty: kommentiere gerade "use strict;" am Anfang von 69_EBV.pm per Raute aus, also:
#use strict;
speichern, Modul neu laden per 'reload 69_EBV' und dann sollte es zu definieren gehen.
Ich werde später noch eine neue Version hier anhängen.

Gruß Heiko

P.S.: überarbeitete Version nun im Anhang. Feedback willkommen.

Volker

#8
Hallo Heiko,

vielen dank für das neue Modul.

Ich konnte das Modul leider erst heute testen, die Verbindung scheint zu funktionieren. Mein Protokoll sieht aber etwas anders aus.
Das liegt wahrscheinlich daran das ich eine andere Steuerung habe ( Gamma 22B in einer Hautec Wärmepumpe).

Hie mal ein Auszug eines Mitschnitts der Kommunikation:

0000: 0x82 0x10 0x20 0x09 0x05 0x00 0x36 0x25 0x19 0x07 0x86 0x16 0x07 0x08 0x1E 0xC4 0x03
0011: 0x82 0x10 0x20 0x09 0x05 0x00 0x40 0x25 0x19 0x07 0x86 0x16 0x07 0x08 0xD6 0x51 0x03
0022: 0x82 0x10 0x20 0x09 0x05 0x00 0x40 0x25 0x19 0x07 0x86 0x16 0x07 0x08 0xD6 0x51 0x03


Ich werde mal versuchen dein Modul an meine Steuerung anzupassen.

Im Anhang ein Log von meiner Steuerung. Ich kann hier weder die Startsequenz noch die Endsequenz identifizieren.
MfG

Volker

RasPi als FHEM-Plattform, BananaPi, HMLan, HM-LC_Bl1PBU-FM, HM-LC-SW4-DR, HM-LC-SW4-PCB, HM-TC-IT-WM-W-EU, HM-CC-RT-DN

dbox2user

Hallo Heiko!

Dein Modul klingt ja super!
Jetzt "muss" ich natürlich unbedingt unseren Rotex Ölbrenner an Fhem anbinden. :)
Wenn mein bestellter RS485-USB Wandler kommt, werde ich das gleich testen.
Kannst Du einen bestimmten RS485-USB Wandler empfehlen, bzw kennst Du eine günstige Möglichkeit um per Ethernet auf den RS485 Bus zuzugreifen?

Achja, wenn Du noch einen Auszug aus Deiner Config mit dem "define" posten könntest, wäre das wahrscheinlich für viele noch einfacher!
Danke schonmal,

Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Volker

Hallo Christian,

ich nutze einen RS485 zu USB-Adapter der an einem Raspberry hängt.
Funktioniert bis jetzt einwandfrei.

Volker
MfG

Volker

RasPi als FHEM-Plattform, BananaPi, HMLan, HM-LC_Bl1PBU-FM, HM-LC-SW4-DR, HM-LC-SW4-PCB, HM-TC-IT-WM-W-EU, HM-CC-RT-DN

dbox2user

#11
So...
heute kam endlich mein USB-RS485-Adapter. :D
https://www.amazon.de/gp/product/B00K67XKVI/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

Gleich an meinen Test-Fhem-Raspberry eingesteckt und die beiden A/B- Klemmen des Sticks mit den beschrifteten A/B-Klemmen des EBV Reglers (ROTEX Gamma 23 B) verbunden.
In Fhem habe ich es wie folgt definiert:
define myBoiler EBV /dev/ttyUSB0@9600
attr myBoiler room Heizung


Das ganze wird bei mir dann so angezeigt:
Internals:
   DEF        /dev/ttyUSB0@9600
   DeviceName /dev/ttyUSB0@9600
   FD         32
   NAME       myBoiler
   NR         127
   PARTIAL
   STATE      opened
   TYPE       EBV
   Readings:
     2016-10-24 18:12:13   state           opened
Attributes:
   room       Heizung


Mehr leider nicht.... keine Werte oder so. :'(

Muss ich noch irgendwas einstellen??

Im Logfile steht bei jedem Neustart:
2016.10.24 18:12:13 3: Opening myBoiler device /dev/ttyUSB0
2016.10.24 18:12:13 3: Setting myBoiler serial parameters to 9600,8,N,1
2016.10.24 18:12:13 3: myBoiler device opened


Bei meiner Heizung ist bisher nichts an dem RS485 Bus angeschlossen. Also kein Raumregler oder so.
Kann es sein, dass man nur "mithören" kann wenn ein Raumregler vorhanden ist, der sich mit dem Hauptregler "unterhält", oder funktioniert es sicher auch wenn nur der USB-RS485 Adapter an dem Bus angeschlossen ist?

Den Heizungsregler habe ich auch mal bei angeschlossenem USB-Adapter aus und wieder eingeschaltet, mit der Hoffnung dass er vielleicht dann "gesprächiger" wird.

Achja..... zwischen dem USB-Adapter und dem Heizungsregler hängen ca. 2m Klingeldraht und ich habe keinen Busabschlusswiderstand eingebaut.
Der USB-Adapter hat keinen Masseanschluss, den ich mit der Heizung verbinden könnte. Kann das ein Problem machen?

Wo stellt man eigentlich ein :
Zitat# Der Serial-Port wird auf 9600, 8 Bits, 1 Stopbit, Keine Flusskontrolle, 

Viele Fragen auf die hoffentlich jemand Antworten weiß. ;)

Danke schonmal,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

dbox2user

Nachdem ich bei meinem Versuch ja leider keinerlei Readings bekommen habe , kam mir die Vermutung, dass es natürlich nur etwas zum "mithören"
gibt, wenn sich auch zwei Geräte "unterhalten".
Bisher hatte ich ja noch keine Raumstation am RS485 Bus , sondern nur den USB-RS485 Adapter.

Also habe ich mir eine RS10 Raumstation besorgt. Diese kommuniziert problemlos mit meiner Rotex Gamma 23B Steuerung und zeigt die Werte an.

Der USB-RS485 Adapter hängt nun mit am Bus.
Leider bekomme ich noch immer keinerlei Readings oder sonstige Lebenszeichen.
Nur das  "2016-10-24 18:12:13   state           opened "

Auch mit "verbose 5" im EBV-Modul bekomme ich keinerlei Log-Einträge.

Kann mir jemand weiter helfen??

Wie kann ich eigentlich mitlesen ob der USB-RS485 Adapter überhaupt etwas am USB-Anschluss ausgibt??
Der Adapter hängt direkt am Raspberry auf dem Fhem läuft.
Muss ich etwas bestimmtes z.b. im Terminalfenster eingeben?

Gruß,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

dbox2user

Hallo Leute!

Mittlerweile weiß ich, dass ich am Windows Notebook z.B. mit dem Tool "Tera Term" den COM-Port abhören kann.
Am Raspberry geht es mit dem Befehl "screen ..." .

Ich habe schon zwei verschiedene RS485-USB Adapter ausprobiert. Mit beiden das gleiche Ergebnis.

Ich bekomme keine reine Zahlen, sondern das nachfolgende Kauderwälsch.

Grundsätzlich habe ich es mit 9600 Baud, 8 Bits, 1 Stopbit, Keine Flusskontrolle und keine Parität eingestellt.
Aber auch diverse andere Einstellungen probiert.

Kann mir bitte jemand weiterhelfen???????

Gruß,
Christian

dUÎp,#(º, (+4dB
* * 4.ï퐐,# (+4dB
* * 4.?¨,#@"•, @ÿþ_U(0MMPdfMVA5»£££££œœœœœŸŸŸŸŸ,#ª›Hÿ, fMUA=Eÿ, fMUA=Eÿ, fMUA=Eÿ, fMUA=Eÿ, fMUA=Eü, 2 (°èü, 2 (°èü, 2 (°èü, 2 (°èü, 2 (°è££,ª†,#Š, 4 (°`lddUË㐐,#(º, (+4dB
* * 4.ï퐐,# (+4dB
* * 4.?¨,#@"•, @ÿþ_T(0MMPdfMUAÀ£££££œœœœœŸŸŸŸŸ,#ª›Hÿ, fMTAå\ÿ, fMTAå\ÿ, fMTAå\ÿ, fMTAå\ÿ, fMTAå\ü, 6 (°Ýþü, 6 (°Ýþü, 6 (°Ýþü, 6 (°Ýþü, 6 (°Ýþ££,ª†},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,ɐ,#Š, 9 (°`lddU*Ґ,#(º, (+4dB
* * 4.ï퐐,# (+4dB
* * 4.?¨,#@"•, @ÿþ_S(0MMPdfMTABg£££££œœœœœŸŸŸŸŸ,#ª›Hÿ, fMSAíÿ, fMSAíÿ, fMSAíÿ, fMSAíÿ, fMSAíü, B (°z`ü, B (°z`ü, C (°Åáü, C (°Åáü, C (°Å၁££,ª†,#Š, D (°`lddUD—,#(º, (+4dB
* * 4.ï퐐,# (+4dB
* * 4.?¨,#@"•, @ÿþ_S(0MMPdfMSAJ*£££££œœœœœŸŸŸŸŸ,#ª›Hÿ, fMSAíÿ, fMSAíÿ, fMSAíÿ, fMSAíÿ, fMSAíü, F (°¤vü, G (°÷ü, G (°÷ü, G (°÷ü, G (°÷££,ª†,#Š, H (°`lddUî,#(º, (+4dB
* * 4.ï퐐,# (+4dB
* * 4.?¨,#@"•, @ÿþ_R(0MMPdfMSA{£££££œœœœœ},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,ɐ,#Š, Q (°`lddU3U,#(º, (+4dB
* * 4.ï퐐,# (,4dB
* * 4.™,,#@"•, @ÿþ_R(0MMPdfMSA{ŸŸŸŸŸ,#ª›Hÿ, fMRAÿ, fMRAÿ, fMRAÿ, fMRAÿ, fMRAü, S (°½ºü, S (°½ºü, S (°½ºü, S (°½ºü, S (°½º££,ª†,#Š, T (°`lddU 5,#(º, (,4dB
* * 4.Iǐ,# (,4dB
* * 4.™,,#@"•, @ÿþ_R(0MMPdfMRAËb£££££œœœœœŸŸŸŸŸ,#ª›Hÿ, fMQA]"ÿ, fMQA]"ÿ, fMQA]"ÿ, fMQA]"ÿ, fMQA]"ü, W (°c¬ü, W (°c¬ü, W (°c¬ü, W (°c¬ü, X (°Ñ££,ª†},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,ɐ,#Š, (°`lddUq§,#(º, (,4dB
* * 4.Iǐ,# (,4dB
* * 4.™,,#@"•, @ÿþ_Q(0MMPdfMQAH»£££££œœœœœŸŸŸŸŸ,#ª›Hÿ, fMQA]"ÿ, fMQA]"ÿ, fMQA]"ÿ, fMQA]"ÿ, fMQA]"ü, (°Z,ü, (°Z,ü, (°Z,ü, (°T°ü, (°T°££,ª,#Š, (°`lddUȏ,#(º, (,4dB
* * 4.Iǐ,# (,4dB
* * 4.™,,#@"•, @ÿþ_P(0MMPdfMQA꣣£££"""""•••••–––––™™™™™šššššœœœœœ,# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,ɐ,#Š, (°`lddU¿M,#(º, (,4dB
* * 4.Iǐ,# (,4dB
* * 4.™,,#@"•, @ÿþ^P(0MMPdfMQA[ŸŸŸŸŸ,#ªYÿ, fMPA...;ÿ, fMPA...;ÿ, fMPA...;ÿ, fMPA...;ÿ, fMPA...;ü, (°öü, (°öü, (°öü, (°"wü, (°"w!!!!!"""""££,ª†,#Š, (°`lddUe,#(º, (,4dB
* * 4.Iǐ,# (,4dB
* * 4.™,,#@"•, @ÿþ^O(0MMPdfMPA2£££££œœœœœŸŸŸŸŸ,#ª›Hÿ, fMOAÜ-ÿ, fMOAÜ-ÿ, fMOAÜ-ÿ, fMOAÜ-ÿ, fMOAÜ-ü, (°üaü, (°üaü, (°üaü, (°üaü, (°üa££,ª†,#Š, (°`lddU͐,#(º, (,4dB
* * 4.Iǐ,# (,4dB
* * 4.™,,#@"•, @ÿþ^O(0MMPdfMOAk £££££œœœœœ},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,É},# f,Éý,#Š, " (
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Tungsten

Hallo Christian,

bist Du weiter gekommen?

Plane am WE meine Rotex HPSU bi-bloc von 2010 anzuschliessen.

VG

dbox2user

Hallo Tungsten!

Leider läuft bei mir noch nichts.

Das "Kauderwälsch" was ich bekomme ist aber soweit korrekt.
Im Fhem-Modul wird das dann zu richtigen Zahlen umgewandelt.
Die Einstellungen 9600 Baud, 8 Bits, 1 Stopbit, Keine Flusskontrolle und keine Parität sind auch richtig.

Mein Problem ist noch folgendes:
Die Anfangs- und Endsequenz sind bei meiner Steuerung andere Zahlen. Auch die Zahlen welche die Temperaturen beinhalten sind andere.

Hier gibts auch einige Infos darüber, aber das hat mir noch nicht wirklich geholfen:
https://github.com/bogeyman/gamma/wiki/Protokoll

http://www.mikrocontroller.net/topic/375607

So wie es momentan aussieht, bin ich darauf angewiesen, dass jemand mit der gleichen Steuerung das Fhem Modul entsprechend anpasst.
:'(
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Tungsten

Einen USB-RS485 Adapter habe ich zu hause schon liegen.

Wo genau hast du den Klingeldraht zum Adapter angeschlossen? Parallel zum 2-adrigen Display-Anschluss an der Platine?

Muss man auf eine Polung achten? Hast Du evtl ein Bild der Anschlüsse?

dbox2user

Bist du sicher dass Deine Heizung einen RS 485 Bus hat oder vielleicht doch einen E Bus?

Die Frage stellt sich mir wegen deinem '2adrigen Display anschluss '.

Mein Raumbediengerät ist 4 adrig angeschlossen  (12v, Ground, Bus A ,Bus B).

Meinen USB zu rs485 Adapter habe ich nur an Bus A und Bus B angeschlossen.  -parallel zum Raumbediengerät. Polung ist natürlich zu beachten. A auf A  und B auf B.
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Tungsten

#18
Hi,

hm, gute Frage. Ich bin davon ausgegangen.

Habe mich auf diesen Post bezogen und ging davon aus, dass dies bei der HPSU ebenfalls der Fall ist: https://forum.fhem.de/index.php/topic,35720.0.html

ZitatDie Rotex GSU ist mit der EBV Gamma über eine 2-Draht RS485 Busleitung verbunden. Es ist für FHEM somit nur ein RS485 to USB Adapter (oder ähnliches) notwendig. Der Serial-Port wird auf 9600, 8 Bits, 1 Stopbit, Keine Flusskontrolle, keine Parität eingestellt, wobei für FHEM nur die Baudrate relevant ist.

Wie finde ich das raus? Im Anhang die Schnittstelle vom User Interface A2P laut Doku.



Tungsten

P.S. ich meine mit Display nicht den Raumthermostatempfänger, sondern das User Interface am Innenteil. Der Thermostat ist 4-adrig angeschlossen.
Ein anderes Display habe ich nicht angeschlossen. Es gibt zwar noch einige freie Anschlüsse auf dem Board, aber ich erkenne keinen BUS.

Das Display ist leider nur mit 16 und 16A gekennzeichnet und nicht mit A/B, sowie der USB-Adapter.

Wird der USB-Adapter vom Raspberry-pi eigentlich automatisch erkannt, oder muss der noch installiert werden?


dbox2user

Ich hab mal etwas gegoogelt ... Aber leider nichts über den Bus Typ bei deiner HPSU gefunden.
Wenn es ein RS485 Bus wäre, dann wäre er denke ich mit A/B beschriftet.

Was leider noch dagegen spricht, ist dein 2 adriges Display.
Wenn keine weiteren Drähte dran sind,dann wird es wohl auch über die 2 Drähte mit Spannung versorgt.
Das spricht meiner Meinung nach gegen den RS485 Bus.
Aber sicher weißlich es leider auch nicht. ???
Am besten Du fragst mal beim Heizungsfachmann bzw direkt bei Rotex nach.

Wegen dem USB Adapter. ...
Also ich habe mehrere probiert und alle liefen ohne Treiberinstallation direkt am Raspberry.
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

bogeyman

Hallo zusammen,

@Christian Das Kauderwelsch sind schon die Daten, die über die Leitung gehen, nur leider nicht als Hexsdeximalzahlen (0x12 usw) sondern als Buchstaben und Zeichen interpretiert.
Das Protokoll der EBV Gamma RS 30 und der 2x Serie ist da wohl vom Aufbau ähnlich, aber die Nachrichten sind definitiv anders. Ich habe bisher nur die Gamma 2x Serie mit der RS 10 zwischen gehabt, https://github.com/bogeyman/gamma/wiki hab ich schon etwas länger nicht mehr aktualisiert, da ich das Scheiben von Nachrichten noch immer nicht gelöst habe (keine Zeit  :( )

@heiko322 Wenn Du noch mitliest, schick mit doch bitte mal einen Hex-Dump-Mittschnitt von Deiner Anlage, etwas länger als in der Modul Doku, ja? Oder Wiederholt es sich wirklich nur so? Interessant sind auch die sich wiederholenden Bytefolgen....

@heiko322 Ich hab die Vorlage 00_WHR962.pm ehrlich gesagt nicht gefunden, ist Dein Code GPL2? Ich würde vielleicht mal versuchen das Modul anzupassen/ neues Modul auf der Basis zu machen, dass es mit den RS 10 kompatiblen Geräten funktioniert...

Beste Grüße,
Tim

dbox2user

Hallo Tim!

Ich hänge hier auch mal einen Mitschnitt ran.Kannst Du damit etwas anfangen und mir evtl helfen?
Du hast ja bisher schon viele Bytefolgen gesehen und siehst vielleicht gleich was brauchbares. ;)

Gruß,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

heiko322

@bogeyman
Hallo Tim,

besser spät als nie, im Anhang einen längeren Mitschnitt meiner Anlage.
Das Modul kann selbstverständlich nach belieben kopiert, verändert und weiter verbreitet werden.
Orientiert habe ich mich ursprünglich an dem Modul 00_WHR962.pm von hier:
https://forum.fhem.de/index.php/topic,14697.0.html

Gruß Heiko

bogeyman

Danke Heiko,

ich gucke mal, ob ich das verheiratet bekomme. Danke auch an Dich, Christian, der Dump ist eindeutig wie bei meiner Steuerung.

Beste Dank,
ich melde mich hier,
Tim

dbox2user

Hey Tim,

super dass Du dich an die Sache ran machst! :)
Wenn ich irgendwas testen kann/soll oder irgendwie anders helfen kann, geb einfach bescheid!

Gruß,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

bogeyman

Hallo zusammen,

da eine etwas größere Lösung einfach nicht zeitlich passt, hier was schnelles. Sorry für die lange Leitung.

Der Teil von Heiko ist unverändert und sollte noch genau so laufen. Was dringend fehlt, ist die Überprüfung der Checksumme. Mein Kabel hatte einen Wackler und damit Quatschwerte produziert, würde ich mir bei Gelegenheit mal angucken.

Es sind noch nicht viele Werte... Mal sehen, was noch drin ist.

https://raw.githubusercontent.com/bogeyman/gallipoli/master/fhem/69_EBV.pm

Beste Grüße,
Tim

dbox2user

Hallo Tim!

Schön von Dir zu hören!! :)

Deine Anpassung am Modul werde ich heute Abend direkt ausprobieren und berichten.

Gruß,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

dbox2user

So, ich habe das Modul getestet.
Nun bekomme ich schonmal die ersten Werte.   :)

Die Werte für Außentemperatur ,Kesseltemp und KesseltempSoll  werden angezeigt.
Es werden auch readings für Vorlauftemp und Warmwasser angelegt.
Diese beiden bringen jedoch nur eine 0.

Dies schonmal vorab als Feedback.
Ich hoffe natürlich dass Du da noch weiter dran bleibst und der Steuerung weitere Werte entlocken kannst.   ;)

Aber auch jetzt schonmal DANKE!

Gruss,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Mucki

Hallo zusammen,

ich habe kürzlich eine alte analoge Wolf-Steuerung durch eine EBV Theta N23B ersetzt und großes Interesse, die Daten auch mit FHEM auslesen zu können. (Klar, noch besser wäre sogar auch eine Steuerungsmöglichkeit, aber langsam anfangen.)

Mir ist es noch nicht gelungen, Daten zu empfangen. Ich habe das Modul 69_EBV.pm (vielen dank Heiko!!!) installiert und die Theta-Steuerung über einen RS485-USB Wandler mit dem Raspi verbunden, bekomme aber keine Daten angezeigt. Ich  habe ich auch versucht, die Daten über einen Logic Analyzer (ScanaPlus) zu empfangen, aber auch da kommt nichts an.

Kann es sein, dass die Steuerung nur dann Daten sendet, wenn eine Raumstation angeschlossen ist? Da ich keine Raumstation habe, kann ich das nicht testen.

Vielen Dank und viele Grüße von
Michael

bogeyman

Hallo Michael,

die Theta Serie scheint anders angeschlossen zu werden, als die Gamma Serie, die wir hier bisher zwischen hatten. Schau bitte nochmal im Handbuch nach, was da zu dem Raumstation Anschluss steht. Kann gut sein , dass das gar kein RS485 ist. Dann ist auch die Frage, ob Du im gültigen Spannungsbereich des Logic Analyser bist?

Bin gespannt, da ich bis jetzt keine Theta gesehen habe / Theta Daten gesehen habe....

Beste Grüße,
Tim

Mucki

Hallo Tim,

deine Vermutung könnte richtig sein. Auf Deinen Hinweis hin habe ich nochmal nachgeguckt. In der Fachmannanleitung zum Zentralgerät sind die Anschlussenklemmen  "Datenbusanschluss Signal A und Signal B" vorhanden. Bislang hatte ich vermutet, dass es sich um einen RS 485 handelt. Aber das Kesselschaltfeld hat zwei Datenbusanschlüsse, nämlich T2B und RS 485 (nur bei Brennwertausführung).

Bei der Raumstation ist keine Angabe vorhanden, um was für einen Bus es sich handelt. Es heißt nur, dass die 2-adrige Datenbusleitung an den Klemmen A und B der 2-poligen Klemmleiste angeschlossen wird, und dass A und B nicht vertauscht werden dürfen.

Hat jemand einen Hinweis für mich bezüglich Datenbusanschluss T2B?

Der Spannungsbereich des Logik Analyzer sollte ok sein. Beim Aus- und Einschalten der Netzspannung am Regeler werden Impulse aufgezeichnet, aber leider nur dann. Wirklich auswertbar sind die Impulse nicht.


Viele Grüße von
Michael

dbox2user

Hallo Tim!
Ich wollte mal "vorsichtig" nachfragen ob es Neuigkeiten mit dem EBV-Modul gibt?  :)
Kannst Du vielleicht mittlerweile z.B. die Betriebsstunden auslesen?

Gruß,
Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Bavilo

Würde auch gerne erfahren ob es hier updates zu gibt.

Danke!

bogeyman

Hallo zusammen,

mittlerweile habe ich verschiedene Daten von der Gamma und Ceta Serie bekommen (RS-485), die ich gerade in einen Parser einarbeite, damit die Leute möglichst viele Werte auslesen können. Bei der Theta Serie konnte mir noch niemand verraten, wie das Protokoll auf Hardware-Ebene funktioniert (T2B), so dass man das z.Z. gar nicht anschließen kann. Das Schreiben von Nachrichten ist noch nicht ganz gelöst, aber ich habe das Interesse noch nicht verloren ;) Da es aber darauf hinauslaufen wird, ein separates Programm oder Hardware neben der Heimautomatisierung nutzen zu müssen, tendiere ich gerade dazu die Werte z.B. via JSON zur Verfügung zu stellen, dann muss ich weniger Code pflegen. Updates sollen in den nächsten Wochen folgen...

Grüße, Tim

dbox2user

Hallo Tim!
Ich bin natürlich auch immernoch darauf gespannt was dein Parser dann alles für Werte bringt.
Freu mich schon auf deine kommenden Updates.

Gruß Christian
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

anon1

Hallo,
habe mich vor kurzem auch mal mit der Rotex Oelheizung mit der RoCon Steuerung befasst.
Herausgekommen sind zwei quick and dirty Skripte fuer Raspberry Pi, die per Bluetooth + ELM 327 Adapter den CAN Bus ueberwachen.
Der ELM ist ein normaler (Chinakopie) Autoadapter, der mit Pegelwandler 24V->12V von der Heizung versorgt wird.

stats.pl wertet aus, welche CAN-IDs da sprechen, taggt die Empfaenger und Kommandos und hilft beim reverse-engineering, indem man live die Daten beobachten kann
rotex2mqtt.pl dient als Dienst, die Daten laufend zu erfassen.

Aktuell erfasse ich nur die wichtigsten Temperaturen, es gibt aber auch schon die Kennwerte aus Heiz- und Mischermodul.

Hoffe, das hilft jemandem.

stats.pl
#!/usr/bin/perl

# usage:
# cat can.log | ./stats.pl
# ./stats.pl can.log
# ./stats.pl /dev/ttyAMA0 <baud>
# ./stats.pl /dev/rfcomm0 <baud> elm327
# exit with Ctrl-C to get stats

# Bluetooth ELM327 device
# apt install libdevice-serialport-perl libdevice-modem-perl
# apt install bluez bluez-tools
# hcitool scan
# rfcomm connect hci0 00:0D:18:B2:F3:35 &
# then use /dev/rfcomm0 38400 modem

#use strict;
$| = 1;
use Device::SerialPort qw( :PARAM :STAT 0.07 );
require "./config.inc";
# no args, STDIN
if (!$ARGV[0]){
*CAN=*STDIN
}

# one arg, open file
elsif (!$ARGV[1]){
open(*CAN,"<$ARGV[0]")  || die "Can't open $ARGV[0]: $!\n";
}


# open serial port or modem
else {
print "opening serial $ARGV[0]$/";
my $PortObj = tie (*CAN, 'Device::SerialPort', $ARGV[0])               || die "Can't tie: $!\n";
my $baud=$ARGV[1];
$baud||=38400;
$PortObj->baudrate($baud);
$PortObj->databits(8);
$PortObj->parity("none");
$PortObj->stopbits(1);
};

# ELM327 needs one more push to send CAN data
if ($ARGV[2]) {
print "sending ATL1$/";
print CAN "ATL1\r\n";
sleep(1);
$_=<CAN>;
print;
print "sending ATH1$/";
print CAN "ATH1\r\n";
sleep(1);
$_=<CAN>;
print;
print "sending ATMA$/";
print CAN "ATMA\r\n";
sleep(1);
$_=<CAN>;
print;
}


# switch from our own names to elster list
# %command_names=%elster_names;


my %ids_seen=();
my %pairs=();
my %commands=();

# show stats when killed by Ctrl-C
# have this code before the while loop and after stats variable delaration
$SIG{INT} = sub {
print "$/CAN IDs:$/";
foreach $_ (sort(keys(%ids_seen))) { print "$_\t$can_names{$_} $/" };

print "$/Communication:$/";
foreach $_ (sort(keys(%pairs))) { print "$_\t$can_names{$_} $/" };

print "$/Commands\tcommand name\t\t\tlast dec value$/";
foreach $_ (sort(keys(%commands))) { print "$_\t\t".sprintf("%-20s",$command_names{$_}[1])."\t\t$commands{$_}$/" };
exit(0);
};

print "CAN msg\t\t\t\tsource\t\t\tdestination\t\tmsgtype\t\tcommand\t\tdata(hex)\tdata(dec)$/";
while (1) {                                                     # keep polling until Ctrl-C
    $_=<CAN>;
    next unless /^\d{3} /;                                      # noise filter
    $_=~s/[\r\n]*//g;
    my $line=$_;
    $_=~s/ //g;
    my ($src, $rec1,$type, $unknown,$rec4, $pl1,$pl2, $pl3, $pl4)=unpack('A3AAAAA2A2A2A4');             # split byte field
    my $dest=hex($rec1)*80+$rec4;                               # destination address is $rec1 * 80 plus $rec4 (terminal id?), type is byte

    my ($cmnd,$data);

    if (hex($pl1)<250) {                        # single byte elster command
     $cmnd="00$pl1";
     $data="$pl2$pl3";
    } else {
     # extended telegram, FA then double byte command
     $cmnd="$pl2$pl3";
     $data="$pl4";
    };

    my $dec=hex($data);

    # collect stats
    $ids_seen{$src}=1;                                          # unique sources
    $ids_seen{$dest}=1;                                         # unique destinations
    $pairs{"$src -> $dest"}=1;                                  # source/dest edges
    $commands{lc($cmnd)}=$dec;                                  # commands seen with last value

    print "$line\t$src ($can_names{$src})\t$dest ($rec1$rec4 $can_names{$dest})\t$type ($msgtypes{$type})\t$cmnd ($command_names{lc($cmnd)}[1])\t\t$data\t\t$dec $/";
    sleep(0.1);
}



rotex2mqtt.pl
#!/usr/bin/perl

# usage:
# cpan install Net::MQTT::Simple
# edit config.inc, %mqtt_config
# rotex2mqtt.pl

# Bluetooth ELM327 device
# apt install libdevice-serialport-perl libdevice-modem-perl
# apt install bluez bluez-tools
# hcitool scan
# rfcomm connect hci0 00:0D:18:B2:F3:35 &
# then use /dev/rfcomm0 38400 modem

#use strict;
$| = 1;
use Device::SerialPort qw( :PARAM :STAT 0.07 );
use Net::MQTT::Simple;
require "/root/config.inc";

# open serial port or modem
print "opening serial $ARGV[0]$/";
my $PortObj = tie (*CAN, 'Device::SerialPort', $mqtt_config{device})            || die "Can't tie: $!\n";
my $baud=$mqtt_config{baud};
$baud||=38400;
$PortObj->baudrate($baud);
$PortObj->databits(8);
$PortObj->parity("none");
$PortObj->stopbits(1);

# ELM327 needs one more push to send CAN data
if ($mqtt_config{devicetype} eq "modem") {
print "sending ATZ$/";
print CAN "ATZ\r\n";
sleep(1);
print <CAN>;
print "sending ATL1$/";
print CAN "ATL1\r\n";
sleep(1);
$_=<CAN>;
print;
print "sending ATH1$/";
print CAN "ATH1\r\n";
sleep(1);
$_=<CAN>;
print;
print "sending ATMA$/";
print CAN "ATMA\r\n";
sleep(1);
$_=<CAN>;
print;
}

# switch from our own names to elster list
# %command_names=%elster_names;

my $mqtt = Net::MQTT::Simple->new($mqtt_config{mqtt_server});
#$mqtt->login($mqtt_config{mqtt_user}, $mqtt_config{mqtt_password});


while (1) {                                                     # keep polling until Ctrl-C
    $_=<CAN>;
    sleep(1);
    next unless /^\d{3} /;                                      # noise filter
    $_=~s/[\r\n]*//g;
    my $line=$_;
    $_=~s/ //g;
    my ($src, $rec1,$type, $unknown,$rec4, $pl1,$pl2, $pl3, $pl4)=unpack('A3AAAAA2A2A2A4');             # split byte field
    my $dest=hex($rec1)*80+$rec4;                               # destination address is $rec1 * 80 plus $rec4 (terminal id?), type is byte

    my ($cmnd,$data);

    if (hex($pl1)<250) {                        # single byte elster command
     $cmnd="00$pl1";
     $data="$pl2$pl3";
    } else {
     # extended telegram, FA then double byte command
     $cmnd="$pl2$pl3";
     $data="$pl4";
    };

    my $dec=hex($data);
#    print "$line\t$src ($can_names{$src})\t$dest ($rec1$rec4 $can_names{$dest})\t$type ($msgtypes{$type})\t$cmnd ($command_names{lc($cmnd)}[1])\t\t$data\t\t$dec $/";
    if ($mqtt_config{channels}{lc($cmnd)}){
      if ($mqtt_config{channels}{lc($cmnd)}=~/\d*\.\d*/) {
        # multiplier
        $dec*=$mqtt_config{channels}{lc($cmnd)};
      }
      print "publish stat/HEIZUNG_AB/$command_names{lc($cmnd)}[1] : $dec$/";
      $mqtt->publish("stat/HEIZUNG_AB/$command_names{lc($cmnd)}[1]" => "$dec");
    };
}


config.inc

%can_names = (
000    =>      "direkt ",
"10A"  =>      "unbekannt",
160    =>      "Bedienteil",
180    =>      "Steuerung",
240    =>      "unbekannt",
300    =>      "Bediener 0?",
301    =>      "Bediener 1?",
302    =>      "Bediener 2?",
400    =>      "Raumbedienung?",
480    =>      "Manager?",
481    =>      "unbekannt",
489    =>      "Broadcast?",
500    =>      "Brenner",
580    =>      "Buskoppler?",
600    =>      "Mischer 0?",
601    =>      "Mischer",
640    =>      "unbekannt",
641    =>      "unbekannt",
680    =>      "PC?",
780    =>      "DCF-Modul?",
800    =>      "unbekannt",
889    =>      "Broadcast?",
960    =>      "unbekannt",
969    =>      "Broadcast?",
1048   =>      "unbekannt",
);

%msgtypes=(
0      =>      "write",
1      =>      "request",
2      =>      "response",
3      =>      "ack",
4      =>      "write ack",
5      =>      "write respond",
6      =>      "system",
7      =>      "sys respond",
20     =>      "r lg data",
21     =>      "w lg data"
);
%command_names = (
"0001" => [    "0"                     ,"000"                          ],
"0002" => [    "0"                     ,"T-WE-SOLL"                            ],
"0003" => [    "0"                     ,"T-WW-SOLL"                            ],
"0004" => [    "0"                     ,"T-HK-SOLL"                            ],
"0005" => [    "0"                     ,"T-RAUM-SOLL1"                         ],
"0006" => [    "0"                     ,"T-RAUM-SOLL2"                         ],
"0007" => [    "0"                     ,"T-RAUM-SOLL3"                         ],
"0008" => [    "0"                     ,"T-ABSENK"                             ],
"000a" => [    "0"                     ,"000"                          ],
"000c" => [    "0"                     ,"T-AUSSEN"                             ],
"000d" => [    "0"                     ,"T-WE"                         ],
"000e" => [    "0"                     ,"T-WW"                         ],
"000f" => [    "0"                     ,"T-HK0"                                ],
"0010" => [    "0"                     ,"000"                          ],
"0013" => [    "0"                     ,"T-WWSOLL1"                            ],
"0016" => [    "0"                     ,"T-RL"                         ],
"001c" => [    "0"                     ,"WASSERDRUCK"                          ],
"0023" => [    "0"                     ,"000"                          ],
"0051" => [    "0"                     ,"BRENNER AN/AUS"                               ],
"0052" => [    "0"                     ,"000"                          ],
"0053" => [    "0"                     ,"3UV-VENTIL"                           ],
# 0 HZ
"0056" => [    "0"                     ,"MISCHER AUF"                          ],
"0057" => [    "0"                     ,"MISCHER ZU"                           ],
"0058" => [    "0"                     ,"000"                          ],
"005a" => [    "0"                     ,"000"                          ],
"005b" => [    "0"                     ,"000"                          ],
"005d" => [    "0"                     ,"000"                          ],
"005e" => [    "0"                     ,"000"                          ],
"006d" => [    "0"                     ,"000"                          ],
"006f" => [    "0"                     ,"000"                          ],
"0071" => [    "0"                     ,"000"                          ],
"008c" => [    "0"                     ,"LEIST SOLL"                           ],
"0100" => [    "0"                     ,"MK PUMPE STATUS"                              ],
"0112" => [    "0"                     ,"BETRIEBSART"                          ],
# 3072=auto2 2816=auto1 1280=sommer 768=heizen 1024=absenken
# 256=bereitschaft
"011a" => [    "0"                     ,"000"                          ],
"0122" => [    "0"                     ,"000"                          ],
"0123" => [    "0"                     ,"000"                          ],
"0124" => [    "0"                     ,"000"                          ],
"0125" => [    "0"                     ,"000"                          ],
"0126" => [    "0"                     ,"000"                          ],
"0131" => [    "0"                     ,"PWM MK PUMPE"                         ],
"013D" => [    "0"                     ,"T-ABWESEND"                           ],
"013E" => [    "0"                     ,"T-WWSOLL-3"                           ],
"0145" => [    "0"                     ,"T-ABGAS"                              ],
"0148" => [    "0"                     ,"000"                          ],
"0176" => [    "0"                     ,"000"                          ],
"0199" => [    "0"                     ,"000"                          ],
"01ec" => [    "0"                     ,"000"                          ],
"01ec" => [    "0"                     ,"000"                          ],
"01f2" => [    "0"                     ,"000"                          ],
"02f4" => [    "0"                     ,"000"                          ],
"0409" => [    "0"                     ,"BRENNER LAUFZ"                                ],
"05d9" => [    "0"                     ,"OEL/GAASVENTIL"                               ],
"05da" => [    "0"                     ,"000"                          ],
"06d9" => [    "0"                     ,"000"                          ],
"071b" => [    "0"                     ,"000"                          ],
"093c" => [    "0"                     ,"000"                          ],
"09f5" => [    "0"                     ,"REGELDIFF"                            ],
"1356" => [    "0"                     ,"000"                          ],
"1358" => [    "0"                     ,"PARTY DAUER"                          ],
"1388" => [    "0"                     ,"000"                          ],
"0a06" => [    "0"                     ,"T-WWSOLL2"                            ],
"0a2b" => [    "0"                     ,"000"                          ],
"0a5d" => [    "0"                     ,"000"                          ],
"0a8c" => [    "0"                     ,"STATUS Kesselpumpe"                           ],
"fdc1" => [    "0"                     ,"000"                          ]
);

%mqtt_config = (
device                 =>      "/dev/rfcomm0",
devicetype             =>      "modem",
baud                   =>      38400,
mqtt_user              =>      "MQTT",
mqtt_password          =>      "MQTT",
mqtt_server            =>      "mqtt_server",
mqtt_port              =>      1883,
data_frequency         =>      60,               # collect and send every n seconds
main_loop_frequency    =>      10,
channels               =>      {  # send these commands to mqtt
        "000c"                  =>      "0.1",
        "000d"                  =>      "0.1",
        "000e"                  =>      "0.1",
        "000f"                  =>      "0.1",
        "0016"                  =>      "-",
        "001c"                  =>      "-",
        "0053"                  =>      "-",
        "008c"                  =>      "-",
        "0145"                  =>      "-",
        "09f5"                  =>      "-"
}
);





Gruesse,
Stefan

disaster123

Es ging ja hier ursprünglich um eine Rotex GSU 540 und nicht um die zahlreichen anderen Modelle oder Wärmepumpen und co. Weiß jemand, wie man an einer normalen GSU das USB Modul ohne Raumregler anschließen muss?

disaster123

Hat irgendjemand denn das Modul mit einer GSU am laufen?

phiresky

Hallo zusammen!

Ich hab den Thread nicht ganz gelesen aber da das hier eine von zwei
Konversationen die man überhaupt im Internet zum Thema Theta Heizungssteuerung auslesen findet ist
verlinke ich es mal hier:

Ich habe in den letzten Tagen eine Brücke von meiner Theta N 23B zu MQTT
und Home Assistant geschrieben (per serieller Debug-Schnittstelle). Mein
Code dazu und info zum Protokoll das das Ding verwendet ist hier
zusammengefasst:

https://github.com/phiresky/ebv-theta-to-mqtt