ich versuche mich gerade am Threading.
Ich starte aus einer while-Schleife heraus in regelmäßigen Abständen eine Funktion.
Das funktioniert auch, Daten werden in die Funktion übergeben und in die InfluxDB geschrieben.
Nur bremst mir der Schreibvorgang in die InfluxDB meine Schleife weiterhin aus.
Das sind immer 2sec, statt der sonnst 0,5sec welche ich erreichen kann.
Scheinbar hab ich da noch einen Gedankenfehler. Threading oder doch Multiprozessing ?
Code: Alles auswählen
*
*
*
def register_write_master(influx_master, result_master_all, growatt_registers):
print('write master all')
for value, (name, multiplier) in zip(result_master_all.registers, growatt_registers):
influx_master.write_points(
[
{
"measurement": name,
"tags": {"user": user},
"fields": {name: round(float(value * multiplier), 2)}
}
]
)
*
*
*
while True:
if time.time() >= inverter_register_last_timer:
result_master_all = client.read_input_registers(0, len(growatt_registers), inverter_master_adress)
if not result_master_all.isError():
t_master = Thread(target=register_write_master, args=(influx_master, result_master_all, growatt_registers))
t_master.run()
inverter_register_last_timer += inverter_register_timer
*
*
*