Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Gerät R4AVA07 Modbus mit Waveshare eibninden

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Gerät R4AVA07 Modbus mit Waveshare eibninden

Scheduled Pinned Locked Moved Hardware
4 Posts 2 Posters 365 Views 2 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.
  • K Offline
    K Offline
    KampfHund
    wrote on last edited by
    #1

    Hallo zusammen,

    habe mit Modbus noch nie etwas gemacht und bekomme es einfach nicht ans laufen...
    Ich möchte das R4AVA07 in den iobroker bekommen.

    Ich habe eine Waveshare RS232/485 to ETH im Netzwerk.
    71c406b3-4473-42d4-b8a8-870509884c51-grafik.png

    Die Iobroker Modbus einstellung sieht so aus.
    311fe145-967d-47e2-83f7-391c80f3eadf-grafik.png

    Das Gerät hat soweit eine Verbindung, habe dies auch mittels einem Modbus Tool getestet, das R4AVA07 antwortet in dem Modbus Tool auch.

    Es scheitert einfach an den Eingangsregister Einstellungen im Modbus Adapter.
    Vom R4AVA07 gibt es eine Anleitung, dort sind die ganzen Register wie es scheint in HEX.
    Link zur Anleitung

    Ich habe keine Ahnung was ich bei den Eingangsregistern eingeben muss.

    Function code 0x03
    Register address:0x0000-0x0006, Indicates 1-7 channel value
    Read number:0x0001-0x0007
    The return of the Voltage value is two bytes,High-bit in the former and low-bit
    in the post,convert it to decimal and divided by 100, is the Voltage value, Unit
    0.01V; for example:
    

    Habe schon viel gelesen, gesucht und probiert.
    Komme einfach nicht drauf wie man das umlegt.
    Vor allem weiß ich auch nicht ob ich dann unsigned16bit (big endian), float, string,double oä. einstellen muss...

    Vielleicht kennt sich hier jemand mit Modbus so Gut aus dass er es einem Modbus Laien auch Laienhaft erklären kann damit ich mit komme und für die Zukunft etwas schlauer bin 😊

    Danke!
    LG Alex

    K 1 Reply Last reply
    0
    • K KampfHund

      Hallo zusammen,

      habe mit Modbus noch nie etwas gemacht und bekomme es einfach nicht ans laufen...
      Ich möchte das R4AVA07 in den iobroker bekommen.

      Ich habe eine Waveshare RS232/485 to ETH im Netzwerk.
      71c406b3-4473-42d4-b8a8-870509884c51-grafik.png

      Die Iobroker Modbus einstellung sieht so aus.
      311fe145-967d-47e2-83f7-391c80f3eadf-grafik.png

      Das Gerät hat soweit eine Verbindung, habe dies auch mittels einem Modbus Tool getestet, das R4AVA07 antwortet in dem Modbus Tool auch.

      Es scheitert einfach an den Eingangsregister Einstellungen im Modbus Adapter.
      Vom R4AVA07 gibt es eine Anleitung, dort sind die ganzen Register wie es scheint in HEX.
      Link zur Anleitung

      Ich habe keine Ahnung was ich bei den Eingangsregistern eingeben muss.

      Function code 0x03
      Register address:0x0000-0x0006, Indicates 1-7 channel value
      Read number:0x0001-0x0007
      The return of the Voltage value is two bytes,High-bit in the former and low-bit
      in the post,convert it to decimal and divided by 100, is the Voltage value, Unit
      0.01V; for example:
      

      Habe schon viel gelesen, gesucht und probiert.
      Komme einfach nicht drauf wie man das umlegt.
      Vor allem weiß ich auch nicht ob ich dann unsigned16bit (big endian), float, string,double oä. einstellen muss...

      Vielleicht kennt sich hier jemand mit Modbus so Gut aus dass er es einem Modbus Laien auch Laienhaft erklären kann damit ich mit komme und für die Zukunft etwas schlauer bin 😊

      Danke!
      LG Alex

      K Offline
      K Offline
      KampfHund
      wrote on last edited by
      #2

      Servus!

      Wirklich niemand der helfen kann? 😩

      1 Reply Last reply
      0
      • K Offline
        K Offline
        KampfHund
        wrote on last edited by
        #3

        😧

        1 Reply Last reply
        0
        • mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by mickym
          #4

          Schau mal - ich glaube ich habe hier sowas ähnliches mit NodeRed unterstützt.

          Auch wenn Du den modbus Adapter verwendest - kannst Du evtl NodeRed als Logikmaschine nutzen. Ich selbst habe kein Modbus und kenne weder die Nodes noch den Modbus Adapter. Aber hier war zum Beispiel wie man einen Float Wert umwandeln muss, dass es Modbus versteht.

          Ansonsten hat Steve (ist zwar Node Red Guru) auch in JS gezeigt, wie Du Werte über die Zerlegung in das high und low Array in Modbus schreibst.
          6517b566-b035-41a7-8c82-4db693032fdd-image.png

          Deswegen schau Dir mal diesen Thread an: https://forum.iobroker.net/topic/65273/node-red-modbus und dann das Javascript von Steve: https://stevesnoderedguide.com/modbus-writing-data

          Der hat ein paar Beispiele, wie Du bestimmte Werte konvertieren musst.

          Für mich sieht das so aus:

          The return of the Voltage value is two bytes,High-bit in the former and low-bit
          in the post,convert it to decimal and divided by 100, is the Voltage value, Unit
          

          dass Du hier genau den Weg rückwärts machen mußt.

          Ich hab hier mal einen Flow der Konvertierung vor und rückwärts gemacht:
          1012a9e6-6fd3-4f91-8d0f-e3eadca9728c-image.png

          Sprich Du musst die beiden Bytes wieder in einen Buffer umwandeln.

          Ich hab mal das was in dem Flow rückkonvertiert wurde in JS umgesetzt:

          var highByte = 17096;
          var lowByte = 0;
          var buf0 = Buffer.alloc(2);
          var buf1 = Buffer.alloc(2);
          buf0.writeUint16BE(highByte);
          buf1.writeUint16BE(lowByte);
          
          var buf = Buffer.concat([buf0,buf1]);
          
          console.log (buf);
          var n = buf.readFloatBE(0);
          
          console.log (n);
          

          97d55b45-2101-4e61-a2fe-902069919271-image.png

          Damit hast du dann die Dezimalzahl die Du durch 100 teilen musst - oder was auch immer.

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Reply Last reply
          1
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          302

          Online

          32.4k

          Users

          81.4k

          Topics

          1.3m

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

          • Don't have an account? Register

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