MQTT

Begonnen von smurfix, 21 Januar 2015, 09:26:49

Vorheriges Thema - Nächstes Thema

killer007

Hallo,

Ist es eigentlich möglich auch Funkionen die in der MyUtil sind mit subscribeSet aufzurufen?

Mit:
attr mqtt_bridge subscribeSet_cmd {calcValues($device, $message);; 0} topic/cmd
oder so ähnlich?

Im Log taucht immer was mit
ERROR evaluating { calcValues($device, $message); 0}: Undefined subroutine &MQTT::BRIDGE::calcValues called at (eval 10898) line 1.
auf..

Beste Grüsse

hexenmeister

Das Modul verwendet ein package "MQTT::BRIDGE" und dort ist deine Methode unbekannt. Versuche sie explizit anzugeben, das sollte funktionieren:
attr mqtt_bridge subscribeSet_cmd {main::calcValues($device, $message);; 0} topic/cmd
Muss mir anschauen, vlt. stlle ich einen Patch zusammen, damit der Aufruf von externen Funktionen außerhalb von einem package-Namespace passiert.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

killer007

#182
Danke
Genau das "main::" hat mir gefehlt!

Jetzt funktioniert es.

Würde die Info in die Commandref aufnehmen, das sollte reichen....

Grüsse

Gesendet von meinem Apollo Lite mit Tapatalk


freakadings

Hallo Leute um einen Doppelpost zu vermeiden der Link zu meinem Mqtt Problem:

https://forum.fhem.de/index.php/topic,73242.msg746780.html#msg746780

Kurzfassung:
Fhem connected und disconnected mehrfach pro Sekunde zum MQTT Broker, der auf dem gleichen system (pi2) ohne Probleme läuft...

An Mqtt hängt bei mir wirklich viel, es wäre super wenn mir jemand helfen könnte :)

ext23

Hallo,

Ich benötige mal Hilfe, ich schreibe in den Topic "SENSOR/FEUCHTIGKEIT/01" einen Wert. Mit einer Handy App kann ich das abfragen. Ich bekomme es aber nicht mit FHEM hin. Es wird kein Reading angelegt. Das einzige was ich habe ist:
transmission-state subscription acknowledged 2018-02-03 23:55:43

Ich habe schon mit autoSubscribeReadings und subscribeReading rumgespielt aber ich bekomme es nicht hin. Also ich verstehe es auch gar nicht was ich nun machen muss. Die Hilfe ist da auch nicht besonders hilfreich, zumindest hatte ich es so wie da angegeben probiert.

Hat da mal jemand ein Tip für mich was ich hier falsch mache.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Reinhart

versuche es doch mal in lege dir selbst ein Reading an:

attr (dein_DeviceName) subscribeReading_SENSOR SENSOR/FEUCHTIGKEIT/01
dann solltest du ein Reading "SENSOR" haben wo der MQTT String/Wert drinnen steht.

Es kommt dann drauf an in welchem Format du den MQTT String überträgst, entweder Legacy oder Json und musst es entsprechend filtern.

LGReinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

ext23

Ich bin einfach zu blöde glaube ich, es möchte nicht klappen (ist nur ein wert, kein json):

Internals:
   CFGFN     
   DEF       
   IODev      MQTT_Broker
   NAME       PSM_Sense
   NR         15744
   STATE      unsubscription acknowledged
   TYPE       MQTT_DEVICE
   READINGS:
     2018-02-04 12:36:31   transmission-state unsubscription acknowledged
   message_ids:
   sets:
   subscribe:
     Sensor/Feuchtigkeit
   subscribeExpr:
     ^Sensor\/Feuchtigkeit$
   subscribeReadings:
     Sensor/Feuchtigkeit:
       cmd       
       name       Humidity
     Sensor/Feuchtigkeit/01:
       cmd       
       name       Humidity
Attributes:
   IODev      MQTT_Broker
   room       X_Test
   stateFormat transmission-state
   subscribeReading_Humidity Sensor/Feuchtigkeit/01
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Reinhart

Du musst aber unbedingt die Groß/Kleinschreibung der Topic beachten!
wenn du am Broker in der Konsole mitlauscht, wie sieht den der gewünschte MQTT String aus?

mosquitto_sub -d -v -t \#

Ich sehe mir immer den String an und kopiere die gewünschte Topic dann raus wenn ich unsicher bin.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

ext23

Sollte alles stimmen:

Subscribed (mid: 1): 0
Received PUBLISH (d0, q0, r1, m0, 'Sensor/Feuchtigkeit/01', ... (3 bytes))
Sensor/Feuchtigkeit/01 296
Received PUBLISH (d0, q0, r0, m0, 'Sensor/Feuchtigkeit/01', ... (3 bytes))
Sensor/Feuchtigkeit/01 296
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Reinhart

#189
ja, dann muss es so heißen:


define myBroker MQTT 127.0.0.1:1883

define (dein_DeviceName) MQTT_DEVICE
attr (dein_DeviceName) IODev myBroker
attr (dein_DeviceName) subscribeReading_SENSOR Sensor/Feuchtigkeit/01

du hattest es ursprünglich Groß geschrieben.

Broker und FHEM läuft am selben Device?

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

ext23

Ja, das passt aber alles, habe ich richtig. Hatte das nur groß geschrieben damit es sich absetzt ...

Mhh aber komisch, es will einfach nicht. Vielleicht sollte ich das Device nochmal löschen.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Reinhart

ja sollte alles passen, ich poste dir hier einmal einen typischen Device von mir, dann kannst du vergleichen. Hier sind zwar mehr Daten enthalten und die kommen im Json Format, das sollte aber egal sein.
Eventuell Broker und FHEM neu starten versuchen.

Internals:
   IODev      myBroker
   NAME       Sonoff_electrodragon2
   NR         424
   STATE      Temperatur: 6.0 Grad Feuchte: 58.0  Lux: 0
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       BH1750_Illuminance:
         myDbLog:
           TIME       1517756780.00948
           VALUE      0
       DHT11_Humidity:
         myDbLog:
           TIME       1517756780.00948
           VALUE      58
       DHT11_Temperature:
         myDbLog:
           TIME       1517756780.00948
           VALUE      6
       Sensor:
         myDbLog:
           TIME       1517756779.95076
           VALUE      {"Time":"2018-02-04T16:06:20", "DHT11":{"Temperature":6.0, "Humidity":58.0}, "BH1750":{"Illuminance":0}, "TempUnit":"C"}
       TempUnit:
         myDbLog:
           TIME       1517756780.00948
           VALUE      C
       Time:
         myDbLog:
           TIME       1517756780.00948
           VALUE      2018-02-04T16:06:20
       transmission-state:
         myDbLog:
           TIME       1517756779.90672
           VALUE      incoming publish received
   READINGS:
     2018-02-04 16:06:19   BH1750_Illuminance 0
     2018-02-04 16:06:19   DHT11_Humidity  58
     2018-02-04 16:06:19   DHT11_Temperature 6
     2018-02-04 16:06:19   Sensor          {"Time":"2018-02-04T16:06:20", "DHT11":{"Temperature":6.0, "Humidity":58.0}, "BH1750":{"Illuminance":0}, "TempUnit":"C"}
     2018-02-04 16:06:19   TempUnit        C
     2018-02-04 16:06:19   Time            2018-02-04T16:06:20
     2018-02-04 16:06:19   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     tele/sonoff_electrodragon2/SENSOR
   subscribeExpr:
     ^tele\/sonoff_electrodragon2\/SENSOR$
   subscribeReadings:
     tele/sonoff_electrodragon2/SENSOR:
       cmd       
       name       Sensor
Attributes:
   IODev      myBroker
   alias      Garage Tempsensor
   group      Garage
   icon       temperature_humidity
   room       _Garage
   stateFormat {sprintf("Temperatur: %.1f Grad Feuchte: %.1f  Lux: %.0f", ReadingsVal($name,"DHT11_Temperature",0), ReadingsVal($name,"DHT11_Humidity",0), ReadingsVal($name,"BH1750_Illuminance",0))}
   subscribeReading_Sensor tele/sonoff_electrodragon2/SENSOR


LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

ext23

OK, das MQTT Modul scheint wohl noch etwas unsauber zu sein, neu anlegen hat geholfen.

Wenn man ein MQTT_Device anlegt fliegt man ja auch erst mal zurück in die Übersicht mit einer "0" anstelle man das Device gleich sieht. Also da ist noch der ein oder andere Bug drin ;-)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Tobias

Das kenne ich auch, hatte mich mal auch nerven gekostet.
Wenn man ein reading, subscription oder publish ändern möchte MUSS man es löschen und neu anlegen damit es funktioniert.

Gesendet von meinem Leap mit Tapatalk
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

TomHB

Hallo Forum!

Ich versuche mich gerade an dem Thema MQTT und habe lokal einen Mosquitto-Server mit Benutzer/Kennwort inkl. TLS/SSL-Verschlüsselung hochgezogen.
https://www.auxnet.de/verschluesseltes-mqtt-vom-und-zum-mosquitto-server/ mit guter Beschreibung...

Nun kommt aber der Teil, das ganze FHEM einzubinden - es gelingt mir net.
Als ich das TLS noch nicht aktiv hatte, konnte sich ein FHEM MQTT_Broker verbinden - nu nicht mehr.

Hat FHEM ein Zertifikatsspeicher, in dem man das Zertifikat vom Mosquitto-Server importieren kann/muss?
Oder, ich habe das in einigen recht alten Beträgen gelesen, das diese Funktionalität  (noch) nicht implementiert ist?


MfG