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:
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.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
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]import subprocess from time import strftime import time
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
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() [/code] Ich habe auch mit dem PyModBus-Debugging begonnen, das Folgendes liefert: [list] [*]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 - [b] nicht bereit [*]DEBUG:pymodbus.transaction:Getting Transaction 0 [*]DEBUG:pymodbus.transaction:Änderung des Transaktionsstatus von PROCESSING REPLY zu TRANSACTION_COMPLETE [/list] 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
Ich leite eine LP mit Pulp aus, aber das Fehler -AttributeError abruft: 'Nonetype' Objekt hat kein Attribut 'tatsächlichSolve'. Ich habe diesen Beitrag zum Bestimmen der verfügbaren Löser gefunden....
Ich leite eine LP mit Pulp aus, aber das Fehler -AttributeError abruft: 'Nonetype' Objekt hat kein Attribut 'tatsächlichSolve'. Ich habe diesen Beitrag zum Bestimmen der verfügbaren Löser gefunden....
Ich versuche, Modbus RTU vom seriellen Gerät zu lesen. Dies ist ein Beispiel für ein einfaches Lesen aus Port com7 . Dieser Port ist falsch, von einem Bluetooth -Gerät.
Ich kann nicht feststellen,...
Ich habe einen Raspberry Pi Zero V.1. Ich habe Pymodbus installiert, habe aber Schwierigkeiten, die neueste Version zu bekommen. Auf pypi.org ist die neueste Version 3.11.4. Die Version auf meinem Pi...
Ich habe einen Raspberry Pi Zero V.1. Ich habe Pymodbus installiert, habe aber Schwierigkeiten, die neueste Version zu bekommen. Auf pypi.org ist die neueste Version 3.11.4. Die Version auf meinem Pi...