wenn dieser PR drin ist (zeigt violet merged an) bitte die neusten nightly runterladen und testen.
https://github.com/snaptec/openWB/pull/2496
Neu prüft Openwb zuerst auf Leistungmessertype 5, we der nicht gefunden wird, geht es wie bisher. (=Suche nach Liestungsmessertype = 1)
Gruss Oliver
Code: Alles auswählen
# 40130,40131, 40132 je Phasenleistung in Watt
# max 7 Leistungsmesser verbaut ab 40105, typ 1 ist evu
# Modbus dokumentation Leistungsmesser von #0 bis #6
# bei den meisten e3dc auf 40128
# farm haben typ 5, normal e3dc haben nur typ 1
# bei farm ist typ 1 vorhanden aber liefert immer 0
meters = client.read_holding_registers(40104, [ModbusDataType.INT_16] * 28, unit=1)
log.debug("meters: %s", meters)
try:
powers = next(meters[i+1:i+4] for i in reversed(range(0, len(meters), 4)) if meters[i] == 5)
log.debug("e3dc farm detected")
# power wird gerechnet bei farm da 0 über modbus
power = int(powers[0]) + int(powers[1]) + int(powers[2])
except StopIteration:
powers = next(meters[i+1:i+4] for i in reversed(range(0, len(meters), 4)) if meters[i] == 1)
# power wird über modbus gelesen
power = client.read_holding_registers(40073, ModbusDataType.INT_32, wordorder=Endian.Little, unit=1)
log.debug("e3dc no farm detected")
log.debug("power: %d, powers %s", power, powers)