tbnobody / OpenDTU

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters
GNU General Public License v2.0
1.69k stars 471 forks source link

Mit aktivierten MQTT Verbindungsprobleme zu den Wechelrichtern #2101

Closed MrG8N closed 1 week ago

MrG8N commented 1 week ago

What happened?

Ich habe seit einiger Zeit immer wieder Probleme das die abfrage der Wechelrichter immer wieder für einige Minuten bis Stunden fehlschlägt. Seit geraumer Zeit habe ich Fehler bei der Abfrage der Wechselrichter. Heute bin ich bei der Fehlersuche durch einen Eintrag auf die Idee gekommen, die openDTU auf Werkseinstellungen zurückzusetzen. Danach habe ich die Wechselrichter neu konfiguriert. Alles funktioniert ohne Probleme über mehrere Stunden. Dann fiel mir auf, dass ich MQTT noch nicht aktiviert hatte. In dem Moment, wo ich MQTT aktiviere, funktioniert die Anfrage der Wechselrichter nur noch gelegentlich. Ich konnte das Verhalten nachvollziehen durch ein und ausschalten des MQTT. Das Problem scheint schon seit einigen Firmware Versionen zu bestehen.

To Reproduce Bug

Ist MQTT deaktiviert, funktioniert die Abfrage der Wechselrichter fehlerfrei. Nach aktivieren des MQTT funktioniert die Abfrage der WR nur noch sporadisch.

Expected Behavior

Fehlerfreie abfrage der Wechselrichter aller 5 Sekunden trotz eingeschaltetem MQTT

Install Method

Pre-Compiled binary from GitHub

What git-hash/version of OpenDTU?

v24.6.10

Relevant log/trace output

Seit geraumer Zeit habe ich Fehler bei der Abfrage der Wechselrichter. Heute bin ich bei der Fehlersuche durch einen Eintrag auf die Idee gekommen, die openDTU auf Werkseinstellungen zurückzusetzen. Danach habe ich die Wechselrichter neu konfiguriert. Alles funktioniert ohne Probleme über mehrere Stunden. Dann fiel mir auf, dass ich MQTT noch nicht aktiviert hatte. In dem Moment, wo ich MQTT aktiviere, funktioniert die Anfrage der Wechselrichter nur noch gelegentlich. Ich konnte das Verhalten nachvollziehen durch ein und ausschalten des MQTT. Das Problem scheint schon seit einigen Firmware Versionen zu bestehen.

ohne MQTT
Fetch inverter: 116190747414
13:31:55.165 > TX RealTimeRunData Channel: 23 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA AB 00 00 00 00 00 00 00 00 CE 0F 6E 
13:31:55.303 > Interrupt received
13:31:55.408 > RX Channel: 75 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 3A 02 ED 01 8D 09 2E 04 DE 00 03 D7 29 CD | -80 dBm
13:31:55.420 > Interrupt received
13:31:55.436 > RX Channel: 3 --> 95 90 74 74 14 90 74 74 14 84 13 87 21 23 00 F1 01 5B 03 E8 01 E5 00 01 3A B7 AF | -80 dBm
13:31:55.662 > RX Period End
13:31:55.662 > Middle missing
13:31:55.662 > Request retransmit: 2
13:31:55.662 > TX RequestFrame Channel: 40 --> 15 90 74 74 14 80 16 68 56 82 BB 
13:31:55.703 > Interrupt received
13:31:55.716 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 1E 04 41 02 A1 01 3C 03 64 03 39 0A AF 4C | -80 dBm
13:31:55.827 > RX Period End
13:31:55.827 > Middle missing
13:31:55.827 > Request retransmit: 3
13:31:55.827 > TX RequestFrame Channel: 61 --> 15 90 74 74 14 80 16 68 56 83 BA 
13:31:55.838 > Interrupt received
13:31:55.850 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 03 0A 27 00 04 3C 60 00 03 FD A4 04 E6 04 C1 09 8F 18 | -80 dBm
13:31:55.875 > RX Period End
13:31:55.875 > Success
13:32:00.137 > Fetch inverter: 116190747414
13:32:00.158 > TX RealTimeRunData Channel: 75 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA B0 00 00 00 00 00 00 00 00 3E B1 3B 
13:32:00.181 > Interrupt received
13:32:00.197 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 3B 02 BB 01 99 08 99 05 0A 00 03 D7 29 ED | -80 dBm
13:32:00.238 > Interrupt received
13:32:00.252 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 1F 04 41 02 A2 01 3C 03 18 03 01 09 C0 66 | -80 dBm
13:32:00.280 > Interrupt received
13:32:00.292 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 03 09 78 00 04 3C 60 00 03 FD A5 04 E6 04 C2 09 94 5D | -80 dBm
13:32:00.323 > Interrupt received
13:32:00.374 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 84 13 88 1F 35 00 F1 01 46 03 E8 01 E5 00 01 1E 6E 68 | -80 dBm
13:32:00.662 > RX Period End
13:32:00.662 > Success

Mit MQTT
Fetch inverter: 116190747414
13:32:27.067 > TX RealTimeRunData Channel: 40 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA CB 00 00 00 00 00 00 00 00 CC A7 A4 
13:32:27.099 > Interrupt received
13:32:27.113 > RX Channel: 75 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 39 03 72 01 FC 0A C2 06 35 00 03 D7 2B 25 | -80 dBm
13:32:27.286 > Interrupt received
13:32:27.298 > RX Channel: 75 --> 95 90 74 74 14 90 74 74 14 84 13 89 27 5D 00 F9 01 96 03 E8 01 E4 00 01 66 9B 6D | -80 dBm
13:32:27.572 > RX Period End
13:32:27.572 > Middle missing
13:32:27.572 > Request retransmit: 2
13:32:27.572 > TX RequestFrame Channel: 61 --> 15 90 74 74 14 80 16 68 56 82 BB 
13:32:27.572 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:27.572 > Set inverter power to: 1
13:32:27.594 > Interrupt received
13:32:27.606 > RX Channel: 75 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 20 04 43 02 A3 01 3A 03 F6 03 D8 0C 6D C3 | -80 dBm
13:32:27.701 > RX Period End
13:32:27.701 > Middle missing
13:32:27.701 > Request retransmit: 3
13:32:27.701 > TX RequestFrame Channel: 75 --> 15 90 74 74 14 80 16 68 56 83 BA 
13:32:27.812 > Interrupt received
13:32:27.899 > RX Channel: 3 --> 95 90 74 74 14 90 74 74 14 03 0C 0C 00 04 3C 62 00 03 FD A7 04 E8 04 C4 09 B5 05 | -80 dBm
13:32:27.909 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:27.909 > Inverter not found
13:32:27.921 > RX Period End
13:32:27.921 > Success
13:32:27.929 > TX PowerControl Channel: 3 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:32:27.937 > Interrupt received
13:32:27.947 > RX Channel: 3 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:32:29.906 > RX Period End
13:32:29.906 > Success
13:32:30.538 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:30.538 > Set inverter power to: 1
13:32:30.550 > TX PowerControl Channel: 23 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:32:30.574 > Interrupt received
13:32:30.584 > RX Channel: 3 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:32:30.783 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:30.783 > Inverter not found
13:32:30.783 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:30.808 > Set inverter power to: 1
13:32:30.808 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:30.808 > Inverter not found
13:32:30.808 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:30.808 > Set inverter power to: 1
13:32:30.808 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:30.808 > Inverter not found
13:32:32.558 > RX Period End
13:32:32.558 > Success
13:32:32.586 > TX PowerControl Channel: 40 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:32:32.613 > Interrupt received
13:32:32.627 > RX Channel: 3 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:32:34.625 > RX Period End
13:32:34.625 > Success
13:32:34.650 > TX PowerControl Channel: 61 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:32:34.663 > Interrupt received
13:32:34.679 > RX Channel: 40 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:32:36.611 > RX Period End
13:32:36.611 > Success
13:32:36.611 > Fetch inverter: 116190747414
13:32:36.731 > TX RealTimeRunData Channel: 75 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA D4 00 00 00 00 00 00 00 00 FC 2B 07 
13:32:37.274 > RX Period End
13:32:37.274 > All missing
13:32:37.274 > Nothing received, resend whole request
13:32:37.274 > TX RealTimeRunData Channel: 3 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA D4 00 00 00 00 00 00 00 00 FC 2B 07 
13:32:37.288 > Interrupt received
13:32:37.299 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 38 03 6F 01 F9 0A B6 06 2A 00 03 D7 2C 50 | -80 dBm
13:32:37.354 > Interrupt received
13:32:37.367 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 20 04 44 02 A3 01 3A 03 F4 03 D5 0C 63 C5 | -80 dBm
13:32:37.397 > Interrupt received
13:32:37.409 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 03 0C 01 00 04 3C 63 00 03 FD A8 04 E9 04 C5 09 B3 00 | -80 dBm
13:32:37.439 > Interrupt received
13:32:37.455 > RX Channel: 23 --> 95 90 74 74 14 90 74 74 14 84 13 89 27 35 00 F9 01 94 03 E8 01 E4 00 01 ED E1 F6 | -80 dBm
13:32:37.777 > RX Period End
13:32:37.777 > Success
13:32:39.666 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:39.666 > Set inverter power to: 1
13:32:39.666 > TX PowerControl Channel: 23 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:32:39.688 > Interrupt received
13:32:39.699 > RX Channel: 40 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:32:39.778 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:39.778 > Inverter not found
13:32:41.676 > RX Period End
13:32:41.676 > Success
13:32:41.676 > Fetch inverter: 116190747414
13:32:41.676 > Request SystemConfigPara
13:32:41.978 > TX RealTimeRunData Channel: 40 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA D9 00 00 00 00 00 00 00 00 6C 73 C2 
13:32:41.990 > Interrupt received
13:32:42.003 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 38 03 76 01 FF 0A CB 06 3B 00 03 D7 2C 23 | -80 dBm
13:32:42.053 > Interrupt received
13:32:42.066 > RX Channel: 61 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 20 04 44 02 A3 01 3A 03 FA 03 DC 0C 77 D6 | -80 dBm
13:32:42.114 > Interrupt received
13:32:42.122 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 03 0C 16 00 04 3C 64 00 03 FD A8 04 EA 04 C5 09 B5 15 | -80 dBm
13:32:42.156 > Interrupt received
13:32:42.169 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 84 13 89 27 7E 00 F9 01 97 03 E8 01 E4 00 01 83 7B 4A | -80 dBm
13:32:42.493 > RX Period End
13:32:42.493 > Success
13:32:42.511 > TX SystemConfigPara Channel: 61 --> 15 90 74 74 14 80 16 68 56 80 05 00 66 7A AA D9 00 00 00 00 00 00 00 00 A2 7C 0D 
13:32:42.532 > Interrupt received
13:32:42.541 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 81 00 01 03 E8 00 00 03 E8 FF FF FF FF 01 68 7D F8 F9 | -80 dBm
13:32:42.705 > RX Period End
13:32:42.705 > Success
13:32:46.682 > Fetch inverter: 116190747414
13:32:46.712 > TX RealTimeRunData Channel: 75 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA DE 00 00 00 00 00 00 00 00 5C 55 D3 
13:32:46.722 > Interrupt received
13:32:46.738 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 38 03 73 01 FE 0A C1 06 38 00 03 D7 2D 2F | -80 dBm
13:32:46.882 > Interrupt received
13:32:46.900 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 84 13 8A 27 61 00 F1 01 95 03 E8 01 E4 00 01 3D D8 41 | -80 dBm
13:32:47.209 > RX Period End
13:32:47.209 > Middle missing
13:32:47.209 > Request retransmit: 2
13:32:47.209 > TX RequestFrame Channel: 3 --> 15 90 74 74 14 80 16 68 56 82 BB 
13:32:47.233 > Interrupt received
13:32:47.247 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 21 04 45 02 A4 01 3A 03 F7 03 D9 0C 6D C3 | -80 dBm
13:32:47.327 > RX Period End
13:32:47.327 > Middle missing
13:32:47.327 > Request retransmit: 3
13:32:47.327 > TX RequestFrame Channel: 23 --> 15 90 74 74 14 80 16 68 56 83 BA 
13:32:47.349 > Interrupt received
13:32:47.357 > RX Channel: 40 --> 95 90 74 74 14 90 74 74 14 03 0C 0D 00 04 3C 64 00 03 FD A9 04 EA 04 C6 09 B8 01 | -80 dBm
13:32:47.436 > RX Period End
13:32:47.436 > Success
13:32:51.682 > Fetch inverter: 116190747414
13:32:51.715 > TX RealTimeRunData Channel: 40 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA E3 00 00 00 00 00 00 00 00 CD 59 73 
13:32:51.762 > Interrupt received
13:32:51.779 > RX Channel: 61 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 38 03 7A 02 00 0A D2 06 3D 00 03 D7 2D CD | -80 dBm
13:32:51.925 > Interrupt received
13:32:52.038 > RX Channel: 61 --> 95 90 74 74 14 90 74 74 14 03 0C 1F 00 04 3C 64 00 03 FD A9 04 EA 04 C6 09 BA 11 | -80 dBm
13:32:52.050 > Interrupt received
13:32:52.060 > RX Channel: 75 --> 95 90 74 74 14 90 74 74 14 84 13 88 27 97 00 F1 01 97 03 E8 01 E4 00 01 F8 57 FD | -80 dBm
13:32:52.225 > RX Period End
13:32:52.225 > Middle missing
13:32:52.225 > Request retransmit: 2
13:32:52.225 > TX RequestFrame Channel: 61 --> 15 90 74 74 14 80 16 68 56 82 BB 
13:32:52.252 > Interrupt received
13:32:52.266 > RX Channel: 75 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 21 04 45 02 A4 01 39 03 FF 03 E1 0C 7F E2 | -80 dBm
13:32:52.326 > RX Period End
13:32:52.326 > Success
13:32:56.677 > Fetch inverter: 116190747414
13:32:56.721 > TX RealTimeRunData Channel: 75 --> 15 90 74 74 14 80 16 68 56 80 0B 00 66 7A AA E8 00 00 00 00 00 00 00 00 FD 2A 3B 
13:32:56.738 > Interrupt received
13:32:56.763 > RX Channel: 61 --> 95 90 74 74 14 90 74 74 14 01 00 01 01 38 03 76 01 FF 0A C7 06 3B 00 03 D7 2D 2E | -80 dBm
13:32:56.902 > Interrupt received
13:32:56.911 > RX Channel: 61 --> 95 90 74 74 14 90 74 74 14 84 13 88 27 74 00 F1 01 97 03 E8 01 E4 00 01 21 BF 2F | -80 dBm
13:32:57.248 > RX Period End
13:32:57.248 > Middle missing
13:32:57.248 > Request retransmit: 2
13:32:57.248 > TX RequestFrame Channel: 3 --> 15 90 74 74 14 80 16 68 56 82 BB 
13:32:57.266 > Interrupt received
13:32:57.277 > RX Channel: 61 --> 95 90 74 74 14 90 74 74 14 02 00 02 E4 21 04 45 02 A4 01 39 03 FB 03 DD 0C 72 D7 | -80 dBm
13:32:57.360 > RX Period End
13:32:57.360 > Middle missing
13:32:57.360 > Request retransmit: 3
13:32:57.360 > TX RequestFrame Channel: 23 --> 15 90 74 74 14 80 16 68 56 83 BA 
13:32:57.402 > Interrupt received
13:32:57.415 > RX Channel: 61 --> 95 90 74 74 14 90 74 74 14 03 0C 14 00 04 3C 65 00 03 FD A9 04 EB 04 C6 09 B5 15 | -80 dBm
13:32:57.467 > RX Period End
13:32:57.467 > Success
13:32:57.731 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:57.731 > Set inverter power to: 1
13:32:57.731 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:57.731 > Inverter not found
13:32:57.731 > TX PowerControl Channel: 40 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:32:57.746 > Interrupt received
13:32:57.760 > RX Channel: 61 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:32:58.747 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:58.747 > Set inverter power to: 1
13:32:58.800 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:58.800 > Inverter not found
13:32:59.618 > Received MQTT message on topic: solar/116190747414/cmd/power
13:32:59.618 > Set inverter power to: 1
13:32:59.788 > RX Period End
13:32:59.788 > Success
13:32:59.806 > TX PowerControl Channel: 61 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:32:59.818 > Interrupt received
13:32:59.830 > RX Channel: 61 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:32:59.840 > Received MQTT message on topic: solar/116493309543/cmd/power
13:32:59.840 > Inverter not found
13:33:00.640 > Received MQTT message on topic: solar/116190747414/cmd/power
13:33:00.640 > Set inverter power to: 1
13:33:00.839 > Received MQTT message on topic: solar/116493309543/cmd/power
13:33:00.839 > Inverter not found
13:33:01.664 > Received MQTT message on topic: solar/116190747414/cmd/power
13:33:01.664 > Set inverter power to: 1
13:33:01.754 > RX Period End
13:33:01.754 > Success
13:33:01.792 > Received MQTT message on topic: solar/116493309543/cmd/power
13:33:01.792 > Inverter not found
13:33:01.792 > TX PowerControl Channel: 75 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D 
13:33:01.888 > Interrupt received
13:33:01.971 > RX Channel: 61 --> D1 90 74 74 14 90 74 74 14 81 00 00 00 00 24 00 74 | -80 dBm
13:33:02.592 > Received MQTT message on topic: solar/116190747414/cmd/power
13:33:02.592 > Set inverter power to: 1
13:33:02.830 > Received MQTT message on topic: solar/116493309543/cmd/power
13:33:02.830 > Inverter not found
13:33:03.622 > Received MQTT message on topic: solar/116190747414/cmd/power
13:33:03.622 > Set inverter power to: 1
13:33:03.817 > RX Period End
13:33:03.817 > Success
13:33:03.883 > Received MQTT message on topic: solar/116493309543/cmd/power
13:33:03.883 > Inverter not found
13:33:03.883 > TX PowerControl Channel: 3 --> 51 90 74 74 14 80 16 68 56 81 00 00 B0 01 4D

Anything else?

No response

Please confirm the following

MrG8N commented 1 week ago

Ich habe ein Skript, welches per MQTT die Wechselrichter ein oder ausschaltet. Offensichtlich verursacht diese wiederholenden Einschalt Befehle diesen Fehler. Ich habe mein Skript entsprechend angepasst, dass die Befehle nur noch gesendet werden, wenn notwendig. Seitdem funktioniert die Abfrage wieder fehlerfrei.