Simultanes Publish und Subscribe

Begonnen von Gnorbert, 23 April 2020, 13:11:57

Vorheriges Thema - Nächstes Thema

Gnorbert

Hallo,

Ich komme mit dem folgenden Problem nicht weiter. Ich habe 3 ESP32-Sensorkonoten, die Sensordaten abgreifen und via MQTT publishen. Das Funktioniert auch so weit. Jedoch will ich nun einen der Sensorknoten auch zum ansteuern von LEDs nutzen.

Das funktioniert jedoch nicht oder nur mit Einschränkung. Wenn ich in der loop-Funktion nur das callback über clinet.loop aufrufe, kann ich die LEDs problemlos ansprechen. Sobald meine Code zum publishing der Sensorwerte hinzukommt, funktioniert das aber nur noch selten oder gar nicht mehr. Ich verwende pubsubclient.h

Ist es prinzipiell möglich auf einem ESP32 gleichzeitig zu publischen und zu subscriben? Oder ist das MQTT Protokoll dafür nicht vorgesehen?
Wenn es möglich ist, wie muss dann der code in der loop-Funktion aussehen?

xenos1984

Das ist durchaus möglich und funktioniert zumindest bei mir auch recht gut (ich habe einen Temperatursensor am ESP / Arduino hängen, dessen Daten per MQTT an FHEM gesendet werden, und einen Datentransfer in die Gegenrichtung zum Schalten eines Digitalausgangs).

Mein Code ist dabei so aufgebaut wie hier in den Beispielen:

http://wiki.fhem.de/wiki/MQTT_Einf%C3%BChrung_Teil_3

Was bei deinem Code schief läuft, lässt sich natürlich schwer sagen, ohne den Code selbst vor Augen zu haben.

Thomas41587

Gleichzeitiges publish und subscribe funktioniert. Solange man nicht publish und subscribe auf ein und das selbe reading macht, dann hat man einen loop :-) Die Erfahrung durfte ich erst kürzlich machen.

Gisbert

Hallo Gnorbert,

kann mich nur den Vorrednern anschließen. Ohne den Sketch anzuhängen, ist eine Hilfe wohl kaum möglich.

Hast du mal daran gedacht fertige Software wie ESPEasy oder Tasmota einzusetzen? Dort ist dieses Problem ganz sicher gelöst. Das was du prüfen musst, ist ob deine Sensoren und Aktoren bereits in diesen Softwarepaketen bereits enthalten ist. Ich würde wetten, dass das geht, aber du hast uns darüber im Unklaren gelassen.

Ich nutze fast ausschließlich ESPEasy und Tasmota, lediglich bei 2 ESP8266 habe ich eigene Sketche am Start, da ich dort Aktoren bzw. Funktionalitäten nutze, die bei obigen Paketen nicht vorgesehen sind.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome