MQTT funktioniert nur teiweise

Wenn mehr als ein Gerät an den Raspberry angeschlossen werden sollen. Z.B. ein Regler und ein Wechselrichter oder mehrere Wechselrichter. Das Maximum sind 6 Geräte pro Raspberry Pi.

Moderator: Ulrich

ullir
Beiträge: 7
Registriert: Fr 3. Jul 2020, 14:39

MQTT funktioniert nur teiweise

Beitrag von ullir »

Hallo, ich habe nun viel in dem Forum über die Anbindung der Solaranzeige, über das MQTT Protokoll, an Drittsysteme. Ich betreibe einen IOBroker um die Informationen für meine Hausautomation verfügbar zu machen. Bis vor einigen Tagen hat alles tadellos funktioniert. Die Kommunikation über das MQTT Protokoll von der Solaranzeige zum IOBroker funktioniert nun nur noch teilweise. Das ist aufgetreten als ich der PV-Anlage eine Vergrößerung des Batteriespeichers verpasst habe. Nun stehen nur noch die Informationen der Wechselrichter zur Verfügung und manchmal die Informationen des Batteriespeichers, so alle zwei Tage.

Informationen zur Solaranzeige.
- läuft auf einem Raspberry PI 4 mit 4GB.
- ist die Version 4.6.6 eine Multiregler Konfiguration

Zum Aufbau der PV-Anlage.
- drei Wechselrichter AX-4000 im drei Phasen Stern betrieb
- eine Batteriebank mit 6 Akkupacks US2000

Da ich leider keine Informationen zu solch einem Phänomen habe hoffe ich hier im Forum Hilfe zu finden.

Benutzeravatar
Ulrich
Administrator
Beiträge: 2741
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 173 Mal
Kontaktdaten:

Re: MQTT funktioniert nur teiweise

Beitrag von Ulrich »

Dann gehen wir einmal schrittweise vor.

In jeder der x.user.config.php muss ja der Broker angegeben sein, wohin die Solaranzeige die Daten senden soll. Außerdem muss in jeder dieser Dateien $MQTT = true; stehen, wenn das Gerät die Daten senden soll. ( In jeder Datei! )

Wenn alles richtig konfiguriert ist, kann man prüfen ob die Daten alle im Broker ankommen.

Das ist der Befehl:

mosquitto_sub -h <IP-vom-Broker> -v -t solaranzeige/#
--------------------------------------
Ulrich [Admin]

ullir
Beiträge: 7
Registriert: Fr 3. Jul 2020, 14:39

Re: MQTT funktioniert nur teiweise

Beitrag von ullir »

In den den x.user.config.php steht jeweils der Empfänger drin, auch ist die Variable $MQTT auf true gesetzt.
mit dem Befehlt:

mosquitto_sub -h <IP-vom-Broker> -v -t solaranzeige/#

sehe ich auch die Variable die Übertragen werden.

Die Variablen für die Wechselrichter werden auch immer mit aktuellen Daten gefüllt. Nur bei dem Batteriespeicher stehen veraltete Daten in den Variablen.

Wenn ich mir die Daten aus dem Batteriespeicher in Grafana anschaue sind diese zumindest in der Datenbank aktuell. Somit kann man davon ausgehen, dass das Auslesen aus dem BMS des Batteriespeichers funktioniert.

Benutzeravatar
Ulrich
Administrator
Beiträge: 2741
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 173 Mal
Kontaktdaten:

Re: MQTT funktioniert nur teiweise

Beitrag von Ulrich »

Was für einen Batteriespeicher hast du denn? Mit welcher Regler Nummer wird er ausgelesen? Was steht den in der LOG Datei?
(/var/www/log/solaranzeige.log)
--------------------------------------
Ulrich [Admin]

ullir
Beiträge: 7
Registriert: Fr 3. Jul 2020, 14:39

Re: MQTT funktioniert nur teiweise

Beitrag von ullir »

Das ist ein Batteriespeicher US2000 von Pylontech.

Er wird mit der Regler Nummer 4 ausgelesen.

In der LOG Datei steht folgendes:
-----------------------------------------------------------------------------------------
24.02. 12:40:01 MQT-0-CONX-OK|
24.02. 12:40:01 MQT-
24.02. 12:40:01 MQT-Befehl in die Datei '/var/www/pipe/1.befehl.steuerung' geschrieben. POP02
24.02. 12:40:01 -Multi Regler Auslesen [Start].
24.02. 12:40:01 -Verarbeitung von: '1.user.config.php' Regler: 7
24.02. 12:40:01 |-------------- Start ax_wechselrichter.php -----------------
24.02. 12:40:01 |- -Steuerdatei '1.befehl.steuerung' vorhanden----
24.02. 12:40:01 -Befehl POP02 erfolgreich gesendet!
24.02. 12:40:01 -Befehl POP02 erfolgreich gesendet!
24.02. 12:40:01 -Befehl POP02 erfolgreich gesendet!
24.02. 12:40:01 |o -Dieser Befehl ist nicht zugelassen. PBCV46.0
24.02. 12:40:01 |o -Die Verarbeitung der Befehle wird abgebrochen.
24.02. 12:40:03 -237.5 50.0 229.7 50.0 1699 1692 042 395 50.00 000 033 0043 0019 055.1 50.13 00017 00110110 00 00 00952 010 i: 51
24.02. 12:40:03 -MQTT Daten zum [ 192.168.178.41 ] senden.
24.02. 12:40:03 -Alle 10 Minuten werden die Statistikdaten übertragen.
24.02. 12:40:03 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
24.02. 12:40:03 -Multi-Regler-Ausgang. 5
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/1.befehl.steuerung' geschrieben. POP02
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/1.befehl.steuerung' geschrieben. POP02
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/1.befehl.steuerung' geschrieben. PBCV46.0
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/1.befehl.steuerung' geschrieben. PBDV50.0
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/2.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/2.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/2.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/2.befehl.steuerung' geschrieben. PBCV
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/2.befehl.steuerung' geschrieben. PBDV
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. PBCV
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. PBDV
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. POP
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. PBCV
24.02. 12:40:03 MQT-
24.02. 12:40:03 MQT-Befehl in die Datei '/var/www/pipe/3.befehl.steuerung' geschrieben. PBDV
24.02. 12:40:08 -OK. Datenübertragung erfolgreich.
24.02. 12:40:08 -Solarleistung: 952 Watt - WattstundenGesamtHeute: 2441.95
24.02. 12:40:08 |------------ Stop ax_wechselrichter.php ------------------
24.02. 12:40:08 -Verarbeitung von: '2.user.config.php' Regler: 7
24.02. 12:40:08 |-------------- Start ax_wechselrichter.php -----------------
24.02. 12:40:08 |- -Steuerdatei '2.befehl.steuerung' vorhanden----
24.02. 12:40:08 |o -Dieser Befehl ist nicht zugelassen. POP
24.02. 12:40:08 |o -Die Verarbeitung der Befehle wird abgebrochen.
24.02. 12:40:09 -236.9 50.0 230.0 50.0 0391 0316 009 400 50.10 016 034 0038 0022 061.7 50.21 00000 00110110 00 00 01149 010 i: 51
24.02. 12:40:09 -MQTT Daten zum [ 192.168.178.41 ] senden.
24.02. 12:40:09 -Alle 10 Minuten werden die Statistikdaten übertragen.
24.02. 12:40:09 * -Daten zur lokalen InfluxDB [ solaranzeigeP2 ] gesendet.
24.02. 12:40:09 -Multi-Regler-Ausgang. 6
24.02. 12:40:15 -OK. Datenübertragung erfolgreich.
24.02. 12:40:15 -Solarleistung: 1149 Watt - WattstundenGesamtHeute: 2318.47
24.02. 12:40:15 |------------ Stop ax_wechselrichter.php ------------------
24.02. 12:40:15 -Verarbeitung von: '3.user.config.php' Regler: 7
24.02. 12:40:15 |-------------- Start ax_wechselrichter.php -----------------
24.02. 12:40:15 |- -Steuerdatei '3.befehl.steuerung' vorhanden----
24.02. 12:40:15 |o -Dieser Befehl ist nicht zugelassen. POP
24.02. 12:40:15 |o -Die Verarbeitung der Befehle wird abgebrochen.
24.02. 12:40:17 -237.9 50.0 229.8 50.0 0161 0114 004 401 50.10 018 034 0042 0020 055.6 50.13 00000 00110110 00 00 01022 010 i: 52
24.02. 12:40:17 -MQTT Daten zum [ 192.168.178.41 ] senden.
24.02. 12:40:17 -Alle 10 Minuten werden die Statistikdaten übertragen.
24.02. 12:40:17 * -Daten zur lokalen InfluxDB [ solaranzeigeP3 ] gesendet.
24.02. 12:40:17 -Multi-Regler-Ausgang. 5
24.02. 12:40:22 -OK. Datenübertragung erfolgreich.
24.02. 12:40:22 -Solarleistung: 1022 Watt - WattstundenGesamtHeute: 2197.35
24.02. 12:40:22 |------------ Stop ax_wechselrichter.php ------------------
24.02. 12:40:22 -Verarbeitung von: '4.user.config.php' Regler: 15
24.02. 12:40:22 |--------------- Start us2000_bms.php -----------------
24.02. 12:40:48 -MQTT Daten zum [ 192.168.178.41 ] senden.
24.02. 12:40:48 -Alle 10 Minuten werden die Statistikdaten übertragen.
24.02. 12:40:48 * -Daten zur lokalen InfluxDB [ batterie ] gesendet.
24.02. 12:40:48 -Multi-Regler-Ausgang. -19
24.02. 12:40:48 -OK. Datenübertragung erfolgreich.
24.02. 12:40:48 |--------------- Stop us2000_bms.php -----------------
24.02. 12:40:48 -Multi Regler Auslesen [Stop].

24.02. 12:40:58 MQT-Ende der Verarbeitung. (MQTT)
24.02. 12:41:01 MQT-0-CONX-OK|
24.02. 12:41:01 -Multi Regler Auslesen [Start].
------------------------------------------------------------------------------------------------
Das ist der Auszug eines Zyklus.

Benutzeravatar
Ulrich
Administrator
Beiträge: 2741
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 173 Mal
Kontaktdaten:

Re: MQTT funktioniert nur teiweise

Beitrag von Ulrich »

Die LOG Datei zeigt in Bezug auf den US2000B keinen Fehler.
Die Variablen für die Wechselrichter werden auch immer mit aktuellen Daten gefüllt. Nur bei dem Batteriespeicher stehen veraltete Daten in den Variablen.

Wenn ich mir die Daten aus dem Batteriespeicher in Grafana anschaue sind diese zumindest in der Datenbank aktuell. Somit kann man davon ausgehen, dass das Auslesen aus dem BMS des Batteriespeichers funktioniert.
Wie man in der LOG Datei sehen kann, werden die Daten erst per MQTT versendet und dann in die Datenbank geschrieben. Wenn sie dort richtig gespeichert sind, können sie nicht "veraltet" versendet worden sein. Da muss im Broker was nicht richtig funktionieren.
--------------------------------------
Ulrich [Admin]

ullir
Beiträge: 7
Registriert: Fr 3. Jul 2020, 14:39

Re: MQTT funktioniert nur teiweise

Beitrag von ullir »

Danke für die Antworten. Hast du eine Idee was das sein könnte.

Der Broker ist der IOBroker auf dem der Adapter MQTT läuft.

ullir
Beiträge: 7
Registriert: Fr 3. Jul 2020, 14:39

Re: MQTT funktioniert nur teiweise

Beitrag von ullir »

ich habe im IOBroker den Adapter für den MQTT Broker gelöscht und wieder eingefügt. Alle Verbindungen funktionieren auch mit den Wechselrichter auf der Solaranzeige. Nur die Daten der US2000B kommen nicht an.

Benutzeravatar
Ulrich
Administrator
Beiträge: 2741
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 173 Mal
Kontaktdaten:

Re: MQTT funktioniert nur teiweise

Beitrag von Ulrich »

Ist denn in den x.user.config.php ger Eintrag

$MQTTGeraet = "box1";

bei jeder congig Datei anders? Jedes Gerät muss einen anderen MQTT Gerätenamen haben, da sonst Werte, wenn sie gleich heißen im Broker überschrieben werden.
--------------------------------------
Ulrich [Admin]

ullir
Beiträge: 7
Registriert: Fr 3. Jul 2020, 14:39

Re: MQTT funktioniert nur teiweise

Beitrag von ullir »

In jeder x.user.config.php sind die Einträge $MQTTGeraet = "WechselrichterP1"; unterschiedlich.

Was mich bei dem Problem stutzig macht ist, dass vor der Erweiterung des Batteriespeichers alles funktioniert hat.

Auch fällt auf das von Zeit zu Zeit die Werte vom Batteriespeicher per MQTT übertragen werden.
Das kann mal nach einem reboot sein oder nach mehreren Stunden.

Antworten