Forum: Haus & Smart Home Viessmann Eurola OC mit 2-Drahtbus nachrüsten


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Olli Z. (z80freak)



Lesenswert?

Ja, sie funktioniert noch, meine gute alte Viessmann Eurola OC 
Brennwert-Gastherme aus 1996 :-) Was mich aber schon länger reizt ist 
mehr Kontrolle und Einblick in die Steuerung zu erhalten.

Für die Anlage wurde meines Wissens nach auch eine "Fernbedienung" 
angeboten, das sollte die Teilenummer 7450180 sein. Um diese an die Wand 
zu bekommen gibts dann noch den Wandsockel 9525479 5270242. Hier wird 
dann wohl der 2-Draht-Bus angeschlossen über den, so wie ich es bislang 
verstehe, nur die Daten geliefert werden, die Bedieneinheit selbst wird 
über Batterien versorgt.

Jetzt glaube ich das ich in meiner Steuerung noch eine Platine 7458400-4
 nachrüsten muss, damit dieser 2-Draht Bus überhaupt funktioniert. Es 
gibt wohl teils unterschiedliche Varianten davon, mit erkennbar 
unterschiedlicher Bestückung. Wo die genauen Unterschiede liegen wüsste 
ich jetzt nicht... vielleicht weis jemand hier mehr darüber?
Da werden dann drei Jumper vom Regler-Board entfernt und die 
Huckepack-Platine in die Stiftleisten gesteckt. Danach glaube ich müsste 
der 2D-Bus verfügbar sein, ggf. muss man das in der Reglersteuerung noch 
kodieren/aktivieren.
Anschließend müsste die externe Bedieneinheit anklemmbar sein und 
funktionieren...

Wenn das alles so geht wäre dann mein nächster Schritt mit die 
Kommunikation auf diesem Bus anzusehen. Ich meine bei meiner Recherche 
im Netz herausgefunden zu haben das Viessmann diesen Bus "KM-Bus" nennt 
und es sich elektrisch um eine RS485 Schnittstelle handelt. Auch das 
Protokoll hierauf soll teilweise bekannt sein, ggf. im OpenSource 
Projekt https://github.com/openv/openv gibt es Hinweise hierzu...
Aber auch hier, wer mehr dazu weis, oder gar Erfahrungen damit hat, 
bitte mit mir hier teilen :-)

Ich würde mir dann einen RS485/USB Wandler besorgen um erstmal mit dem 
PC mithören und experimentieren zu können. Ich überlege noch ob es nötig 
ist ein isoliertes Interface zu nehmen...

Ein Sekundärziel von mir ist es die Heizkurven besser ermitteln und 
einstellen zu können und nicht immer in den Heizungsraum laufen zu 
müssen um etwas umzustellen ;-)

von Olli Z. (z80freak)


Lesenswert?

Aus den Antworten in diesem Beitrag der Viessmann-Community 
https://www.viessmann-community.com/t5/Gas/KM-Bus-Verteiler-an-Eurolamatik-OC/td-p/226704 
lese ich heraus das der bei der Eurola OC verwendete "2-Draht Bus" etwas 
anderes sein soll als der "KM-Bus". Möglicherweise elektrisch aber nicht 
protokolltechnisch kompatibel.

von Helge (Gast)


Lesenswert?

Diese alten Steuerungen passen nicht mit neuen Geräten zusammen. 
Teilweise passte nicht mal Eurola mit Eurola. Vielleicht war das so "der 
erste Versuch", was Bussystem angeht. Aber wenn du genug Auswahl hast, 
versuchen. Das Glück ist dir eher nahe, wenn die Baujahre 
übereinstimmen.

von Olli Z. (z80freak)



Lesenswert?

Im Service-Manual meiner Heizung gibt es einen Hinweis auf den 2-Draht 
Bus für die Inbetriebnahme. Dort steht: "Für die separate Regelung von 
einem Heizkreis mit Mischer ist das Erweiterungsmodul Viessmann 
2-Draht-BUS Notwendig."
Das passt die anderen Informationen die ich gefunden habe.

Wenn ich das alles richtig verstehe gibt es hier folgende Optionen:

1.)
Man entfernt das in der Heizung verbaute Bedienteil 7450 000 und steckt 
dieses dann in den Wandsockel 7450 175 (habe nur ein Bild vom 
geschlossenen Sockel gefunden, dafür aber den 7403 890, welcher 
ebenfalls ein 7450 000 aufnehmen kann), welcher wohl über ein 
Batteriefach verfügt und über die 2-Draht Buchse 58B verbunden wird.
In diesem Fall hat man praktisch nur die Steuerung an eine andere Stelle 
gelegt. Der Wandsockel 7450 175 enthält wohl zusätzlich noch einen 
Temperaturfühler, wodurch er dann quasi zum Raumthermostat wird.

2.)
Man baut die 2-Draht BUS Zusatzplatine (deren genaue Typennummer ich 
nicht kenne) in den Witterungsgeführten Regler ein und kann dann 
ZUSÄTZLICH zu dem in der Anlage verbleibenden Bedienfeld 7450 000 noch 
weitere "2-Draht Bus" Geräte anschließen welche ebenfalls eine Steuerung 
ermöglichen.

Das könnte dann sein:

2a) Das Uhrenthermostat-F 7450 023 (bzw. 9519881 B)
Dieses batteriebetriebene Thermostat ist zur Wandmontage oder freiem 
aufstellen im Raum gedacht. Es wird über 2 AA-Batterien versorgt. 
Zusätzlich kann man einen DCF-77 Empfänger (7450 022) hinten in das 
Bedienteil einsetzen. Weiterhin kann man es für den freistehenden 
Betrieb mit einem Funkdatenmodul (7450 0021) nachrüsten (siehe Bild). 
Anlagenseitig kommt dann der Kasten in die Nähe der Heizung und wird mit 
dem 2-Draht Bus verbunden.

2b) Mit dem Wandmontagesockel 9525479 5270242 und dem Bedienteil 7450 
180
Dieses wird dann an den 2-Drah Bus der Anlage direkt mit einer Leitung 
angebunden und ist dann fest an der Wand montiert.
Auch in dieser Konstellation könnte man wohl in den Genuß des DCF-77 
Empfangsmoduls kommen, jedoch würde das dann in der Heizung verbaut.

2c) Es gibt noch weitere 2-Draht Optionen (Mischer, Pumpen-Steuerungen, 
etc.)

Daraus ergibt sich bei mir die Erkenntnis das ohne das zusätzliche 
2-Draht Modul wohl kaum eine sinnvolle Möglichkeit besteht neben dem 
laufenden Bedienteil mit der Heizung in Verbindung zu treten. Jetzt muss 
ich also nur noch rausfinden welches der Module das richtige für meinen 
Regler 7458361 ist...

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Hm, scheinbar doch etwas zu speziell für dieses Forum?

von Helge (Gast)


Lesenswert?

Beim bekannten hatten wir den spaß mit älteren Komponenten dieser Serie. 
Das ging erst nach Rückfragen und Umtausch scheinbar 
hardware-baugleicher, aber doch irgendwie verschiedener Komponenten. 
Aber wenn du genug da hast, losbasteln geht doch immer :-)

von Olli Z. (z80freak)



Lesenswert?

Aus den Serviceunterlagen der Heizung finde ich die markierten Stellen 
interessant. Der "LGM18" ist der sog. Feuerungsautomat, also der 
eigentliche Leistungs-Regelungsteil der Heizung, das "VR18" enthält die 
eigentliche Heizungs-Regelung, "witterungsgeführte Regelung", da diese 
die Möglichkeit zum Anschluß eines Außentemperaturfühlers bietet (hängt 
an [1/2] der Platine).

Die VR18 ist intern über den Kontakt [141] mit dem LGM18 verbunden.

An der VR18 ist dann auch das Bedienteil über ein 14-poliges 
Flachbandkabel angeschlossen. Dieses Bedienteil könnte man optional auch 
aus der Heizung herausnehmen und in eine eigens dafür erhältliche 
Wandkonsole einbauen. Diese wird dann über den Stecker [58B] mit der 
VR18 verbunden und über die Wandkonsole mit 2xAA-Batterien versorgt. Die 
Kommunikation wäre also hier bereits 2-Draht Bus. Warum das Bedienteil 
intern eine 14-polige Leitung braucht ist mir unklar, eine 4-polige 
hätte vermutlich gereicht.

Eine andere Variante ist noch, eine Zusatzplatine auf die VR18 zu 
stecken, an X70 und X71 und damit über Kontakt [142] z.B. ein 
ZUSÄTZLICHES Bedienteil anzuschließen.

Alle 3 Pins des Kontakts [142] liegen auf GND. Dies wird durch die 3 
Jumper an der Steckleiste X71 verursacht. Der Grund ist, das bei einer 
VR18 ohne zusätzlichem "2-Draht-Bus Modul" kein Anschluß möglich ist. 
Rüstet man dieses Modul nach, werden die Jumper entfernt und die 3 Pins 
von [142] mit dem RS485 Bus des Moduls verbunden.

Meine Messungen an der VR18 haben gezeigt das der "2-Draht-Bus" an [58B] 
und [141] parallel geschaltet sind und dasselbe Signal führen. Dabei ist 
ein Pin des jeweils 2-poligen Steckers direkt mit GND der Logikspannung 
verbunden.

Mit dem DSO konnte ich hier eindeutige eine digitale Kommunikation 
erkennen, auch wenn diese mit einem Ruhepegel von 18V arbeitet. Es ist 
also letztlich ein 1-Wire-Bus mit 3 Teilnehmern, dem Bedienteil, der 
VR18 und dem LGM18. Ich habe mal ein paar Symbolmessungen durchgeführt 
um hinter die Taktung zu kommen. Ich vermute das es eine 
Arbitrierungsmethode gibt und jeder Teilnehmer über eine eigene ID 
verfügt.

von Olli Z. (z80freak)



Lesenswert?

Habe mir mal das Timing eines 2-Draht Datagramms angeschaut. Nehme ich 
das kürzeste Interval und egalisiere die Anstiegs/Abfallzeiten des 
analog gemessenen Signals, dann ergibt sich über das gesamte Datagramm 
ein Bitraster von ca. 0,85ms Länge. Habe das mal im Bild mit den daraus 
resultierenden Logik-Leveln eingezeichnet. Die Baudrate wäre also 
(1/0,00085) gut 1.200 baud.

Der Ruhepegel spielt ja keine Rolle, die Busteilnehmer müssen nur den 
Wechsel vom Ruhe in den Empfangsbetrieb erkennen und dazu reich der 
Pegelwechsel. Daher vermute ich das ein einzelnes Datagramm ein 
Start-Bit hat. Zumindest in den von mir aufgezeichneten Datagrammen ist 
die erste 0-Phase immer genau ein Bit (0,85ms) lang. Damit ein Empfänger 
sich sauber synchronisieren kann wäre auch wenigstens 1 Stop-Bit 
notwendig, ggf. auch ein Parity-Bit um Übertragungsfehler abzufangen.

Wenn ich jetzt davon ausgehe das dies keine Symbole sondern wirklich 
direkt Bits sind, dann ergibt die Datagrammlänge von ca. 29ms eine 
Bitlänge von ca. 34 Bits. Bei mutmaßlich 8 Bit Nutzdatenlänge, einem 
Start und einem Stop-Bit sowie einem Parity-Bit wären das dann ca. 3 
Byte pro Datagramm.

Diese Werte habe ich im DSO-Decoder mal eingestellt und dann die Parity 
mal mit ODD/EVEN ausprobiert und siehe da, ich bekomme einen sauber 
dekodierten Datenstrom angezeigt!

Wenn ich da jetzt nicht komplett falsch abgebogen bin ist also der 
Heizungsanlagen-interne und Heizungsraum-interne "2-Draht Bus" ein 
einfacher 1-Wire Serial mit 18V Ruhepegel, 1.200 Baud, 1 Stop-Bit und 
gerader Parität (8E1).

Jetzt würde es ans dekodieren des Protokolls gehen...

von Olli Z. (z80freak)


Lesenswert?

Bei der Abfrage der Temperaturen über das Bedienfeld (drücken der 
Thermometer-Taste) ändert sich der Bus-Traffic, es kommt dann immer nur 
die Folge:
0x02 0x07 | 0x02 0x06 | 0x12 <PARAM> <VALUE>
Wobei PARAM die interne ID des angezeigten Wertes ist:
0x25 = (Display-Parameter "1") Außentemperatur
 - VALUE 0x18 (0b0001 1000, Dez. 24) entspricht der Display-Anzeige "12"
0x35 = (Display-Parameter "3") Kesseltemperatur
 - VALUE 0x99 (0b1001 1001, Dez. 153) entspricht der Display-Anzeige 
"76"
0x3D = (Display-Parameter "4") -nicht belegt-
 - VALUE 0x00 entspricht der Display-Anzeige "0"
0x45 = (Display-Parameter "5") Wasserspeicher-Temperatur
 - VALUE 0x74 (0b0111 0100, Dez. 116) entspricht der Display-Anzeige 
"58".

Es wirkt fast so als wäre der übertragene Temperaturwert das Doppelte 
der tatsächlichen Temperatur. Das Display kann keine Nachkomma-Stellen 
anzeigen, aber möglicherweise werden diese übertragen und dann ist der 
Temperaturwert einfach um ein Bit nach links geschoben (= 
Multipliktation mit 2) und das niederwertigste Bit zeigt bei 0 auf den 
vollen Gradwert und bei 1 auf ein halbes Grad, also wäre 0b1001 1001 in 
einer Halbgradanzeige dann "76,5°C".
Das scheint mir schlüssig :-)

Hier mal eine Messreihe während der Heizphase:
1
 Time   Rx
2
-9.37509s  0x02
3
-9.36434s  0x07
4
-9.33174s  0x02
5
-9.32100s  0x09
6
-9.28676s  0x02
7
-9.27602s  0x08
8
-9.24036s  0x12
9
-9.22962s  0x35
10
-9.21889s  0x52
11
-9.19634s  0x12
12
-9.18560s  0x04
13
-9.17486s  0x00
14
-7.37887s  0x02
15
-7.36813s  0x07
16
-7.33551s  0x02
17
-7.32478s  0x21
18
-7.29049s  0x02
19
-7.27975s  0x19
20
-7.24436s  0x12
21
-7.23362s  0x5C
22
-7.22288s  0x00
23
-7.20034s  0x12
24
-7.18960s  0x04
25
-7.17886s  0x00
26
-5.38656s  0x02
27
-5.37582s  0x07
28
-5.34318s  0x02
29
-5.33245s  0x20
30
-5.29814s  0x02
31
-5.28741s  0x18
32
-5.25194s  0x12
33
-5.24120s  0x4C
34
-5.23046s  0x05
35
-5.20792s  0x12
36
-5.19718s  0x04
37
-5.18644s  0x00
38
-3.39021s  0x02
39
-3.37947s  0x07
40
-3.34569s  0x12
41
-3.33496s  0x59
42
-3.32422s  0x00
43
-3.30020s  0x12
44
-3.28947s  0x35
45
-3.27873s  0x52
46
-3.25618s  0x12
47
-3.24543s  0x04
48
-3.23470s  0x00
49
-1.99410s  0x02
50
-1.98335s  0x07
51
-1.94977s  0x12
52
-1.93904s  0x5D
53
-1.92829s  0x00
54
-1.90574s  0x12
55
-1.89501s  0x04
56
-1.88427s  0x00
57
-1.58400ms  0x02
58
9.15200ms  0x07
59
42.2080ms  0x12
60
52.9520ms  0x0F
61
63.6880ms  0x00
62
86.2360ms  0x12
63
96.9680ms  0x04
64
107.712ms  0x00
65
1.99477s  0x02
66
2.00550s  0x07
67
2.03913s  0x12
68
2.04986s  0x39
69
2.06060s  0x00
70
2.08316s  0x12
71
2.09389s  0x04
72
2.10463s  0x00
73
3.98694s  0x02
74
3.99769s  0x07
75
4.03023s  0x02
76
4.04098s  0x06
77
4.07497s  0x12
78
4.08570s  0x25
79
4.09644s  0x17
80
5.98320s  0x02
81
5.99394s  0x07
82
6.02758s  0x12
83
6.03831s  0x38
84
6.04905s  0x2E
85
6.07161s  0x12
86
6.08234s  0x04
87
6.09308s  0x00
88
7.97572s  0x02
89
7.98646s  0x07
90
8.02040s  0x12
91
8.03113s  0x44
92
8.04187s  0x00
93
8.06442s  0x12
94
8.07515s  0x04
95
8.08590s  0x00
96
9.97205s  0x02
97
9.98279s  0x07
98
10.0154s  0x02
99
10.0262s  0x55
100
10.0600s  0x02
101
10.0707s  0xF4

Auffällig ist, das in der Kommunikation immer mit 0x02 0x07 gestartet 
wird. Ggf. könnte das eine Node-ID sein, z.B. vom LGM18 welcher Daten 
zur VR18 sendet, oder umgekehrt.
Auch die Kombination von 0x12 <PARAM> <VALUE> kommt immer wieder vor.

von Olli Z. (z80freak)


Lesenswert?

Ich habe nun die 2-Draht-Bus Platine auf meiner VR18 Regelung 
nachgerüstet. Die auf der Unterseite befindliche grüne LED leuchtet, 
sollte aber wohl blinken, so habe ich es im Internet lesen können. Auch 
ist am  Ausgang kein Signal erkennbar.
Möglicherweise muss in der Anlage noch was umkodiert werden, oder das 
Modul ist mit der VR18 nicht kompatibel.

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Laut Anleitung sollte nach Inbetriebsetzung die grüne LED auf der 
Rückseite der Platine blinken, das tut sie leider nicht, sie leuchtet 
nur. Leider sagt die Anleitung nichts zu diesem Zustand, dort ist nur 
hinterlegt das wenn die LED nicht blink diese nicht erkannt wird, bzw. 
sie aus ist ein Problem am RS485-Bus vorliegt.

Die "Kurzabfrage 2" über das Bedienteil zeigt mit "20 400 00", was ja 
laut der Kodiertabelle bedeutet das kein Modul erkannt wurde.

Ich hab die Platine mal etwas inspiziert und festgestellt das dort 
folgende Komponenten zum Einsatz kommen:

D2 = 75176B (ti) => Differential Bus Transceivers for RS-422/RS-485
D3 = P87C52EBAA (2359S129548hG) => 80C51 based architecture (8032 
compatible) 8-bit microcontroller with 8kb EPROM
N1 = 14541B (M) => Programmable Timer
N2 = LM393 => Dual Comparator
L1 = S+M B82790 S513 N => Entstörung für den RS485-Bus

zwei ICs konnte ich nicht ermitteln:
D1 = 9607W => ???
D4 = C46C1 (ST) => ???
ich vermute das D4 ein serial EEPROM ist auf dem die Software liegt. 
Interessanterweise haben nicht alle Module diesen Zusatz-Chip.

von H. H. (Gast)


Lesenswert?

Olli Z. schrieb:
> D1 = 9607W => ???

Das ist nur der Datecode.

TC4049B von Toshiba = CD4049B


> D4 = C46C1 (ST) => ???

93C46 EEPROM von ST.

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

H. H. schrieb:
> Olli Z. schrieb:
>> D1 = 9607W => ???
> TC4049B von Toshiba = CD4049B
>> D4 = C46C1 (ST) => ???
> 93C46 EEPROM von ST.
Vielen Dank! Damit wären die Bauteile soweit komplett und ergeben auch 
ein erkennbares Gesamtbild. Da es diese Bus-Platine für die VR18 in 
verschiedenen Ausführungen gibt, muss es abhängig vom Herstellungsdatum 
oder der Steuerungssoftware der VR18 Trägerplatine sein welche wo zum 
Einsatz kommt. Da der Bauzeitraum überschaubar ist muss man sich fragen 
wie wahrscheinlich es ist das Viessmann für dieselbe Steuerungsplatine 
(VR18) gänzlich unterschiedliche Schnittstellen zwischen VR18 und 
BUS-Platine hat entwickeln lassen?
Von der Hardware sehen die Varianten die ich gefunden habe sehr ähnlich 
aus, ausser das einigen dieses zusätzliche EEPROM fehlt. Das wiederum 
kann ja nur bedeuten das die Basis-Software im EPROM oder PROM des uC 
enthalten ist, oder der das externe EEPROM nur dazu nutzt irgendwelche 
Parameter zu speichern. Könnte aber genauso gut sein das bei den 
Modellen ohne externes EEPROM eine andere Version des uC verwendet 
wurde.

Ich lese das Ding mal aus, ist vielleicht interessant was da drin steht. 
Ebenso was im uC gespeichert ist, falls man da ran kommt (fuses).

Ein weiterer Unterschied sind die auf dem Aufkleber angebrachten 
Teilenummern und Produktbezeichnungen. Da ist einmal von "HV-COM" und 
"HV-COM2" etc. die Rede. In der weiter oben hinterlegten Bilddatei der 
Anleitung ist ein Hinweis das die VR18 für die Verwendung mit 
"Comfortrol" mind. die Version 7 haben muss. Das Comfortrol ist ein 
externes, zusätzliches Bedienteil und wird über den 2-Draht-Bus 
angeschlossen. Gut möglich also das meine VR18 mit Softwarestand V4 
einfach nicht die notwendigen Routinen enthält um mit dem Modul zu 
kommunizieren? Komisch wäre das schon, denn auch für meine wurde z.B. 
ein Mischer angeboten und der würde auch über 2-Draht angeschlossen. 
Womöglich gilt die Aussage da nur für das Bedienteil.

Möglichweise funktioniert aber auch alles und das Modul erkennt ob an 
den RS485 Pins überhaupt etwas angeschlossen ist und würde nur dann die 
Kommunikation aufnehmen... leider habe ich grad nichts da was RS485 
spricht.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Nun bin ich im Besitz eines 7540180 Bedienteils inkl. Wandhalter. Das 
Teil selbst ist batteriebetrieben, benötigt also weder Phantomspeisung 
noch externe Spannungsquelle. Wenn ich den 2-Draht mit eingestecktem 
2-Draht-Modul auf dem eigens dafür vorgesehenen Steckverbinder 141 
verbinde passiert leider nichts.
Verbinde ich das Modul auf den internen 2-Draht-Bus, zeigt es die 
Kesseltemperatur sowie Kurzabfrage an, man kann jedoch nichts einstellen 
darüber.

von Olli Z. (z80freak)


Lesenswert?

Schade das es hier noch keine "Mitstreiter" gibt, die Eurola OC wurde 
lange gebaut und war damit doch weit verbreitet und ist jetzt ja auch 
noch nicht Steinzeit-Technik... aber ich schreibe trotzdem weiter, 
vielleicht findet das jemand ja mal hilfreich :-)

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Mit Hilfe aus einem anderen Thread hier im Forum konnte ich einen 
Pegelwandler für eine Empfangsschnittstelle "Viessmann 2-Draht-Bus ---> 
TTL Serial ---> USB" bauen und somit den Bus bequem über ein Terminal 
(Hterm) mit den Settings: 1200 Baud, 8-Datenbits, 1-Stopbit, Even-Parity 
(8E1) mitlesen.

Der nächste Schritt wäre dann ein Sendeteil und das ganze dann über 
einen ESP8266 zugänglich machen.

Aber erstmal geht es daran das Protokoll zu entschlüsseln. Für den 
Zeilenumbruch habe ich im HTerm ein automatisches Return einfügen 
lassen, wenn länger als 250ms kein Zeichen mehr folgt. Dadurch ergeben 
sich Kommunikationsstrecken. Der Mitschnitt ist während die Anlage im 
Betriebszustand "0" ist, also weder Heiz- noch Warmwasseraktivität hat.

Es sieht ja so aus als würde jede dieser Strecken immer mit "02 07" 
starten und mit "12 04 00" enden.

Das was man hier sieht ist vermutlich das was die VR18 oder der LGM18 
von sich aus senden, die Botschaften sind nämlich genauso wenn ich das 
Display abziehe. Es gibt aber definitiv auch Botschaften die vom 
Bedienteil ausgelöst werden, z.B. bei der Parameterabfrage.

: Bearbeitet durch User
von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

In dem Sniff-Zeitraum kamen nur diese Botschaften vor:
1
02 07
2
02 08
3
02 09
4
02 0A
5
02 11
6
02 18
7
02 19
8
02 20
9
02 21
10
02 28
11
02 29
12
02 31
13
02 54
14
02 55
15
02 57
16
02 62
17
02 F4
18
19
12 04 00
20
12 0B 28
21
12 0F 00
22
12 35 <KT>
23
12 38 4C
24
12 39 00
25
12 42 14
26
12 44 00
27
12 4A 14
28
12 4C 0C
29
12 59 00
30
12 5C 00
31
12 5D 00
32
12 5E 04

"12" scheint also immer eine 3-Byte Nachricht anzuzeigen. "02" eine 
2-Byte Nachricht.
"12 35 <KT>" gibt die Kesseltemperatur wieder, welche auf den 
Bedieneinheiten angezeigt wird.
Es scheint auch klar das das 2. Byte den Parameter indiziert welcher 
seinen Wert im 3. Byte darstellt.
"12 04 00" kommt immer am Ende einer Bytefolge.

Wenn ich mit dem Bedienteil weitere Temperaturen abrufe (drücken der 
"t?"-Taste und einstellen des Parameters 0-7 über das Rollrad) geschieht 
nur noch folgendes auf dem Bus:
1
02 07 02 06 12 25 1E 
2
02 07 02 06 12 25 1E 
3
02 07 02 06 12 25 1E 
4
02 07 02 06 12 25 1E 
5
02 07 02 06 12 25 1E 
6
02 07 02 06 12 25 1E 
7
02 07 02 06 12 25 1E 
8
02 07 02 06 12 25 1E 
9
02 07 02 06 12 25 1E 
10
02 07 02 06 12 2D FF 
11
02 07 02 06 12 25 1E 
12
02 07 02 06 12 25 1E 
13
02 07 02 06 12 25 1E 
14
02 07 02 06 12 2D FF 
15
02 07 02 06 12 2D FF 
16
02 07 02 06 12 35 3E 
17
02 07 02 06 12 35 3E 
18
02 07 02 06 12 3D 00 
19
02 07 02 06 12 3D 00 
20
02 07 02 06 12 3D 00 
21
02 07 02 06 12 45 6D 
22
02 07 02 06 12 45 6D 
23
02 07 02 06 12 45 6D 
24
02 07 02 06 12 4D FF 
25
02 07 02 06 12 4D FF 
26
02 07 02 06 12 4D FF 
27
02 07 02 06 12 4D FF 
28
02 07 02 06 12 4D FF 
29
02 07 02 06 12 4D FF 
30
02 07 02 06 12 4D FF 
31
02 07 02 06 12 4D FF 
32
02 07 02 06 12 4D FF 
33
02 07 02 06 12 4D FF
Das "02 06" kommt sonst nicht auf dem Bus vor, es signalisiert also wohl 
den Abruf eines Temperaturwertes aus dem LGM18.
Der Parameter hinter der "12" lässt sich zweifelsfrei dem eingestellten 
Parameter 0-5 auf dem Bedienteil zuweisen. Der Parameter-Wert entspricht 
dabei der Anzeige im Display (siehe oben zu Temperaturkodierung), bei 
0xFF wird im Display nichts dargestellt.

Jetzt frage ich mich aber wie das Bedienteil, welches ja am VR18 
angesteckt ist, dem VR18 mitteilt welche Temperatur vom LGM18 abzurufen 
ist? Ich kann mir das nur so vorstellen das "12" und der gewünschte 
Parameter-Code vom VR18 kommt und das letzte Byte die Antwort vom LGM18 
wäre. Dagegen spricht jedoch ein bischen das Oszillogramm, denn dann 
sollte man vor dem letzten Byte doch einen zeitlichen Versatz erkennen 
können, dieser ist aber nicht vorhanden. Anders kann ich mir aber 
aktuell nicht erklären wie das Bedienteil über den Bus den gewünschten 
Parameter vom LGM18 vorgeben sollte.

Ich kann auch problemlos die Kommunikationsleitung welche vom VR18 zum 
LGM18 führt abziehen ohne das dies was am Betrieb der Heizung ändert, 
außer das vermutlich Änderungen der Außentemperatur nicht zu einer 
Heizanforderungsänderung führen würde. In diesem Zustand sehe ich 
weiterhin alle Bytes vom VR18 unverändert fließen. Das wiederum spricht 
gegen meine Idee weiter oben... seltsam.

: Bearbeitet durch User
von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Wieder ein Trippel-Schrittchen weiter...

Heute habe ich herausgefunden das wenn ich eine der beiden vom 
2-Draht-Modul kommenden Leitungen (ich vermute ja immer noch RS485) auf 
die intern verfügbaren +18V lege (habe das vorsichtshalber mit einem 1k 
Widerstand gemacht) fängt die grüne LED auf der Rückseite der 
Modulplatine sofort an zu blinken und in der Kurzabfrage erhalte ich 
dann auch die begehrte "1" an der 2. und 6. Stelle = "Viessmann 
2-Draht-Modul vorhanden" :-)

Soweit so gut. Mit einem Oszi sehe ich auch das dort Daten aufgelegt 
werden. Anscheinend benötigt das Modul extern ein Signal um sich 
überhaupt zu aktivieren.

von Olli Z. (z80freak)



Lesenswert?

Nachdem ich ein handelsübliches RS485-Interface an die Pins 1+2 des 
2-Draht-Bus Ausganges [142] der VR18 angeschlossen habe, fing sofort die 
LED auf der Modulplatine wieder an zu blinken, auch ohne Pullup. Der 
fehlte also wirklich nur der Kommunikationspartner.

Mit der Einstellung 4800 8E1 erhielt ich dann auch Daten, deren Analyse 
jetzt aussteht. Vorgesehen ist dieser Bus ja laut Anleitung für die 
"Dekamatik-HK" und dem "Mischer-Motor".

Die Dekamatik scheint mir eine komplette externe Steuerung zu sein in 
die auch das Bedienteil eingesetzt wird. Das schaue ich mir mal genauer 
an.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Ich konnte inzwischen folgende Botschaften auf dem 2-Draht-Bus 58B, 
welcher als alternativer Fernbedienungs-Bus für das sonst intern 
verbaute Bedienteil dient, ermitteln:
1
0x12 <PARAMETER> <VALUE>
2
3
0x12 => Datenübermittlung vom Master -> Slave(s)
4
<PARAMETER>:
5
0x25 => Aussentemperatur
6
0x35 => Kesselwassertemperatur (IST)
7
0x36 => Kesselwassertemperatur (SOLL)
8
0x38 => Byte 2 der Displayanzeige "BETRIEB 1: <BYTE1><BYTE2>"
9
0x39 => Byte 1 der Displayanzeige "BETRIEB 1: <BYTE1><BYTE2>"
10
0x42 => Obere Nibble von <BYTE1> der Displayanzeige "Kurzabfrage 1: <BYTE1><BYTE2><BYTE3>"
11
0x45 => Wasserspeichertemperatur (IST)
12
0x4E => Rücklauftemperatur (SOLL)
13
0x4D => Rücklauftemperatur (IST)
14
0x53 => Unteres Nibble von <VALUE> für Oberes Nibble von <BYTE3> der Displayanzeige "Kurzabfrage 2: <BYTE1><BYTE2><BYTE3>"
15
0x59 => <BYTE2> der Displayanzeige "Kurzabfrage 1:  <BYTE1><BYTE2><BYTE3>"
16
0x5B => Unteres Nibble von <VALUE> für unteres Nibble von <BYTE1> der Displayanzeige "Kurzabfrage 1:  <BYTE1><BYTE2><BYTE3>"
17
0x5D => Oberes Nibble von <VALUE> in Unteres Nibble von <BYTE3> und Unteres Nibble von <VALUE> in Unteres Nibble von <BYTE1> der Displayanzeige "Kurzabfrage 2: <BYTE1><BYTE2><BYTE3>"
18
0x5E => Unteres Nibble von <VALUE> für Oberes Nibble von <BYTE2> der Displayanzeige "Kurzabfrage 2: <BYTE1><BYTE2><BYTE3>"

von Ingo H. (Gast)


Lesenswert?

Kleine Korrektur zu den 3 Jumpern: Sie sind nicht alle auf Gnd sondern 
verbinden in dem Fall, dass kein 2-Draht-Busmodul gesteckt ist die drei 
einzeln stehenden Pins (neben X70)
- Gnd
- Schalteingang "Externe Brennereinschaltung"
- Schalteingang "Externe Betriebsprogrammumschaltung"
der Steuerung mit dem Stecker 142.
Das möchte ich nun nutzen um die Eurola als Zuheizer mit einer 
Wärmepumpe zu koppeln.

Beitrag #7248398 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.