Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter canbus v1.1.x Latest

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    11
    1
    499

  • Neuer ioBroker-Blog online: MonatsrĂŒckblick MĂ€rz/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.9k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    847

Test Adapter canbus v1.1.x Latest

Geplant Angeheftet Gesperrt Verschoben Tester
285 BeitrÀge 13 Kommentatoren 51.1k Aufrufe 11 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C cb187

    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?

    crycodeC Offline
    crycodeC Offline
    crycode
    Developer
    schrieb am zuletzt editiert von
    #14

    @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.

    Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

    1 Antwort Letzte Antwort
    0
    • C Offline
      C Offline
      cb187
      schrieb am zuletzt editiert von
      #15

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

      crycodeC 1 Antwort Letzte Antwort
      0
      • C cb187

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

        crycodeC Offline
        crycodeC Offline
        crycode
        Developer
        schrieb am zuletzt editiert von
        #16

        @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
        

        Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          cb187
          schrieb am zuletzt editiert von
          #17

          @crycode leider zeigt er mir can0 nicht an.Ist ein USBtocan interface vom auto.Hab auch die utils installiertđŸ€·â€â™‚ïž.In fhem wird er gefunden

          crycodeC 1 Antwort Letzte Antwort
          0
          • C cb187

            @crycode leider zeigt er mir can0 nicht an.Ist ein USBtocan interface vom auto.Hab auch die utils installiertđŸ€·â€â™‚ïž.In fhem wird er gefunden

            crycodeC Offline
            crycodeC Offline
            crycode
            Developer
            schrieb am zuletzt editiert von
            #18

            @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 :-)

            Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

            C 1 Antwort Letzte Antwort
            0
            • crycodeC crycode

              @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 Offline
              C Offline
              cb187
              schrieb am zuletzt editiert von
              #19

              @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.

              crycodeC 1 Antwort Letzte Antwort
              0
              • C cb187

                @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.

                crycodeC Offline
                crycodeC Offline
                crycode
                Developer
                schrieb am zuletzt editiert von
                #20

                @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.

                Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

                C 1 Antwort Letzte Antwort
                0
                • crycodeC crycode

                  @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 Offline
                  C Offline
                  cb187
                  schrieb am zuletzt editiert von
                  #21

                  @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😁

                  crycodeC 1 Antwort Letzte Antwort
                  0
                  • C cb187

                    @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😁

                    crycodeC Offline
                    crycodeC Offline
                    crycode
                    Developer
                    schrieb am zuletzt editiert von
                    #22

                    @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. :-)

                    Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

                    C 1 Antwort Letzte Antwort
                    0
                    • crycodeC crycode

                      @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 Offline
                      C Offline
                      cb187
                      schrieb am zuletzt editiert von
                      #23

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

                      1 Antwort Letzte Antwort
                      0
                      • crycodeC crycode
                        Aktuelle Test Version 1.2.x
                        Veröffentlichungsdatum 22.06.2021
                        Github Link https://github.com/crycode-de/ioBroker.canbus

                        Logo

                        Der CAN-Bus (Controller Area Network) ist ein serielles Bussystem. Er kam ursprĂŒnglich vorrangig von Fahrzeugen zum Einsatz und ist inzwischen auch im Bereich der Heimautomatisierung recht verbreitet.

                        Dieser Adapter soll eine direkte Anbindung eines CAN-Interfaces (z.B. can0) an ioBroker ermöglichen.
                        Hierbei geht es um reine CAN-Nachrichten von bis zu 8 Byte DatenlÀnge. Aufgesetzte Protokolle wie z.B. CANOpen sind nicht vorgesehen.

                        UnterstĂŒtzt wird jede Hardware, die sich auf einem Linux-basierten Betriebssystem als CAN-Interface meldet. Aufgrund der zugrundeliegenden socketcan Library werden Windows-Systeme leider nicht unterstĂŒtzt.

                        Die Admin-Seite ist mit React auf Basis von adapter-react gebaut. Da dies noch recht neu ist, wÀren hier sicherlich auch ausgiebige Tests nicht verkehrt. ;-)

                        Dieser Adapter verwendet Sentry Libraries um automatisch Fehler an die Entwickler (mich) zu senden. FĂŒr mehr Details und Informationen zum Deaktivieren des Error-Reportings siehe Sentry-Plugin Dokumentation.

                        Features

                        • Empfangen und Senden von CAN-Nachrichten in Standard- und Extended-Frames
                        • Jede Nachricht kann einzeln zum Senden und/oder Empfangen konfiguriert werden
                        • Möglichkeit automatisch empfangene, aber noch nicht konfigurierte, CAN-Nachrichten hinzuzufĂŒgen
                        • Konfiguration von Parsern fĂŒr die einzelnen CAN-Nachrichten zum Lesen/Schreiben von Daten von/in den Rohdaten-Buffer der Nachrichten
                          • Zahlentypen
                          • Boolsche Werte inkl. Bitmasken
                          • Strings in verschieden Encodings
                          • Eigene Scripte zum Lesen vom / Schreiben in den Buffer der Rohdaten
                        • Erweiterte Import/Export Funktionen
                          • Import von Nachrichtenkonfigurationen zur Erweiterung der bestehenden Konfiguration
                          • Import vor vordefinierten "bekannten" Konfigurationen von GitHub direkt im Admininterface
                          • Export und Import der Nachrichtenkonfigurationen als json oder csv Dateien
                        • Optionale Verwendung der DatenlĂ€nge (DLC)
                        • Optionale UnterstĂŒtzung des RTR-Flags
                        • Optionale Raw-States, welche die Rohdaten der empfangenen bzw. gesendeten/zu sendenden CAN-Nachrichten-Objekte beinhalten

                        Anforderungen

                        • Linux Betriebssystem
                        • CAN-Hardware, die vom Kernel unterstĂŒtzt wird und ein Interface wie beispielsweise can0 bereitstellt
                        • Kenntnisse ĂŒber die CAN-Nachrichten auf dem Bus (nicht zwingend erforderlich, aber hilfreich)

                        Parser

                        Über die Parser können Daten aus den Rohdaten einer CAN-Nachricht extrahiert bzw. in diese hineingeschrieben werden.

                        Es gibt vordefinierte Parser fĂŒr die nachfolgend aufgefĂŒhrten Datentypen und zusĂ€tzlich die Möglichkeit eigene Scripte zum Lesen/Schreiben zu erstellen.

                        Zahlentypen im Big-Endian und Little-Endian Format

                        • Signed und Unsigned 8, 16 und 32 Bit Integer
                        • 32 Bit Float
                        • 64 Bit Double

                        Boolsche Werte

                        • 1 Byte inkl. UnterstĂŒtzung von Bitmasken

                        Strings

                        • 1 bis 8 Byte LĂ€nge
                        • Encodings: ascii, base64, hex, latin1, utf8, utf16le

                        Eigene Skripte
                        Beim Parsertyp Custom können eigene Skripte zum Lesen/Schreiben der Werte genutzt werden.
                        Diese Skripte laufen in einer Sandbox (Ă€hnlich den Skripten vom JavaScript Adapter).

                        Folgende Features können in den Skripten genutzt werden:

                        • Die meisten Node.js Standardfunktionen
                        • async/await
                        • Log-Funktionen des Adapters: log.warn('something'), log.info('something'), log.debug('something')
                        • getStateAsync('id') und getObjectAsync('id'), wobei id die vollstĂ€ndige ID des States/Objektes ist

                        Fehler in den Skripten werden vom Adapter abgefangen und ins Log geschrieben.

                        In beiden Skripen sind die Variablen value und buffer vordefiniert. buffer enthÀlt dabei jeweils die aktuellen Rohdaten der CAN-Nachricht als Node.js Buffer. value sollte beim Lesen auf den gelesenen Wert gesetzt werden. Beim Schreiben enthÀlt value den zu schreibenden Wert.

                        Screenshots

                        Admin Allgemein

                        Admin Testnachricht

                        Admin Import/Export

                        Objekte

                        Schlusswort

                        Die Übersetzungen sollten in Deutsch und Englisch vollstĂ€ndig und korrekt sein.
                        Übersetzungen fĂŒr andere Sprachen sind teils automatisch ĂŒbersetzt und teils noch gar nicht vorhanden. Wer mag kann gerne ĂŒber Weblate die Übersetzungen vervollstĂ€ndigen/korrigieren.

                        Viel Spaß beim Testen!
                        Ich freue mich auf Feedback. :-)

                        GrĂŒĂŸe
                        Peter

                        M Offline
                        M Offline
                        Mic208
                        schrieb am zuletzt editiert von Mic208
                        #24

                        @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

                        TrinaSolar 12,24 kWp Ost/West – KOSTAL Plenticore Plus 10 / Solax X1 / Growatt 1500TL-X – Nilar Homebox 5,76 – WĂ€rmepumpe Rotex HPSU gesteuert mit CAN-HAT (RasPi) – e-208 (im Sommer'22)

                        crycodeC 1 Antwort Letzte Antwort
                        0
                        • M 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

                          crycodeC Offline
                          crycodeC Offline
                          crycode
                          Developer
                          schrieb am zuletzt editiert von
                          #25

                          @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

                          Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

                          M 1 Antwort Letzte Antwort
                          0
                          • C Offline
                            C Offline
                            cb187
                            schrieb am zuletzt editiert von
                            #26

                            @michael-wind

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

                            M 1 Antwort Letzte Antwort
                            0
                            • C cb187

                              @michael-wind

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

                              M Offline
                              M Offline
                              Mic208
                              schrieb am zuletzt editiert von
                              #27

                              @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

                              TrinaSolar 12,24 kWp Ost/West – KOSTAL Plenticore Plus 10 / Solax X1 / Growatt 1500TL-X – Nilar Homebox 5,76 – WĂ€rmepumpe Rotex HPSU gesteuert mit CAN-HAT (RasPi) – e-208 (im Sommer'22)

                              1 Antwort Letzte Antwort
                              0
                              • crycodeC crycode

                                @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 Offline
                                M Offline
                                Mic208
                                schrieb am zuletzt editiert von
                                #28

                                @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);
                                });
                                
                                

                                TrinaSolar 12,24 kWp Ost/West – KOSTAL Plenticore Plus 10 / Solax X1 / Growatt 1500TL-X – Nilar Homebox 5,76 – WĂ€rmepumpe Rotex HPSU gesteuert mit CAN-HAT (RasPi) – e-208 (im Sommer'22)

                                crycodeC C 2 Antworten Letzte Antwort
                                0
                                • M Mic208

                                  @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);
                                  });
                                  
                                  
                                  crycodeC Offline
                                  crycodeC Offline
                                  crycode
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #29

                                  @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. :)

                                  Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • M Mic208

                                    @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);
                                    });
                                    
                                    
                                    C Offline
                                    C Offline
                                    cb187
                                    schrieb am zuletzt editiert von
                                    #30

                                    @michael-wind lÀsst du bei dir keine Datenpunkte erzeugen die du dann einfach verÀndern kannst?

                                    1 Antwort Letzte Antwort
                                    0
                                    • crycodeC crycode

                                      @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 Offline
                                      M Offline
                                      Mic208
                                      schrieb am zuletzt editiert von
                                      #31

                                      @crycode
                                      Hallo crycode,

                                      ok, jetzt lautet die Fehlermeldung:
                                      (4742) Failed parsing JSON from canbus.0.680.json: SyntaxError: Unexpected end of JSON input

                                      Der Code ist aber doch korrekt, sogar https://jsonformatter.curiousconcept.com/# meckert ihn nicht an.

                                      TrinaSolar 12,24 kWp Ost/West – KOSTAL Plenticore Plus 10 / Solax X1 / Growatt 1500TL-X – Nilar Homebox 5,76 – WĂ€rmepumpe Rotex HPSU gesteuert mit CAN-HAT (RasPi) – e-208 (im Sommer'22)

                                      crycodeC 1 Antwort Letzte Antwort
                                      0
                                      • M Mic208

                                        @crycode
                                        Hallo crycode,

                                        ok, jetzt lautet die Fehlermeldung:
                                        (4742) Failed parsing JSON from canbus.0.680.json: SyntaxError: Unexpected end of JSON input

                                        Der Code ist aber doch korrekt, sogar https://jsonformatter.curiousconcept.com/# meckert ihn nicht an.

                                        crycodeC Offline
                                        crycodeC Offline
                                        crycode
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #32

                                        @michael-wind Wann genau kommt die Meldung und was steht dabei im json State?
                                        Beim Schreiben von z.B. 46 in den Temperatur-State sollte der json-State mit dem oben genannten Schreiben-Skript diesen Inhalt bekommen: [48,0,19,1,204]

                                        Meine Adapter: discord | canbus | ds18b20 | odl | radiohead

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • crycodeC crycode

                                          @michael-wind Wann genau kommt die Meldung und was steht dabei im json State?
                                          Beim Schreiben von z.B. 46 in den Temperatur-State sollte der json-State mit dem oben genannten Schreiben-Skript diesen Inhalt bekommen: [48,0,19,1,204]

                                          M Offline
                                          M Offline
                                          Mic208
                                          schrieb am zuletzt editiert von
                                          #33

                                          @crycode
                                          Hi,

                                          das war jetzt wunderbare Selbstheilung, ich hatte wirklich nichts geĂ€ndert ĂŒber Nacht 😇 :

                                          canbus.0 (8632) sending can message: {"id":1664,"ext":false,"rtr":false,"data":{"type":"Buffer","data":[48,0,19,1,204]}}
                                          canbus.0 (8632) sending can message: {"id":1664,"ext":false,"rtr":false,"data":{"type":"Buffer","data":[48,0,19,1,184]}}
                                          

                                          Und die Rotex HPSU reagiert auch korrekt. Alles perfekt. Dann kann ich mein 6 Jahre altes Script jetzt in Rente schicken.

                                          Vielen Dank fĂŒr die schnellen Hilfen, der Rest ist ja dann nur noch ein Kinderspiel.

                                          Michael

                                          TrinaSolar 12,24 kWp Ost/West – KOSTAL Plenticore Plus 10 / Solax X1 / Growatt 1500TL-X – Nilar Homebox 5,76 – WĂ€rmepumpe Rotex HPSU gesteuert mit CAN-HAT (RasPi) – e-208 (im Sommer'22)

                                          crycodeC 1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          573

                                          Online

                                          32.9k

                                          Benutzer

                                          83.0k

                                          Themen

                                          1.3m

                                          BeitrÀge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe