Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    13
    1
    142

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Test Adapter canbus v1.1.x Latest

Scheduled Pinned Locked Moved Tester
285 Posts 13 Posters 46.8k Views 11 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • crycodeC Offline
    crycodeC Offline
    crycode
    Developer
    wrote on last edited by
    #12

    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.

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

    C 1 Reply Last reply
    0
    • crycodeC crycode

      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 Offline
      C Offline
      cb187
      wrote on last edited by
      #13

      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 1 Reply Last reply
      0
      • 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
        wrote on last edited by
        #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 Reply Last reply
        0
        • C Offline
          C Offline
          cb187
          wrote on last edited by
          #15

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

          crycodeC 1 Reply Last reply
          0
          • C cb187

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

            crycodeC Offline
            crycodeC Offline
            crycode
            Developer
            wrote on last edited by
            #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 Reply Last reply
            0
            • C Offline
              C Offline
              cb187
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by
                #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 Reply Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Reply Last reply
                        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
                          wrote on last edited by
                          #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 Reply Last reply
                          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
                            wrote on last edited by 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 Reply Last reply
                            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
                              wrote on last edited by
                              #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 Reply Last reply
                              0
                              • C Offline
                                C Offline
                                cb187
                                wrote on last edited by
                                #26

                                @michael-wind

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

                                M 1 Reply Last reply
                                0
                                • C cb187

                                  @michael-wind

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

                                  M Offline
                                  M Offline
                                  Mic208
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  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
                                    wrote on last edited by
                                    #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 Replies Last reply
                                    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
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #30

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

                                        1 Reply Last reply
                                        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
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          568

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe