kürzeres MQTT Übertragungsintervall ?

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

gudwih
Beiträge: 60
Registriert: Di 6. Apr 2021, 14:24
Wohnort: am Bodensee
Hat sich bedankt: 13 Mal
Danksagung erhalten: 5 Mal

kürzeres MQTT Übertragungsintervall ?

Beitrag von gudwih »

Ich übertrage die Werte aus der solaranzeige in den ioBroker um dort verschiedene Steuerungsaufgaben auszuführen.
Das MQTT Intervall ist offenbar auf 60s gesetzt, ich hätte es gerne kürzer.
Ich habe keinen Parameter gefunden mit dem man das Intervall z.B. auf 30s setzen könnte. "keep alive" hilft da ja nicht.
Danke fürs Grübeln und einen Tip ;)
Goodwe 5048EM, Goodwe 2000XS, Solaranzeigen (Raspi4 & Raspi B+), ioBroker (Proxmox & Intel NUC), Raspberrymatic (Raspi3+)

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

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von Ulrich »

Hast Du eine Multi-Regler-Version?
--------------------------------------
Ulrich [Admin]

gudwih
Beiträge: 60
Registriert: Di 6. Apr 2021, 14:24
Wohnort: am Bodensee
Hat sich bedankt: 13 Mal
Danksagung erhalten: 5 Mal

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von gudwih »

Nein, nur single.
Goodwe 5048EM, Goodwe 2000XS, Solaranzeigen (Raspi4 & Raspi B+), ioBroker (Proxmox & Intel NUC), Raspberrymatic (Raspi3+)

solachab
Beiträge: 45
Registriert: Di 8. Jun 2021, 18:01
Danksagung erhalten: 1 Mal

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von solachab »

würde das mit der Multi gehen? bin da auch gerade am probieren

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

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von Ulrich »

Bei der Singel Version musst du $Wiederholungen = 4; oder höher in der user.config.php eingeben und in dem zuständigen Script folgendes verändern:

Vorher:
/**************************************************************************
//
// Alle ausgelesenen Daten werden hier bei Bedarf als mqtt Messages
// an den mqtt-Broker Mosquitto gesendet.
**************************************************************************/
if ($MQTT and $i == 1) {
$funktionen->log_schreiben( "MQTT Daten zum [ $MQTTBroker ] senden.", " ", 1 );
require ($Pfad."/mqtt_senden.php");
}
Nachher:
/**************************************************************************
//
// Alle ausgelesenen Daten werden hier bei Bedarf als mqtt Messages
// an den mqtt-Broker Mosquitto gesendet.
**************************************************************************/
if ($MQTT) {
$funktionen->log_schreiben( "MQTT Daten zum [ $MQTTBroker ] senden.", " ", 1 );
require ($Pfad."/mqtt_senden.php");
}

Bei der Multi-Regler-Version ist es um einiges komplizierter.
--------------------------------------
Ulrich [Admin]

plfffg
Beiträge: 4
Registriert: Fr 3. Dez 2021, 17:19
Hat sich bedankt: 1 Mal

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von plfffg »

Kann es sein, dass man noch andere Parameter anpassen muss? Bei mir führen die beiden Anpassungen dazu, dass die Werte immer abwechselnd alle 10s und 50s übergeben werden. Die Änderung der $Wiederholungen habe ich mit 4, 6 und 10 ausprobiert, ohne dass es zu einer sichtbaren Veränderung kommt.

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

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von Ulrich »

Bei welcher Version? Single oder Multi-Regler Version?
--------------------------------------
Ulrich [Admin]

plfffg
Beiträge: 4
Registriert: Fr 3. Dez 2021, 17:19
Hat sich bedankt: 1 Mal

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von plfffg »

Es ist die Single Regler Version. Das angeschlossene Gerät ist Daly BMS (57). Am MQTT hängt der IOBroker.

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

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von Ulrich »

Dann ändere bitte auf Zeile 287 in der Datei daly_bms.php bitte folgendes:

alt:

Code: Alles auswählen

    /**************************************************************************
    //
    //  Alle ausgelesenen Daten werden hier bei Bedarf als mqtt Messages
    //  an den mqtt-Broker Mosquitto gesendet.
    **************************************************************************/
    if ($MQTT and $i == 1) {
      $funktionen->log_schreiben( "MQTT Daten zum [ $MQTTBroker ] senden.", "   ", 1 );
      require ($Pfad."/mqtt_senden.php");
    }
neu:

Code: Alles auswählen

    /**************************************************************************
    //
    //  Alle ausgelesenen Daten werden hier bei Bedarf als mqtt Messages
    //  an den mqtt-Broker Mosquitto gesendet.
    **************************************************************************/
    if ($MQTT) {
      $funktionen->log_schreiben( "MQTT Daten zum [ $MQTTBroker ] senden.", "   ", 1 );
      require ($Pfad."/mqtt_senden.php");
    }
Nur " and $i == 1" herauslöschen.

$Wiederholungen darf nur zwischen 1 und 6 sein.
--------------------------------------
Ulrich [Admin]

plfffg
Beiträge: 4
Registriert: Fr 3. Dez 2021, 17:19
Hat sich bedankt: 1 Mal

Re: kürzeres MQTT Übertragungsintervall ?

Beitrag von plfffg »

Ich habe die Datei abgeändert und $Wiederholungen auf 6 gesetzt. Das Verhalten ist wie oben in der Fragestellung beschrieben. immer alle 10s und 50s kommen die Daten an. Hast du noch eine Idee? Ist der Pi3B+ für Solaranzeige zu langsam? Hinweis: Der IOBroker läuft auf einem anderen Pi, ebenso die externe InfluxDB.

Am IO Broker kommen folgende Daten /Timestamps) an:
16:20:10.022 info javascript.0 (2169) script.js.common.Daly_BMS: 1639408811
16:20:24.001 info javascript.0 (2169) script.js.common.Daly_BMS: 1639408821
16:21:08.001 info javascript.0 (2169) script.js.common.Daly_BMS: 1639408871
16:21:28.001 info javascript.0 (2169) script.js.common.Daly_BMS: 1639408881
16:22:08.001 info javascript.0 (2169) script.js.common.Daly_BMS: 1639408931
16:22:22.022 info javascript.0 (2169) script.js.common.Daly_BMS: 1639408941
16:23:10.027 info javascript.0 (2169) script.js.common.Daly_BMS: 1639408992
16:23:28.001 info javascript.0 (2169) script.js.common.Daly_BMS: 1639409002
16:24:08.001 info javascript.0 (2169) script.js.common.Daly_BMS: 1639409050
16:24:22.009 info javascript.0 (2169) script.js.common.Daly_BMS: 1639409060
16:25:10.032 info javascript.0 (2169) script.js.common.Daly_BMS: 1639409111
16:25:22.011 info javascript.0 (2169) script.js.common.Daly_BMS: 1639409121

In der Logdatei steht folgendes:
13.12. 16:20:01 |------------ Start daly_bms.php ----------------------------
13.12. 16:20:01 -USB Port: /dev/ttyUSB0
13.12. 16:20:02 |------------------- Start wetterdaten.php --------------------
13.12. 16:20:02 o---Wetterdaten ausgeschaltet.
13.12. 16:20:02 -Wetterprognose ausgeschaltet.
13.12. 16:20:02 |------------------- Stop wetterdaten.php ---------------------
13.12. 16:20:06 -MQTT Daten zum [ 192.168.2.70 ] senden.
13.12. 16:20:07 -Alle 10 Minuten werden die Statistikdaten remote übertragen.
13.12. 16:20:07 MQT-MQTT Daten zum Broker gesendet: 192.168.2.70 Port: 1883
13.12. 16:20:08 * -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet.
13.12. 16:20:08 -Alle 10 Minuten werden die Statistikdaten übertragen.
13.12. 16:20:08 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
13.12. 16:20:21 -MQTT Daten zum [ 192.168.2.70 ] senden.
13.12. 16:20:21 -Alle 10 Minuten werden die Statistikdaten übertragen.
13.12. 16:20:21 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
13.12. 16:20:22 MQT-MQTT Daten zum Broker gesendet: 192.168.2.70 Port: 1883
13.12. 16:20:28 -OK. Datenübertragung erfolgreich.
13.12. 16:20:28 |------------ Stop daly_bms.php ----------------------------
13.12. 16:21:01 |------------ Start daly_bms.php ----------------------------
13.12. 16:21:01 -USB Port: /dev/ttyUSB0
13.12. 16:21:06 -MQTT Daten zum [ 192.168.2.70 ] senden.
13.12. 16:21:07 MQT-MQTT Daten zum Broker gesendet: 192.168.2.70 Port: 1883
13.12. 16:21:07 * -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet.
13.12. 16:21:07 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
13.12. 16:21:20 !! -Datenfehler, nochmal... a58095080000000000000000
13.12. 16:21:25 -MQTT Daten zum [ 192.168.2.70 ] senden.
13.12. 16:21:25 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
13.12. 16:21:26 MQT-MQTT Daten zum Broker gesendet: 192.168.2.70 Port: 1883
13.12. 16:21:31 -OK. Datenübertragung erfolgreich.
13.12. 16:21:31 |------------ Stop daly_bms.php ----------------------------
13.12. 16:22:01 |------------ Start daly_bms.php ----------------------------
13.12. 16:22:01 -USB Port: /dev/ttyUSB0
13.12. 16:22:06 -MQTT Daten zum [ 192.168.2.70 ] senden.
13.12. 16:22:07 MQT-MQTT Daten zum Broker gesendet: 192.168.2.70 Port: 1883
13.12. 16:22:08 * -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet.
13.12. 16:22:08 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
13.12. 16:22:21 -MQTT Daten zum [ 192.168.2.70 ] senden.
13.12. 16:22:21 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
13.12. 16:22:21 MQT-MQTT Daten zum Broker gesendet: 192.168.2.70 Port: 1883
13.12. 16:22:28 -OK. Datenübertragung erfolgreich.
13.12. 16:22:29 |------------ Stop daly_bms.php ----------------------------
13.12. 16:23:02 |------------ Start daly_bms.php ----------------------------
13.12. 16:23:02 -USB Port: /dev/ttyUSB0
13.12. 16:23:07 -MQTT Daten zum [ 192.168.2.70 ] senden.
13.12. 16:23:08 MQT-MQTT Daten zum Broker gesendet: 192.168.2.70 Port: 1883
13.12. 16:23:08 * -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet.
13.12. 16:23:08 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.

Antworten