Wer kann mir bitte weiterhelfen bei MQTT.
Ich habe einen ESP 8266 mit Temperatursensoren und einem Relais. Die Temperaturen kommen bereits an.
Möchte aber nun noch das Relais schalten.
Folgendes habe ich bereits angelegt.
MQTT2_SERVER
Dieser funktioniert bereits weil ich Topics empfange.
Weiters habe ich mir eine MQTT2_GENERIC_BRIDGE angelegt
Das Autocreate von MQTT2_SERVER hat mir ein MQTT2_DEVICE angelegt, wo die Temperaturen kommen und auch der Status des Relais angezeigt wird.
Hier das List des DEVICES:
Internals:
CFGFN
CID ESP8266Client
DEF ESP8266Client
FUUID 683fd545-f33f-d14d-64a1-03793a537fd2f58a
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 153
NAME MQTT2_ESP8266Client
NR 307101
STATE status1
TYPE MQTT2_DEVICE
eventCount 166
mqtt2server_CONN mqtt2server_10.0.0.52_61763
mqtt2server_MSGCNT 153
mqtt2server_TIME 2025-06-04 15:40:31
READINGS:
2025-06-04 07:10:29 IODev mqtt2server
2025-06-04 09:27:04 state state
2025-06-04 09:48:08 subscriptions relais/steuerung1
2025-06-04 15:40:31 temperature_oben 29.19
2025-06-04 15:40:31 temperature_unten 26.88
2025-06-04 15:40:31 uptime 33004
Attributes:
DbLogExclude .*
mqttPublish on:relais/steuerung1:on off:relais/steuerung1:off
readingList ESP8266Client:temperatur/sensor1:.* temperature_unten
ESP8266Client:temperatur/sensor2:.* temperature_oben
ESP8266Client:system/uptime:.* uptime
ESP8266Client:relais/status1:.* status1
room MQTT2_DEVICE
setList on:relais/steuerung1:on off:relais/steuerung1:off
stateFormat status1
webCmd on:off
Wie man sieht habe ich bereits versucht mit mqttPublish etwas zustande zu bringen. Aber das bringt keinen Erfolg.
Meine Fragen sind: Welchen Weg muss ich einschlagen um ab des ESP etwas senden zu können?
Meine Logik sagt mir, dass ich zum Senden einen MqttClient brauche.
Habe mir auch das Wiki schon mehrmals angesehen, aber irgendwie steige ich da nicht durch, denn ich sehe da kein durchgehendes Beispiel, wie das gelöst werden kann. Oder ich begreife es nicht.
Was ist notwendig um etwas senden zu können, wo gebe ich das Ziel an? Beim ESP habe ich auch die IP und den Port des Servers angegeben.
Hi,
1) mqttPublih brauchst du nicht.
2) das setList ist falsch bei dir
Sollte in etwa so aussehen:
off:noArg ESP8266Client/relais/steuerung1 off
on:noArg ESP8266Client/relais/steuerung1 on
Wobei mir das readingList auch sehr komisch vorkommt, das sopllte eher auch so
ESP8266Client/temperatur/sensor2:.* temperature_oben
aofgebaut sein.
lg, Stefan
Zitat von: Icinger am 04 Juni 2025, 16:13:391) mqttPublish brauchst du nicht.
2) das setList ist falsch bei dir
3) die MQTT2_GENERIC_BRIDGE brauchst Du höchstwahrscheinlich auch nicht - wozu?
Das ReadingList wurde automatisch so anlegt. wenn ich es ändere wird es wieder anderes angelegt.
Die on / off Befehle nach dem neu angelegtem setList, werden zwar gesendet, aber der ESP macht gar nichts.
Ich höre kein Klicken, außerdem sollte unter relais/status1 eine Änderung kommen.
Was ich bei dem ganzen nicht verstehe, wie weiß ich dass die on/off am ESP ankommen? gesendet werden sie, das sehe ich im MQTT Traffic.
Zitat von: maci am 04 Juni 2025, 17:22:04Das ReadingList wurde automatisch so anlegt. wenn ich es ändere wird es wieder anderes angelegt.
Nicht, wenn du es "richtig" machst:
readingList temperatur/sensor1:.* temperature_unten
temperatur/sensor2:.* temperature_oben
system/uptime:.* uptime
relais/status1:.* state
Anmerkungen:
- raw-listings sind einfacher für Helfer, so mußt du das wieder selber rein- und umfummeln...
- warum das denglish sein muss, erschließt sich mir nicht (temperature + "oben"?)
- status1 entspricht deinem "Hauptschalter" für on/off, also ist das "state"...
- Die ClientID braucht man nicht (undbedingt), das ist imo "eigentlich" nicht "MQTT-like", die so mit Topics zu verbinden/vermischen (qed, siehe deinen ersten Beitrag zum Thema setList und die anderen, die auch irgendwie glauben, dass das da mit reinverwurstet werden müßte).
Das setList sollte so aussehen:
off:noArg relais/steuerung1 off
on:noArg relais/steuerung1 on
An den zwei Attributen sieht man schon mal, dass die Topic-Struktur insgesamt "sehr knapp" ist. Wenn da noch so ein paar selbstgestrickte und uneindeutige Devices dazu kommen, blickt keiner mehr durch, was zu welcher Hardware gehöhrt...
Zitat von: maci am 04 Juni 2025, 17:22:04Was ich bei dem ganzen nicht verstehe, wie weiß ich dass die on/off am ESP ankommen? gesendet werden sie, das sehe ich im MQTT Traffic.
MQTT traffic zeigt "nur", was der Server macht, nicht, ob der ESP was damit anfangen kann. Das sollte das Ding an der seriellen Konsole auswerfen, aber was er genau damit macht, steht in dem Code, den du drauf gebastelt hast...
Danke, jetzt funktioniert es! :)