Autor Thema: MQTT_DEVICE - Topics mit "$"?  (Gelesen 3167 mal)

Offline Joker

  • Full Member
  • ***
  • Beiträge: 333
    • Mein Smarthome Blog
MQTT_DEVICE - Topics mit "$"?
« am: 09 November 2017, 10:07:41 »
Hi,
ich habe einige MQTT_DEVICEs die soweit auch prima funktionieren. Ich subscribe mich auf diverse Topics in dieser Form :
subscribeReading_humidity iotdevices/garagesensor/humidity/relative
Im Device erhalte ich dann ein entsprechendes Reading "humidity"

Nun publishen die zugehörigen Geräte auch ein Topic "$online" (Mit Dollar-Zeichen vorne dran), und ich subscribe mich entsprechend so:
subscribeReading_online iotdevices/garagesensor/$online
Hier erhalte ich allerdings kein Reading "online". Dass das Topic gepostet wird sehe ich aber z.B. in Mqtt.fx. Ist das ein Bug?

Offline eisler

  • Developer
  • Full Member
  • ****
  • Beiträge: 258
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #1 am: 18 November 2017, 09:31:38 »
"$" wird nur für Server spezifische Topics wie $SYS verwendet.
In Topics sollte kein "$" verwendet werden.


muss das iotdevices/garagesensor/$online sein?
spricht was gegen iotdevices/garagesensor/online ?


Grüße
Stephan
« Letzte Änderung: 18 November 2017, 09:36:55 von eisler »

Offline Joker

  • Full Member
  • ***
  • Beiträge: 333
    • Mein Smarthome Blog
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #2 am: 18 November 2017, 09:58:27 »
Hi Stephan,

danke für deine Antwort. Die Sache ist, die Topic Struktur habe ich mir nicht ausgedacht, sondern die kommt daher dass ich für meine MQTT Geräte Homie als Basis verwende: https://github.com/marvinroger/homie bzw.https://github.com/marvinroger/homie-esp8266.

Die Geräte verwendet einige "Attribute", siehe den ersten Link, und die fangen alle mit $ an. Daher kann ich das so ohne weiteres nicht ändern, beim LWT geht es glaube ich (bin nicht sicher), aber bei den anderen nicht.
Spricht denn generell etwas dagegen? Also MQTT Spezifikation oder sowas? Bzw. was ist der Grund dass es beim MQTT_DEVICE nicht geht, wird es explizit ausgeschlossen oder funktioniert es nicht weil für Perl vielleicht das $ was anderes bedeutet und es zum Fehler kommt?

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3578
    • _.:|:._
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #3 am: 18 November 2017, 10:23:17 »

Offline Joker

  • Full Member
  • ***
  • Beiträge: 333
    • Mein Smarthome Blog
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #4 am: 18 November 2017, 16:40:09 »
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718108
Hmmm... also:
Zitat
The Server MUST NOT match Topic Filters starting with a wildcard character (# or +) with Topic Names beginning with a $ character [MQTT-4.7.2-1].
Das ist ja ok. Das heißt ja nur dass keine $-Topics auf Wildcards matchen dürfen.

Zitat
The Server SHOULD prevent Clients from using such Topic Names to exchange messages with other Clients. Server implementations MAY use Topic Names that start with a leading $ character for other purposes.
"Should, "may"... ok, also nicht zwingend. Also ich lese da nichts dass es generell nicht erlaubt wäre.

Zitat
Was sagen denn die Homie "Leute" zu dem Thema?
Bis jetzt nichts, habe noch keine Issue aufgemacht. Wie gesagt, ich sehe nicht dass etwas falsch daran wäre.
Zustimmung Zustimmung x 1 Liste anzeigen

Offline nuccleon

  • Full Member
  • ***
  • Beiträge: 102
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #5 am: 04 Dezember 2017, 13:20:22 »
Hallo zusammen,

ich hab hier das gleiche Problem. Kein Empfang von Topics die mit "$" anfangen.
Ich sehe es eigentlich wie Joker.
Gibt es hierzu schon eine Lösung?

Gruß,
Claus

Offline blecher-at

  • Jr. Member
  • **
  • Beiträge: 61
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #6 am: 16 Dezember 2017, 10:56:33 »
grad diesen patch getestet ... geht damit.
diff --git FHEM/00_MQTT.pm FHEM/00_MQTT.pm
index e8d3c3c..1a0e58b 100644
--- FHEM/00_MQTT.pm
+++ FHEM/00_MQTT.pm
@@ -623,6 +623,7 @@ sub send_message($$$@) {
 sub topic_to_regexp($) {
   my $t = shift;
   $t =~ s|#$|.\*|;
+  $t =~ s|\$|\\\$|;
   $t =~ s|\/\.\*$|.\*|;
   $t =~ s|\/|\\\/|g;
   $t =~ s|(\+)([^+]*$)|(+)$2|;
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Master_Nick

  • Sr. Member
  • ****
  • Beiträge: 927
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #7 am: 07 Februar 2018, 15:12:42 »
Hallo,
ich bin vom gleichen Problem betroffen, daher denke ich der Patch hat bisher keinen Weg ins Repository gefunden - sollte man dies nicht ändern?

Die Verwendung von Homie als Framework für die ESP's ist ja keine Seltenheit :-)
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.... ;-)

Offline Joker

  • Full Member
  • ***
  • Beiträge: 333
    • Mein Smarthome Blog
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #8 am: 28 Februar 2018, 09:56:55 »
Ich hole mal eben diesen Thread wieder hoch, da es hier ja ein ähnliches Problem gibt, allerdings mit Leerzeichen und Doppelpunkt.
Ggf kann man in dem Zuge den hier geposteten Patch auch integrieren.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Master_Nick

  • Sr. Member
  • ****
  • Beiträge: 927
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #9 am: 21 März 2018, 00:11:23 »
Und es wäre auch immer noch sehr interessant den Patch für die Topics mit "$" in das Modul zu übernehmen :-)

Durchs Update knallt er wieder raus.
« Letzte Änderung: 21 März 2018, 13:27:39 von Master_Nick »
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.... ;-)

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4700
    • tech_LogBuch
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #10 am: 21 März 2018, 08:31:50 »
Das Problem mit dem Doppelpunkt ist wohl eine Folge eines anderen Patches. Habe dort schon mal erwähnt. Abhilfe: in Anführungszeichen nehmen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Offline Master_Nick

  • Sr. Member
  • ****
  • Beiträge: 927
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #11 am: 21 März 2018, 14:45:04 »
Aber die Lösung für die Topics mit $ müsste ja weiter mal eingecheckt werden :-D
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.... ;-)

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4700
    • tech_LogBuch
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #12 am: 21 März 2018, 16:25:54 »
Ja, dieser sollte unschädlich sein. Ich kann das Zögern jedoch verstehen, es gab schon einen schlecht getesteten Patch, der übernommen und bis heute nicht repariert worden ist.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Offline Master_Nick

  • Sr. Member
  • ****
  • Beiträge: 927
Antw:MQTT_DEVICE - Topics mit "$"?
« Antwort #13 am: 21 März 2018, 19:33:38 »
Jo - das verstehe ich.

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.... ;-)

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4700
    • tech_LogBuch
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy
Gefällt mir Gefällt mir x 1 Liste anzeigen

 

decade-submarginal