Modul-Diskussion/Hilfe: MQTT_GENERIC_BRIDGE

Begonnen von Master_Nick, 11 Oktober 2018, 17:23:24

Vorheriges Thema - Nächstes Thema

hexenmeister

Sollte funktionieren, muss aber vollqualifiziert angegeben werden, also mit Package. Etwa: main::MyFunction
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

bmwfan

#226
Ich komme leider allein nicht weiter und benötige Unterstützung.
Meine Konfiguration:
Raspi RPI03 im EG soll mit Raspi RPI02 im Technikraum kommunizieren. Dort lauft ein 1-wire Busmaster mit mehreren DS18B20 und einem DS2406, der eine Pumpe schalten soll. Die Kommunikation soll über MQTT2 erfolgen.

Auf RPI03 ist ein MQTT2_Server und eine MQTT_GENERIC_BRIDGE.
Internals:
   CONNECTS   4
   DEF        1883 global
   FD         65
   FUUID      5c7aa366-f33f-6b6f-30ee-94bbc96e2be2933b
   NAME       myMQTT2_Server
   NR         1739
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2019-03-02 17:09:46   nrclients       0
     2019-03-02 17:09:46   state           Initialized
   clients:
   retain:
Attributes:
   autocreate 1
   room       9.6_System


Die Bridge
Internals:
   CFGFN     
   FUUID      5c7aa44c-f33f-6b6f-a209-66cf32965cf10c9a
   IODev      myMQTT2_Server
   NAME       myMQTT_GenericBridge
   NR         1771
   NTFY_ORDER 50-myMQTT_GenericBridge
   STATE      dev: 2 in: 737 out: 0
   TYPE       MQTT_GENERIC_BRIDGE
   devspec    .*
   prefix     mqtt
   CHANGED:
     incoming-count: 451
     incoming-count: 452
viele weiter incoming-count
     incoming-count: 736
     incoming-count: 737
   READINGS:
     2019-03-02 17:37:23   device-count    2
     2019-03-02 17:58:15   incoming-count  737
     2019-03-02 16:42:04   outgoing-count  0
     2019-03-02 16:42:04   transmission-state IO device initialized (mqtt2)
     2019-03-02 16:42:04   updated-reading-count 0
     2019-03-02 16:42:04   updated-set-count 0
   devices:
     SW_Zirku_RPI02:
       :defaults:
         pub:base   haus/UG/Technikraum
         sub:base   haus/UG/Technikraum
       :publish:
       :subscribe:
         HASH(0x72df1e0)
     Temp_Zirku_Box_RPI02:
       :defaults:
         pub:base   haus/UG/Technikraum
         sub:base   haus/UG/Technikraum
       :subscribe:
         HASH(0x71bdb68)
   globalDeviceExcludes:
   globalReadingExcludes:
   globalTypeExcludes:
     pub:
       FHEMWEB    *
       Global     *
       MQTT       transmission-state
       MQTT_BRIDGE transmission-state
       MQTT_DEVICE transmission-state
       MQTT_GENERIC_BRIDGE *
       telnet     *
     sub:
       FHEMWEB    *
       Global     *
       MQTT       transmission-state
       MQTT_BRIDGE transmission-state
       MQTT_DEVICE transmission-state
       MQTT_GENERIC_BRIDGE *
       telnet     *
   subscribe:
Attributes:
   IODev      myMQTT2_Server
   room       9.6_System
   stateFormat dev: device-count in: incoming-count out: outgoing-count
   verbose    5


Auf RPI02 ist ein MQTT2_Client und eine MQTT_GENERIC_BRIDGE:
Internals:
   BUF       
   DEF        192.168.178.64:1883
   DeviceName 192.168.178.64:1883
   FD         10
   FUUID      5c759f0d-f33f-60c4-cc4b-d23771a43522e4d3
   NAME       myMQTT2_Client
   NR         27
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   myMQTT2Client
   lastMsgTime 1551546016.78529
   nextOpenDelay 5
   READINGS:
     2019-03-02 17:04:41   state           opened
Attributes:
   room       9.6_System
   verbose    0


Die Bridge
Internals:
   FUUID      5c76e3a6-f33f-60c4-489d-87dce9715b91ee30
   IODev      myMQTT2_Client
   NAME       mqttGenericBridge
   NR         28
   NTFY_ORDER 50-mqttGenericBridge
   STATE      dev: 8 in: 0 out: 1675
   TYPE       MQTT_GENERIC_BRIDGE
   devspec    .*
   prefix     mqtt
   READINGS:
     2019-03-02 16:13:53   device-count    2
     2019-03-02 15:59:08   incoming-count  0
     2019-03-02 18:01:01   outgoing-count  1675
     2019-03-02 18:01:01   transmission-state outgoing publish sent
     2019-03-02 15:59:08   updated-reading-count 0
     2019-03-02 15:59:08   updated-set-count 0
   devices:
     SW_Zirku:
       :defaults:
         pub:base   haus/UG/Technikraum
         sub:base   haus/UG/Technikraum
       :publish:
         sensed.A:
           last       1551546052.48048
           mode       R
           topic      haus/UG/Technikraum/SW_Zirku/sensed.A
         sensed.B:
           last       1551546052.48853
           mode       R
           topic      haus/UG/Technikraum/SW_Zirku/sensed.B
       :subscribe:
         HASH(0x17caab0)
         HASH(0xa37f90)
     Temp_Zirku_Box:
       :defaults:
         pub:base   haus/UG/Technikraum
         sub:base   haus/UG/Technikraum
       :publish:
         temperature:
           last       1551546061.38456
           mode       R
           topic      {"$base/Temp_Zirku_Box/temperature"}
   globalDeviceExcludes:
   globalReadingExcludes:
   globalTypeExcludes:
     pub:
       FHEMWEB    *
       Global     *
       MQTT       transmission-state
       MQTT_BRIDGE transmission-state
       MQTT_DEVICE transmission-state
       MQTT_GENERIC_BRIDGE *
       telnet     *
     sub:
       FHEMWEB    *
       Global     *
       MQTT       transmission-state
       MQTT_BRIDGE transmission-state
       MQTT_DEVICE transmission-state
       MQTT_GENERIC_BRIDGE *
       telnet     *
   subscribe:
Attributes:
   IODev      myMQTT2_Client
   alias      MQTT generic bridge
   room       9.6_System
   stateFormat dev: device-count in: incoming-count out: outgoing-count
   verbose    5


Die Bridge auf dem RPI02 sendet brav und soweit ich das beurteilen kann, auch das Richtige.
2019.03.02 18:03:37.003 5: MQTT_GENERIC_BRIDGE:DEBUG:> [mqttGenericBridge] publish: haus/UG/Technikraum/Temp_Zirku_Box/temperature => 22.125 (qos: 0, retain: 0)
2019.03.02 18:03:38.090 5: MQTT_GENERIC_BRIDGE:DEBUG:> [mqttGenericBridge] publish: haus/UG/Technikraum/SW_Zirku/sensed.A => 1 (qos: 0, retain: 0)
2019.03.02 18:03:38.099 5: MQTT_GENERIC_BRIDGE:DEBUG:> [mqttGenericBridge] publish: haus/UG/Technikraum/SW_Zirku/sensed.B => 1 (qos: 0, retain: 0)


Die Bridge auf dem RPI03 empfängt aber, wie ich meine, nur einen Teil davon und aktualisiert daher auch nicht das dummy.
2019.03.02 18:04:23.169 5: MQTT_GENERIC_BRIDGE: [myMQTT_GenericBridge] Parse (MQTT2_SERVER : 'myMQTT2_Server'): Msg: myMQTT2Client => haus/UG/Technikraum/SW_Zirku/sensed.A1
2019.03.02 18:04:23.179 5: MQTT_GENERIC_BRIDGE: [myMQTT_GenericBridge] Parse (MQTT2_SERVER : 'myMQTT2_Server'): Msg: myMQTT2Client => haus/UG/Technikraum/SW_Zirku/sensed.B1
2019.03.02 18:04:30.066 5: MQTT_GENERIC_BRIDGE: [myMQTT_GenericBridge] Parse (MQTT2_SERVER : 'myMQTT2_Server'): Msg: myMQTT2Client => haus/UG/Technikraum/Temp_Zirku_Box/temperature22.0625


Dummy, das aktualisiert werden soll:
Internals:
   FUUID      5c76e58c-f33f-6b6f-e33a-996c02ed3ad38207
   NAME       Temp_Zirku_Box_RPI02
   NR         1731
   STATE      22.1°C
   TYPE       dummy
   READINGS:
     2019-03-02 15:59:03   temperature     22.0625
Attributes:
   icon       icoTemp
   mqttDefaults base=haus/UG/Technikraum
   mqttSubscribe temperature:topic={"$base/Temp_Zirku_Box/temperature"}
   readingList temperature
   room       3.4_Technik
   stateFormat {sprintf("%.1f",ReadingsVal("Temp_Zirku_Box_RPI02","temperature",0))."°C"}


Internals:
   FUUID      5c782ed0-f33f-6b6f-3571-a68bd4b5774ce7d0
   NAME       SW_Zirku_RPI02
   NR         1737
   STATE      PIO.A 0
   TYPE       dummy
   READINGS:
     2019-03-02 17:05:24   PIO.A           0
     2019-03-02 15:56:51   PIO.B           0
     2019-03-02 15:58:51   sensed.A        1
     2019-03-02 15:58:51   sensed.B        1
     2019-02-28 21:46:44   state           PIO.A 0
Attributes:
   mqttDefaults base=haus/UG/Technikraum
   mqttSubscribe sensed.A:topic={"$base/SW_Zirku/sensed.A"}
   readingList sensed.A sensed.B PIO.A PIO.B
   room       3.4_Technik
   setList    PIO.A:0,1 PIO.B:0,1


Ich habe im Forum gesucht und alles mögliche versucht, jedoch will es einfach nicht auf Dauer funktionieren. Ich hatte eine Kommunikation erhalten, aber seit einem Restart des RPI03 klappt es nicht mehr. Bevor ich auf fhem2fehm gehe hatte ich gehofft, jemand der sich besser auskennt sieht das Problem oder kann mir einen Tip geben.

Viele Grüße Jürgen

P.S.: Ich sehe gerade, dass auf dem RPI03 noch ein MQTT2_Server angelegt wurde, der die IP des RPI02 hat aber im hidden-Raum ist. Muss das so sein?
Internals:
   BUF       
   FD         60
   NAME       myMQTT2_Server_192.168.178.53_49800
   NR         2005
   PEER       192.168.178.53
   PORT       49800
   SNAME      myMQTT2_Server
   SSL       
   STATE      Connected
   TEMPORARY  1
   TYPE       MQTT2_SERVER
   WBCallback
   cflags     2
   cid        myMQTT2Client
   keepalive  30
   lastMsgTime 1551547246.99345
   protoNum   3
   protoTxt   MQIsdp
   READINGS:
     2019-03-02 17:04:41   state           Connected
   subscriptions:
     #          1551542681.37933
Attributes:
   room       hidden
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

kadettilac89

#227
Zitat von: bmwfan am 02 März 2019, 18:16:17


Ich habe im Forum gesucht und alles mögliche versucht, jedoch will es einfach nicht auf Dauer funktionieren. Ich hatte eine Kommunikation erhalten, aber seit einem Restart des RPI03 klappt es nicht mehr. Bevor ich auf fhem2fehm gehe hatte ich gehofft, jemand der sich besser auskennt sieht das Problem oder kann mir einen Tip geben.


Ich glaube, ich hatte das selbe Problem mit MQTT-Server in FHEM, es scheint als würde zwar die Nachricht übermittelt, jedoch fehlt der Wert. Das "....  => 1  ...." in der Nachricht. War bei mir ähnlich.

Da ich Docker im Einsatz habe, hatte ich mir einfach Mosquitto als Container installiert ohne weiter zu analysieren. Damit hatte es dann auf Anhieb geklappt.

Kannst ja mal zum Test Mosquitto installieren und sowohl Raspberry 1 als auch Raspberry 2 als Client konfigurieren. Alternativ gibt es auch kostenlose MQTT-Server im Internet. Zum Test allemal ausreichend. Einfach mal Google'n ... https://diyprojects.io/8-online-mqtt-brokers-iot-connected-objects-cloud/#.XHrQ-ohKg2w


Edit: habe vergessen, sollte es mit Mosquitto klappen könnte es ein Bug im Fhem-MQTT-Server sein. Bitte gib Bescheid, dann versuche ich auch mein Problem nachzustellen als Input zur weiteren Suche.

hexenmeister

Es gibt wohl ein Problem in Zusammenarbeit von der GenericBridge und MQTT2_SERVER. Liegt recht sicher an der art, wie die Bridge mit dem Server-Modul kommuniziert. Ich werde mir das Problem ansehen, ich weiß jedoch noch nicht, wann ich dazu komme.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

PPP01

Hi, ich habe noch ein paar Fragen zu der Generic Bridge:
1. Ich würde den payload gerne etwas erweitern und per JSON übertragen. Auf Seite 8 habe ich die Lösung mit einer :expression gefunden, jedoch hätte ich bei Statusänderungen gerne ein payload wie diesen:

stat/home/max/Paul_f1/stat {"date":"2019-03-03 18:50:15","state":"opened"}
stat/home/max/Paul_f1/stat {"date":"2019-03-03 18:59:15","state":"closed"}

Zusätzlich fände ich eine Art heartbeat nicht schlecht:
stat/home/max/Paul_f1/stat {"date":"2019-03-03 19:56:57","state":"closed","lastOpenend":"2019-03-03 17:30:21", "RSSI":"-85.5","battery":"ok"}

Ist das möglich?
Momentan löse ich das mit einer Mischung aus DOIF und AT Befehlen. Das funktioniert ganz gut, doch wahrscheinlich wäre es mit einer Generic Bridge einfacher.

Beste Grüße
Patric

kadettilac89

Zitat von: PPP01 am 04 März 2019, 08:43:04
Zusätzlich fände ich eine Art heartbeat nicht schlecht:
stat/home/max/Paul_f1/stat {"date":"2019-03-03 19:56:57","state":"closed","lastOpenend":"2019-03-03 17:30:21", "RSSI":"-85.5","battery":"ok"}

Ist das möglich?
Momentan löse ich das mit einer Mischung aus DOIF und AT Befehlen. Das funktioniert ganz gut, doch wahrscheinlich wäre es mit einer Generic Bridge einfacher.


das sollte über LWT (Last will and testament) möglich sein. Diese Nachricht wird gesendet wenn ein MQTT-Device offline geht oder eine definierte Zeit nicth reagiert. Heartbeat umgekehrt, sobald der Client nichts macht sendest du ein OFFLINE worauf du wiederrum reagieren könntest.

Doku MQTT2_CLIENT

lwt <topic> <message>
set the LWT (last will and testament) topic and message, default is empty.

roman1528

Moin.

Ich bitte vielmals um Entschuldung, dass ich mir nicht den kompletten Thread durchgelesen habe... Schande über mein Haupt.

Ich wollte gerade mit der MQTT_GENERIC_BRIDGE experimentieren um Sensordaten auf meinen (Testaufbau) SmartMirror zu bekommen.

Bei einem:
define MQTT_Bridge MQTT_GENERIC_BRIDGE

bekomme ich immer als Antwort:
Cannot load module MQTT_GENERIC_BRIDGE

Bei einem:
reload 10_MQTT_GENERIC_BRIDGE.pm

sagt FHEM mir folgendes:
Can't continue after import errors at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 408.
BEGIN failed--compilation aborted at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 445.


Liegt das igendwie an meiner Installation? Habe auch schon die aktuelle Version vom FHEM-Server geholt. Keine Besserung.

Danke im Voraus.
Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

hexenmeister

Zitat von: PPP01 am 04 März 2019, 08:43:04
Hi, ich habe noch ein paar Fragen zu der Generic Bridge:
1. Ich würde den payload gerne etwas erweitern und per JSON übertragen. Auf Seite 8 habe ich die Lösung mit einer :expression gefunden, jedoch hätte ich bei Statusänderungen gerne ein payload wie diesen:

stat/home/max/Paul_f1/stat {"date":"2019-03-03 18:50:15","state":"opened"}
stat/home/max/Paul_f1/stat {"date":"2019-03-03 18:59:15","state":"closed"}

Zusätzlich fände ich eine Art heartbeat nicht schlecht:
stat/home/max/Paul_f1/stat {"date":"2019-03-03 19:56:57","state":"closed","lastOpenend":"2019-03-03 17:30:21", "RSSI":"-85.5","battery":"ok"}

Ist das möglich?
Momentan löse ich das mit einer Mischung aus DOIF und AT Befehlen. Das funktioniert ganz gut, doch wahrscheinlich wäre es mit einer Generic Bridge einfacher.

Beste Grüße
Patric
Sicher, mit expression kann man sich praktisch jeden Output zusammenzimmern.
Wenn mit dem Heartbeat eine regelmäßige Nachricht gemeint ist, die auch dann versendet wird, wenn sich gar nichts geändert hat, dann geht das mit der Bridge alleine nicht.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: roman1528 am 07 März 2019, 01:15:34
Cannot load module MQTT_GENERIC_BRIDGE
Can't continue after import errors at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 408.
BEGIN failed--compilation aborted at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 445.


Liegt das igendwie an meiner Installation? Habe auch schon die aktuelle Version vom FHEM-Server geholt. Keine Besserung.

Bridge verwendet immer (noch) das MQTT Modul, auch wenn MQTT2* als IO verwendet wird. MQTT-Modul benötigt bestimmte Perl-Bibliotheken. Vermutlich sind sie bei Dir nicht installiert. Ist im Wiki-MQTT-Eintrag  alles beschrieben.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

roman1528

Zitat von: hexenmeister am 07 März 2019, 08:13:37
Bridge verwendet immer (noch) das MQTT Modul, auch wenn MQTT2* als IO verwendet wird. MQTT-Modul benötigt bestimmte Perl-Bibliotheken. Vermutlich sind sie bei Dir nicht installiert. Ist im Wiki-MQTT-Eintrag  alles beschrieben.

Moin.
Ja.. das war's. Wer lesen kann ist klar im Vorteil  ;D

Besten Dank!
Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

bmwfan

Habe jetzt von MQTT2_Server auf MQTT umgestellt. Jetzt klappt die Übertragung von Messdaten, jedoch das Schalten eines Schalters über einen Dummy in einer anderen Instanz (RPI02) klappt nicht. Ich habe das Beispiel in https://forum.fhem.de/index.php/topic,91642.msg841370.html#msg841370 nachgebildet und viele Varianten versucht, die EIN bzw. AUS-Befehle werden aber nicht übernommen.
Im ausführenden Raspi (RPI03):
Internals:
   FUUID      5c7a3834-f33f-6b6f-cbc2-6c834c51d46b27bc
   NAME       du_ZirkuStatus_set
   NR         1753
   STATE      EIN
   TYPE       dummy
   READINGS:
     2019-03-07 20:31:55   state           EIN
Attributes:
   mqttDefaults base=haus/UG/Technikraum
   mqttPublish state:topic={"$base/$device/set"} state:retain=0
   room       3.4_Technik,9.8.2_Dummys
   setList    EIN AUS
und das Sendeprotokoll:
MQTT_GENERIC_BRIDGE:DEBUG:> [myMQTT_GenericBridge] publish: haus/UG/Technikraum/du_ZirkuStatus_set/set => EIN (qos: 0, retain: 0)

Das List im empfangenden Raspi (RPI02):
Internals:
   FUUID      5c7a3ba0-f33f-60c4-3d40-3bc7d123b3c787e8
   NAME       du_ZirkuStatus_set_RPI03
   NR         29
   STATE      AUS
   TYPE       dummy
   READINGS:
     2019-03-06 21:58:26   state           AUS
Attributes:
   mqttDefaults base=haus/UG/Technikraum
   mqttSubscribe state:stopic={"$base/du_ZirkuStatus_set/set"}
   room       9.8.2_Dummys,3.4_Technik


und das LOG:
MQTT_GENERIC_BRIDGE: [mqttGenericBridge] Parse (MQTT2_CLIENT : 'myMQTT2_Client'): Msg: myMQTT2Client => haus/UG/Technikraum/du_ZirkuStatus_set/setEIN

Hat jemand eine Idee, woran das liegt und wie ich das zum funktionieren bringe?

Grüße Jürgen

Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

hexenmeister

#236
Bei mir funktioniert es mit Deinem Setup...

Erste Fhem Instanz:
defmod du_ZirkuStatus_set dummy
attr du_ZirkuStatus_set mqttDefaults base=haus/UG/Technikraum
attr du_ZirkuStatus_set mqttPublish state:topic={"$base/$device/set"} state:retain=0
attr du_ZirkuStatus_set setList EIN AUS


Zweite Fhem Instanz:
defmod du_ZirkuStatus_set_R dummy
attr du_ZirkuStatus_set_R mqttDefaults base=haus/UG/Technikraum
attr du_ZirkuStatus_set_R mqttSubscribe state:stopic={"$base/du_ZirkuStatus_set/set"}


Habe allerdings nicht ganz aktuellen Stand, MQTT und MQTT_GENERIC_BRIDGE Module sind natürlich aktuell.



Edit: Ich teste mit MQTT. Dein Log für 2. Raspi deutet jedoch auf MQTT2
MQTT_GENERIC_BRIDGE: [mqttGenericBridge] Parse (MQTT2_CLIENT : 'myMQTT2_Client'): Msg: myMQTT2Client => haus/UG/Technikraum/du_ZirkuStatus_set/setEIN
Da gab es ein Problem. Probiere mal morgen nach dem Update. s. https://forum.fhem.de/index.php?topic=98249.new#new
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

bmwfan

@hexenmeister:
Nach dem Update von gestern kann ich das Gerät am RPI02 vom RPI03 aus schalten. Besten Dank. Verwende am RPI03 MQTT und am RPI02 MQTT2_Client.

Nun mal sehen, wie stabil die Verbindung ist.
Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

bmwfan

@hexenmeister:
Die Übertragung hängt sich immer noch ab und zu auf. Nach restart des Haupt-Fhem, auf dem MQTT-Server läuft, geht sie wieder. Im LOG ist kein Fehler sichtbar, lediglich die Messwerte kommen nicht mehr an.

Du meintest, MQTT2_Client könnte in MQTT getauscht werden. Ich bin mir aber nicht im klaren, ob ich dann MQTT_DEVICE's oder MQTT_BRIDGE's zusätzlich zur MQTT_GENERIC_BRIDGE für meinen 1-wire Schalter und die Temperatursensoren benötige.

Werde aus dem Wiki nicht schlau. Das MQTT_Gateway ist doch die GENERIC_BRIDGE, oder nicht? Wenn ja, brauche ich für ein physikalisches Device wie einen 1-wire Schalter oder Sensor jeweils ein eigenes MQTT_Device und für jeweils ein FHEM-Device (vermute z.B. ein DOIF...) eine MQTT_BRIDGE?

Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

hexenmeister

Hallo,

anscheinend gibt es immer noch Probleme zw. der GenericBridge und MQTT2* Module. Mir fehlt gerade leier die Zeit, mich damit auseinander zu setzen.
Versuche doch auf der anderen Seite auch mit dem MQTT Modul. Würde mich interessieren, ob dann alles stabil wird. Meine Umgebung läuft in dieser Konstellation seit Monaten problemlos.

Wenn Du MQTT2_DEVICE-Geräte hast, musst Du diese dann natürlich umstellen. Am besten dann alles mit Hilfe von GenericBridge machen, sie kann alle Device-Module (MQTT_DEVICE, MQTT_BRIDGE, MQTT2_DEVICE) funktional ersetzen.

ZitatDas MQTT_Gateway ist doch die GENERIC_BRIDGE, oder nicht?
Ich würde sagen, der Gateway ist entweder MQTT2_CLIENT oder MQTT. Die GenericBridge vermittelt innerhalb von FHEM. MQTT_DEVICES brauchst Du nicht, diese Rolle können Dummy-Geräte einnehmen. Was Du mit DOIF machen willst, ist mir nicht klar. Aber ich kenne mich da nicht aus, ich verwende selbst kein DOIF.

Beispiel für einen Sensore, die per MQTT seine Werte empfängt. Kein 1wire, aber prinzipiell besteht da kein Unterschied.
defmod DG_FL_PIR01 dummy
attr DG_FL_PIR01 alias Bewegungsmelder Flur DG
attr DG_FL_PIR01 group Bewegung und Licht
attr DG_FL_PIR01 icon motion_detector
attr DG_FL_PIR01 mqttDefaults base={"haus/dg/fl"}
attr DG_FL_PIR01 mqttSubscribe *:topic={"$base/pir01/$reading"}
attr DG_FL_PIR01 readingList brightness motion
attr DG_FL_PIR01 room Flur DG
attr DG_FL_PIR01 stateFormat Licht: brightness, Motion: motion

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy