Forum: Haus & Smart Home Heatronic 3 Adapter (Junkers Heizung) fuer Raspberry Pi


von Norbert S. (junky-zs)


Lesenswert?

Luca schrieb:
> I'd like to get the simulation working correctly so I can swap the
> optocouplers with different ones I have available and see if the
> waveform is still acceptable.
I'm not sure you'll find that used optokopplers in LTspice.

It's better to compare the datasheets of that selected optokopplers I'll 
think.
Most important is the rise- and fall-time to get the best serial 
signalisation.

Regards Norbert

von Luca (olivluca)


Lesenswert?

Oh, I found a model online for the H11L1, the optocoupler I have 
available has no schmitt trigger and even if it is slower it gave an 
apparently good enough result in the receiver, but I'd like to simulate 
the transmitter.

von Luca (olivluca)


Angehängte Dateien:

Lesenswert?

I came up with this circuit (I have some 4N25 around), do you think it 
could work?

von Luca (olivluca)


Angehängte Dateien:

Lesenswert?

Mmh, I put V1 on the bus side so I was losing the isolation provided by 
the opto.
This is a revised version with the transmitter and receiver.
What do you think?

von Norbert S. (junky-zs)


Lesenswert?

Luca schrieb:
> This is a revised version with the transmitter and receiver.
> What do you think?
Your simulated 4N25 seems to be fast enough to do the job.
But there are some problems with that design:
1. Q1 is closed (default current-flow) if V2 is low or disconnected.
-->> No 'failsave' available and blocking the heater-bus on failures.
2. D6 not required, but use the resistor-value with higher value.
3. UART-signals from MCU have high-levels in idle-mode, so your design 
is wrong.
Please look at my design, strip it down and simulate this with the 4n25.

Regards Norbert

: Bearbeitet durch User
von Luca (olivluca)


Lesenswert?

Hello,

thank you for your feedback, really appreciated.

Regarding 1., I didn't think of that, but since my bus is currently 
unused and I will only connect this interface, in turn permanently 
connected to an esp32 (so that V2, aka tx, will be idle high, 
phototransistor of U2 closed, Q1 open, bus high), I'm not sure it is a 
problem.

Regarding 2., good, I'll remove the zener and adjust the resistor.

Regarding 3., maybe the ltspice model I found of the H11L1 is wrong, but 
when I simulated your transmitter it gave me the same result as my 
circuit: tx high, (idle) green trace) -> bus high (blue trace), tx low 
(transmitting) -> bus low.
Same for the receive side: bus high -> rx high, bus low -> rx low.
Should they be inverted?

von Luca (olivluca)


Angehängte Dateien:

Lesenswert?

Latest iteration with the zener removed and changes in the simulation 
(V2 simulates the transmission for a short while and after that V4 
simulates the reception).

Edit: in the real circuit the GND in the middle won't be connected, but 
AFAIK in ltspice it's needed otherwise it cannot simulate the circuit.

: Bearbeitet durch User
von Luca (olivluca)


Angehängte Dateien:

Lesenswert?

This is my attempt to simulate your circuit.
As I said in my first message, the voltage swing is very low, but the 
current in the bus seems ok (70mA, not really sure it's actually ok).
But I see that it follows the input (input high -> optocoupler high -> 
bus high, input low -> optocopler low -> bus low).

von Richard (richard_p)


Lesenswert?

Hallo,

verkaufe einen original ht_pitiny. Bei Interesse per Mail melden.

von Norbert S. (junky-zs)


Lesenswert?

Luca schrieb:
> This is my attempt to simulate your circuit.
> As I said in my first message, the voltage swing is very low, but the
> current in the bus seems ok
Thanks for your simulations-attempts.
Keep in mind that this heater-bus has NOT a full-duplex communication.
You have to simulate that RX-direction and the TX-direction separately 
and not in one turn.

Regards Norbert

von Luca (olivluca)


Lesenswert?

Norbert S. schrieb:
> Luca schrieb:
>> This is my attempt to simulate your circuit.
>> As I said in my first message, the voltage swing is very low, but the
>> current in the bus seems ok
> Thanks for your simulations-attempts.
> Keep in mind that this heater-bus has NOT a full-duplex communication.
> You have to simulate that RX-direction and the TX-direction separately
> and not in one turn.

Yes, that's what I did in htbus-transmitter-4n25.asc (*) (I first 
simulate a couple of pulses in the tx side, then, after a delay, a 
couple of pulses on the bus (to test the rx side).
In case of ht-transmitter-norbert.asc I only simulated the transmitter.

(*) It turns out that what I have available are 4n27 but the simulation 
doesn't change.

von Nils R. (augur)


Lesenswert?

Hi,

mein FW200 ignoriert irgendwie die (automatische?) 
Sommer-/Winterzeitumstellung und verliert auf Dauer recht viel Zeit auch 
wenn der Heizungsbauer mal dran. Leider ist sind hat es mit 2 Stunden 
Verschiebung dann doch Auswirkung auf die Schaltprogramme...ist es 
theoretisch möglich die Zeit auszulesen (Monitoring) und von außen zu 
setzen (mit der öffentlichen Zeit über NTP) oder bietet der Bus das gar 
nicht?

Viele Grüße,
Nils

von Norbert S. (junky-zs)


Angehängte Dateien:

Lesenswert?

Nils R. schrieb:
> mein FW200 ignoriert irgendwie die (automatische?)
> Sommer-/Winterzeitumstellung und verliert auf Dauer recht viel Zeit auch
> wenn der Heizungsbauer mal dran. Leider ist sind hat es mit 2 Stunden
> Verschiebung dann doch Auswirkung auf die Schaltprogramme...
Hallo Niels,
die Zeit und Umschaltung lässt sich am FW200 einstellen, siehe Bild und 
Bedienungsanleitung.
Auch der Korrekturfaktor ist einstellbar.

> ist es theoretisch möglich die Zeit auszulesen (Monitoring)
Die Zeit wird ohnehin jede Minute vom Regler gesendet, dies sieht man im 
HT3_Analyser.
Allerdings wird diese nicht per MQTT-Meldung ausgegeben, habe bisher 
keine Notwendigkeit gesehen.

> und Zeit von außen zu
> setzen (mit der öffentlichen Zeit über NTP) oder bietet der Bus das gar
> nicht?
Muss ich klären.

Gruß Norbert

von Nils R. (augur)


Lesenswert?

Das wäre toll, danke.

Die automatische Umschaltung ist aktiv macht aber nichts. Dort hatte 
mein Heizungsbauer schon bei Junkers nachgefragt, das Gerät war aber 
bereits aus der Garantie.

Bei dem Zeitverlust kommt es m.E. eher daher, wenn mein Heizungsbauer 
die Anlage stromlos macht. Aktuell habe ich 2 Stunden Zeitunterschied 
und mein Mieter hat sich beschwert. Ich habe dort die Herausforderung 
mit Hamburg das Mietobjekt und Rosenheim wohnhaft. Als ich selber noch 
oben gewohnt habe war das einfach, jetzt ist es ein wenig nervig. Wenn 
wäre eine sehr große Zeitkorrektur notwendig, ist aber schwierig zu 
analysieren.

von Norbert S. (junky-zs)


Angehängte Dateien:

Lesenswert?

Norbert S. schrieb:
>> und Zeit von außen zu
>> setzen (mit der öffentlichen Zeit über NTP) oder bietet der Bus das gar
>> nicht?
> Muss ich klären.
Hallo Nils,
habe einiges probiert um die Zeit des Reglers über Telegramme von Aussen 
zu verändern. Dies ist mir bisher nicht gelungen, habe zwar einen CW400 
in meinem Heizungssystem aber offensichtlich gibt es dieses Problem auch 
bei Fxyz Reglern von Junkers.
siehe dazu auch URL's:
https://github.com/emsesp/EMS-ESP32/issues/536
https://github.com/emsesp/EMS-ESP32/issues/666
https://github.com/emsesp/EMS-ESP32/issues/386

Habe mal Deine alten Log-Files mit dem Analyser auf die Uhrzeit 
kontrolliert (siehe Bild).
Bei dem markiertem Telegram Msg:6_0 (Systemzeit) ist:
 der Status(Byte11) = 0 und
 der RTC-Owner(Byte12) = 70hex.
Dies bedeutet: Uhrzeit nicht gültig und die Zeit kommt vom Heizgerät 
statt vom Regler.
Allerdings ist mir nicht bekannt wie man dieses ändern könnte, habe 
keine Infos darüber in den Installations-Anweisungen gefunden.
Systemuhrzeit kann man eigentlich nur am Regler Fxyz/Cxyz 
einstellen/konfigurieren.
Bei meinem System steht bei den Bytes:
 der Status(Byte11) = 1 und
 der RTC-Owner(Byte12) = 10hex <<-- Geräteadresse des Reglers.

Nils R. schrieb:
> Bei dem Zeitverlust kommt es m.E. eher daher, wenn mein Heizungsbauer
> die Anlage stromlos macht.
Die Regler haben keine Batterie aber eine Super-CAP. Die speichert die 
Daten und betreibt die Uhr für eine begrenzte Zeit.
Daher nehme ich an das diese Super-CAP defekt ist. Ein Tausch könnte das 
Problem vielleicht ja beseitigen.

Frage: Du hast ja noch ein MBLAN2 im Heizungssystem. Läßt sich damit die 
Systemzeit einstellen?

Gruß Norbert

von Jochen D. (joe_d1)


Lesenswert?

Ich habe bei mir eine Konfiguration aus CW400, Solar mit MS200, 
Fußbodenheizkreis mit MM100 und Frischwasserstation mit MS100. Bislang 
ist die Anlage komplett außentemperaturgesteuert - hat aber 
Raumtemperaturregler an den Stellantrieben der Fußbodenheizung. Das 
führt zu so "tollen" Situationen das der Raumtemperaturregler sagt 
"bitte Wärme", die Heizung aber den Heizkreis schon abgeschaltet hat 
"weils draußen zu warm ist".

Da die Stellantriebe auch Strom verbrauchen wenn der Heizkreis aus ist 
habe ich einen HT3-Reader entwickelt der ein bistabiles Relais 
umschaltet wenn der Heizkreis an- oder abschaltet. Damit steuere ich nun 
die Stromversorgung der Stellantriebe.

Den Stromverbrauch der Stellantriebe messe ich zusätzlich mit mehreren 
umgebauten PZEM-004T 10A Modulen. Meine Idee ist nun ein CR10 zu 
"emulieren", d.h. anhand des gemessenen Stroms die Solltemperatur (oder 
Isttemperatur?) vorzugeben und das CW400 damit zu steuern.

Dafür hab ich mir ein gebrauchtes CR10 besorgt um dessen Telegramme 
mitlesen zu können. Laut HT_EMB_Bus_messages.pdf soll ein CR10 als 
Fernbedienung eine Busaddresse von 0x18 haben. Das ist bei mir aber nur 
so wenn das CR10 als Regler statt als Fernbedienung läuft. Und dann 
bekomme ich den Fehler "zwei Regler konfiguriert". Wenn ich dann den 
CR10 auf Fernbedienung umschalte wird er zu 0x38 "Fernbedienung 
Heizkreis 9"?

Die Telegramme gibt es scheinbar noch nicht und so ganz schlau werde ich 
daraus leider nicht:
1
30.04.2025;11:20:39;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
2
30.04.2025;11:21:39;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
3
30.04.2025;11:22:39;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
4
30.04.2025;11:23:16;DEBUG; 191_0 ;sys;S38;T00; 191_0 ;sys:b8 00 bf 00 38 a5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 af 00
5
30.04.2025;11:23:39;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
6
30.04.2025;11:24:38;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
7
30.04.2025;11:25:39;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
8
30.04.2025;11:26:38;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
9
30.04.2025;11:27:39;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
10
30.04.2025;11:28:38;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
11
30.04.2025;11:29:38;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
12
30.04.2025;11:30:39;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
13
30.04.2025;11:31:38;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
14
30.04.2025;11:32:38;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
15
30.04.2025;11:33:15;DEBUG; 191_0 ;sys;S38;T00; 191_0 ;sys:b8 00 bf 00 38 a5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 af 00
16
30.04.2025;11:33:37;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dc 08 9c 01 de 00
17
30.04.2025;11:34:38;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dd 08 9e 01 d2 00
18
30.04.2025;11:35:37;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dd 08 a2 01 aa 00
19
30.04.2025;11:36:37;DEBUG;1067_0 ;???;S38;T10;1067_0 ;???:b8 10 ff 00 03 2b 00 dd 08 a4 01 a6 00

Der erste Wert nach der Telegramm-ID ist 0x00dd und entspricht der 
Raumtemperatur Ist die im HT3_Analyzer angezeigt wird. Der Sollwert war 
ab 11:20 Uhr auf 27.5 Grad eingestellt ... kann ich irgendwie nicht 
zuordnen.

Zwischendurch sendet das CR10 noch eine "hab keine Fehler" Meldung. Aber 
das war es dann leider auch schon...

@Norbert S. Hattest Du nicht auch eine CW400 + CR10? Wundert mich das 
die Telegramme unbekannt sind...

von Norbert S. (junky-zs)


Lesenswert?

Jochen D. schrieb:
> Die Anlage ist komplett außentemperaturgesteuert - hat aber
> Raumtemperaturregler an den Stellantrieben der Fußbodenheizung. Das
> führt zu so "tollen" Situationen das der Raumtemperaturregler sagt
> "bitte Wärme", die Heizung aber den Heizkreis schon abgeschaltet hat
> "weils draußen zu warm ist".
Die Raumtemperaturregler wissen ja nichts von der aktuellen 
Aussentemperatur und sind ja wohl nicht mit dem Heizungsbus verbunden. 
Daher dieses Verhalten.
Wichtig dabei ist bei der Inbetriebnahme des CW400 die korrekte 
Gebäudeart einzustellen (Leicht/Mittel/Schwer).
Dadurch werden Aussentemperatur-Änderungen in der CW400 Regelung 
verzögert behandelt.

> Da die Stellantriebe auch Strom verbrauchen wenn der Heizkreis aus ist
> habe ich einen HT3-Reader entwickelt der ein bistabiles Relais
> umschaltet wenn der Heizkreis an- oder abschaltet.
> Den Stromverbrauch der Stellantriebe messe ich zusätzlich mit mehreren
> umgebauten PZEM-004T 10A Modulen.
Hast Du diesen Strombedarf der Stellantriebe schon einmal gemessen?
Soweit ich weiss brauchen die Stellantriebe nur Strom wenn diese die 
Ventile verstellen, ansonsten brauchen diese keinen Strom ausser der 
Steuerelektronik.
Diese PZEM-004T 10A Module brauchen ja auch Strom.

Wenn Du wirklich Strom sparen willst mache bitte fogendes:
1. Alle Stellantriebe auf maximal offen einstellen oder ganz entfernen.
2. Elektronik und Versorgung der Stellantriebe ausschalten.
3. Hydraulischen Abgleich der Fussbodenheizung durchführen.
4. Durchflussmengen der einzelnen Heizkreise an den Bedarf anpassen.
5. Regler CW400 optimal einstellen, eventuell den Regler im Führungsraum 
(Wohnzimmer etc.) plazieren und ihn dort die Raum-Temperatur messen 
lassen.
Der CR10 ist dann nicht mehr nötig.
Auf diese Art betreibe ich meine Anlage seit mehreren Jahren mit 
Fussbodenheizungen in zwei Etagen und mit 9- und 7-fach 
Heizkreis-Verteilern.
Bin kein Heizungsfachmann, aber dies habe ich für mich als am besten 
geeignet herausgefunden.

> @Norbert S. Hattest Du nicht auch eine CW400 + CR10? Wundert mich das
> die Telegramme unbekannt sind...
Ja, den CR10 hatte ich im System. Brauche ich aber nicht mehr, siehe 
oben.
Die Telegramme sind bekannt, nur nicht im Dokument enthalten.

> Wenn ich dann den
> CR10 auf Fernbedienung umschalte wird er zu 0x38 "Fernbedienung
> Heizkreis 9"?
Ja, diese Modul-Adresse 0x38 hatte mein CR10 ebenfalls. Die Einstellung 
ist korrekt.

> Der erste Wert nach der Telegramm-ID ist 0x00dd und entspricht der
> Raumtemperatur
Ja, stimmt.
Die folgenden zwei Bytes: (z.B. 08 9e) sind 'Raumtemperatur 
hochauflösend'
Das letzte Daten-Byte: 01 ist 'Gültigkeitsflag der Raumtemperatur'.

Gruß Norbert

von Jochen D. (joe_d1)


Lesenswert?

Norbert S. schrieb:
> Jochen D. schrieb:
>> Da die Stellantriebe auch Strom verbrauchen wenn der Heizkreis aus ist
>> habe ich einen HT3-Reader entwickelt der ein bistabiles Relais
>> umschaltet wenn der Heizkreis an- oder abschaltet.
>> Den Stromverbrauch der Stellantriebe messe ich zusätzlich mit mehreren
>> umgebauten PZEM-004T 10A Modulen.
> Hast Du diesen Strombedarf der Stellantriebe schon einmal gemessen?
> Soweit ich weiss brauchen die Stellantriebe nur Strom wenn diese die
> Ventile verstellen, [...]

So ein thermischer Stellantrieb braucht am Anfang 8W und fällt dann 
innerhalb von 45 Sekunden auf 3W ab. Dadurch das der Stift am 
Stellantrieb thermisch geschlossen wird haben die Teile einen gewissen 
Vorlauf/Nachlauf.

> Diese PZEM-004T 10A Module brauchen ja auch Strom.

Naja, das hält sich IMHO gegenüber den Stellantrieben ja in Grenzen. 
Desweiteren baue ich die um sodass die ausschließlich über 5V versorgt 
werden...

> Wenn Du wirklich Strom sparen willst mache bitte fogendes:

Strom sparen steht nicht im Vordergrund. Strom unsinnig verbrauchen, 
also Stellantriebe versorgen wenn die Heizungspumpe nicht läuft habe ich 
ja schon durch mein Mithörmodul gelöst. Funktioniert auch einwandfrei!

Komfort erhöhen ist mein Ziel. Durch die Änderung von 
außentemperaturgeführt auf raumtemperaturgeführt macht die Heizung nun 
schon eher das was ich möchte und nicht das was die Heizung "denkt" was 
für mich ausreichend wäre... Wenn ich die Schwellen zu tief setze heizt 
sie "gefühlt" zu wenig, wenn ich die Schwellen zu hoch setze heizt sie 
auch noch bei 20 Grad Außentemperatur ... Ist ja an den Diagrammen schön 
abzulesen...

> [...]
> 5. Regler CW400 optimal einstellen, eventuell den Regler im Führungsraum
> (Wohnzimmer etc.) plazieren und ihn dort die Raum-Temperatur messen
> lassen.

Ja, so hatte ich das vormals im Reiheneckhaus. Wenn es im Wohnzimmer 
schön warm war schaltete die Heizung ab und das im Keller gelegene 
gelegentlich beheizbare Zimmer konnte nie mehr warm werden oder wurde 
arschkalt. Was dazu führte das der Regler im Führungsraum immer auf 30°C 
gestellt wurde.

Nun im Haus ist die Wohnraumsituation komplexer und meine bessere Hälfte 
hat in der Übergangszeit keine Lust auf kalte Räume weil es der Heizung 
warm genug ist. Die gelegentlich beheizbaren Kellerräume gibt es auch 
wieder. Genauso haben wir Gästezimmer die nur bei Bedarf (einmal die 
Woche) beheizt werden (auf Temperatur X, wie es eben die Gäste wünschen 
und nicht unsere Heizung) oder ein Wohnzimmer das auch mal um 2 Grad 
angehoben werden soll..

> Die Telegramme sind bekannt, nur nicht im Dokument enthalten.

Schade schade ...

>> Der erste Wert nach der Telegramm-ID ist 0x00dd und entspricht der
>> Raumtemperatur
> Ja, stimmt.
> Die folgenden zwei Bytes: (z.B. 08 9e) sind 'Raumtemperatur
> hochauflösend'

Ah, Temperatur / 1000 .. Danke.

> Das letzte Daten-Byte: 01 ist 'Gültigkeitsflag der Raumtemperatur'.

Wie aber setzt der CR10 eine Solltemperatur?

Gruß

   Jochen

: Bearbeitet durch User
von Nils R. (augur)


Lesenswert?

Norbert S. schrieb:
> https://github.com/emsesp/EMS-ESP32/issues/536
> https://github.com/emsesp/EMS-ESP32/issues/666
> https://github.com/emsesp/EMS-ESP32/issues/386
>
> Habe mal Deine alten Log-Files mit dem Analyser auf die Uhrzeit
> kontrolliert (siehe Bild).
> Bei dem markiertem Telegram Msg:6_0 (Systemzeit) ist:
>  der Status(Byte11) = 0 und
>  der RTC-Owner(Byte12) = 70hex.
> Dies bedeutet: Uhrzeit nicht gültig und die Zeit kommt vom Heizgerät
> statt vom Regler.

Das stimmt auch, ich hab eine witterungsgeführte Anlage.

> Allerdings ist mir nicht bekannt wie man dieses ändern könnte, habe
> keine Infos darüber in den Installations-Anweisungen gefunden.
> Systemuhrzeit kann man eigentlich nur am Regler Fxyz/Cxyz
> einstellen/konfigurieren.
> Bei meinem System steht bei den Bytes:
>  der Status(Byte11) = 1 und
>  der RTC-Owner(Byte12) = 10hex <<-- Geräteadresse des Reglers.
>
> Frage: Du hast ja noch ein MBLAN2 im Heizungssystem. Läßt sich damit die
> Systemzeit einstellen?

Ich hab ein MBLAN2, aber das kann eigentlich nix. Ich bräuchte ein KNX10 
und einen CW Regler, dort soll man laut der Anleitung den Wert ändern 
können.
https://manualzz.com/doc/4406681/junkers-knx-10-knx-gateway-installationsanleitung?p=6

Somit scheint es jedenfalls bei einigen Regeln zu funktionieren. Wenn 
die Uhrzeit angezeigt wird wäre es auch erstmal toll, dann kann ich 
Abweichungen erkennen ohne auf die Änderung der Betriebsart zu schauen.

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.