Ok, da scheint in der Schleife über die Ports von /dev/ttyUSB was schiefzulaufen. Nach dem ersten Durchgang, wird $DEV irgendwie decrementiert, sodass -1 rauskommt, und er scheitert dann im nächsten Schleifendurchgang.
2025-04-07 14:51:05 mysqlconnect -encoding utf-8 -user $MYSQL(USER) -password $MYSQL(PW) -host $MYSQL(HOST)
2025-04-07 14:51:05 init
2025-04-07 14:51:05 MYSQL: select server,port,anzahl from vebus_server order by id
2025-04-07 14:51:05 MYSQL: strom select server,port,anzahl from vebus_server order by id
2025-04-07 14:51:05 inverter.tcl->init Init Device /dev/ttyUSB 0 4
2025-04-07 14:51:05 inverter.tcl->init Anzahl 4
2025-04-07 14:51:05 inverter.tcl->init Server /dev/ttyUSB DEV /dev/ttyUSB0
2025-04-07 14:51:05 inverter.tcl->init INIT gesetzt DEV 0
2025-04-07 14:51:05 inverter.tcl->init mk2 version
2025-04-07 14:51:05 inverter.tcl->init Init ende device 0
2025-04-07 14:51:05 inverter.tcl->init Anzahl 3
2025-04-07 14:51:05 inverter.tcl->init Server /dev/ttyUSB DEV /dev/ttyUSB1
2025-04-07 14:51:05 inverter.tcl->init INIT gesetzt DEV -1
can't read "MK2(PIPE_SIZE_-1)": no such element in array
while executing
"set ID $MK2(PIPE_SIZE_$DEV)"
(procedure "cmd" line 28)
invoked from within
"cmd "W 05 00 00" $DEV"
(procedure "get_version" line 35)
invoked from within
"get_version $DEV"
(procedure "init" line 27)
invoked from within
"init"
(file "./inverter.tcl" line 231)
Ich bin jetzt nicht weiter schlau aus dem Quelltext geworden und habe die “anzahl” in der MySQL Tabelle einfach mal auf 1 gesetzt, damit er die Schleife nach dem ersten Durchgang abbricht. Dann kommen schon ganz andere Sachen raus:
2025-04-07 15:32:04 Anzahl MK2 1
2025-04-07 15:32:09 MYSQL: select server,port,anzahl from vebus_server order by id
2025-04-07 15:32:09 MYSQL: strom select server,port,anzahl from vebus_server order by id
2025-04-07 15:32:09 inverter.tcl->init Init Device /dev/ttyUSB 0 1
2025-04-07 15:32:09 inverter.tcl->init Anzahl 1
2025-04-07 15:32:09 inverter.tcl->init Server /dev/ttyUSB DEV /dev/ttyUSB0
2025-04-07 15:32:09 inverter.tcl->init mk2 version 1170216
2025-04-07 15:32:09 MYSQL: select id,typ from vebus_typen where version=substr('2611556',1,4)
2025-04-07 15:32:09 MYSQL: strom select id,typ from vebus_typen where version=substr('2611556',1,4)
2025-04-07 15:32:09 inverter.tcl->init Typ 55 {MultiPlus-II 24/3000/70-32 (+ EasySolar)}
2025-04-07 15:32:09 MYSQL: select id,name,anzahl,watt from vebus_devices where typ='55'
2025-04-07 15:32:09 MYSQL: strom select id,name,anzahl,watt from vebus_devices where typ='55'
2025-04-07 15:32:09 MYSQL-Error:
mysqlsel/db server: Table 'strom.vebus_devices' doesn't exist
select id,name,anzahl,watt from vebus_devices where typ='55'
2025-04-07 15:32:09 error
2025-04-07 15:32:09 inverter.tcl->init dev: 0 Typ: MultiPlus-II 24/3000/70-32 (+ EasySolar) Anzahl name:
2025-04-07 15:32:09 MYSQL: select id from vebus_geraete where device='error'
2025-04-07 15:32:09 MYSQL: strom select id from vebus_geraete where device='error'
2025-04-07 15:32:09 MYSQL-Error:
mysqlsel/db server: Table 'strom.vebus_geraete' doesn't exist
select id from vebus_geraete where device='error'
2025-04-07 15:32:09 Daten: 0
2025-04-07 15:32:09 inverter.tcl->init Init ende device 0
2025-04-07 15:32:09 Init Ende
2025-04-07 15:32:09 Display
2025-04-07 15:32:09
2025-04-07 15:32:09 MYSQL: select switch,i_ein from vebus_steuerung where device='error'
2025-04-07 15:32:09 MYSQL: strom select switch,i_ein from vebus_steuerung where device='error'
2025-04-07 15:32:09 Summe: Bat 0.00 A 0.00 A 0 W In: 0.00 A 0 VA Out: 0.00 A 0 VA 0 VA 0.000 Wh 0.000 VAh AC 0.000 VAh AC in
2025-04-07 15:32:10 Display
2025-04-07 15:32:10
2025-04-07 15:32:10 MYSQL: select switch,i_ein from vebus_steuerung where device='error'
2025-04-07 15:32:10 MYSQL: strom select switch,i_ein from vebus_steuerung where device='error'
2025-04-07 15:32:10 Summe: Bat 0.00 A 0.00 A 0 W In: 0.00 A 0 VA Out: 0.00 A 0 VA 0 VA 0.000 Wh 0.000 VAh AC 0.000 VAh AC in
2025-04-07 15:32:11 Display
Er bekommt jetzt eine mk2 Version und auch den richtigen Typ für den MP2 mit der ID 55 aus der Datenbank. Danach versucht er allerdings SQL-Abfragen auf den Tabellen “vebus_devices”, “vebus_geraete” und “vebus_steuerung”, die tatsächlich nicht existieren. In deinem Dump waren die auch nicht drin. Sind diese Tabellen essentiell, oder ist das Programm da falsch abgebogen? Danach kommen dann in kontinuierlichen Blöcken Ausgaben, wo allerdings alle Werte auf 0 stehen.