Ankündigung

Einklappen
Keine Ankündigung bisher.

Brunner EOS 7 mit BHZ 3 an KNX anbinden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Das mit dem CAN Bus lauschen habe ich jetzt auch in der Winterzeit vor

    melde dich mal wenn du da einen Schritt weiter bist

    Ich weiss auch noch nicht genau auf welchen Stecker ich in der Steuerung muss - ich würde vom Gefühl her auf den Stecker gehen, der zur Zusatzplatine geht. da muss ja eine Kommunikation stattfinden

    Wenn du was rausfindest melde dich

    Kommentar


      #32
      Carstene Leif Adelt

      Guckt doch einfach in den ersten Post dieses Threads ich hab doch alles erläutert, wie man dran kommt
      und weiter im Thread auch den Code für mein Python-Script

      Kommentar


        #33
        Hallo Freeman,
        da hast Du völlig Recht. Ich bin auch schon fleißig dabei herumzuprobieren.
        Ich war allerdings kühn genug auf einer anderen Hardware aufzusetzen. Da ich eh einen HomeAssistant im Einsatz habe und noch ein paar Wemos D1 mini-Boards hier rumlagen habe ich mir ein MCP2515 CAN Bus Modul dazu bestellt.
        Alles miteinander verdrahtet und mittels ESPHOME den D1 bespielt.
        Noch habe ich keine Ausleseergebnisse, aber das wird schon...
        Wenn ich Ergebnisse habe melde ich mich.
        VG Leif

        Kommentar


          #34
          Die gleiche Problematik habe ich auch

          Bin an dem Punkt das mit nem D1 machen zu wollen

          Kommentar


            #35
            sind die D1 nicht auch arduino-kompatibel?

            Kommentar


              #36
              Ja sind sie. Aber damit habe ich noch weniger Erfahrung (gar keine) als mit ESPHOME.
              Ich habe die Hoffnung, dass das mit dem HASS gehen sollte.

              Kommentar


                #37
                ich hab mir deine Montageanleitung mal angeschaut.
                also bei mir steht klar auf der platine, dass es der CAN bus ist

                can bus hat eigentlich 2 adern. ich hab noch 2 extra, das scheint die stromversorgung von meinem display zu sein.

                Kommentar


                  #38
                  So habe ich mir das auch gedacht und dann mit dem Multimeter gemessen und die beiden Pole an denen der Widerstand vorher angeklemmt war die Spannung gemessen. Der eine hatte etwa 2,8 der andere ca 3,3. Also habe ich mal angenommen der 2,8 ist CAN-Low und der 3,3 ist CAN-HIGH.

                  Die anderen beiden Pole habe ich unbeachtet gelassen

                  Habe das dementsprechend an meinen MCP2515 angeschlossen und bisher leider keine Datenpakete empfangen.

                  Kommentar


                    #39
                    Moin. Ich wollte mal so nach der allgemeinen Lage bei dem Brunner-Thema fragen. Bei mir läuft das ganze jetzt seit Jahren völlig Problemlos (über mein Can2MQTT-Script auf nem Rasperry). Ich habe meine EOS7 und BHZ3 damit quasi vollständig ausgelesen und kann auch Dinge in der EOS/BHZ steuern (mache ich aber aktuell nicht).

                    Was ich meine bemerkt zu haben ist, dass ich meinen Ansatz, mein Reverse-Engineering im DBC-Format gemacht zu haben, evtl. nicht richtig erklärt habe. So haben auch an anderen Stellen Leute meine Ergebnisse im Reverse-Engineering verworfen, weil sie keinen Rasperry/Python einsetzen wollten etc. Der Punkt bei DBC ist ja aber gerade, dass sich aus diesem Format sowohl Pyhton-Code als auch z.B. C-Code generieren lässt. Hat man also einmal seine CAN-Erkenntnisse in DBC dokumentiert, kann man dann im Prinzip daraus alles generieren. Ich weiß nicht, ob das vorher so klar geworden ist.

                    Ich würde mich also sehr freuen, wenn jemand Erkenntnisse zu anderen EOS oder BHZ Versionen hat, diese auch ins DBC-Format zu überführen. Gerne können wir auch eine Github-Organisation anlegen, wenn jemand direkt mitarbeiten möchte und das ganze nicht unter meinem Github-Account liegen soll.

                    Da ich auch überlege auf Arduino zu wechseln überlege ich auch eine analoge Lösung zu meinem Phyton can2mqtt-Ansatz für Arduino umzusetzen.

                    Kommentar


                      #40
                      Moin,
                      gerade erst deinen Beitrag gelesen tillsc.

                      Du kannst Dinge in der EOS/BHZ auch steuern und hast alles ausgelesen?
                      Kannst du uns das zur Verfügung stellen?
                      Ich hab es irgendwann aufgegeben alles zu prüfen und die EOS zu steuern... bei mir greift ein Arduino alles ab und schickt es an nen Raspi, der wiederum alles nur an die Edomi weiterleitet.

                      Arbeite auch gerne an ner neuen Lösung mit. Weiss gerade nicht welche Versionen ich hab.

                      Kommentar


                        #41
                        Moin,
                        ich kann lesen und technisch auch schreiben. Allerdinhs nutze ich das Schreiben nicht, daher kann meine aktuelle Umsetzung das auch nicht. Falls jemand daran interesse hätte, würde ich es aber einbauen (ist eher weniger Aufwand).
                        Ich benutze hat aus Gründen der Interoperabilität MQTT: https://github.com/tillsc/can2mqtt
                        Man "lädt" quasi das can2mqtt script mit einem DBC-File. Meine DBC Files (EOS7 und BHZ3) findet man hier: https://github.com/tillsc/brunner_can/tree/master/out

                        Wie gesagt: DBC lässt sich auch mit anderen Programmiersprachen (insbesondere C) sehr gut verwenden.

                        Kommentar


                          #42
                          Habe gerade mal geschaut und wir haben auch eine BHZ3 und ne EOS7.
                          Kann dir also leider nicht mehr Erkenntnisse über andere bieten.

                          Allerdings können wir gerne zusammen an einer Alternative basteln.
                          Du willst unbedingt auf einen Arduino?
                          Ich habe glaub nur nanos hier, die begrenzte Leistung haben. Aber vielleicht bekommen wir es schlank umgesetzt.
                          Ich hab auch schon einiges in C gemacht, wobei ich C++ mit OOP präferiere. Ist etwas angenehmer zu coden.


                          Kommentar


                            #43
                            Bisher keinne ich keinen guten Ansatz, um direkt C++-Code zu erzeugen. Ich habe es mal mit dem Open-Source-Tool dbcc versucht und für BHZ3 + EOS7 entsprechende C-Files generiert: https://github.com/tillsc/brunner_c/tree/main/src
                            Wie man das mit C verwendet findet man in der dbcc-Doku: https://github.com/howerj/dbcc

                            Kommentar


                              #44
                              den c++ code würde ich selbst schreiben. aber davon abgesehen ist c++ ja auch nichts anderes als C. du kannst ohne probleme in C geschriebene funktionen in c++ aufrufen.

                              aber so wie ich deine files verstehe hast du quasi nur eine einzige funktion.
                              der dbcc soll eigentlich für jede nachricht eine neue funktion generieren oder sehe ich das falsch?

                              stecke nicht so tief in der can thematik drin und finde den output schwer zu lesen. generator halt.


                              //edit

                              bin mir nicht sicher, wie wir die DBC files nutzen könnten.
                              ich nutze ja bereits den arduino und der hat ne library mit dem man die can daten bereits entpacken und ich glaube auch decoden kann.

                              am ende hab ich dann ein struct vom typ can_frame
                              man müsste dann die dbc files eher in eine datenstruktur konvertieren, so dass wir im code einfach suchen können.
                              da bietet sich natürlich dann eine map aus der c++ STL (standard template library) an. es gibt wohl auch einen port für arduino davon.

                              evtl. vorher die dbc files entschlacken und nur die nötigen infos rein, damit man sie aus dem file laden kann.

                              Code:
                              struct can_frame {
                                  canid_t can_id;  /* 32 bit CAN_ID + EFF/RTR/ERR flags */
                                  __u8    can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */
                                  __u8    data[CAN_MAX_DLEN] __attribute__((aligned(8)));
                              };​

                              //edit2

                              da fällt mir ein. wie ist denn dein setup bzw. wie planst du deins?
                              bei mir hängt der arduino (nano) an nem raspberry pi, der alles über netzwerk an die edomi weiterleitet.
                              so oder so müsste das bei mir über den raspberry laufen.
                              Zuletzt geändert von Freeman; 08.09.2023, 17:59.

                              Kommentar


                                #45
                                So. Sorry, ich hatte eine wichtige Änderung nicht commited... Mein Fehler. Jetzt sollte der C-Code vollständig sein: https://github.com/tillsc/brunner_c/tree/main/src

                                Mein Setup ist der Raspi+Can-Board (das hier: https://www.amazon.de/gp/product/B01HBWI8BW ).

                                Ich benutze aktuell nur mein can2mqtt Python-Script, was auch die DBC-Files einliest und daraus generisch den MQTT-Konverter macht. Daher habe ich kein Problem damit, die DBC-Files auch weiter zu entwickeln (wie jetzt für den C-Code notwendig). Ausserdem bin ich auch an der 100%-Arduino-Lösung interessiert, da das hier bei mir auch herum fliegt und Strom zu sparen natürlich immer ein Argument ist.

                                Kommentar

                                Lädt...
                                X