NEWS
Mqtt Wert versenden
-
Hallo Zusammen.
Ich habe mir eine Wetterstation gebaut, die Daten werden über einen Esp 32 erfasst.
Dieser sendet sie via Mqtt an meinen io-broker.
Dies funktioniert einwandfrei.
Als Erweiterung soll die Windgeschwindigkeit an einen zweiten Esp via Mqtt gesendet werden und ab einem Höchstwert die Rolladensteuerung( simuliert) hochfahren.Meine Frage an euch: wie bekomme ich den Wert der Windgeschwindigkeit an meinen zweiten Esp 32.
Vielen Dank im Voraus -
- Variante 1: der 2. ESP32 verbindet sich auch mit dem MQTT-Broker und abonniert einfach die Windgeschwindigkeit des 1. ESP32. Dann wird er jedes mal benachrichtigt wenn es eine Änderung des Wertes gibt und er kann reagieren
- Variante 2: Ein Skript in ioBroker (z.B. Blockly) regiert auf den Datenpunkt mit der Windgeschwindigkeit und sendet nach Auswertung dem 2. ESP32 das Signal zum hochfahren.
Du schreibst ja leider was auf dem 2. ESP läuft, also als Software/Programm etc.
-
@bananajoe
vielen Dank für deine schnelle Antwort.
Gerne würde ich die Variante 1 realisieren. Dazu habe ich aber Fragen
Wie genau muss mein bestehendes Programm geändert werden, damit der ESP diesen Wert vom MQTT-Broker bekommt ?
Vielen Dank -
@cdefgahc sagte in Mqtt Wert versenden:
Wie genau muss mein bestehendes Programm geändert werden,
na ja klug würde ich mal sagen.. und mit bedacht
p.s: meine Glaskugel ist gerade zur politur.. ergo ich kann dein Programm nicht ersehen..sry
-
@cdefgahc wie @arteck schon schreibt ... in der Glaskugel sehen wir nicht mit welche der 1.001 Möglichkeiten du da was geschrieben hast oder was du nutzt.
Dein Programm muss statt MQTT-Daten senden ein MQTT Topic abonnieren. In der Regel wird dann eine Routine/Prozedure/Funktion oder wie auch immer es in deiner Umgebung heißt bei einer Wertänderung aufgerufen und bekommt dabei den neuen Wert als Parameter übermittelt.
-
@arteck
Hier ist mein Programm für den 2. ESP ( der der die Windgeschwindigkeit erhalten soll.
Rolladen.txt
und so habe ich meine Windgeschwindigkeit von dem 1. ESP an dem MQTT Broker übergeben.
client.publish("Windgeschwindigkeit", String(WindSpeed).c_str(), true);
Die Verbindung zu dem MQTT-Server bekomme ich hin. Es geht mir eher darum, wie ich den Wert der Windgeschwindigkeit auf den 2. ESP bekomme und bei erreichen von 10KM/h den Rolladen hochfahre.Vielen Dank
-
@cdefgahc ok, da sieht nach der Arduino-IDE aus ...
Hab ich ewig nicht gemacht, als ich am Punkt war das ich MQTT hätte abonnieren müssen habe ich auf Tasmota umgebaut.Du hast doch nach eine Anleitung MQTT-Publish hinbekommen,
ich hab das mal nach dieser Anleitung gemacht (gehabt): http://www.steves-internet-guide.com/using-arduino-pubsub-mqtt-client/Im Abschnitt Receiving Message beschreibt er genau diesen Fall wie man Nachrichten empfängt und das in die Main Loop einbaut. Da empfängt das Topic mit dem man sich am Anfang verbunden hat,
hier ist nur das Subscribe beschrieben wie man mehrere Subtopic abonniert: (bei Bedarf)
https://www.baldengineer.com/multiple-mqtt-topics-pubsubclient.html