MQTT esp32/Arduino-pubsubclient.h - publish mehr als 700 B esp

OP (Firma: technik) #6320465
Lesenswert?

Hallo guten Tag,

(Thema MQTT- Bibliothek - pubsubclient.h für ESP32/ Arduino)

wenn man mehr als ca. 700 Byte mit der Funktion publish() oder write 
(start/end) verschicken möchte kommt im Topic nichts an.

Als wichtig konnte ich bis jetzt nur die beiden Zeilen in der 
pubsubclient.h erkennen...
1
#define MQTT_VERSION MQTT_VERSION_3_1_1
2
#define MQTT_MAX_PACKET_SIZE 1000000

Da ich mit publish(topic,payload); auch nicht weitergekommen bin, teste 
ich gerade write()... (benötigt glaube ich ein Byte-Array).
1
 
2
mqtt.beginPublish (topic,500,false);
3
mqtt.write(tt,500);//int write (payload, length)
4
mqtt.endPublish();


Hat jemand eine Idee?

Vielen Dank :D
#6320516
Lesenswert?

Soweit ich mich erinnere, ist der Buffer nur 128 Byte gross. Damit käme 
es in die Kategorie "Weltwunder", wenn man 700 Bytes senden könnte. 
Kannst du deine Daten nicht in mehreren Paketen schicken?

p.s. hab das in der Pubsub-Beschreibung noch gefunden:

Maximum Message Size As part of minimising its footprint, it limits the 
size of any MQTT packet it can send or receive to 128 bytes. If you want 
to send or receive messages larger than this, you must change the value 
of MQTT_MAX_PACKET_SIZE in PubSubClient.h. The library allocates this 
much memory in its internal buffer, which reduces the memory available 
to the sketch itself.

p.p.s: hat der ESP32 überhaupt 1MB RAM, so wie du es versuchst?
OP (Firma: technik) #6320609
Lesenswert?

Hi vielen Dank für die Antwort,
[h]
https://en.wikipedia.org/wiki/ESP32#:~:text=The%20ESP32%20system%20on%20a%20chip%20integrated%20circuit,5%20mm%20%C3%97%205%20mm%20sized%20QFN%20packages
[/h].

512 kib habe ich jetzt daraus gelesen
-----
#define MQTT_MAX_PACKET_SIZE 1000000
wären dann wirklich zu viel xD
Ich trage jetzt erst mal wieder 20000 ein...
---
Empfangen/Senden geht aber auf jeden Fall mit bis zu ca. 800 Byte.
128 Byte werden da auf jeden Fall überschritten.
Ich denke nicht, dass das eine Grenze ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren