[gelöst] m24.cloudmqtt.com, Problem beim einbinden

Begonnen von moerte, 04 März 2019, 20:21:43

Vorheriges Thema - Nächstes Thema

moerte

Hallo meine lieben..
Ich müsste auf Daten von einen Server von  m24.cloudmqtt.com zugreifen können.
Port, Benutzer und Passwort sind bekannt.

Ich bin folgender Maßen vorgegangen:

sudo cpan install Net::MQTT:Simple
sudo cpan install Net::MQTT:Constants


In fhem:

define myBroker MQTT m24.cloudmqtt.com:17882 [user] [passwort]


Unter connection steht "aktiv" und unter state "opened".

Nun müsste ich auf Daten zugreifen welche in Order z.b. sind:
/MQTT-Client-01/Temperatur/SW/

Könnte mir evtl jemand helfen?
Vielen dank im voraus.

Hier noch das list:

Internals:
   DEF        m24.cloudmqtt.com:17882
   DeviceName m24.cloudmqtt.com:17882
   FD         41
   FUUID      5c7d5b3c-f33f-599c-be2e-66aad47d45275398
   NAME       myBroker
   NOTIFYDEV  global
   NR         218
   NTFY_ORDER 50-myBroker
   PARTIAL   
   STATE      opened
   TYPE       MQTT
   buf       
   msgid      3
   ping_received 1
   timeout    60
   READINGS:
     2019-03-04 20:22:13   connection      active
     2019-03-04 18:31:56   state           opened
   messages:
Attributes:



Lg

rudolfkoenig

Im FHEM gibt es zwei MQTT Clients, der alte MQTT und der neue (und intensiver betreute) MQTT2_CLIENT.
Falls mit MQTT2_CLIENT Probleme gibt, dann haeng mal ein "attr MQTT2_CLIENT verbose 5" Mitschnitt des Verbindungsaufbaus hier an.

moerte

#2
Vielen Dank für deine Antwort,
für mich ist das noch alles Neuland.
Z.b. ist ein Temperaturwert im Verzeichnis:
/MQTT_Client_01/Temperatur/IW/Innen1

Oder ein Schaltzustand on/off im Verzeichnis:
/MQTT_Client_01/Freigabe/Beckenlampe


Unter anderem würde ich mir diese gern in Fhem anzeigen lassen.

Angelegt u.a..für den Sonsor so.

define temp_innen MQTT_DEVICE


attr: subscribeReading.* /MQTT_Client_01/Temperatur/IW/Innen1

Mit dem Broker besteht eine Verbindung. Aber es kommen keine Werte etc.
Könntest du mir sagen wie ich vorgehen kann, damit ich zu einer Lösung komme wo du behilflich sein könntest?

Vielen Dank


Edit:
Hab jetzt mal den MQTT2_CLIENT  genommen..
Hier ein list:

Internals:
   BUF       
   CFGFN     
   DEF        m24.cloudmqtt.com:17882 aziiinrw
   DeviceName m24.cloudmqtt.com:17882
   FD         4
   FUUID      5c7e4475-f33f-599c-b4a4-6d0f2dab0b6687fd
   NAME       myBroker1
   NR         1981
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   myBroker1
   connecting 3
   lastMsgTime 1551778934.71482
   msgid      3
   nextOpenDelay 5
   READINGS:
     2019-03-05 10:56:09   state           opened
   messages:
     0:
       timeout    1551779258.65229
     1:
       timeout    1551779299.84084
     2:
       timeout    1551779398.08226
Attributes:
   verbose    5


Und hier das log mit verbose 5:


2019.03.05 10:53:00 1: m24.cloudmqtt.com:17882 disconnected, waiting to reappear (myBroker1)

2019.03.05 10:53:04 5: HttpUtils url=http://m24.cloudmqtt.com:17882/

2019.03.05 10:53:04 4: IP: m24.cloudmqtt.com -> 54.171.53.113

2019.03.05 10:53:04 1: m24.cloudmqtt.com:17882 reappeared (myBroker1)

jump to the top



rudolfkoenig

MQTT_DEVICE gehoert zu MQTT, und da kann ich nicht helfen.

Mit MQTT2:define m2c MQTT2_CLIENT m24.cloudmqtt.com:17882
attr m2c usename [user]
set m2c password [password]

define m2d MQTT2_DEVICE
attr m2d readingList /MQTT_Client_01/Temperatur/IW/Innen1:.* Innen1


Zum debuggen kann man "attr m2c rawEvents" setzen, und im Event-Monitor zuschauen.

moerte

Vielen lieben Dank..  hab jetzt alles auf MQTT2 umgestellt.
Das Device bringt mir leider auch keinen Wert :(



Internals:
   CFGFN     
   DEVICETOPIC temp_innen1
   FUUID      5c7e498f-f33f-599c-e360-aec9741b1bdb9d24
   IODev      myBroker1
   NAME       temp_innen1
   NR         2670
   STATE      ???
   TYPE       MQTT2_DEVICE
Attributes:
   IODev      myBroker1
   readingList aziiinrw/MQTT_Client_01/Temperatur/IW/Innen1:.* Innen1


Hab gesehen, ganz am Anfang hab ich noch das Verzeichnis vom User aziiinrw.
Siehe Anhang.. 



sledge

Zitat von: moerte am 05 März 2019, 11:23:07
Vielen lieben Dank..  hab jetzt alles auf MQTT2 umgestellt.
Das Device bringt mir leider auch keinen Wert :(



Internals:
   CFGFN     
   DEVICETOPIC temp_innen1
   FUUID      5c7e498f-f33f-599c-e360-aec9741b1bdb9d24
   IODev      myBroker1
   NAME       temp_innen1
   NR         2670
   STATE      ???
   TYPE       MQTT2_DEVICE
Attributes:
   IODev      myBroker1
   readingList aziiinrw/MQTT_Client_01/Temperatur/IW/Innen1:.* Innen1


Hab gesehen, ganz am Anfang hab ich noch das Verzeichnis vom User aziiinrw.
Siehe Anhang..

Hi,

ich bin mir nicht sicher, ob du den richtigen Port verwendest. Bei mir läuft m24.... ganz einfach wie folgt:


defmod cloudmqtt MQTT2_CLIENT m24.cloudmqtt.com:28261
attr cloudmqtt SSL 1
attr cloudmqtt autocreate 0
attr cloudmqtt icon mqtt
attr cloudmqtt room system->Interfaces
attr cloudmqtt username bazinga


Funktioniert bei mir wunderbar. Hinweis: 28261 ist der SSL-Port bei m24.cloudmqtt

Edit: Usernamen habe ich über Attribut, Password über die Funktion set <device> password gesetzt...

FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

moerte

#6
Ah ok.. hab den normalen Port angegeben .. jetzt auf den SSL Port geändert.

Und angepasst wie du:


Internals:
   BUF       
   CFGFN     
   DEF        m24.cloudmqtt.com:27882
   DeviceName m24.cloudmqtt.com:27882
   FD         42
   FUUID      5c7e4475-f33f-599c-b4a4-6d0f2dab0b6687fd
   NAME       myBroker1
   NR         1981
   PARTIAL   
   SSL        1
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   myBroker1
   lastMsgTime 1551782566.77561
   msgid      4
   nextOpenDelay 5
   READINGS:
     2019-03-05 11:40:16   state           opened
   messages:
     0:
       timeout    1551779258.65229
     1:
       timeout    1551779299.84084
     2:
       timeout    1551779398.08226
     3:
       timeout    1551780544.68382
Attributes:
   SSL        1
   autocreate 0
   username   aziiinrw


Leider bringt mir das device immer noch keinen Wert.
Bei meinen letzten Beitrag hab ich die Liste angehängt, wie hab ich den Pfad jetzt anzugeben.
Ich stell mich bestimmt wieder zu doof an

EDIT: bei SSL Port steht bei mir 27882

sledge

Vielleicht solltest Du zunächst mal Autocreate = 1 setzen. Und Du kannst im Webinterface von cloudmqtt sehen, ob Du überhaupt eine Connections hast. Da sollte Dein FHEM jetzt auftauchen.

Zusätzlich kannst Du mal das Logging dort hochdrehen und schauen, ob ggf ein Authentisierungsproblem vorliegt....
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

moerte

#8
Ja ich sehe fhem und ich bin Verbunden.
Sehe meine IP unter "MQTT over SSL"
Im Log taucht der Client auch auf:

2019-03-05 11:56:42: Received PINGREQ from myBroker1

(Uhrzeit hängt nur eine Stunde hinterher - aber das ist wurst)

Das ist aber auch das einzigste was scheint zu gehen.

Ich denke bei mir passt das device nicht bzw das Attribut?

sledge

Hast du

attr myBroker1 autocreate 1

gesetzt? Und was sagt das FHEM-Log bei verbose 5

FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

moerte

#10
Ja habe ich gemacht.
Das log schreibt sowas hier:


2019.03.05 13:19:02 5: myBroker1: keepalive 30
2019.03.05 13:19:02 5: myBroker1: sending PINGREQ (192)(0)
2019.03.05 13:19:02 5: myBroker1: received PINGRESP
2019.03.05 13:19:33 5: myBroker1: keepalive 30
2019.03.05 13:19:33 5: myBroker1: sending PINGREQ (192)(0)
2019.03.05 13:19:33 5: myBroker1: received PINGRESP
2019.03.05 13:20:03 5: myBroker1: keepalive 30
2019.03.05 13:20:03 5: myBroker1: sending PINGREQ (192)(0)
2019.03.05 13:20:03 5: myBroker1: received PINGRESP

jump to the top




Edit:
Jetzt kam folgendes:


2019.03.05 13:22:06 5: myBroker1: received PUBLISH (0)+aziiinrw/MQTT_Client01/Freigabe/Beckenlampe1
2019.03.05 13:22:06 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/Beckenlampe\0001


Jetzt hab ich etwas geschaltet dann kommen meldungen:

2019.03.05 13:34:04 5: myBroker1: received PUBLISH (0)+aziiinrw/MQTT_Client01/Freigabe/Beckenlampe0
2019.03.05 13:34:04 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/Beckenlampe\0000
2019.03.05 13:34:06 5: myBroker1: received PUBLISH (0)+aziiinrw/MQTT_Client01/Freigabe/Beckenlampe1
2019.03.05 13:34:06 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/Beckenlampe\0001
2019.03.05 13:34:10 5: myBroker1: received PUBLISH (0)%aziiinrw/MQTT_Client01/Freigabe/Pumpe1
2019.03.05 13:34:10 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/Pumpe\0001
2019.03.05 13:34:12 5: myBroker1: received PUBLISH (0)%aziiinrw/MQTT_Client01/Freigabe/Pumpe0
2019.03.05 13:34:12 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/Pumpe\0000
2019.03.05 13:34:16 5: myBroker1: keepalive 30
2019.03.05 13:34:16 5: myBroker1: sending PINGREQ (192)(0)
2019.03.05 13:34:16 5: myBroker1: received PINGRESP
2019.03.05 13:34:16 5: myBroker1: received PUBLISH (0)(aziiinrw/MQTT_Client01/Freigabe/UV_Lampe1
2019.03.05 13:34:16 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/UV_Lampe\0001
2019.03.05 13:34:20 5: myBroker1: received PUBLISH (0)(aziiinrw/MQTT_Client01/Freigabe/UV_Lampe0
2019.03.05 13:34:20 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/UV_Lampe\0000
2019.03.05 13:34:47 5: myBroker1: keepalive 30
2019.03.05 13:34:47 5: myBroker1: sending PINGREQ (192)(0)
2019.03.05 13:34:47 5: myBroker1: received PINGRESP
2019.03.05 13:35:08 5: myBroker1: received PUBLISH (0)+aziiinrw/MQTT_Client01/Freigabe/Beckenlampe0
2019.03.05 13:35:08 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/Beckenlampe\0000
2019.03.05 13:35:10 5: myBroker1: received PUBLISH (0)%aziiinrw/MQTT_Client01/Freigabe/Pumpe1
2019.03.05 13:35:10 5: myBroker1: dispatch autocreate\000myBroker1\000aziiinrw/MQTT_Client01/Freigabe/Pumpe\0001

jump to the top


Wie füge ich die jetzt hinzu??

...eieieei.. hatte noch bei autocreate disable1.  Jetzt kommen die Daten rein. Super geil.
1000 Dank

Nur kann ich jetzt auch irgendwie selber schalten aus Fhem heraus?

sledge

Kann man. Du suchst das Attribut "setList". Dort kannst Du das angeben. Aber ich empfehle erstmal commandref / wiki-Lesen ;-) zu dem Thema.

FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

moerte

Zitat von: sledge am 05 März 2019, 14:36:35
Kann man. Du suchst das Attribut "setList". Dort kannst Du das angeben. Aber ich empfehle erstmal commandref / wiki-Lesen ;-) zu dem Thema.

Vielen Dank da bin ich schon seit Stunden drüber.. ist nur immer ärgerlich wenn man dann zu keinen Ergebnis kommt.
Vlt versteh ich es einfach nicht oder denke einfach falsch.

Mit setList

on aziiinrw/MQTT_Client01/Freigabe/Beckenlampe/ 1\ off aziiinrw/MQTT_Client01/Freigabe/Beckenlampe/ 0


Bekomm ich zwar Schalter hin aber er schaltet es nicht. Müsste bei on "1" und off "0" senden.

Selbst wenn ich mir einen SENSOR her nehme bekomm ich nicht mal die Temperatur angezeigt, nur im reading taucht sie auf.

Denk ich steh hier einfach gewaltig auf dem Schlauch

Beta-User

Zitat von: sledge am 05 März 2019, 14:36:35
Kann man. Du suchst das Attribut "setList". Dort kannst Du das angeben. Aber ich empfehle erstmal commandref / wiki-Lesen ;-) zu dem Thema.
:)
liest man immer wieder gerne.

Ergänzend: in mqtt2.template (unter FHEM/lib/Attrtemplate) ist auch ziemlich viel an Beispielen für diverse Hardware drin; vielleicht findest du da was passendes. Kommt mir so vor, als würde die Formatierung nicht passen. Am besten erst zum Testen direkt am IO eingeben, und dann erst in das setList-Format übersetzen.
Server: HP-elitedesk@Debian 12, 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

moerte

Zitat von: Beta-User am 05 März 2019, 15:18:29
:)
liest man immer wieder gerne.

Ergänzend: in mqtt2.template (unter FHEM/lib/Attrtemplate) ist auch ziemlich viel an Beispielen für diverse Hardware drin; vielleicht findest du da was passendes. Kommt mir so vor, als würde die Formatierung nicht passen. Am besten erst zum Testen direkt am IO eingeben, und dann erst in das setList-Format übersetzen.

Da hab ich auch schon durchgeschaut.. leider komm ich da auch zu keiner Lösung.
Wenn ich am device selbst an und aus schalte, kommt im Log folgendes:
Siehe Anhang