Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    343

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
orno or-we-516 modbus
60 Beiträge 11 Kommentatoren 12.1k Aufrufe 10 Watching
  • Ä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 Offline
    C Offline
    charakterkopf
    schrieb am zuletzt editiert von charakterkopf
    #2

    Habe mich durch den Modbus gewühlt und selbst einen Ersten Versuch unternommen:

    Ihr benötigt neben dem Zähler ca 60€ nur einen USB RS485 Konverter von Ebay. Der Bus ist eigentlich noch mit 2 x 120 Ohm Widerständen abzuschliessen, klappt bei mir auch ohne.

    Bitte die Importe im Script beachten:

    import minimalmodbus
    import serial
    import time
    import struct
    import binascii
    import paho.mqtt.client as paho
    

    Ziel ist das Script regelmässig die Daten auslesen und per MQTT Bereitstellen zu lassen.

    Die Registernummer sind in Hexadezimal aus der ORNO Software ersichtlich (s. Herstellerseite).

    1 Antwort Letzte Antwort
    0
    • C Offline
      C Offline
      charakterkopf
      schrieb am zuletzt editiert von charakterkopf
      #3

      So nachdem der Zähler installiert ist (Fachmann!!), hier das Finale Script.IMG_0321.JPG

      Die Sendefrequenz kann eingestellt werden über die Sleep Funktion am Ende (Hier alle 15 Sekunden)

      #!/usr/bin/env python3
      
      import minimalmodbus
      import serial
      import time
      import struct
      import binascii
      import paho.mqtt.client as paho
      from time import gmtime, strftime
      
      def umwandeln_ieee(Wert):  #Umwandlung Array of int ( 4 byte) in float nach IEEE 754
          Wert2=str(hex(Wert))
          Wert2=Wert2.replace('0x', '')
          if Wert2=='0':
             Wert2='00000000'
          Wert3=struct.unpack('>f', binascii.unhexlify(Wert2))[0]
         #Wert3= round(Wert3,3)
          return (Wert3)
      
      #Hilfvariable im bei Auslesefehler nicht zu senden
      go=True
      
      #mqtt  Config Daten hier Eintragen
      mqtt_username=""
      mqtt_password=""
      mqtt_server="192.168.0.2"
      mqtt_port=1885
      mqtt_subscribe="/Zaehler"
      
      def on_subscribe(client, userdata, mid, granted_qos):
         print("Gesendet!")
      
      def on_message(client, userdata, msg):
         print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
      
      client = paho.Client(client_id="Zaehler", clean_session=True, userdata=None, protocol=paho.MQTTv31)
      client.on_subscribe = on_subscribe
      client.on_message = on_message
      client.username_pw_set(mqtt_username, mqtt_password)
      client.connect(mqtt_server, mqtt_port,60)
      client.subscribe(mqtt_subscribe, qos=1)
      
      #Adapter für Modbus Anlegen 
      smartmeter = minimalmodbus.Instrument('/dev/ttyUSB0', 1,) # port name, slave address (in decimal)
      smartmeter.serial.baudrate = 9600         # Baud
      smartmeter.serial.bytesize = 8
      smartmeter.serial.parity   = serial.PARITY_EVEN # vendor default is EVEN
      smartmeter.serial.stopbits = 1
      smartmeter.serial.timeout  = 0.6          # seconds
      smartmeter.mode = minimalmodbus.MODE_RTU   # rtu or ascii mode
      smartmeter.clear_buffers_before_each_transaction = False
      smartmeter.debug = False # set to "True" for debug mode
      
      #Debug Werte für L1 ausgeben
      werteausgeben= True
      
      
      while True:
      
          client.loop_start()
      
       #Werte Abfragen
          try:
              #Adresse = smartmeter.read_register(2, 0, 3, False)  # registeraddress, number_of_decimals=0, functioncode=3, signed=False
              L1Spannung= umwandeln_ieee(smartmeter.read_long(14, 3, False, 0)) #registeraddress, functioncode=3, signed=False, byteorder=0)
              L2Spannung= umwandeln_ieee(smartmeter.read_long(16, 3, False, 0))
              L3Spannung= umwandeln_ieee(smartmeter.read_long(18, 3, False, 0))
              Frequency= umwandeln_ieee(smartmeter.read_long(20, 3, False, 0))
              L1Strom= umwandeln_ieee(smartmeter.read_long(22, 3, False, 0))
              L2Strom= umwandeln_ieee(smartmeter.read_long(24, 3, False, 0))
              L3Strom= umwandeln_ieee(smartmeter.read_long(26, 3, False, 0))
              Strom_gesamt=L1Strom+L2Strom+L3Strom
              Leistung_gesamt= umwandeln_ieee(smartmeter.read_long(28, 3, False, 0))
              L1Leistung= umwandeln_ieee(smartmeter.read_long(30, 3, False, 0))
              L2Leistung= umwandeln_ieee(smartmeter.read_long(32, 3, False, 0))
              L3Leistung= umwandeln_ieee(smartmeter.read_long(34, 3, False, 0))
              L1PowerFactor=umwandeln_ieee(smartmeter.read_long(54, 3, False, 0))
              L2PowerFactor=umwandeln_ieee(smartmeter.read_long(56, 3, False, 0))
              L3PowerFactor=umwandeln_ieee(smartmeter.read_long(58, 3, False, 0))
              Verbrauch_gesamt=umwandeln_ieee(smartmeter.read_long(256, 3, False, 0))
              #L1Verbrauch=umwandeln_ieee(smartmeter.read_long(258, 3, False, 0))
              #L2Verbrauch=umwandeln_ieee(smartmeter.read_long(260, 3, False, 0))
              #L3Verbrauch=umwandeln_ieee(smartmeter.read_long(262, 3, False, 0))
              go=True;
          except:
              print ("\nEinlesen nicht geklappt, versuche es erneut in 15 Sekunden")
              go=False;
      
          if go:
      
           #Werte Ausgeben falls gewünscht
              if werteausgeben:
                  print(strftime("\n%Y-%m-%d %H:%M:%S", gmtime()))
                  print ("Aktuelle Werte:")
                  #AdresseTxt = "Die Slave Adresse ist: %s" % Adresse
                  #print (AdresseTxt)
                  L1Spannungtxt = "L1Spannung ist: %f V" % L1Spannung
                  print (L1Spannungtxt)
                  L1Stromtxt = "L1Strom ist: %f A" % L1Strom
                  print (L1Stromtxt)
                  Frequencytxt = "Frequenz ist: %f hz" % Frequency
                  print (Frequencytxt)
                  L1Leistungtxt = "L1Leistung ist: %f KW/h" % L1Leistung
                  print (L1Leistungtxt)
                  L1PowerFactortxt = "L1Power Faktor ist: %f" % L1PowerFactor
                  print (L1PowerFactortxt)
                  Leistung_gesamttxt = "Leistung Gesamt ist: %f KW" % Leistung_gesamt
                  print (Leistung_gesamttxt)
      
           # Werte Senden
              #client.publish("/Zaehler/Adresse",str(Adresse), qos=1)
              client.publish("/Zaehler/L1/L1Spannung",str(L1Spannung), qos=0)
              client.publish("/Zaehler/L2/L2Spannung",str(L2Spannung), qos=0)
              client.publish("/Zaehler/L3/L3Spannung",str(L3Spannung), qos=0)
              client.publish("/Zaehler/Gesamt/Frequency",str(Frequency), qos=0)
              client.publish("/Zaehler/L1/L1Strom",str(L1Strom), qos=0)
              client.publish("/Zaehler/L2/L2Strom",str(L2Strom), qos=0)
              client.publish("/Zaehler/L3/L3Strom",str(L3Strom), qos=0)
              client.publish("/Zaehler/Gesamt/Leistung_gesamt",str(Leistung_gesamt*1000), qos=0)
              client.publish("/Zaehler/L1/L1Leistung",str(L1Leistung*1000), qos=0)
              client.publish("/Zaehler/L2/L2Leistung",str(L2Leistung*1000), qos=0)
              client.publish("/Zaehler/L3/L3Leistung",str(L3Leistung*1000), qos=0)
              client.publish("/Zaehler/L1/L1PowerFactor",str(L1PowerFactor), qos=0)
              client.publish("/Zaehler/L2/L2PowerFactor",str(L2PowerFactor), qos=0)
              client.publish("/Zaehler/L3/L3PowerFactor",str(L3PowerFactor), qos=0)
              client.publish("/Zaehler/Gesamt/Verbrauch_gesamt",str(Verbrauch_gesamt), qos=0)
              client.publish("/Zaehler/Gesamt/Strom_gesamt",str(Strom_gesamt), qos=0)
              #client.publish("/Zaehler/L1/L1Verbrauch",str(L1Verbrauch), qos=1)
              #client.publish("/Zaehler/L2/L2Verbrauch",str(L2Verbrauch), qos=1)
              #client.publish("/Zaehler/L3/L3Verbrauch",str(L3Verbrauch), qos=1)
          time.sleep(15)
      

      Getestet werden kann das Script mit: python3 Scriptname.py
      Zum dauerhaften ausführen habe ich eine Service eingerichtet, der beim Booten automatisch gestartet wird:

      1. Service Datei erstellen: sudo nano /etc/systemd/system/smartmeter.service
      2. Inhalt der Datei, Pfade oder Dateinamen sind anzupassen:
      [Unit]
      Description=smartmeter
      After=network.target
      
      [Service]
      ExecStart=/usr/bin/python3 -u smart.py
      WorkingDirectory=/home/pi/smartmeter
      StandardOutput=inherit
      StandardError=inherit
      Restart=always
      User=root
      
      [Install]
      WantedBy=multi-user.target
      
      1. Dienst Starten und Status ausgeben:
        sudo systemctl start smartmeter
        sudo systemctl status smartmeter.service
        sudo systemctl stop smartmeter
      2. Dienst anschalten um bei einem Boot automatisch gestartet zu werden:
        sudo systemctl enable smartmeter.service

      Die Daten sollten dann in IObroker regelmässig eintreffen:

      test.png

      H 1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        rf600r
        schrieb am zuletzt editiert von
        #4

        Hallo charakterkopf,

        Wollte mich bedanken für deine Arbeit.
        Läuft spitze bei mir.

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          charakterkopf
          schrieb am zuletzt editiert von
          #5

          Danke :)

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            isexglei
            schrieb am zuletzt editiert von
            #6

            Tolle Arbeit!

            Ich habe gelesen, dass es beim 516er und 517er nicht erkennbar ist, ob gerade ins Netz eingespeist wird, oder ob vom Netz bezogen wird. Kann das hier wer widerlegen?

            F 1 Antwort Letzte Antwort
            0
            • I isexglei

              Tolle Arbeit!

              Ich habe gelesen, dass es beim 516er und 517er nicht erkennbar ist, ob gerade ins Netz eingespeist wird, oder ob vom Netz bezogen wird. Kann das hier wer widerlegen?

              F Offline
              F Offline
              fbruckm
              schrieb am zuletzt editiert von
              #7

              @isexglei Ich kann es leider nur bestätigen :-(

              Ich versuche es jetzt mit einem Lovato DMED301, der sollte das können.

              1 Antwort Letzte Antwort
              0
              • C charakterkopf

                So nachdem der Zähler installiert ist (Fachmann!!), hier das Finale Script.IMG_0321.JPG

                Die Sendefrequenz kann eingestellt werden über die Sleep Funktion am Ende (Hier alle 15 Sekunden)

                #!/usr/bin/env python3
                
                import minimalmodbus
                import serial
                import time
                import struct
                import binascii
                import paho.mqtt.client as paho
                from time import gmtime, strftime
                
                def umwandeln_ieee(Wert):  #Umwandlung Array of int ( 4 byte) in float nach IEEE 754
                    Wert2=str(hex(Wert))
                    Wert2=Wert2.replace('0x', '')
                    if Wert2=='0':
                       Wert2='00000000'
                    Wert3=struct.unpack('>f', binascii.unhexlify(Wert2))[0]
                   #Wert3= round(Wert3,3)
                    return (Wert3)
                
                #Hilfvariable im bei Auslesefehler nicht zu senden
                go=True
                
                #mqtt  Config Daten hier Eintragen
                mqtt_username=""
                mqtt_password=""
                mqtt_server="192.168.0.2"
                mqtt_port=1885
                mqtt_subscribe="/Zaehler"
                
                def on_subscribe(client, userdata, mid, granted_qos):
                   print("Gesendet!")
                
                def on_message(client, userdata, msg):
                   print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
                
                client = paho.Client(client_id="Zaehler", clean_session=True, userdata=None, protocol=paho.MQTTv31)
                client.on_subscribe = on_subscribe
                client.on_message = on_message
                client.username_pw_set(mqtt_username, mqtt_password)
                client.connect(mqtt_server, mqtt_port,60)
                client.subscribe(mqtt_subscribe, qos=1)
                
                #Adapter für Modbus Anlegen 
                smartmeter = minimalmodbus.Instrument('/dev/ttyUSB0', 1,) # port name, slave address (in decimal)
                smartmeter.serial.baudrate = 9600         # Baud
                smartmeter.serial.bytesize = 8
                smartmeter.serial.parity   = serial.PARITY_EVEN # vendor default is EVEN
                smartmeter.serial.stopbits = 1
                smartmeter.serial.timeout  = 0.6          # seconds
                smartmeter.mode = minimalmodbus.MODE_RTU   # rtu or ascii mode
                smartmeter.clear_buffers_before_each_transaction = False
                smartmeter.debug = False # set to "True" for debug mode
                
                #Debug Werte für L1 ausgeben
                werteausgeben= True
                
                
                while True:
                
                    client.loop_start()
                
                 #Werte Abfragen
                    try:
                        #Adresse = smartmeter.read_register(2, 0, 3, False)  # registeraddress, number_of_decimals=0, functioncode=3, signed=False
                        L1Spannung= umwandeln_ieee(smartmeter.read_long(14, 3, False, 0)) #registeraddress, functioncode=3, signed=False, byteorder=0)
                        L2Spannung= umwandeln_ieee(smartmeter.read_long(16, 3, False, 0))
                        L3Spannung= umwandeln_ieee(smartmeter.read_long(18, 3, False, 0))
                        Frequency= umwandeln_ieee(smartmeter.read_long(20, 3, False, 0))
                        L1Strom= umwandeln_ieee(smartmeter.read_long(22, 3, False, 0))
                        L2Strom= umwandeln_ieee(smartmeter.read_long(24, 3, False, 0))
                        L3Strom= umwandeln_ieee(smartmeter.read_long(26, 3, False, 0))
                        Strom_gesamt=L1Strom+L2Strom+L3Strom
                        Leistung_gesamt= umwandeln_ieee(smartmeter.read_long(28, 3, False, 0))
                        L1Leistung= umwandeln_ieee(smartmeter.read_long(30, 3, False, 0))
                        L2Leistung= umwandeln_ieee(smartmeter.read_long(32, 3, False, 0))
                        L3Leistung= umwandeln_ieee(smartmeter.read_long(34, 3, False, 0))
                        L1PowerFactor=umwandeln_ieee(smartmeter.read_long(54, 3, False, 0))
                        L2PowerFactor=umwandeln_ieee(smartmeter.read_long(56, 3, False, 0))
                        L3PowerFactor=umwandeln_ieee(smartmeter.read_long(58, 3, False, 0))
                        Verbrauch_gesamt=umwandeln_ieee(smartmeter.read_long(256, 3, False, 0))
                        #L1Verbrauch=umwandeln_ieee(smartmeter.read_long(258, 3, False, 0))
                        #L2Verbrauch=umwandeln_ieee(smartmeter.read_long(260, 3, False, 0))
                        #L3Verbrauch=umwandeln_ieee(smartmeter.read_long(262, 3, False, 0))
                        go=True;
                    except:
                        print ("\nEinlesen nicht geklappt, versuche es erneut in 15 Sekunden")
                        go=False;
                
                    if go:
                
                     #Werte Ausgeben falls gewünscht
                        if werteausgeben:
                            print(strftime("\n%Y-%m-%d %H:%M:%S", gmtime()))
                            print ("Aktuelle Werte:")
                            #AdresseTxt = "Die Slave Adresse ist: %s" % Adresse
                            #print (AdresseTxt)
                            L1Spannungtxt = "L1Spannung ist: %f V" % L1Spannung
                            print (L1Spannungtxt)
                            L1Stromtxt = "L1Strom ist: %f A" % L1Strom
                            print (L1Stromtxt)
                            Frequencytxt = "Frequenz ist: %f hz" % Frequency
                            print (Frequencytxt)
                            L1Leistungtxt = "L1Leistung ist: %f KW/h" % L1Leistung
                            print (L1Leistungtxt)
                            L1PowerFactortxt = "L1Power Faktor ist: %f" % L1PowerFactor
                            print (L1PowerFactortxt)
                            Leistung_gesamttxt = "Leistung Gesamt ist: %f KW" % Leistung_gesamt
                            print (Leistung_gesamttxt)
                
                     # Werte Senden
                        #client.publish("/Zaehler/Adresse",str(Adresse), qos=1)
                        client.publish("/Zaehler/L1/L1Spannung",str(L1Spannung), qos=0)
                        client.publish("/Zaehler/L2/L2Spannung",str(L2Spannung), qos=0)
                        client.publish("/Zaehler/L3/L3Spannung",str(L3Spannung), qos=0)
                        client.publish("/Zaehler/Gesamt/Frequency",str(Frequency), qos=0)
                        client.publish("/Zaehler/L1/L1Strom",str(L1Strom), qos=0)
                        client.publish("/Zaehler/L2/L2Strom",str(L2Strom), qos=0)
                        client.publish("/Zaehler/L3/L3Strom",str(L3Strom), qos=0)
                        client.publish("/Zaehler/Gesamt/Leistung_gesamt",str(Leistung_gesamt*1000), qos=0)
                        client.publish("/Zaehler/L1/L1Leistung",str(L1Leistung*1000), qos=0)
                        client.publish("/Zaehler/L2/L2Leistung",str(L2Leistung*1000), qos=0)
                        client.publish("/Zaehler/L3/L3Leistung",str(L3Leistung*1000), qos=0)
                        client.publish("/Zaehler/L1/L1PowerFactor",str(L1PowerFactor), qos=0)
                        client.publish("/Zaehler/L2/L2PowerFactor",str(L2PowerFactor), qos=0)
                        client.publish("/Zaehler/L3/L3PowerFactor",str(L3PowerFactor), qos=0)
                        client.publish("/Zaehler/Gesamt/Verbrauch_gesamt",str(Verbrauch_gesamt), qos=0)
                        client.publish("/Zaehler/Gesamt/Strom_gesamt",str(Strom_gesamt), qos=0)
                        #client.publish("/Zaehler/L1/L1Verbrauch",str(L1Verbrauch), qos=1)
                        #client.publish("/Zaehler/L2/L2Verbrauch",str(L2Verbrauch), qos=1)
                        #client.publish("/Zaehler/L3/L3Verbrauch",str(L3Verbrauch), qos=1)
                    time.sleep(15)
                

                Getestet werden kann das Script mit: python3 Scriptname.py
                Zum dauerhaften ausführen habe ich eine Service eingerichtet, der beim Booten automatisch gestartet wird:

                1. Service Datei erstellen: sudo nano /etc/systemd/system/smartmeter.service
                2. Inhalt der Datei, Pfade oder Dateinamen sind anzupassen:
                [Unit]
                Description=smartmeter
                After=network.target
                
                [Service]
                ExecStart=/usr/bin/python3 -u smart.py
                WorkingDirectory=/home/pi/smartmeter
                StandardOutput=inherit
                StandardError=inherit
                Restart=always
                User=root
                
                [Install]
                WantedBy=multi-user.target
                
                1. Dienst Starten und Status ausgeben:
                  sudo systemctl start smartmeter
                  sudo systemctl status smartmeter.service
                  sudo systemctl stop smartmeter
                2. Dienst anschalten um bei einem Boot automatisch gestartet zu werden:
                  sudo systemctl enable smartmeter.service

                Die Daten sollten dann in IObroker regelmässig eintreffen:

                test.png

                H Offline
                H Offline
                herrniffler
                schrieb am zuletzt editiert von
                #8

                @charakterkopf Hi, erstmal danke, dass du deine Arbeit mit uns teilst. Ich bin absoluter Neuling auf dem Gebiet und wollte dich daher fragen wie du den Zähler und den PI verbunden hast....beziehungsweise, ist der PI in deinem Zählerkasten eingebaut oder wohin geht das Kabel samt USB-Adapter?

                C 1 Antwort Letzte Antwort
                0
                • H herrniffler

                  @charakterkopf Hi, erstmal danke, dass du deine Arbeit mit uns teilst. Ich bin absoluter Neuling auf dem Gebiet und wollte dich daher fragen wie du den Zähler und den PI verbunden hast....beziehungsweise, ist der PI in deinem Zählerkasten eingebaut oder wohin geht das Kabel samt USB-Adapter?

                  C Offline
                  C Offline
                  charakterkopf
                  schrieb am zuletzt editiert von
                  #9

                  @herrniffler Servus, ich habe das Kabel (Netzwerkleitung) durch den Hausflur bis zum Raspberry Pi verlegt ca. 5m.

                  Der Raspberry wird über die Fritzbox mit Strom versorgt und hat noch mehr Funktionen (Anwensenheit / LED Leiste) deswegen war eine Montage im Schrank nicht möglich.

                  Gruß Martin

                  1 Antwort Letzte Antwort
                  0
                  • C charakterkopf

                    Hallo IOBroker Forum,

                    hat zufällig jemand die oben genannten Zähler bereits per Modbus angeschlossen? Habe über die Suche nichts gefunden.

                    Mein Plan ist per Raspberry und mqtt die Daten an Iobroker zusenden. Gibt es hierfür bereits Erfahrungen bzw. fertige Python Scripts? Möchte vermeiden Stundenlang an der Modbus Abfrage zu Basteln. Die Herstellerdoku scheint auch Fehler zu behalten.

                    Das fertige Script für MQTT poste ich dann anschliessend hier.

                    Danke und Gruß
                    charakterkopf

                    TbsJahT Offline
                    TbsJahT Offline
                    TbsJah
                    schrieb am zuletzt editiert von
                    #10

                    @charakterkopf Ich habe einen Orno 516 und einen Orno 517 jeweils über die den RS485 S0 Anschluss direkt per USB mit dem Raspi verbunden
                    Zum Auslesen nutze ich den Modbus Adapter

                    ff34ca7a-4ffb-4ebe-9328-ad8cd8dfd374-image.png

                    a30f122a-e4f4-48e0-97fe-058b3f4ec209-image.png

                    deviceId	address	name	description	unit	type	len	factor	offset	role	room	poll	wp
                    1	40015		L1 Voltage	V	floatbe	2	1	0	value		true	false	
                    1	40017		L2 Voltage	V	floatbe	2	1	0	value		true	false	
                    1	40019		L3 Voltage	V	floatbe	2	1	0	value		true	false	
                    1	40021		Grid Frequency	Hz	floatbe	2	1	0	value		true	false	
                    1	40023		L1 Current	A	floatbe	2	1	0	value		true	false	
                    1	40025		L2 Current	A	floatbe	2	1	0	value		true	false	
                    1	40027		L3 Current	A	floatbe	2	1	0	value		true	false	
                    1	40029		Total Active Power	kWh	floatbe	2	1	0	value		true	false	
                    1	40031		L1 Active Power	kWh	floatbe	2	1	0	value		true	false	
                    1	40033		L2 Active Power	kWh	floatbe	2	1	0	value		true	false	
                    1	40035		L3 Active Power	kWh	floatbe	2	1	0	value		true	false	
                    1	40037		Total Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                    1	40039		L1 Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                    1	40041		L2 Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                    1	40043		L3 Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                    1	40045		Total Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                    1	40047		L1 Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                    1	40049		L2 Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                    1	40051		L3 Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                    1	40053		Total Power Factor	PF	floatbe	2	1	0	value		true	false	
                    1	40055		L1 Power Factor	PF	floatbe	2	1	0	value		true	false	
                    1	40057		L2 Power Factor	PF	floatbe	2	1	0	value		true	false	
                    1	40059		L3 Power Factor	PF	floatbe	2	1	0	value		true	false	
                    1	40067		Total Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    1	40069		L1 Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    1	40071		L2 Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    1	40073		L3 Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    1	40075		Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    1	40077		L1 Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    1	40079		L2 Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    1	40081		L3 Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                    
                    

                    Ergebnis

                    0cf4a82e-c7fb-46c0-a7b3-223306d3e994-image.png

                    D 1 Antwort Letzte Antwort
                    0
                    • TbsJahT TbsJah

                      @charakterkopf Ich habe einen Orno 516 und einen Orno 517 jeweils über die den RS485 S0 Anschluss direkt per USB mit dem Raspi verbunden
                      Zum Auslesen nutze ich den Modbus Adapter

                      ff34ca7a-4ffb-4ebe-9328-ad8cd8dfd374-image.png

                      a30f122a-e4f4-48e0-97fe-058b3f4ec209-image.png

                      deviceId	address	name	description	unit	type	len	factor	offset	role	room	poll	wp
                      1	40015		L1 Voltage	V	floatbe	2	1	0	value		true	false	
                      1	40017		L2 Voltage	V	floatbe	2	1	0	value		true	false	
                      1	40019		L3 Voltage	V	floatbe	2	1	0	value		true	false	
                      1	40021		Grid Frequency	Hz	floatbe	2	1	0	value		true	false	
                      1	40023		L1 Current	A	floatbe	2	1	0	value		true	false	
                      1	40025		L2 Current	A	floatbe	2	1	0	value		true	false	
                      1	40027		L3 Current	A	floatbe	2	1	0	value		true	false	
                      1	40029		Total Active Power	kWh	floatbe	2	1	0	value		true	false	
                      1	40031		L1 Active Power	kWh	floatbe	2	1	0	value		true	false	
                      1	40033		L2 Active Power	kWh	floatbe	2	1	0	value		true	false	
                      1	40035		L3 Active Power	kWh	floatbe	2	1	0	value		true	false	
                      1	40037		Total Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                      1	40039		L1 Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                      1	40041		L2 Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                      1	40043		L3 Reactive Power	kVAR	floatbe	2	1	0	value		true	false	
                      1	40045		Total Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                      1	40047		L1 Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                      1	40049		L2 Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                      1	40051		L3 Apparent Power	kVA	floatbe	2	1	0	value		true	false	
                      1	40053		Total Power Factor	PF	floatbe	2	1	0	value		true	false	
                      1	40055		L1 Power Factor	PF	floatbe	2	1	0	value		true	false	
                      1	40057		L2 Power Factor	PF	floatbe	2	1	0	value		true	false	
                      1	40059		L3 Power Factor	PF	floatbe	2	1	0	value		true	false	
                      1	40067		Total Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      1	40069		L1 Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      1	40071		L2 Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      1	40073		L3 Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      1	40075		Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      1	40077		L1 Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      1	40079		L2 Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      1	40081		L3 Forwarded Active Energy	kWh	floatbe	2	1	0	value		true	false	
                      
                      

                      Ergebnis

                      0cf4a82e-c7fb-46c0-a7b3-223306d3e994-image.png

                      D Offline
                      D Offline
                      derdominik
                      schrieb am zuletzt editiert von
                      #11

                      @tbsjah said in Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?:

                      @charakterkopf Ich habe einen Orno 516 und einen Orno 517 jeweils über die den RS485 S0 Anschluss direkt per USB mit dem Raspi verbunden

                      Hallo, Danke für die Idee und das Script!

                      Noch eine Frage zu der Verbindung, da ich alles vorbereiten möchte, bevor der Fachmann kommt.

                      Die USB RS485 Konverter von ebay haben alle erstmal nur Schraubklemmen.

                      • Vom USB-Stick muss ich dann lediglich einen 2-adrigen Klingeldraht bis zum Zählerkasten bekommen, mehr nicht, richtig?
                      • Am ORNO selbst wird der Draht direkt angeklemmt, d.h. kein Stecker?
                      • Habt ihr die Schraubklemmen am UBS-Stick noch irgendwie geschützt oder ist diese offene Verschraubung unkritisch?

                      Grüße

                      TbsJahT E 2 Antworten Letzte Antwort
                      0
                      • D derdominik

                        @tbsjah said in Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?:

                        @charakterkopf Ich habe einen Orno 516 und einen Orno 517 jeweils über die den RS485 S0 Anschluss direkt per USB mit dem Raspi verbunden

                        Hallo, Danke für die Idee und das Script!

                        Noch eine Frage zu der Verbindung, da ich alles vorbereiten möchte, bevor der Fachmann kommt.

                        Die USB RS485 Konverter von ebay haben alle erstmal nur Schraubklemmen.

                        • Vom USB-Stick muss ich dann lediglich einen 2-adrigen Klingeldraht bis zum Zählerkasten bekommen, mehr nicht, richtig?
                        • Am ORNO selbst wird der Draht direkt angeklemmt, d.h. kein Stecker?
                        • Habt ihr die Schraubklemmen am UBS-Stick noch irgendwie geschützt oder ist diese offene Verschraubung unkritisch?

                        Grüße

                        TbsJahT Offline
                        TbsJahT Offline
                        TbsJah
                        schrieb am zuletzt editiert von
                        #12

                        @derdominik

                        • richtig
                        • richtig
                        • Schrumpfschlauch
                        D 1 Antwort Letzte Antwort
                        0
                        • TbsJahT TbsJah

                          @derdominik

                          • richtig
                          • richtig
                          • Schrumpfschlauch
                          D Offline
                          D Offline
                          derdominik
                          schrieb am zuletzt editiert von
                          #13

                          @tbsjah Danke!

                          1 Antwort Letzte Antwort
                          0
                          • D derdominik

                            @tbsjah said in Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?:

                            @charakterkopf Ich habe einen Orno 516 und einen Orno 517 jeweils über die den RS485 S0 Anschluss direkt per USB mit dem Raspi verbunden

                            Hallo, Danke für die Idee und das Script!

                            Noch eine Frage zu der Verbindung, da ich alles vorbereiten möchte, bevor der Fachmann kommt.

                            Die USB RS485 Konverter von ebay haben alle erstmal nur Schraubklemmen.

                            • Vom USB-Stick muss ich dann lediglich einen 2-adrigen Klingeldraht bis zum Zählerkasten bekommen, mehr nicht, richtig?
                            • Am ORNO selbst wird der Draht direkt angeklemmt, d.h. kein Stecker?
                            • Habt ihr die Schraubklemmen am UBS-Stick noch irgendwie geschützt oder ist diese offene Verschraubung unkritisch?

                            Grüße

                            E Offline
                            E Offline
                            easymeter
                            schrieb am zuletzt editiert von
                            #14

                            @derdominik Hallo zusammen, welchen Adapter habt Ihr verwendet um den Zähler an den USB des Raspi zu bringen?

                            TbsJahT 1 Antwort Letzte Antwort
                            0
                            • E easymeter

                              @derdominik Hallo zusammen, welchen Adapter habt Ihr verwendet um den Zähler an den USB des Raspi zu bringen?

                              TbsJahT Offline
                              TbsJahT Offline
                              TbsJah
                              schrieb am zuletzt editiert von
                              #15

                              @easymeter
                              WINGONEER CH340E USB zu TTL USB zu RS485 Konverter Adapter Windows 7/8 XP Linux Vista https://www.amazon.de/dp/B016IG6X7I/ref=cm_sw_r_apan_i_YGFPE5GW06WD0FXAQXHX

                              1 Antwort Letzte Antwort
                              0
                              • E Offline
                                E Offline
                                easymeter
                                schrieb am zuletzt editiert von
                                #16

                                Danke für die Antwort. Nachdem ich mein System auf einen NUC umgezogen habe funktioniert das Auslesen mit dem Modbus Adapter mit den oben genannten Einstellungen fast auf Anhieb.
                                Mit der schon installierten Modbus Instanz, die ich im Backup schon hatte, hatte ich aber noch Probleme. Damit wollte es nicht rennen.
                                Nachdem ich die Instanz aber gelöscht und neu Installiert habe ging es wie gesagt auf Anhieb, wo auch immer das Problem lag. Die Versionen waren die gleichen....
                                Jetzt kommt aber bei mir die nächste Ausbaustufe:
                                Ich habe mehrere Zweige, die ich gerne erfassen möchte. Hat jemand schon mehrere Zähler an dem Modbus? Wie habt Ihr das dann gemacht? Wie kann die Modbus ID im Zähler angepasst werden?
                                Würde mich freuen, wenn jemand seine Erfahrungen teilen könnte.

                                TbsJahT 1 Antwort Letzte Antwort
                                0
                                • E easymeter

                                  Danke für die Antwort. Nachdem ich mein System auf einen NUC umgezogen habe funktioniert das Auslesen mit dem Modbus Adapter mit den oben genannten Einstellungen fast auf Anhieb.
                                  Mit der schon installierten Modbus Instanz, die ich im Backup schon hatte, hatte ich aber noch Probleme. Damit wollte es nicht rennen.
                                  Nachdem ich die Instanz aber gelöscht und neu Installiert habe ging es wie gesagt auf Anhieb, wo auch immer das Problem lag. Die Versionen waren die gleichen....
                                  Jetzt kommt aber bei mir die nächste Ausbaustufe:
                                  Ich habe mehrere Zweige, die ich gerne erfassen möchte. Hat jemand schon mehrere Zähler an dem Modbus? Wie habt Ihr das dann gemacht? Wie kann die Modbus ID im Zähler angepasst werden?
                                  Würde mich freuen, wenn jemand seine Erfahrungen teilen könnte.

                                  TbsJahT Offline
                                  TbsJahT Offline
                                  TbsJah
                                  schrieb am zuletzt editiert von
                                  #17

                                  @easymeter Verbaut habe ich einen Orno 516 und einen Orno 517
                                  Läuft über 2 separate Modbus Instanzen.

                                  Das wichtige ist dass du immer den richtigen USB Port ansprichst.
                                  Bei jedem Neustart des Raspberry erhältst du neue Zuordnungen.

                                  Ganz gut erklär hier link

                                  ec1133b3-1e35-4397-81de-f31f4691dc12-image.png

                                  E 1 Antwort Letzte Antwort
                                  0
                                  • TbsJahT TbsJah

                                    @easymeter Verbaut habe ich einen Orno 516 und einen Orno 517
                                    Läuft über 2 separate Modbus Instanzen.

                                    Das wichtige ist dass du immer den richtigen USB Port ansprichst.
                                    Bei jedem Neustart des Raspberry erhältst du neue Zuordnungen.

                                    Ganz gut erklär hier link

                                    ec1133b3-1e35-4397-81de-f31f4691dc12-image.png

                                    E Offline
                                    E Offline
                                    easymeter
                                    schrieb am zuletzt editiert von
                                    #18

                                    @tbsjah Danke für den Link. So ein ähnliches Vorgehen kenne ich. Mein Gedanke wäre es, da es ja ein "Bus" ist, die weiteren Zähler hintereinander am Modbus anzuschließen und mit deren ID dann auszulesen Auslieferungszustand ist bei mir "1" gewesen). Dazu muss man aber die Modbus ID anpassen, und da bin ich noch nicht weiter gekommen. Irgendwie muss man da dann ja schreibend an das Gerät, keine Ahnung, ob der Modbusadapter das bewerkstelligen kann.
                                    Naja, mit weiteren Adaptern an anderen USB Ports wäre vielleicht auch ein Ansatz, die Dinger kosten ja auch nicht die Welt.....da muss ich nur mal schauen, wie sich der NUC dann mit USB Hubs verhält, langsam gehen mir die Ports aus ,-)

                                    TbsJahT 1 Antwort Letzte Antwort
                                    0
                                    • E easymeter

                                      @tbsjah Danke für den Link. So ein ähnliches Vorgehen kenne ich. Mein Gedanke wäre es, da es ja ein "Bus" ist, die weiteren Zähler hintereinander am Modbus anzuschließen und mit deren ID dann auszulesen Auslieferungszustand ist bei mir "1" gewesen). Dazu muss man aber die Modbus ID anpassen, und da bin ich noch nicht weiter gekommen. Irgendwie muss man da dann ja schreibend an das Gerät, keine Ahnung, ob der Modbusadapter das bewerkstelligen kann.
                                      Naja, mit weiteren Adaptern an anderen USB Ports wäre vielleicht auch ein Ansatz, die Dinger kosten ja auch nicht die Welt.....da muss ich nur mal schauen, wie sich der NUC dann mit USB Hubs verhält, langsam gehen mir die Ports aus ,-)

                                      TbsJahT Offline
                                      TbsJahT Offline
                                      TbsJah
                                      schrieb am zuletzt editiert von
                                      #19

                                      @easymeter Ich haben einen simplen USB Verteiler angesteckt
                                      Wichtig ist dann halt das du immer den richtigen Port ansprichst nach einem Neustart

                                      1 Antwort Letzte Antwort
                                      0
                                      • E Offline
                                        E Offline
                                        easymeter
                                        schrieb am zuletzt editiert von
                                        #20

                                        @tbsjah Bin heute auch etwas weiter gekommen.
                                        Ich habe einen weiteren Zähler mit einem USB Adapter direkt am PC angeschlossen und dort mit der Software von ORNO (Gibts auf der HP von ORNO beim Zähler WE517 zum Download) die Zähler ID verändert.
                                        Danach habe ich den Zähler hinter meinen bestehenden Zähler gehangen.
                                        Im Modbus Adapter dann in den "Allgemeinen" Einstellungen den Haken bei "mehrere Geräte IDs" gesetzt und in den Holdingregister die weiteren Messpunkte angelegt. Dort knn in der zweiten Spalte "Slave-ID" die ID des Zählers eingetragen werden.
                                        Damit klappt es auch mit min. zwei Zählern bei mir ohne weitere Probleme, die gewünschten Werte trudeln zuverlässig ein.

                                        1 Antwort Letzte Antwort
                                        0
                                        • E Offline
                                          E Offline
                                          easymeter
                                          schrieb am zuletzt editiert von
                                          #21

                                          Hallo zusammen,

                                          ich muss mich heute nochmal melden.
                                          Ich möchte jetzt in einer weiteren Verfeinerung die Zählerstände auch mit auslesen. (Bisher hatte ich nur die aktuellen Leistungen benötigt).
                                          Welches Register habt Ihr für den Zählerstand genommen? Ich habe im Holdingregister die 40067 bzw. die 40075 eingetragen. Bekomme da aber keine Werte und, noch viel schlimmer, im Log einen Fehler und der Adapter bleibt dann auf gelb.(Runtime Fehler).
                                          Habe ich da einen Knoten im Kopf und das falsche Register eingetragen, oder klemmt da was im Adapter?
                                          Freue mich auf Eure Antworten.
                                          Gruß
                                          Markus

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          765

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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