Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter canbus v1.1.x Latest

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter canbus v1.1.x Latest

    This topic has been deleted. Only users with topic management privileges can see it.
    • crycode
      crycode Developer @zmaier last edited by

      @zmaier Hast du irgendwelche aktuellen Infos dazu oder hast du das Problem inzwischen gefunden? 🙂

      Z 1 Reply Last reply Reply Quote 0
      • Z
        zmaier @crycode last edited by

        @crycode : Sorry für die späte Rückmeldung - ich hab in den letzten Tagen den Innenputz bekommen - leider hab ich grad keine Zeit für mein Heizungsspielerein 🙂
        Ich werde mich aber, wenn die Zeit hoffentlich bald mal wieder da ist, melden und mir das Thema genauer anschauen.

        DANKE
        Martin

        1 Reply Last reply Reply Quote 0
        • crycode
          crycode Developer last edited by

          Im Latest-Repo ist jetzt die v1.0.0-beta.6 verfügbar.

          In dieser Version wurde ein Fehler bei der Erstellung der Objekte behoben und eine Prüfung auf doppelt konfigurierte Nachrichten hinzugefügt.

          C 1 Reply Last reply Reply Quote 0
          • C
            cb187 @crycode last edited by

            Hallo ich würde gerne meine Rotex Wärmepumpe darüber einbinden.Diese unterstützt can.Zur Zeit verwende ich ein fhem Modul HPSU und bringe dieses nach IO.Würde es aber gerne mit diesem Adapter direkt ohne fhem abfragen und auch schreiben können.Ist das mit diesem Möglich und kann mir da geholfen werden?

            crycode 1 Reply Last reply Reply Quote 0
            • crycode
              crycode Developer @cb187 last edited by

              @cb187 Generell musst du dafür wissen welche Datenpakete (Nachrichten) auf dem Bus gesendet werden und in welcher Form die Daten dabei kodiert sind.

              Als fiktives Beispiel:
              Nachricht mit der ID 0x042 ist die aktuelle Temperatur mit 4 Datenbytes als Float Zahl.

              Wenn du diese Informationen für alle benötigten Nachrichten hast, dann kannst du die Nachrichten entsprechend im Adapter anlegen und Parser konfigurieren, die dann die eigentlichen Daten lesen und schreiben können.

              1 Reply Last reply Reply Quote 0
              • C
                cb187 last edited by

                @crycode ok ich hab nen usb to can interface ist dieses auch möglich?

                crycode 1 Reply Last reply Reply Quote 0
                • crycode
                  crycode Developer @cb187 last edited by

                  @cb187 Solange dir das ein "echtes" CAN Interface im System erzeugt (z.B. can0) sollte das funktionieren.

                  Das kannst du recht einfach mit der Eingabe von ip a in einem Terminal prüfen. Die Ausgabe sollte u.a. etwas ähnlich folgendem beinhalten:

                  3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 10
                      link/can
                  
                  1 Reply Last reply Reply Quote 0
                  • C
                    cb187 last edited by

                    @crycode leider zeigt er mir can0 nicht an.Ist ein USBtocan interface vom auto.Hab auch die utils installiert🤷‍♂️.In fhem wird er gefunden

                    crycode 1 Reply Last reply Reply Quote 0
                    • crycode
                      crycode Developer @cb187 last edited by

                      @cb187 Diese Interfaces nutzen meistens den ELM327 Chip, der leider kein echtes CAN-Interface für den Kernel bereitstellt, sondern eigene AT-Befehle zur Kommunikation nutzt. Zudem reicht er (soweit ich weiß) die CAN-Nachrichten nicht einfach durch, sondern ist eher für Diagnoseabfragen bei Autos gedacht. Die Performance soll auch nicht so das wahre sein.

                      Was du brauchst wäre z.B. ein CAN Hat für den Raspberry Pi mit einem MCP2515 CAN-Controller.

                      Das lässt sich sogar relativ einfach selbst bauen: https://crycode.de/can-bus-am-raspberry-pi 🙂

                      C 1 Reply Last reply Reply Quote 0
                      • C
                        cb187 @crycode last edited by

                        @crycode ich weiss das meine Rotex WP Can benutzt, über fhem und dem elm interface funzt es.Naja da muss ich das erstmal über fhem weiternutzen.

                        crycode 1 Reply Last reply Reply Quote 0
                        • crycode
                          crycode Developer @cb187 last edited by

                          @cb187 Ich nehme an, du meinst dieses FHEM Modul? Das ist extra für die Nutzung zusammen mit dem ELM327 gebaut.
                          Der ioBroker.canbus Adapter hingegen basiert auf SocketCAN und greift somit direkt auf Funktionen des Kernels zu.
                          Ich habe noch einen Linux SocketCAN driver for ELM327 auf GitHub gefunden. Vielleicht hilft dir der schon weiter?

                          Generell kann ich mir vorstellen, auch eine Funktion mit ELM327 in den Adapter einzubauen, jedoch fehlt mir dafür aktuell die entsprechende Hardware.

                          C 1 Reply Last reply Reply Quote 0
                          • C
                            cb187 @crycode last edited by

                            @crycode genau ich nutze dieses Fhem modul.dachte das basiert auf socketcan.Meine ich habe das gelesen.
                            Mit deinem Adapter hast natürlich jetzt soviel möglichkeiten😉neue unterstütze Hardware einzubauen.würde dir da gerne irgendwie helfen wollen😁

                            crycode 1 Reply Last reply Reply Quote 0
                            • crycode
                              crycode Developer @cb187 last edited by

                              @cb187 Das FHEM Modul Kommuniziert mit dem ELM327 direkt über AT-Befehle und nutzt nicht SocketCAN.

                              Ich werde mir das bei Gelegenheit mal anschauen und versuchen eine Unterstützung für den ELM327 einzubauen. Ich denke das könnte klappen, dass man dann zwischen SocketCAN und ELM327 auswählen kann.
                              Da aktuell andere Projekte Vorrang haben und ich mir erst einen passenden Adapter besorgen muss, kann ich im Moment leider aber noch nicht sagen, wann das sein wird.


                              Ab heute ist jetzt erst mal die v1.0.0 (ohne Beta) von ioBroker.canbus im Latest-Repo zum Testen verfügbar.

                              Einzige Änderung ist, dass die Nachrichten im Admin nun beim Laden der Seite sortiert werden. (Und aktualisierte Übersetzungen auf Russisch.)

                              Sollten hier keine Probleme mehr auftreten, dann kommt diese Version in das Stable-Repo und wird damit für alle Nutzer verfügbar. 🙂

                              C 1 Reply Last reply Reply Quote 0
                              • C
                                cb187 @crycode last edited by

                                @crycode 👍
                                Ich habe zb den hier: bbflyOBD VINT-TT55502 USB OBDII... https://www.amazon.de/dp/B01N18TOFB?ref=ppx_pop_mob_ap_share

                                1 Reply Last reply Reply Quote 0
                                • M
                                  Mic208 @crycode last edited by Mic208

                                  @crycode :
                                  Auch erstmal vielen DANK für diesen Adapter, das ist genau was ich gesucht habe!!!!
                                  Mein Plan wäre eine PV-Anlage (Fronius) mit meiner ROTEX HPSU Wärmepumpe intelligent miteinander kommunizieren zu lassen, damit man die maximale Autarkie über den Wärmespeicher Beton und Wasser meines Hauses erreichen kann. Für meine Rotex HPSU kenne ich über 150 Parameter.
                                  Verstanden habe ich allerdings die Parameter des Adapters nicht ganz:

                                  Beispiel (alle Zahlen in Hex) für die Soll-Heizkreistemperatur T-HK Soll (kein erweiterter CAN Code):

                                  Der Adapter stellt die Frage nach T-HK-Soll:
                                  10A 61 00 04 00 00 00 00

                                  Die Antwort kommt:
                                  300 22 0A 04 01 66 00 00 bedeutet 35,9°C bei einem Divisor von 10

                                  Schreiben kann ich T-HK Soll mit:
                                  300 20 0A 04 01 2F auf 30,30°C bei einem Divisor von 10

                                  Wie bilde ich das im CAN Adapter ab?

                                  Vielen Dank im Voraus

                                  Michael

                                  crycode 1 Reply Last reply Reply Quote 0
                                  • crycode
                                    crycode Developer @Mic208 last edited by

                                    @michael-wind Dafür musst du dann zwei Nachrichten anlegen. Eine mit der ID 10A zum Senden der Anfrage und eine mit der ID 300 für die Antwort bzw. das Schreiben der Soll-Temperatur.

                                    Ich hatte bereits Kontakt mit anderen Nutzern von (Rotex) Wärmepumpen. Diese Wärmepumpen verwenden scheinbar die gleichen CAN-IDs für unterschiedliche Nachrichten, wobei die Kennung der jeweiligen Nachricht dann in den ersten Datenbytes enthalten ist.

                                    Zum Senden der Anfrage würde ich daher einen Custom Parser für die ID 10A vorschlagen mit folgendem Skript zum Schreiben:

                                    buffer = Buffer.from([0x61, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00]);
                                    

                                    Damit würde, egal was du als Wert in den entsprechenden State schreibst, immer die passende Nachricht gesendet werden. Zum Auslösen kannst du dann z.B. einfach per Skript eine 1 in den State schreiben.

                                    Für die Antwort dann auch wieder ein Custom Parser mit folgendem Skript zum lesen bzw. schreiben:

                                    // auf richtige Nachricht prüfen
                                    if (buffer.length >= 5 && buffer[0] === 0x22 && buffer[1] === 0x0A && buffer[2] === 0x04) {
                                      // Wert aus dem Buffer lesen und durch 10 teilen
                                      value = buffer.readUInt16BE(3) / 10;
                                    }
                                    
                                    // Buffer zum Schreiben vorbereiten
                                    buffer = Buffer.from([0x20, 0x0A, 0x04, 0x00, 0x00]);
                                    // Wert * 10 auf Ganzzahl gerundet in den Buffer schreiben
                                    buffer.writeUInt16BE(Math.round(value * 10), 3);
                                    

                                    Für weitere Daten müsstest du dann (wahrscheinlich) nur zusätzliche Custom Parser für die Nachrichten hinzufügen.

                                    Ich hoffe das hilft dir weiter. 🙂

                                    Grüße
                                    Peter

                                    M 1 Reply Last reply Reply Quote 0
                                    • C
                                      cb187 last edited by

                                      @michael-wind

                                      Wie bekommst du denn die verbindung hin zur Rotex mit dem Adapter?

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        Mic208 @cb187 last edited by

                                        @cb187
                                        Hallo,

                                        ich habe einen CAN HAT von an einem RasPi, beispielsweise:
                                        https://www.ebay.de/itm/Waveshare-RS485-CAN-HAT-for-Raspberry-Pi-Zero-Zero-W-Zero-WH-2B-3B-3B-Allows-/183752124300?hash=item2ac87ae78c

                                        LG

                                        Michael

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          Mic208 @crycode last edited by

                                          @crycode
                                          Hallo,

                                          da wäre ich ja nie drauf gekommen, vielen Dank.

                                          Das Lesen funktioniert schon mal.
                                          Beim Schreiben mit beispielsweise

                                          // Buffer zum Schreiben vorbereiten
                                          buffer = Buffer.from([0x30, 0x00, 0x13, 0x00, 0x00]);
                                          // Wert * 10 auf Ganzzahl gerundet in den Buffer schreiben
                                          buffer.writeUInt16BE(Math.round(value * 10), 3);
                                          

                                          Kommt leider nur folgende Fehlermeldung:
                                          (2973) Failed parsing JSON from canbus.0.680.json: No state found

                                          Ich bin allerdingsa auch kein Blockly Experte, mein Script sieht so aus:

                                          var timeout;
                                          
                                          
                                          on({id: "hm-rpc.0.MEQ1849422.1.PRESS_SHORT"/*WW-OG-OS-OBEN.PRESS_SHORT*/, change: "any"}, async function (obj) {
                                            var value = obj.state.val;
                                            var oldValue = obj.oldState.val;
                                            setStateDelayed("canbus.0.680.300013"/*T-WW-Soll1-Set*/, 46, 1000, false);
                                            sendTo("email", "send", {
                                               html: 'Die Warmwasser-Solltemperatur ist für die nächsten 30 Minuten auf 47°C erhöht worden.',
                                               to: 'Michael.Wind@GMX.de',
                                               subject: 'WW-Solltemperatur für die nächsten 30 Minuten erhöht'
                                            });
                                            timeout = setTimeout(async function () {
                                              setStateDelayed("canbus.0.680.300013"/*T-WW-Soll1-Set*/, 44, 1000, false);
                                              sendTo("email", "send", {
                                                 html: 'WW-Solltemperatur zurückgestellt',
                                                 to: 'Michael.Wind@GMX.de',
                                                 subject: 'Die Warmwasser-Solltemperatur ist auf 44 °C zurückgestellt worden.'
                                              });
                                            }, 60000);
                                          });
                                          
                                          
                                          crycode C 2 Replies Last reply Reply Quote 0
                                          • crycode
                                            crycode Developer @Mic208 last edited by

                                            @michael-wind Huch, das ist tatsächlich noch ein Bug im Adapter. Schau ich mir die nächsten Tage genauer an.
                                            Als Workaround kannst du einmalig per Hand in den State canbus.0.680.json [] schreiben, damit der State angelegt wird. Dann sollte es funktionieren. 🙂

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            920
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            12
                                            278
                                            29009
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo