KÖB Pyromat ECO 4: Visualisierung

There are 23 replies in this Thread which was already clicked 14,938 times. The last Post () by LOREL.

  • Hallo zusammen,


    bin auch seit einiger Zeit stiller Mitleser gewesen, und habe die Lösung auch jetzt umgesetzt. Verwende einen ESP8266 (D1 Mini Clone), MCP2515 Board (enthält den TJA1050 Tranceiver), einen MP1583EN Step-Down Regler (auf 5V) und einen Logic-Level-Shifter TXS0108E zwischen dem ESP und dem CAN Board. Beim TXS0108E gab es zu beachten, dass der OE Pin beim einschalten auf LOW sein muss (1k pull-down) und dann über einen ESP Output auf HIGH gezogen wird bevor SPI Kommunikation stattfindet.


    Der ESP arbeitet einfach als CAN-->MQTT Bridge und schickt die Frames zu meiner Smart-Home-Implementierung.


    Mein Protokoll sieht ähnlich aus wie das von Ben1337, allerdings habe ich bisher nur die IDs 0x381 und 0x481 nutzen können. Bin ein wenig verwundert, dass 0x382 und 0x381 bei Ben1337 unterschiedliche Werte liefern: So wie ich es verstanden habe enthält die CAN_ID auch die EFF/RTR/ERR Flags, d.h. Bits 29, 30, 31 sind die Flags und nur Bits 0-28 ist die CAN_ID. Damit wäre 0x381 --> CAN_ID=0x70, EEF=1, RTR=0, ERR=0 und 0x382 --> CAN_ID = 0x70 EEF=0, RTR=1, ERR=0.


    Soweit bin ich ganz zufrieden mit der Implementierung bei mir, die wichtigsten Parameter kann ich so auslesen, und vorallem eine Notification zum Nachheizen bekommen. Etwas schade ist, dass ich aus den restlichen Daten nicht schlau werde, teilweise bleiben diese ziemlich konstant. Aber ich konnte die Werte einfach nicht zuordnen zu dem was ich im Steuergerät ablese.


    Diese CAN Library habe ich verwendet, läuft out-of-the-box mit ESP8266 Arduino Core: https://github.com/autowp/arduino-mcp2515

    PIN-Belegung des DB9 Steckers wie von Ben1337 geschrieben.


    Jumper für 120Ohm Abschlusswiderstand habe ich gesetzt, da war auch ein Abschlusswiderstand im Blindstecker vorher.


    Vielen Dank an alle für's Teilen der Infos!


    PS: Vielleicht würden noch mehr Daten über den CAN Bus kommen wenn man die weiter oben erwähnte "Freischaltung" machen würde?

  • Ich habe noch ein paar weitere Informationen rausbekommen:


    LE

    0x482.w0 = Zusatzlicher Temperaturanlegefühler) /100

    0x482.w3 = Außentemperaturfühler /100


    LE

    0x281.w0 / 0x281.b0 low-byte = Primärklappe direkt in %

    0x281.w1 / 0x281.b2 low-byte = Sekundärklappe direkt in %

    Hinweis: 0x301 -> Kommt auch das gleiche wie auf 0x281

    Die Stellungen der Ventile (Heizungsmischer / Pufferspeicher und Rücklaufanhebung) werden auch übertragen aber das ist total kompliziert gelöst, daher habe ich die nicht implementiert. Es werden leider nicht direkt die Stellungen übertragen, sondern es wird immer eine Nachricht geschickt, wenn ein Ventil verstellt oder nicht mehr verstellt wird, das Ganze auch noch auf einem gemeinsamen Byte für alle Ventile. Die Verfahrrichtung/Stop wird über 4 verschiedene Werte übertragen, und jedes Ventil hat eigene Werte, womit man dann die Verstellung dem Ventil zuordnen kann. Verrückt eigentlich, weil die Implementierung in der Anzeige vom Ofen auch super kompliziert war. Verstehe wer will, warum die das so umständlich gelöst haben.

  • Sehr gut, vielen Dank! Die Luftklappenstellungen bekomme ich auch auf 0x281. Die Primärluft blieb allerdings heute beim ersten Test ziemlich konstant bei 90%. Die Adressen mit gesetztem vorletztem Bit (also Endung auf 2) bekomme ich alle leider nicht (wobei ich wie gesagt die CAN IDs etwas anders interpretiere mit den Flags).


    Mir ist noch aufgefallen, es gibt diese MMC-Schnittstelle an der ECOTRONIC (Pyromat Eco 45, ECOTRONIC SW v1.19). Da sollte sich theoretisch über serielle Kommunikation auch noch was auslesen oder sogar steuern lassen. Vermute, dass man es über MODBUS auslesen kann, habe es aber noch nicht getestet. Hat das schon jemand versucht? Leider scheint es ja ziemliche Unterschiede zwischen der Versionen/Baujahren zu geben. Mit OK+F3 komme ich auch in ein Menü wo etwas zu MMC angezeigt wird, da kann ich aber nichts verstellen und werde auch nicht ganz schlau daraus.


    Und noch eine kleine OT Frage : Die Uhrzeit verstellt sich bei meiner ECOTRONIC immer, fast täglich. Das ist für die Heizungssteuerung extrem nervig. Kennt jemand das Phänomen? Kann es an der Pufferbatterie in der Steuerung liegen? Ich wüsste nicht, dass die in den letzten 10 Jahren getauscht worden wäre.


    Wolfgang

  • Hallo Leute,

    die Beiträge in diesem Chat-Verlauf klingen sehr interessant und könnten bezüglich meines aktuellen Projekts wertvolle Inputs liefern...

    Ich beschäftige mich seit einigen Tagen mit der Möglichkeit über CAN-BUS mit dem Viessmann Vitoligno 300-C Pellets-Kessel zu interagieren.

    Die CAN-BUS Schnittstelle ist unter Anderem für die Verbindung zu einem Vitotrol 350-C vorgesehen. Also müsste es auch möglich sein diese Schnittstelle für die Hausautomatisierung (z.B. Raspberry-PI) zu nützen.
    Im world-wide-web ist nicht wirklich was braubares über diese CAN-BUS Schnittstelle zu finden, da diese scheinbar auch nicht dem "OneBase 3e" Protokoll entspricht.

    Ich habe mich mal mit einem CAN-BUS-Sniffer an die Schnittstelle angehängt.
    Dabei habe ich festgestellt, das der CAN-Bus des Vitoligno 300-C:
    - mit einer Geschwindigkeit von 125 kbit/s arbeitet.
    - im 100 Milli-Sekunden-Takt CAN-Pakete sendet.
    - CAN-Pakete kommen mit vier verschiedene ID's: 023B(hex), 033B(hex), 043B(hex) und 053B(hex).
    - Interessant wäre, was diese Nachrichten bedeuten, möglicherweise sind es interne Kommunikationen auf der Steuerplatine...? Oder es sind Request's an mögliche externe Can-Bus Teilnehmer...? Irgendwelche nützliche Daten, wie Temperaturen usw. kann ich nicht herausfiltern...

    ; Message Number
    ; | Time Offset (ms)
    ; | | Type
    ; | | | ID (hex)
    ; | | | | Data Length
    ; | | | | | Data Bytes (hex) ...
    ; | | | | | |
    ;---+-- ----+---- --+-- ----+--- + -+ -- -- -- -- -- -- --
    1) 33.7 Rx 023B 8 98 03 00 00 00 90 00 00
    2) 34.7 Rx 033B 8 75 03 00 00 00 00 00 00
    3) 35.7 Rx 043B 8 78 03 00 00 00 00 00 00
    4) 36.7 Rx 053B 8 7B 03 00 00 00 00 00 00
    5) 133.2 Rx 023B 8 CD 03 00 00 00 00 00 00
    6) 134.2 Rx 033B 8 7E 03 00 00 00 00 00 00
    7) 135.2 Rx 043B 8 81 03 00 00 00 00 00 00
    8) 136.2 Rx 053B 8 84 03 00 00 00 00 00 00
    9) 249.4 Rx 023B 8 02 04 00 00 00 00 00 00
    10) 250.3 Rx 033B 8 87 03 00 00 00 00 01 00
    11) 251.3 Rx 043B 8 8A 03 00 00 00 00 00 00
    12) 252.3 Rx 053B 8 8D 03 00 00 00 00 01 00
    13) 356.3 Rx 023B 8 37 04 00 00 AA 00 00 00
    14) 357.3 Rx 033B 8 90 03 00 00 00 00 00 00
    15) 358.3 Rx 043B 8 93 03 00 00 00 00 00 00
    16) 359.3 Rx 053B 8 96 03 00 00 00 00 00 00
    17) 431.5 Rx 023B 8 6C 04 64 00 64 00 00 00
    18) 433.6 Rx 033B 8 99 03 00 90 00 00 00 00
    19) 434.6 Rx 043B 8 9C 03 00 00 00 90 00 00
    20) 435.6 Rx 053B 8 9F 03 00 00 00 00 00 90
    21) 531.5 Rx 023B 8 A1 04 00 00 00 00 00 00
    22) 532.5 Rx 033B 8 A2 03 00 00 00 00 00 00
    23) 533.5 Rx 043B 8 A5 03 00 90 00 00 00 00
    24) 534.4 Rx 053B 8 A8 03 00 00 00 90 00 00
    25) 630.9 Rx 023B 8 F8 07 00 00 00 00 BF 00
    26) 631.8 Rx 033B 8 AB 03 00 00 00 00 00 90
    27) 632.8 Rx 043B 8 AE 03 00 00 00 00 00 00
    28) 633.8 Rx 053B 8 B1 03 00 90 00 00 00 00
    29) 733.3 Rx 023B 8 D6 04 00 00 00 00 00 00
    30) 734.2 Rx 033B 8 B4 03 00 00 02 00 00 00
    31) 735.2 Rx 043B 8 B7 03 00 00 00 00 00 00
    32) 736.2 Rx 053B 8 BA 03 00 00 00 00 00 00
    ......

    Angemerkt sei hier, dass kein externer CAN-Bus Teilnehmer (wie z.B. ein Vitotrol 350-C) angeschlossen ist.

    Ich habe heute versucht CAN-Open Request's zu senden und der Kessel hat reagiert:
    z.B.
    send -> 601#40 0A 10 00 00 00 00 00
    receive -> 581#43 0A 10 00 31 2E 30 00

    Allerdings habe ich keinen Zusammenhang mit irgendwelchen brauchbaren Daten finden können bzw. bekam ich bei CAN-Open Request's meist einen Error, da ich nicht weis, welche Index-Nummern verfügbar sind...

    Mit CAN-UDS hatte ich überhaupt keine Erfolge, da reagiert der Kessel offensichtlich gar nicht...


    Interessant wäre natürlich, wie die Sniffer-Aufzeichnung aussehen würde, wenn ein Vitotrol 350-C angeschlossen ist, da müssten dann ja aussagekräftige Daten über den BUS laufen.
    Problem ist nur, dass, das Vitotrol 350-C über 1000.- Flocken kostet...

    Hat hier jemand weitere Infos bezüglich der CAN-BUS Thematik des Vitoligno 300-C?
    Würde mich über weitere Inputs hier freuen ...

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!