Autor Thema: *gelöst* Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen  (Gelesen 787 mal)

Offline lynckmeister

  • Full Member
  • ***
  • Beiträge: 183
Hallo,
ich habe einen Sketch mit der PubSubClient Lib gebaut. Über die Callback Methode will ich eine Nachricht von Fhem empfangen.
Ich habe dazu auch mit Subscribe das Topic entsprechend aboniert...

In Fhem verwende ich den MQTT2_Server ein MQTT2_Device wurde durch das Senden von Nachrichten automatisch angelegt:

mqttclient.setCallback(callback);
 mqttclient.subscribe("cmnd");
 mqttclient.publish("esp/MOINSEN", "Hello from ESP8266");


In meinem MQTT2_DEVICE habe ich mir eine setlist zum Testen mit den cmds on und off angelegt..
wenn ich im Server auf traffic anzeigen klicke sehe ich auch dass bei einem Klick auf den Webbutton wie erwartet ein cmd gesendet wird:

SENT: cmnd/esp/aus off\
SENT: cmnd/esp/an on




Internals:
   CFGFN     
   CID        ESP8266Client
   DEF        ESP8266Client
   FUUID      6320e44-f3f-c4df-52b-4e8d468aaf8cf70b
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.x.xxx_62899
   MQTT2_FHEM_Server_MSGCNT 8
   MQTT2_FHEM_Server_TIME 2022-09-14 22:09:07
   MSGCNT     8
   NAME       MQTT2_ESP8266Client
   NR         231807
   STATE      on
   TYPE       MQTT2_DEVICE
   READINGS:
     2022-09-14 21:11:25   IODev           MQTT2_FHEM_Server
     2022-09-14 22:09:07   MOINSEN         Hello from ESP8266
     2022-09-14 22:09:47   state           on
     2019-10-21 12:57:00   temperature     22
Attributes:
   IODev      MQTT2_FHEM_Server
   readingList ESP8266Client:esp/MOINSEN:.* MOINSEN
   room       MQTT2_DEVICE
   setList    off:noArg cmnd/esp/aus off\
on:noArg cmnd/esp/an on


trotzdem wird meine Callback nie angesprungen, dh der ESP empfängt nix vom Arduino.. hab ich das falsch aboniert?! Ich komm hier nicht weiter...
« Letzte Änderung: 27 September 2022, 21:35:20 von lynckmeister »

Offline Papa Romeo

  • Hero Member
  • *****
  • Beiträge: 3083
  • Wer bitteschön ist MacGyver?
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #1 am: 14 September 2022, 22:36:46 »
Hatte mal ein ähnliches Problem, weil ich eine falsche PubSubClient Librarie Version nutzte.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Offline fhem-hm-knecht

  • Hero Member
  • *****
  • Beiträge: 2453
  • Fhem User seit 2010
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #2 am: 15 September 2022, 00:01:29 »
setList    off:noArg cmnd/esp/aus off\
on:noArg cmnd/esp/an on

der \ hat in der setList nichts  zu suchen.
normale return reicht

ob das schon hilft k.A
Hary


Odroid HC 1  getrennte Fhem Instanzen HM|INETdienste|Heizung|Bedienoberfläche|TEST -->alles nur noch über MQTT2 und CLIENT --> abgesetzte Pi's über LAN

Offline lynckmeister

  • Full Member
  • ***
  • Beiträge: 183
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #3 am: 15 September 2022, 08:00:12 »
ahja stimmt ... habs korrigiert, hat aber nix gebracht ... man sah ja auch im Vorfeld, dass etwas gesendet wurde..

Offline lynckmeister

  • Full Member
  • ***
  • Beiträge: 183
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #4 am: 15 September 2022, 08:01:20 »
Hatte mal ein ähnliches Problem, weil ich eine falsche PubSubClient Librarie Version nutzte.

ich habe die neuste Lib über die IDE installiert... werde mal ne ältere probieren ...


so habe mal die letzten zwei älteren probiert , aktuell ist ja 2.8.0 ... 2.7.0 und 2.6.0 bewirken keine Änderung... schätze es ist doch eher ein logischer Fehler in meiner Steuerung ...
« Letzte Änderung: 15 September 2022, 08:28:58 von lynckmeister »

Offline lynckmeister

  • Full Member
  • ***
  • Beiträge: 183
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #5 am: 18 September 2022, 10:25:02 »
Hat denn keiner eine Idee warum ich keine Nachrichten von meinem FHEM empfangen kann ?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19373
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #6 am: 18 September 2022, 10:30:18 »
Vielleicht würde es helfen, wenn du den Sketch zeigen würdest. Nach dem, was du gezeigt hattest, ist "cmnd" der Topic, unter dem du was erwartest.
Abgesehen davon, dass das etwas wenig unterscheidungskräftig ist, machst du von FHEM aus auf diesen Topic halt kein publish, sondern auf was längeres...

An einen Fehler in der Arduino-lib glaube ich eher nicht, zumindest funktioniert die aktuelle Version mit meinem aktuellen Projekt.
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Icinger

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1447
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #7 am: 18 September 2022, 11:31:57 »
Du subscribest das Topic
cmnd
sendest aber auf das Topic
cmnd/esp/aus
Das ist ja nicht das selbe, also wird die Lib auch nicht darauf reagieren.

Du kannst allerdings mit einem Wildcard subsriben
cmnd/#Dann bekommst du den Callback und musst es selbst auswerten.

Andere Möglichkeit wäre, direkt das ganze Topic zu subscriben, dann brauchst du die Auswertuing nicht. Das setzt aber halt voraus, dass du nur ein einzelnes Topic brauchst.

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

Offline lynckmeister

  • Full Member
  • ***
  • Beiträge: 183
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #8 am: 19 September 2022, 07:58:08 »
sehr gut ... das werde ich nachher mal testen... an eine Wildcard hatte ich schon gedacht, ich war mir nicht sicher, ob man die bei MQTT braucht... kann man auch auf "alles" reagieren in dem man einfach nur "#" subscibed? Wie kann ich "das ganze topic" subcriben? Mir geht es erstmal einfach darum, dass ich wenigstens irgendwas empfange um zu sehen, dass die Verbindung klappt...
 

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19373
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #9 am: 19 September 2022, 09:00:24 »
z.B.:
mqttclient.subscribe("cmnd/esp/aus");Stellt sich die Frage, ob der branch "aus" sinnvoll ist, letztlich doppelst du halt die (ein/aus-) Aussage, die man auch einfach im payload finden könnte...
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline lynckmeister

  • Full Member
  • ***
  • Beiträge: 183
Antw:Arduino PubSubClient Sketch kann nicht von FHEM MQTT empfangen
« Antwort #10 am: 27 September 2022, 21:35:02 »
so etwas blödes, ich habe in der Doku einfach übesehen, dass ich für den mqttclient auch noch die loop methode in loop() ausführen muss.... hrmpf.. jetzt gehts.. vielen dank für eure Hilfe!!

void loop() {
...
...

mqttclient.loop();
..
..
}

 

decade-submarginal