Bitte um Hilfe bei MQTT

Begonnen von maci, 04 Juni 2025, 16:00:06

Vorheriges Thema - Nächstes Thema

maci

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.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Icinger

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_obenaofgebaut sein.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

betateilchen

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?

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maci

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.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

maci

Danke, jetzt funktioniert es!  :)

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan