New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MQTT mit Namensausgabe #73
Comments
Zurzeit werden die Namen der Geräte nicht über MQTT übertragen. |
Im Topic steht ja aktuell die SN und eine ebene tiefer der Kanal, hier wärs natürlich übersichtlich aber bei Leuten die hier schon Daten auswerten dürfte das zu Problemen führen. Wenn es als Value in jedem Kanal eingefügt wird hätte man zwar einen Datensatz der so nicht bei eq3 Dokumentiert ist aber ich denke damit würde man "kompatibel" zu bestehenden Systemen bleiben und im Falle der InfluxDB 2.x könnte man sich die Daten per telegraf holen lassen und alle infos die sich auf einer ebene Befinden lassen sich entsprechen sortieren das man immer wüsste welche Werte zu welchen Namen gehören Wenn ich letzteres richtig verstanden hab gäbs dann direkt unter SN neben den Kanalnummern ein eigenes Topic, wäre in meinem Fall nicht so ideal da ich gerade bei den HMIPW-DRI32 den einzelnen Eingängen zum Beispiel Namen gegeben hab die man erst wieder eine ebene höher zuordnen müsste. |
ich habe den CCU Jack installiert um per MQTT Daten zwischen raspberrymatic und Nodered + Influxdb zu tauschen anstatt die Nutzung von "node-red-contrib-ccu" es funktioniert prima aber ohne Namen und nur durch die Seriennummer die Geräte zu identifizieren und zuordnen ist sehr Mühsam, die Übertragung der Name anstatt die Seriennummer im topic wäre super |
Bitte nicht anstelle von. Zusätzlich gerne, aber bitte bedenken - Gerätenamen können sich ändern, Verwendungszwecke können variieren - Seriennummern bleiben. |
ja hast du recht zusätzlich oder konfigurierbar machen dass man wählen kann zwischen Name und Seriennummer |
ich bin gerade beim umstellen von node-red-contrib-ccu auf CCU Jack bei meinem nodered und habe gemerkt dass man die Gerätenamen braucht nicht anstelle vom Seriennummer sondern anstelle vom Kanal nummer weil bei alle Geräte umbenennt man die Kanäle einzeln nach bedarf deswegen wäre ein MQTT Topic in der format: device/status/Seriennr./Kanalname:kanalnr./Parametername passend weil auch wenn mann die Kanalname ändert ist noch identifizierbar durch seriennummer und die kanalnummer im topic |
Folgendes zu Deinen Überlegungen: Titel als Bestandteil des Topics
Wenn die Idee fortgeführt wird, müsste auch der Kanaltitel auftauchen. Die Seriennummer und den Kanalindex würde ich entfernen:
Der CCU-Jack dockt direkt an die Schnittstellenprozesse (BidCos-RF, usw.) der CCU an. Die Schnittstellenprozesse kennen keine Anzeigenamen/Titel, sie arbeiten mit Seriennummern und Kanalindizes. Dies wurde so für die MQTT-Topics und die Pfade der REST-API übernommen, damit die Abbildung einfach und eindeutig ist. Die Anzeigenamen/Titel werden erst innerhalb eines anderen Prozesses der CCU (Logikschicht/ReGaHss) hinzugefügt. Falls also Titel in den MQTT-Topics oder den REST-API-Pfaden auftauchen sollen, wird das kompliziert und aufwändig zu implemetieren. Zudem müssen die Anzeigenamen erst aus der ReGaHss ausgelesen werden und stehen nicht sofort zur Verfügung. Vielleicht ist bereits aufgefallen, dass nach einem Neustart des CCU-Jacks es einige Zeit dauert, bis der Titel bei den Eigenschaften angezeigt wird. Diese Variante würde ich also ersteinmal nicht umsetzen. Titel und andere Informationen in einem separaten Topic
Da würde ich auch noch weiter gehen und alle vorhandenen Eigenschaften mit aufnehmen. Zudem würde ich das Topic noch etwas anpassen (z.B.
Wann aber auf den Topics Wäre das für Eure Anwendungsfälle hilfreich? |
Hallo @TVR-X, wenn du das Ganze über NodeRed machen willst, dann kann ich dir einen Die Nachricht sieht dann so aus:
Und so kommen dann die Daten an: Der node selber ist hier:
|
Hallo @mdzio, eine allgemein verwendbare Lösung kann man hier wahrscheinlich nicht erreichen. Die Gründe dafür hast du schon gelistet:
Darum muss ein Konsument in jedem Fall
Das ist aber immer mit einer Art von Zwischenspeicher verbunden, welcher eine gewisse Programmierung erfordert. Und diese Arbeit kannst du dem Konsumenten m.E. nicht abnehmen. |
@mdzio bei Aber das Problem mit dem Timing hab ich nicht ganz Verstanden, wenn die Gerätenamen beim starten(z.B.) einmal im broker "eingetragen" ist kann ichs doch von telegraf immer auslesen wenn der refresh der Daten kommen soll oder sehe ich das falsch? @ptweety Erstmal Vielen Dank fürs teilen der Funktion Es gibt zwar ein paar Sachen die ich noch nicht 100% nachvollziehen konnte (da fehlt mir leider die Programmierkenntniss um zu verstehen wie) aber vor allem der Grund davon erschließt sich mir nicht ganz: |
@ptweety |
Dann wäre die von @mdzio vorgeschlagene Lösung sicher ein guter Weg, denn damit hättest du die Möglichkeit jedweden payload und auch die
Ach ja, einige HmIP-Geräte haben den Typ |
Das Senden der Gerätenamen zum MQTT-Broker erfolgt aber unabhängig vom Senden der Wertänderungen und kann je nach Projektgröße einige Zeit dauern. Also Wertänderungen können beim Client eintreffen bevor der Gerätename bekannt ist. Anzeigenamen werden aus dargelegten Gründen ersteinmal nicht mit ins Topic oder der Payload aufgenommen. Eine Idee wäre noch, im Rahmen einer zukünftigen Skript-Funktionalität im CCU-Jack, dass sich Anwender den CCU-Jack selber erweitern können. Die Metainformationen sollten über ein separates Topic publiziert werden (siehe dazu #90). Dann schließe ich ersteinmal den Eintrag. Vielen Dank für die Diskussion. |
Hallo,
ich überlege das Plugin zu nutzen um damit Daten in die InfluxDB schreiben zu lassen (über telegraf und das MQTT Plugin)
Dabie ist mir aufgefallen das per MQTT die Namen der Geräte nicht übertragen werden. Kann man das irgendwo aktivieren oder muss ich den weg über die rest API gehen und dann jedes Gerät einzeln abfragen da ich ja hier kein "gesamt" Ergebnis bekomme.
The text was updated successfully, but these errors were encountered: