Ich versuche, einen Omnik-Wechselrichter ohne verfügbare Dokumentation über USB mithilfe von PyModBus zu lesenPython

Python-Programme
Anonymous
 Ich versuche, einen Omnik-Wechselrichter ohne verfügbare Dokumentation über USB mithilfe von PyModBus zu lesen

Post by Anonymous »

Meine Solarmodule sind an einen Omnik-Wechselrichter (5000tl2) angeschlossen. Dieses Unternehmen ist in Konkurs gegangen und in der verfügbaren Dokumentation wird weder die Verwendung des USB-Anschlusses noch der Register am Wechselrichter selbst angegeben.
Ich versuche, Daten zu lesen, die sich auf dem Wechselrichter befinden, ohne das WLAN-Modul zu verwenden. Ich habe meinen Pi 2B+ an den USB-Anschluss angeschlossen, pymodbus installiert und diesen Code (mit freundlicher Genehmigung von Fasthook) ausprobiert, der ursprünglich für eine andere Marke (GROWATT) gedacht war:

Code: Select all

import subprocess
from time import strftime
import time

from pymodbus.client.sync import ModbusSerialClient as ModbusClient

client = ModbusClient(method='rtu', port='/dev/ttyUSB0', baudrate=9600, stopbits=1, parity='N', bytesize=8, timeout=1)
client.connect()
rr = client.read_input_registers(1,44)

rr = client.read_input_registers(2,1) #Watts delivered by panels (DC side)
value=rr.registers
pv_watts=float(value[0])/10
rr = client.read_input_registers(3,1) # Volts on DC side
value=rr.registers
pv_volts=float(value[0])/10
rr = client.read_input_registers(4,1) # Amps on DC side??? Not sure.
value=rr.registers
pv_amps=float(value[0])/10
rr = client.read_input_registers(12,1) #watts delivered by inverter to net
value=rr.registers
out_watts=float(value[0])/10
rr = client.read_input_registers(13,1) # frequency of AC
value=rr.registers
ac_hz=float(value[0])/100
rr = client.read_input_registers(14,1) # volts on AC side delivered by inverter
value=rr.registers
ac_volts=float(value[0])/10
rr = client.read_input_registers(27,1) # Total energy production today
value=rr.registers
Wh_today=float(value[0])*100
rr = client.read_input_registers(29,1) # Total energy production in inervter storage
value=rr.registers
Wh_total=float(value[0])*100
rr = client.read_input_registers(32,1) # Inverter temperature
value=rr.registers
current_temp=float(value[0])/10

client.close()
Ich habe auch mit dem PyModBus-Debugging begonnen, das Folgendes liefert:
  • DEBUG:pymodbus.transaction:Aktueller Transaktionsstatus – IDLE
  • DEBUG:pymodbus.transaction:Running Transaction 1
  • DEBUG:pymodbus.transaction:SEND: 0x0 0x4 0x0 0x1 0x0 0x2c 0xa1 0xc6
  • DEBUG:pymodbus.client.sync:Neuer Transaktionsstatus SENDING
  • DEBUG:pymodbus.transaction:Changing Transaktionsstatus von SENDING zu WAITING FOR REPLY
  • DEBUG:pymodbus.transaction:Transaktion fehlgeschlagen. (Modbus-Fehler: [Ungültige Nachricht] Unvollständige Nachricht empfangen, erwartet mindestens 2 Bytes (0 empfangen))
  • DEBUG:pymodbus.framer.rtu_framer:Frame - nicht bereit
  • DEBUG:pymodbus.transaction:Getting Transaction 0
  • DEBUG:pymodbus.transaction:Änderung des Transaktionsstatus von PROCESSING REPLY zu TRANSACTION_COMPLETE

Dieser Fehler kommt von: rr = client.read_input_registers(1,44)
Ich vermute, dass sich die Register eines GROWATT von denen des Omnik unterscheiden. Das ist nicht überraschend :)
Da ich keine Dokumentation zum Omnik selbst finden kann... wie kann ich den richtigen Code für meinen Omnik-Wechselrichter ermitteln?
Vielen Dank für jede Hilfe!
Bart

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post
  • Nicht verfügbare Zellstofflöser
    by Guest » » in Python
    0 Replies
    20 Views
    Last post by Guest
  • Nicht verfügbare Zellstofflöser
    by Anonymous » » in Python
    0 Replies
    20 Views
    Last post by Anonymous
  • Funktion "read_holding_registers" von pymodbus
    by Anonymous » » in Python
    0 Replies
    30 Views
    Last post by Anonymous
  • Raspberry Pi Zero installiert die alte Version von Pymodbus
    by Anonymous » » in Python
    0 Replies
    25 Views
    Last post by Anonymous
  • Raspberry Pi Zero installiert die alte Version von Pymodbus
    by Anonymous » » in Python
    0 Replies
    18 Views
    Last post by Anonymous