Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Daten über CAN-Bus senden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Daten über CAN-Bus senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      andre1000 last edited by

      Hallo zusammen,

      ich möchte gerne mit iobroker Daten über einen CAN-Bus kommunizieren.

      Das Protokoll ist relativ einfach. PDO und anschließend die Daten in Hex.

      Als einzige Möglichkeit sehe ich hier aktuell über node-red. -> existiert vielleicht eine andere Variante?

      Der Empfang der Nachrichten funktioniert schon. Das Senden entputte sich leider als etwas komplizierter.

      Problem ist, dass über cansend die ankommenden Daten als ASCII interpretiert wird und dies anschließend mit dem ASCII Wert gesendet wird, z.B.

      0x5 als 35

      0xa als 61

      0xc8 als 63 38

      Erwarten tue ich jedoch den hex-Wert.

      Hat hier jemand vielleicht eine Idee?

      Vielen Dank für die Unterstützung,

      André
      2159_grafik1.jpg

      1 Reply Last reply Reply Quote 0
      • M
        moebius last edited by

        du könntest zb ein array als payload nehmen zB [0x30,0x78,0x35]

        1 Reply Last reply Reply Quote 0
        • A
          andre1000 last edited by

          Hallo moebius,

          vielen Dank für den Tipp. Ich habe die Funktion wie folgt geändert:

          var Integer=msg.payload;
          var hexString = Integer.toString(16);
          msg.payload = ["0x"+hexString];
          msg.canid=0x100;
          return msg; 
          
          

          Damit ist das Problem gelöst.

          André

          1 Reply Last reply Reply Quote 0
          • A
            andre1000 last edited by

            Hallo,

            jetzt möchte ich gerne noch einen Schritt weiter und 2Byte senden.

            Mein Versuch war

            msg.payload = ["0x"+"A1B2"];
            

            oder

            msg.payload = ["0x"+hexString+hexString];
            

            Leider wird dabei nur das letzte Byte gesendet.

            Hat jemand eine Idee?

            1 Reply Last reply Reply Quote 0
            • M
              moebius last edited by

              msg.payload = [0xa1,0xb2]

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

              Support us

              ioBroker
              Community Adapters
              Donate

              1.0k
              Online

              31.7k
              Users

              79.8k
              Topics

              1.3m
              Posts

              2
              5
              2263
              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