Modul-Diskussion/Hilfe: MQTT_GENERIC_BRIDGE

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

Vorheriges Thema - Nächstes Thema

Billy

#165
Zitat von: christiantf am 12 Januar 2019, 12:58:10
mqttSubscribe funktioniert bei mir nicht, oder die Beispiele (genau genommen Syntaxangaben) sind zu unklar, um das korrekt einzurichten.
Es gibt im Forum leider auch kein Beispiel, wo jemand mqttSubscribe mit einem konkreten Device erfolgreich gemacht hat.

Verstehe ich nicht.

Einfaches Beispiel. In 5 Minuten angelegt.
Dummy myTest4 published (sendet in diesem Fall on/off)
defmod myTest4 dummy
attr myTest4 userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr myTest4 mqttPublish state:topic=fhem/status/alarm/test_4 state:retain=0
attr myTest4 room MQTT
attr myTest4 setList on off


Dummy myTest5 subscribed (empfängt)   mqttSubscribe state:topic=fhem/status/alarm/test_4

defmod myTest5 dummy
attr myTest5 userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr myTest5 mqttSubscribe state:topic=fhem/status/alarm/test_4
attr myTest5 room MQTT


d.h. myTest5 nimmt immer den Status von myTest4 an (on oder off).
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

Master_Nick

@Beta-User und wenn man nur einen Mosquitto also MQTT1 hat? Dennoch mit dem MQTT2 Io? :-D Das würde ich nicht ganz verstehen.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

hexenmeister

Zitat von: Billy am 11 Januar 2019, 16:26:41
@Hexenmeister --> Der Thread ist leider nur schwer zu finden. Die Idee mit eingängigen Beispielen hat mir schon öfters geholfen.
                              Du solltest vielleicht in der Überschrift "Anwendungsfälle und Beispiele für MQT_GENERIC_BRIDGE" das MQT in MQTT ändern. ;)
dann findet man das leichter.
Asche auf mein Haupt! Danke für den Hinweis!
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: Beta-User am 11 Januar 2019, 17:29:35
:) Dachte ich auch, aber bei meinen (leider auch - aus anderen Gründen) erfolglosen Tests (mit MQTT2_SERVER) hatte ich wenigstens mit mosquitto_sub den Eindruck, dass das "einen Client mehr" erzeugt, und auch die Beispiele in der cref haben oft ein "einleitendes "/".

@hexenmeister:
Hat es einen Grund, dass das in dem eher unüblichen Format in der commandref steht bzw. sollte man irgendwie erläutern, wann man das warum benötigt?
Nö. Es gibt keinen Grund. Habe beim Testen und Entwickeln so verwedet und so in Beispiele kopiert. Jeder kann natürlich die Topics frei wählen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: Beta-User am 11 Januar 2019, 18:42:45
@hexenmeister: Sollte man nicht neuerdings empfehlen, alles, was nicht in FHEM direkt als Gerät über ein anderes Modul vorhanden ist (CUL_HM usw.) als MQTT2_DEVICE anzulegen?

Hintergrund: Man braucht "irgendwas" dafür, und nach meiner bisherigen Erfahrung gehört MQTT2_DEVICE zu den Geräten, die am einfachsten optisch ansprechend zu konfigurieren sind.
Wohl Geschmackssache. Ich mag den Syntax von MQTT2_DEVICE nicht wirklich. Mir gefällt es besser mit den Dummy's. Ich würde entweder die Bridge oder die MQTT2_DEVICEs verwenden, sonst ist das irgendwie chaotisch.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: Beta-User am 11 Januar 2019, 20:24:21
Zum Hintergrund nochmal:
Im Kern ist das Protokoll sehr simpel, alle Lösungen funktionieren irgendwie, die Mischung MQTT2-IO+Gen.-Bridge ist noch etwas hakelig, aber das dürfte eine Frage der Zeit sein.

Wer heute in MQTT einsteigt, sollte (und das ist wohl auch hexenmeisters heutige Tendenz, anders als evtl. noch vor ein paar Wochen) nativ MQTT sprechendes Zeug mit einem MQTT2-IO in FHEM einbinden und MQTT2_DEVICE nutzen. Das ist schlicht und ergreifend für Neulinge am einfachsten zu konfigurieren (funktional und optisch), JSON ist kein Thema und auch die Sendeseite ist da sehr flexibel, was das Basteln nahezu beliebiger Formate angeht.

Die "Lücke" dabei ist die "ver-MQTT-ung" von Nicht-MQTT-Devices. Das kann die Bridge am universellsten, nur eben mit der Einschränkung, dass die nicht zusammen mit autocreate an einem MQTT2-IO genutzt werden kann.
Im Moment ist das die einzige Einschränkung, es dürfte aber auch nur eine Frage der Zeit sein, bis diese behoben ist.

Es gibt aber weder einen Grund, irgendwas umzubauen, schon gleich nicht, wenn man _irgendeinen_ Weg verstanden hat, wie man zu einem bestimmten Ergebnis kommt. Und auch die Aussage ist ok, dass man mit den alten Wegen (fast) alles abdecken kann.

Wer allerdings irgendwann Verschlüsselung will, braucht dann ein MQTT2-IO (es sei denn, das kommt irgendwann auch bei MQTT(1), was ich aber ehrlich gesagt im Moment nicht glaube).
Die Probleme lösen wir sicher nach und nach.
Was man nimmt, ist ein wenig frage der Vorlieben. Die verschiedene Lösungen machen im Prinzip das Selbe, nur auf eine etwas andere Weise.
Es ist schwer eine generelle Empfehlung zu geben. Ich persönlich halte z.B. Autocreate und Co. für eine recht üble Sache, vor allem für Einsteiger. Solange es geht, ist es gut, wenn aber etwas nicht so will, dann stellt sich raus, dass man die Funktionsweise nicht verstanden hat und nicht weiter weiß. Macht man alles selbst - weiß man sih auch später zu helfen. Aber das ist halt meine Meinung, andere schwören drauf.

Ich würde sagen, lest Commandref und etscheidet, was einem besser passt.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: christiantf am 11 Januar 2019, 16:14:11
Den Sicherheitsaspekt kann ich nicht teilen - das ist genauso sicher/unsicher wie wenn ich den Status per HTTP setze. Ist halt nur ein anderes Protokoll, läuft genauso mit Authentifizierung usw.
Ja und genau daher sollte man HTTP auch nicht mehr verwenden. Standardfall, bzw. was die meiste Verwenden, ist bei MQTT eben unverschlüsselt und ohne Authentifizierung. Daher ist der Sicherheitsaspekt durchaus vorhanden und von Bedeutung. Außerdem ist es immer bessen, wenn man explizit etwas freigibt und nicht von vornherein für alle (auch künftig angelegte) Geräte.

Zitat von: christiantf am 11 Januar 2019, 16:14:11
Wie würde dazu das mqttSubscribe aussehen?

attr lb_mosquitto mqttSubscribe state:stopic={"command/fhem/Kueche_HS100"} state:expression={Kueche_HS100=$value}

... hätte ich probiert, aber FHEM reagiert nicht darauf nicht.

Ich versteh die Syntaxhilfe von mqttSubscribe einfach nicht. Es sind ja Beispiele da, aber die sind nicht erklärt.

Das sieht eigentlich richtig aus:
Zitatattr Kueche_HS100 mqttSubscribe state:stopic=command/fhem/Kueche_HS100

ZitatSollte das richtig sein? Funktionieren tut's leider nicht. Sollte man im Log nicht irgendwas sehen, dass FHEM das Topic subscribed?
Es ist einfach so, als wäre die Zeile nicht da. Im MQTT-Spy sehe ich mein Publish mit mosquitto_pub an command/fhem/Kueche_HS100 = on, ich bekomme auch alle anderen Readings von der Generic_Bridge, aber meine Subscription wird ignoriert.
Sonderbar. Im Commandref steht, wie man die Geräte und darauf angemeldete 'publish' und 'subscribe' anzeigen kann: get <bridge> derinfo
Zitat:
ZitatGibt eine Liste der ueberwachten Geraete aus, deren Namen zu dem optionalen regulaerem Ausdruck entsprechen. Fehlt der Ausdruck, werden alle Geraete aufgelistet. Zusaetzlich werden bei 'publish' und 'subscribe' verwendete Topics angezeigt incl. der entsprechenden Readinsnamen.

Bitte immer die verwendete Konfiguration posten, nicht nur die Auschschnitte. Dann kann man das auch genau(er) nachstellen und letztendlich besser weiter helfen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: christiantf am 12 Januar 2019, 12:58:10
Ich hab's jetzt mit Telnet gemacht.
mqttSubscribe funktioniert bei mir nicht, oder die Beispiele (genau genommen Syntaxangaben) sind zu unklar, um das korrekt einzurichten.
Es gibt im Forum leider auch kein Beispiel, wo jemand mqttSubscribe mit einem konkreten Device erfolgreich gemacht hat.
Ähm... Es gab hier Beispiele ohne Ende. Z.B. das: https://forum.fhem.de/index.php/topic,91642.msg841370.html#msg841370
Ein Beispiel anhand einer 'echten' EnOcean-Gerät. Link zu dem Thread war hier ja schon gepostet.
Auch die Syntaxangabn sind penibel im Commandref festgehalten. Was brauchst Du mehr?

Wenn etwas nicht klar ist, bitte etwas konkretter. Bis jetzt kann ich nur sagen, dass im meisten Fällen das geschriebene verstanden zu werden scheint ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: Master_Nick am 12 Januar 2019, 14:34:53
@Beta-User und wenn man nur einen Mosquitto also MQTT1 hat? Dennoch mit dem MQTT2 Io? :-D Das würde ich nicht ganz verstehen.
Wenn alles schon läuft, würde ich es auch so lassen, meine Installationen baue ich auch nicht um. Bei neuen spricht (fast) nichts gegen die Verwendung von MQTT2_CLIENT. Es gibt noch Probleme mit autocreate und mqtt1 ist (zumindest theoretisch) etwas performanter, da sparsamer mit Ressourcen umgeht. Ob man das messen (oder gar merken) würde - steht auf einem anderen Blatt.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Beta-User

Zitat von: hexenmeister am 12 Januar 2019, 16:14:53
Die Probleme lösen wir sicher nach und nach.
Was man nimmt, ist ein wenig frage der Vorlieben. Die verschiedene Lösungen machen im Prinzip das Selbe, nur auf eine etwas andere Weise.
Es ist schwer eine generelle Empfehlung zu geben. Ich persönlich halte z.B. Autocreate und Co. für eine recht üble Sache, vor allem für Einsteiger. Solange es geht, ist es gut, wenn aber etwas nicht so will, dann stellt sich raus, dass man die Funktionsweise nicht verstanden hat und nicht weiter weiß. Macht man alles selbst - weiß man sih auch später zu helfen. Aber das ist halt meine Meinung, andere schwören drauf.

Ich würde sagen, lest Commandref und etscheidet, was einem besser passt.
Bin sehr froh, dass ihr beiden das vollends zu einem guten Ineinanderwirken bekommen werdet!

Ansonsten: Wer commandref lesen kann und will, wird sich in der Regel auch zu helfen wissen, egal welchen Weg er im Detail nimmt...
Und dass es eigentlich besser wäre, wenn jeder etwas tiefer in die Themen einsteigen würde, wäre vermutlich auch gut. Allein: Die Erfahrung lehrt, dass cref immer die letzte Quelle ist, die ein bestimmter Nutzerkreis zu Rate zieht (lieber wird hier gemault...).

Meine Erfahrung mit - zugegebenermaßen eher exotischen Anwendungsfällen (aus "klassischer MQTT-Sicht" und den hier bisher vorhandenen Lösungen) - ist eben die, dass es mit MQTT2 in allen Fällen nicht komplizierter und in einigen sehr viel einfacher war, das umzusetzen, was ich persönlich brauchte. Da ist autocreate eingeschlossen, aber eben auch immer mit dem Vorbehalt, dass ich da schon eine recht konkrete Vorstellung hatte, wie der Hase so läuft und Rudi so freundlich war, manches in verblüffender Weise in code umzusetzen....

Zitat von: hexenmeister am 12 Januar 2019, 16:07:42
Wohl Geschmackssache. Ich mag den Syntax von MQTT2_DEVICE nicht wirklich. Mir gefällt es besser mit den Dummy's. Ich würde entweder die Bridge oder die MQTT2_DEVICEs verwenden, sonst ist das irgendwie chaotisch.
Ja, absolut, das ist eine Geschmackssache (und vermutlich auch Gewohnheitsfrage). Geht halt "alles auf einmal" mit widgetOverride, JSON-Erstellung usw.. Fand es am Anfang auch gewöhnungsbedürftig, hatte da aber auch noch nicht wirklich viele Dummys "aufgehübscht". Jetzt glaube ich beides verstanden zu haben, und zwischenzeitlich ist einiges an Beispielen in den templates drin.

Daher meine Tendenz, Anfängern eher den MQTT2_DEVICE-Weg zu empfehlen (und die Bridge dann "nur noch", um "normale" Devices mqtt-fähig zu machen - das finde ich aber eine klasse Sache!). Könnte man vermutlich auch einfach per notify und publish über das MQTT2-IO, aber das ist m.E. deutlich unübersichtlicher.

Aber klar: Jeder wie er kann und mag, nur nach Möglichkeit die Dinge nicht durcheinanderbringen (es passiert leider vielen, die MQTT2 für eine neue Version des Protokolls halten und nicht für eine bloße Alternative innerhalb FHEM...)
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

Rampler

Hallo zusammen,
ich bekomme beim start von FHEM diese Meldung:
No I/O device found for MQTT_GENERIC_BRIDGE

Es funktioniert aber alles..
Hier meine bridge:
Internals:
   DEF        mqtt Wetterstation,Gartenhaus
   IODev      MQTT
   NAME       MQTT_GENERIC_BRIDGE
   NR         608
   NTFY_ORDER 50-MQTT_GENERIC_BRIDGE
   STATE      outgoing publish sent
   TYPE       MQTT_GENERIC_BRIDGE
   devspec    Wetterstation,Gartenhaus
   prefix     mqtt
   READINGS:
     2019-01-13 20:47:47   device-count    2
     2019-01-13 20:28:17   incoming-count  0
     2019-01-13 20:55:24   outgoing-count  39
     2019-01-13 20:55:23   transmission-state outgoing publish sent
     2019-01-13 20:28:17   updated-reading-count 0
     2019-01-13 20:28:17   updated-set-count 0
   devices:
     :global:
       :defaults:
         pub:retain 1
         sub:retain 1
     Gartenhaus:
       :publish:
         Raintoday:
           mode       R
           topic      {"/Gartenhaus/$reading"}
         Windspeed:
           last       1547409324.08038
           mode       R
           topic      {"/Gartenhaus/$reading"}
     Wetterstation:
       :publish:
         humidity:
           last       1547409259.66948
           mode       R
           topic      {"/Wetterstation/$reading"}
         temperature:
           last       1547409259.77479
           mode       R
           topic      {"/Wetterstation/$reading"}
   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     *
   message_ids:
   subscribe:
   subscribeExpr:
   subscribeQos:
Attributes:
   IODev      MQTT
   alias      MQTT Bridge
   globalDefaults retain=1
   group      MQTT
   icon       mqtt
   room       FHEM
   stateFormat transmission-state


Was habe ich vergessen ?
VG Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

hexenmeister

Gute Frage, die Meldung kommt aus fhem.pl. Vermutlich ist die Bridge vor dem IODev in Config definiert.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Rampler

Zitat von: hexenmeister am 13 Januar 2019, 21:45:49
Vermutlich ist die Bridge vor dem IODev in Config definiert.

Habe ich bereits gecheckt....
define MQTT MQTT 127.0.0.1:1883
attr MQTT alias MQTT Broker
attr MQTT event-on-update-reading no
attr MQTT icon mqtt_broker
attr MQTT keep-alive 120
attr MQTT last-will /FHEM/status crashed
attr MQTT room FHEM
attr MQTT stateFormat state connection
attr MQTT verbose 2

define MQTT_GENERIC_BRIDGE MQTT_GENERIC_BRIDGE mqtt Wetterstation,Gartenhaus,HZ.zt,Wohnzimmer_LCD,GA.tor
attr MQTT_GENERIC_BRIDGE IODev MQTT
attr MQTT_GENERIC_BRIDGE alias MQTT Bridge
attr MQTT_GENERIC_BRIDGE globalDefaults retain=1
attr MQTT_GENERIC_BRIDGE group MQTT
attr MQTT_GENERIC_BRIDGE icon mqtt
attr MQTT_GENERIC_BRIDGE room FHEM
attr MQTT_GENERIC_BRIDGE stateFormat transmission-state
attr MQTT_GENERIC_BRIDGE verbose 2


Merkwürdig ist das.
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

hexenmeister

Das ist es. Leider momentan keine Idee :/
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

inesa394

Hallo

Habe heute mein fhem geupdatet und seitdem ist fhem nicht mehr bedienbar
mein eventmonitor läuft über vor lauter Meldungen
Siehe
incoming-count  22682
outgoing-count  102063
innerhalb kurzer Zeit.
Ein zurückspielen der vorgänger Version behebt erst mal das Problem

Ines
Internals:
   IODev      mqtt
   NAME       mqttGeneric
   NR         172
   NTFY_ORDER 50-mqttGeneric
   STATE      dev: 18 in: 22682 out: 102063
   TYPE       MQTT_GENERIC_BRIDGE
   devspec    .*
   prefix     mqtt
   READINGS:
     2019-01-15 11:54:54   device-count    18
     2019-01-15 22:57:40   incoming-count  22682
     2019-01-15 22:57:40   outgoing-count  102063
     2019-01-15 22:57:40   transmission-state outgoing publish sent
     2019-01-15 22:55:44   updated-reading-count 2099
     2019-01-15 22:57:40   updated-set-count 20410
   devices:
     Bogenlampe:
       :defaults:
         pub:base   {"Smarthome/licht/$device/$reading"}
         sub:base   {"Smarthome/licht/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
       :subscribe:
         HASH(0x4190720)
         HASH(0x4190d68)
         HASH(0x4190618)
         HASH(0x4190cc0)
     Deckenlampe:
       :defaults:
         pub:base   {"Smarthome/licht/$device/$reading"}
         sub:base   {"Smarthome/licht/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
       :subscribe:
         HASH(0x420be40)
         HASH(0x420bd38)
         HASH(0x420bfa8)
         HASH(0x420bc48)
     Tischlampe:
       :defaults:
         pub:base   {"Smarthome/licht/$device/$reading"}
         sub:base   {"Smarthome/licht/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
       :subscribe:
         HASH(0x420c158)
         HASH(0x420c248)
         HASH(0x420c350)
         HASH(0x420c4b8)
     Tischlampe2:
       :defaults:
         pub:base   {"Smarthome/licht/$device/$reading"}
         sub:base   {"Smarthome/licht/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
       :subscribe:
         HASH(0x4182a38)
         HASH(0x4181300)
         HASH(0x419f680)
         HASH(0x420c560)
     Yeelight_andre:
       :defaults:
         pub:base   {"Smarthome/licht/$device/$reading"}
         sub:base   {"Smarthome/licht/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
       :subscribe:
         HASH(0x41826d8)
         HASH(0x4185a80)
         HASH(0x4182810)
         HASH(0x4182708)
     Yeelight_flur:
       :defaults:
         pub:base   {"Smarthome/licht/$device/$reading"}
         sub:base   {"Smarthome/licht/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
       :subscribe:
         HASH(0x419eb70)
         HASH(0x41829a8)
         HASH(0x4182660)
     Yeelight_inesa:
       :defaults:
         pub:base   {"Smarthome/licht/$device/$reading"}
         sub:base   {"Smarthome/licht/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
       :subscribe:
         HASH(0x419edc8)
         HASH(0x4194840)
     aussen_wetterstation:
       :publish:
         *:
           mode       R
           topic      {"/sensor/balkon/$reading"}
     fensterkontakt_briefkasten:
       :defaults:
         pub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
         sub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
     fensterkontakt_kellertuer:
       :defaults:
         pub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
         sub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
     fensterkontakt_schlafzimmer:
       :defaults:
         pub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
         sub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
     fensterkontakt_wohnzimmerterasse:
       :defaults:
         pub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
         sub:base   {"/".AttrVal($device,'room','')."/$device/$reading"}
       :publish:
         *:
           mode       R
           topic      {$base}
     flur_bewegung:
       :defaults:
         pub:base   Smarthome/flur
         sub:base   Smarthome/flur
       :publish:
         _state:
           last       1547586858.06023
           mode       R
           topic      {"$base/bewegung/$name"}
         batteryVoltage:
           mode       R
           topic      {"$base/bewegung/$name"}
         state:
           last       1547586858.03932
           mode       R
           topic      {"$base/bewegung/$name"}
     keller_bewegung:
       :defaults:
         pub:base   Smarthome/keller
         sub:base   Smarthome/keller
       :publish:
         _state:
           last       1547589383.75983
           mode       R
           topic      {"$base/bewegung/$name"}
         batteryVoltage:
           last       1547589383.73848
           mode       R
           topic      {"$base/bewegung/$name"}
         state:
           last       1547586858.1316
           mode       R
           topic      {"$base/bewegung/$name"}
     keller_temp_luftdruck:
       :publish:
         *:
           mode       R
           topic      {"/sensor/keller/$reading"}
     oben_bewegung:
       :defaults:
         pub:base   Smarthome/schlafzimmer
         sub:base   Smarthome/schlafzimmer
       :publish:
         _state:
           last       1547586747.25309
           mode       R
           topic      {"$base/bewegung/$name"}
         batteryVoltage:
           mode       R
           topic      {"$base/bewegung/$name"}
         state:
           last       1547586747.22998
           mode       R
           topic      {"$base/bewegung/$name"}
     waschmachine_keller:
       :publish:
         state:
           mode       R
           topic      Smarthome/keller/waschmaschine/set
       :subscribe:
         HASH(0x4275a30)
     wetterstation:
       :defaults:
         pub:base   sensor/keller
         sub:base   sensor/keller
       :subscribe:
         HASH(0x4275bc8)
   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     *
   message_ids:
   subscribe:
     Smarthome/licht/Yeelight_schlafzimmer/hue
     Smarthome/licht/Yeelight_flur/bright
     Smarthome/licht/Deckenlampe/RGB
     Smarthome/licht/Deckenlampe/set
     Smarthome/licht/Bogenlampe/set
     Smarthome/licht/Yeelight_schlafzimmer/bright
     Smarthome/licht/Tischlampe/HSV
     Smarthome/licht/Deckenlampe/HSV
     Smarthome/licht/Tischlampe2/dim
     sensor/balkon/+
     Smarthome/licht/Tischlampe/RGB
     Smarthome/licht/Tischlampe2/RGB
     Smarthome/licht/Tischlampe2/set
     Smarthome/licht/Bogenlampe/RGB
     Smarthome/licht/Tischlampe2/HSV
     Smarthome/licht/Deckenlampe/dim
     Smarthome/licht/Bogenlampe/HSV
     Smarthome/licht/Bogenlampe/dim
     Smarthome/keller/waschmaschine/state
     Smarthome/licht/Tischlampe/dim
     Smarthome/licht/Yeelight_flur/set
     Smarthome/licht/Yeelight_schlafzimmer/set
     Smarthome/licht/Tischlampe/set
   subscribeExpr:
     
     ^Smarthome\/licht\/Yeelight_flur\/bright$
     ^Smarthome\/licht\/Deckenlampe\/RGB$
     ^Smarthome\/licht\/Deckenlampe\/set$
     ^Smarthome\/licht\/Bogenlampe\/set$
     ^Smarthome\/licht\/Yeelight_schlafzimmer\/bright$
     ^Smarthome\/licht\/Tischlampe\/HSV$
     ^Smarthome\/licht\/Deckenlampe\/HSV$
     ^Smarthome\/licht\/Tischlampe2\/dim$
     ^sensor\/balkon\/([^/]+)$
     ^Smarthome\/licht\/Tischlampe\/RGB$
     ^Smarthome\/licht\/Tischlampe2\/RGB$
     ^Smarthome\/licht\/Tischlampe2\/set$
     ^Smarthome\/licht\/Bogenlampe\/RGB$
     ^Smarthome\/licht\/Tischlampe2\/HSV$
     ^Smarthome\/licht\/Deckenlampe\/dim$
     ^Smarthome\/licht\/Bogenlampe\/HSV$
     ^Smarthome\/licht\/Bogenlampe\/dim$
     ^Smarthome\/keller\/waschmaschine\/state$
     ^Smarthome\/licht\/Tischlampe\/dim$
     ^Smarthome\/licht\/Yeelight_flur\/set$
     ^Smarthome\/licht\/Yeelight_schlafzimmer\/set$
     ^Smarthome\/licht\/Tischlampe\/set$
   subscribeQos:
     Smarthome/keller/waschmaschine/state 0
     Smarthome/licht/Bogenlampe/HSV 0
     Smarthome/licht/Bogenlampe/RGB 0
     Smarthome/licht/Bogenlampe/dim 0
     Smarthome/licht/Bogenlampe/set 0
     Smarthome/licht/Deckenlampe/HSV 0
     Smarthome/licht/Deckenlampe/RGB 0
     Smarthome/licht/Deckenlampe/dim 0
     Smarthome/licht/Deckenlampe/set 0
     Smarthome/licht/Tischlampe/HSV 0
     Smarthome/licht/Tischlampe/RGB 0
     Smarthome/licht/Tischlampe/dim 0
     Smarthome/licht/Tischlampe/set 0
     Smarthome/licht/Tischlampe2/HSV 0
     Smarthome/licht/Tischlampe2/RGB 0
     Smarthome/licht/Tischlampe2/dim 0
     Smarthome/licht/Tischlampe2/set 0
     Smarthome/licht/Yeelight_flur/bright 0
     Smarthome/licht/Yeelight_flur/set 0
     Smarthome/licht/Yeelight_schlafzimmer/bright 0
     Smarthome/licht/Yeelight_schlafzimmer/set 0
     sensor/balkon/+ 0
Attributes:
   IODev      mqtt
   icon       mqtt
   room       MQTT
   stateFormat dev: device-count in: incoming-count out: outgoing-count