habe wieder ein kleines Problem wobei ich etwas Hilfe von Euch benötige.
Ich habe Daten welche in einem zip liegen.
Mit list(zip(result.registers, registers)) erhalte ich alle Daten angezeigt.
Möchte nun den 18. Datensatz daraus lesen. Geht das so einfach?
Mit dict(zip(result.registers, registers)) erhalte ich die Daten so angezeigt.
Code: Alles auswählen
{12: ['Status', 1], 2802: ['Vpv1', 0.1], 0: ['ParaChgCurr', 0.1], 1430: ['Ppv1L', 0.1], 27: ['BatterySOC', 1], 16400: ['AC_dischrwattL', 0.1], 16760: ['AC_dischrvaL', 0.1], 5123: ['Bat_Volt', 0.01], 4047: ['BusVolt', 0.01], 2300: ['OutputVolt', 0.1], 5000: ['OutputFreq', 0.01], 254: ['InvTemp', 0.1], 220: ['DCDCTemp', 0.1], 335: ['LoadPercent', 0.1], 211: ['Buck1Temp', 0.1], 253: ['Buck2Temp', 0.1], 72: ['OP_Curr', 0.1], 77: ['Inv_Curr', 0.1], 20105: ['DTC', 1], 2482: ['CheckStep', 1], 86: ['Epv1_todayL', 0.1], 20381: ['Epv1_totalL', 0.1], 1015: ['Eac_chrtotalL', 0.1], 24: ['Ebat_chrtodayL', 0.1], 13173: ['Ebat_chrtotalL', 0.1], 1224: ['Eac_dischrtotalL', 0.1], 16180: ['Bat_wattL', 0.1], 55: ['Invfanspeed', 1], 316: ['-84-', 0], 67: ['Eop_dischrToday_L', 1], 69: ['Eop_dischrTotal_L', 1]}
{12: ['Status', 1], 2787: ['Vpv1', 0.1], 0: ['ParaChgCurr', 0.1], 1500: ['Ppv1L', 0.1], 29: ['Buck1Curr', 0.1], 16400: ['AC_dischrwattL', 0.1], 16760: ['OP_VAL', 0.1], 5123: ['Bat_Volt', 0.01], 27: ['BatterySOC', 1], 4048: ['BusVolt', 0.01], 2300: ['OutputVolt', 0.1], 5000: ['OutputFreq', 0.01], 254: ['InvTemp', 0.1], 220: ['DCDCTemp', 0.1], 335: ['LoadPercent', 0.1], 211: ['Buck1Temp', 0.1], 253: ['Buck2Temp', 0.1], 72: ['OP_Curr', 0.1], 77: ['Inv_Curr', 0.1], 20105: ['DTC', 1], 2482: ['CheckStep', 1], 86: ['Epv1_todayL', 0.1], 20381: ['Epv1_totalL', 0.1], 1015: ['Eac_chrtotalL', 0.1], 24: ['Ebat_chrtodayL', 0.1], 13173: ['Ebat_chrtotalL', 0.1], 1224: ['Eac_dischrtotalL', 0.1], 16750: ['AC_dischrvaL', 0.1], 16180: ['Bat_wattL', 0.1], 55: ['Invfanspeed', 1], 316: ['-84-', 0], 67: ['Eop_dischrToday_L', 1], 69: ['Eop_dischrTotal_L', 1]}
Ich behelfe mich aktuell über diesen Weg und ordne Daten für die weiter Bearbeitung zu.
Code: Alles auswählen
if not result.isError():
for value, (name, multiplier) in zip(result.registers, registers):
if name == "BatterySOC":
BatterySOC = value * multiplier
elif name == "LoadPercent":
LoadPercent = value * multiplier
Was ist der schnellste, optimalste Rechenweg für den Ablauf im Skript?
Gruß Ralf