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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.