Hallo,
ich habe gesehen, dass der mosquitto-Server fleissig Werte unter $SYS/broker published.
Ich bin leider nicht der regex-Experte und habe es damit versucht als bridgeRegex-Attribut:
\$(SYS)/(broker)[/]?.*:.* "sys-mqtt"
Funktioniert aber leider nicht.
Kann mir jemand bitte den entscheidenden Tipp geben?
Danke & Gruß
Thomas
Ungetestet:
[$]SYS/broker[/]?.*:.* "sys-mqtt"
(die capturing groups verwendest du ja nicht, daher kannst du das mAn. auch plain text schreiben).
Der Haken mit dem $SYS Topic ist, dass man es es explizit bestellen muss: MQTT2_CLIENTs default is #, da kommt aber erst mal nichts, erst nach "attr m2c subscriptions # $SYS/#" entsteht bei mir sowas:
Attributes:
IODev m2c
readingList m2c:\x24SYS/broker/uptime:.* uptime
m2c:\x24SYS/broker/load/messages/received/1min:.* 1min
m2c:\x24SYS/broker/load/messages/sent/1min:.* 1min
m2c:\x24SYS/broker/load/publish/sent/1min:.* 1min
m2c:\x24SYS/broker/load/bytes/received/1min:.* 1min
m2c:\x24SYS/broker/load/bytes/sent/1min:.* 1min
m2c:\x24SYS/broker/load/sockets/1min:.* 1min
m2c:\x24SYS/broker/load/connections/1min:.* 1min
m2c:\x24SYS/broker/load/messages/received/5min:.* 5min
m2c:\x24SYS/broker/load/messages/sent/5min:.* 5min
m2c:\x24SYS/broker/load/publish/sent/5min:.* 5min
m2c:\x24SYS/broker/load/bytes/received/5min:.* 5min
m2c:\x24SYS/broker/load/bytes/sent/5min:.* 5min
m2c:\x24SYS/broker/load/sockets/5min:.* 5min
m2c:\x24SYS/broker/load/connections/5min:.* 5min
m2c:\x24SYS/broker/load/messages/sent/15min:.* 15min
m2c:\x24SYS/broker/load/publish/sent/15min:.* 15min
m2c:\x24SYS/broker/load/bytes/received/15min:.* 15min
m2c:\x24SYS/broker/load/bytes/sent/15min:.* 15min
m2c:\x24SYS/broker/store/messages/bytes:.* bytes
m2c:\x24SYS/broker/heap/current:.* current
m2c:\x24SYS/broker/messages/sent:.* sent
m2c:\x24SYS/broker/publish/messages/sent:.* sent
m2c:\x24SYS/broker/bytes/sent:.* sent
m2c:\x24SYS/broker/publish/bytes/sent:.* sent
Probiere ich gleich aus.
So sehen die Topics im MQTTExplorer aus:
$SYS/broker/uptime
$SYS/broker/load/publish
$SYS/broker/subscriptions/count
nur ein paar Beispiele.
Ah, jetzt ja! ;)
Beide Tipps zusammen brachten dann auch prompt den Erfolg.
Vielen Dank.
Das MQTT2-Device wurde automatisch angelegt, aber es sind keine Readings da?
Internals:
CID sys-mqtt
DEF sys-mqtt
DEVICETOPIC MQTT2_sys_mqtt
FUUID 6009b0a0-f33f-0e14-99dc-ab56d4c4d856d1e6
IODev MQTT2_mosquito_docker
NAME MQTT2_sys_mqtt
NR 62958
STATE ???
TYPE MQTT2_DEVICE
READINGS:
2021-01-21 17:51:15 associatedWith MQTT2_esp_bridge2
Attributes:
IODev MQTT2_mosquito_docker
readingList \x24SYS/broker/uptime:.* uptime
\x24SYS/broker/load/messages/received/1min:.* 1min
\x24SYS/broker/load/messages/sent/1min:.* 1min
\x24SYS/broker/load/publish/received/1min:.* 1min
\x24SYS/broker/load/publish/sent/1min:.* 1min
\x24SYS/broker/load/bytes/received/1min:.* 1min
\x24SYS/broker/load/bytes/sent/1min:.* 1min
\x24SYS/broker/load/messages/received/5min:.* 5min
\x24SYS/broker/load/messages/sent/5min:.* 5min
\x24SYS/broker/load/publish/received/5min:.* 5min
\x24SYS/broker/load/publish/sent/5min:.* 5min
\x24SYS/broker/load/bytes/received/5min:.* 5min
\x24SYS/broker/load/bytes/sent/5min:.* 5min
\x24SYS/broker/load/messages/received/15min:.* 15min
\x24SYS/broker/load/messages/sent/15min:.* 15min
\x24SYS/broker/load/publish/received/15min:.* 15min
\x24SYS/broker/load/publish/sent/15min:.* 15min
\x24SYS/broker/load/bytes/received/15min:.* 15min
\x24SYS/broker/load/bytes/sent/15min:.* 15min
\x24SYS/broker/messages/received:.* received
\x24SYS/broker/messages/sent:.* sent
\x24SYS/broker/publish/messages/received:.* received
\x24SYS/broker/publish/messages/sent:.* sent
\x24SYS/broker/bytes/received:.* received
\x24SYS/broker/bytes/sent:.* sent
\x24SYS/broker/publish/bytes/received:.* received
\x24SYS/broker/publish/bytes/sent:.* sent
\x24SYS/broker/store/messages/bytes:.* bytes
room MQTT2_DEVICE
Hmm, dass da gar nichts ist, finde ich komisch, aber ggf. müßte man den Verkehr auf MQTT-Ebene mal ansehen. (habe grade nur keinen mosquitto am laufen und kann daher schlecht mitreden...).
Aber dass die diversen Zweige alle jeweils im gleichen Reading landen würden, ist selbstredend eine andere Sache, die du dir dann mal ansehen solltest. Eher dann (z.B.) so:
\x24SYS/broker/load/messages/received/1min:.* 1min_r_messages
Zitat von: Beta-User am 21 Januar 2021, 18:08:13
Aber dass die diversen Zweige alle jeweils im gleichen Reading landen würden, ist selbstredend eine andere Sache, die du dir dann mal ansehen solltest.
Ja, das ist mir auch schon aufgefallen, aber ich dachte zumindest für die Eindeutigen sollten Readings angelegt werden.
Mit folgende fhem.cfg kriege ich relativ verstaendliche Readings:
define w FHEMWEB 8083 global
define ac autocreate
define m2c MQTT2_CLIENT localhost:1883
attr m2c autocreate 1
attr m2c subscriptions # $SYS/#
define MQTT2_m2c MQTT2_DEVICE m2c
attr MQTT2_m2c readingList\
.*SYS/broker/.+:.* { $TOPIC=~m,SYS/broker/(.*),;; my %h;; $h{$1}=$EVENT;; \%h }
Ich jetzt auch.
Besten Dank.