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
    334

  • 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
    #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
                                        • E Offline
                                          E Offline
                                          easymeter
                                          schrieb am zuletzt editiert von
                                          #22

                                          So, hab mal etwas mehr Zeit gefunden und mich mit den Zählerständen auseinandergesetzt.
                                          Durch Zufall bin ich im Zuge einer Neukalibrierung eines Zählers in der Software von ORNO über das dort hinterlegte Register gefallen. Dort ist für den Zählerstand die HEX 0100 angegeben, also 256 in Dezimal. Für den Adapter ist somit 40257 der richtige Eintrag beim Register für die Zählerstände.
                                          Funzt jetzt bei mir im BUS mit 5 Geräten einwandfrei.

                                          E 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

                                          465

                                          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