ETA EHACK45: CANBUS

Es gibt 8 Antworten in diesem Thema, welches 8.742 mal aufgerufen wurde. Der letzte Beitrag () ist von pamelaa.

  • Hallo, hat jemand Erfahrungen mit dem Canbus bei ETA? Ich will eine Can Bridge erstellen und bräuchte die Baudrate Can Acceptance Code und Can Acceptance Mask.


    Danke im VorausETA EHACK45 CANBUS

  • Was hast du vor?
    Ein paar Unterlagen habe ich.. Könnte ihr dir schicken, ob es dir hilft weiß ich nicht


    Gesendet von meinem SM-G935F mit Tapatalk

  • Hallo, ich will eine längere Strecke (Fernwärme mit Lichtwellenleiter überbrücken als Blitzschutz) und bräuchte die Baudrate, ich hab mir jetzt schon alle Unterlagen der Chiphersteller durchgeschaut und immer steht bis zu 1MBit/s aber ich hätte laut Oszilloskop 60kBit/s herausbekommen aber die Bridge funktioniert leider nicht.


    Danke im Voraus

  • Hallo Elektromichel,


    falls es für Dich noch interessant ist, hier ein paar Infos, die ich durch probieren selber herausgefunden habe.
    Ich stand frustriert vor dem gleichen Problem und habe es aber gelöst und mich nun extra hier angemeldet um meine Erkenntnisse zu teilen, vielleichts hilft's ja.


    Um Deine Frage direkt zu beantworten:
    Der ETA-CAN-Bus ist "elektrisch" ein High-Speed Bus, die Bitrate beträgt 100 kBit/s


    Meine Konfiguration: ETA-SH30 <--> CAN-Bus (30 Meter) <--> Heizkreiserweiterung mit solarer Brauchwassererwärmung. Das Ganze ist Bj. 2007
    Mein Ziel: Rückspeisung des im Sommer mitunter zu warmen solaren Brauchwassers in den kühlen Pufferspeicher durch Einschalten der Boilerpumpe. Das solare Brauchwasser soll stets etwa 50°C haben.
    Ich hatte mal den Hersteller zur Rückspeisung angeschrieben, aber der entwickelt da nichts mehr weiter, zu alt.


    Das Projekt ist jetzt erfolgreich abgeschlossen und ich habe das Ziel wie folgt erreicht:

    Die beiden ARDUINO-Komponenten werden einfach aufeinander "gestapelt"


    ARDUINO-CAN-Bus-Shield dann einfach an den ETA-CAN-Bus anschließen. Der ETA-CAN-Bus liefert auch gleich 12V Versorgungsspannung mit (nominal 12V, real 15V).
    Achtung: Beim Shield ist auf einer Seite der Platine die Beschriftung für CAN-H und CAN-L vertauscht. Keine Angst, es geht nichts kaputt, es funktioniert halt bloß nicht.


    Über die serielle USB-Schnittstelle habe ich mir die Telegramme am Laptop (Unix) auf die Konsole ausgeben lassen, man erkennt aber nicht wirklich etwas, die Daten rauschen nur so durch:




    Um einen vernünftigen stabilen Überblick zu bekommen habe ich mir in JAVA einen kleinen "Monitor" programmiert, dann sieht es so aus:





    Wie man sieht, liegt nicht alle Daten auf dem CAN-Bus, sondern nur unbedingt notwendige Daten (37 Adressen/Subadressen).
    Das macht auch Sinn, denn der Heizkreiserweiterung kann ja beispielsweise die Lüfterdrehzahl des Kessels auch egal sein.


    Jetzt kann man mit der Analyse der Adressen und deren Daten beginnen.
    In meinem Monitor ist die Spalte in rot, ganz links eine Hauptadresse und ergibt kombiniert mit der Subadresse in Spalte 3 die komplette Adresse.
    Die 2. Spalte ist die Anzahl der bereitgestellten Bytes in Adresse/Subadresse, die ausgelesen werden kann.
    Temperaturen werden in 1/10 Grad übermittelt und sind 16 Bit kodiert. Die 16 Bit werden nacheinander in 2 Bytes übertragen, das ist eigentlich schon alles.
    Schön zu sehen ist die Adresse 0x18FB0000, sie enthält Datum, Uhrzeit und Wochentag. Wie man sieht, entstand der Screenshot am 18.4.19 um 19:40:51 Uhr , es war Wochentag 4 = Donnerstag.


    Hier noch eine Liste mit dekodierten Adressen, die aber noch einige Rätsel aufgibt.
    Mir ist das aber nicht wichtig, meine benötigten Daten habe ich herausgefunden und mein Ziel ist erreicht: Die gewünschte Rückspeisung funtioniert, incl. Legionellenabtötung etwa alle 7 Tage und das Verhalten nach einem simulierten Stromausfall wurde auch positiv getestet.
    Und ein Gimmik ist auch noch dabei: Die Temperaturen gebe ich mit einer Leuchtdiode im Morsecode aus. Macht zwar nicht wirklich Sinn, aber es blinkt so schön :)


    Vielleicht findet ja noch jemand mehr heraus,


    viel Spaß und Gruß
    Arduino-Heizer




    Spalte1: Adresse
    Spalte2: Subadresse
    Spalte3: Beispielwert der übertragenen Bytes zum Beispiel 2/44
    Spalte4 Errechnete Temperatur in 1/10 °C (2*256+44) = 556 enspricht also 55,6 °C


    #####################################################################################################################################################
    0x10600008 0: 1/233 2/188 488 700 Ändert sich bei Potiänderung für Raumtemperatur (Puffersolltemp. ?)
    0x10600008 1: 2/95 608 Puffer-Soll ???
    0x10600008 3: 2/44 556 Kesseltemperatur
    0x10600008 4: 2/250 760 Puffer oben
    0x10600008 5: 2/250 760 Puffer oben
    0x10600008 7: 3/32 800 Kessel-Soll
    0x10600008 12: 2/8 518 Puffer unten
    0x10600008 13: 0/100 ??? LED an???



    0x14290820 2/29: 1/250 505 Vorlauf Heizkreis 3
    0x14290820 2/33: 1/2 290 Raumtemperatur 3, abhängig von Nacht/Auto/Tag
    0x14290820 2/38: 1/130 385 Boiler unten Solar
    0x14290820 2/39: 1/156 411 Kollektor



    0x18FB0000 2: Datum/Uhrzeit



    0xC410020 /: 2/182 692
    0xC410020 /: 1/130 385
    0xC410020 /: 1/160 415
    0xC410020 /: 0/78 78


    0x1C370008 2:
    0x1C370008 6:



    0x1C382008 [3]: 0/1/3 Mischer Halt/Auf/Zu



    0x0C410008 /: 4 Displayzeilen/Temperaturen
    0x0C410020 /: 4 Displayzeilen/Boiler




    0x14292008 1/0 82 14/16 aktiv im Betrieb ???



    0x4120008 Boiler oben?



    0x14442000 0/[5] 100 Boilerpumpe ein
    0x8460020 0/[5] 100 Boilerpumpe ein



    #####################################################################################################################################################

  • Hallo zusammen,


    da ja scheinbar doch Interesse an dem Thema besteht, habe ich noch etwas für euch.


    In der angehängten zip-Datei findet ihr mein Analyse-Werkzeug, das ich seinerzeit benutzt habe um mir einen Überblick über die Telegramme auf dem ETA-CAN-Bus zu verschaffen. Das Ergebnis davon ist in dem einen Bild oben zu sehen.


    Das ganze besteht aus 2 Teilen:

    • Auf der Sendeseite dient ein Arduino-Sketch dazu, die Telegramme des CAN-Bus' auf die serielle Schnittstelle des Laptops zu schicken (sketch_feb23a_SerialOut).
    • Auf der Empfängerseite werden diese Telegramme in einem Java-Programm nach Adressen geordnet und auf die GUI ausgegeben (ETA-CANBus-Monitor.jar).
      Die Interpretation dieser Bytes muss jeder selber vornehmen, da ich vermute, dass diese von der Anlagenkonfiguration abhängig sind.



    Vorgehensweise:

    • Zunächst wird die Hardware (Arduino-Zero + CAN-Bus-Shield) ordentlich installiert, d.h., an den ETA-CAN-Bus angeschlossen und die angehängte zip-Datei wird entpackt.
    • Dann wird das Sketch sketch_feb23a_SerialOut auf den Arduino geladen, die Verbindung zum Laptop lasst ihr ab jetzt bestehen.
    • Anschließend wird auf dem Laptop das Analyseprogramm gestartet, hier gibt es 2 Möglichkeiten:

      • Möglichkeit "Glückspilz": Ihr arbeitet mit Linux (bei mir Ubuntu) und das serielle Gerät ist wie bei mir /dev/ttyACM0. Dann könnt ihr das Monitor-Programm direkt starten mit
        java -jar "/Pfad/bis/zum/entpackten/distVerzeichns/dist/ETA-CANBus-Monitor.jar", andernfalls gibt es einen Java-Ausnahmefehler (und ja, ich weiß, es ist ganz schlechter Stil Ausnahmefehler nicht abzufangen, aber bedenkt bitte, dass das hier nie zur Veröffentlichung vorgesehen war)
      • Möglichkeit "Pechvogel": Ihr müsst (oder wollt) an dem Programm Änderungen vornehmen, z.B. den Wert für die Serielle Schnittstelle (in ETA_CANBus_Monitor.java in Zeile 68) anpassen und selber kompilieren.
        Ich habe es damals mit NeatBeans (8.2) entwickelt und ihr könnt die zip-Datei ETA-CANBus-Monitor.zip in NetBeans importieren. Wenn ihr mit Eclipse arbeitet sollte der Import auch funktionieren, ich habe es aber selbst nicht ausprobiert: https://stackoverflow.com/ques…eans-project-into-eclipse


    Und noch etwas ganz Wichtiges zum Schluss:
    Die beiden Softwarekomponenten hier in diesem Beitrag sind experimentell, quick and dirty und nie zur Veröffentlichung gedacht gewesen. Es gibt kaum eine Fehlerbehandlung denn ich wollte damals einfach nur schnell vorankommen.



    Rückmeldungen und neue Erkenntnisse eurerseits sind willkommen, bedenkt aber bitte, dass ich hier im Forum nicht hauptberuflich unterwegs bin, bisweilen also etwas Geduld erforderlich ist :)



    VG
    ArduinoHeizer

  • Hallo Elektromichl,
    Hast Du es mit Deiner CAN-Bridge eigentlich hinbekommen? Wie hast Du es genau gemacht? Bin gerade dabei, ein Nahwärmenetz aufzubauen und würde die CAN Anbindung ebenfalls gern über ein vorhandenes LWL-Kabel realisieren.


    Viele Grüße
    Peter

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!