NEWS
[gelöst] ioBroker als MQTT Client, wie?
-
@mickym Wie legt man eigentlich unter Userdata "sauber" einen Datenpunkt/Gerät/..? an, welcher einen DP von mqtt spiegelt und/oder quasi-kopiert?
Sinn in meinen Augen ist nicht nur, dass man eine übersichtliche Struktur über alle Verwendeten Protokolle-Grenzen hinweg erstellen kann, sondern vor allem auch die Archivierung/History?
Es ist doch bestimmt nicht sinn, dass man unzählige Scripts erstellt, die den Kram immer rüber kopieren.zB bei Device-Reset oder ioBroker.Adapter update/tausch gehen ja ggf diverse Daten verloren (Stromverbrauch oder Meßwerte, die man zwar real-/in-time abfragen kann, welche jedoch nicht public archiviert werden
-
@chris-1 Um Teile oder auch um einzelne Werte aus JSON von den Originalpunkten zu entkoppeln legst Du Dir Alias an.
Willst Du beispielsweise einen Wert aus JSON in einem einzelnen Datenpunkt speichern, weil Du die Historie speichern möchtest, dann siehst Du hier ein Beispiel.
https://forum.iobroker.net/post/864336Wenn Du mit Node-Red als Logikmaschine arbeitest, dann habe ich einen Flow, der Dir aus von Dir gewählten JSONs oder Du kannst theoretisch auch einen Baum nutzen in einzelne Datenpunkte unter userdata_0 anlegt und auch aktualisiert.
Hier mein Flow - kannst Dir ja mal durchlesen, was der kann: https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
Generell -
Archivierung findet nicht im direkt im iobroker statt. Der iobroker verwaltet nur aktuelle Zustände. Für die Archivierung für irgendwelche Grafen gibt es diverse Adapter: History, SQL-Adapter, Influx Adapter die dann eine Historie der Datenpunkte aufzeichnen und in den entsprechenden Datenbanken speichern.
-
@mickym Bis Node-Red und NOCH weitere Ergänzungen ist noch Weg zu gehen. Ich versuche erstmal mehr hier in ioBroker zu verstehen und bin heil froh, dass der temp voll aufgedrehte Debuglevel bei mosquitto schon einen guten Austausch (mosquitto, zigbee2mqtt service, zigbee2mqtt ioBroker.Adaper und mqtt ioBroker.Client) anzeigt
-
@chris-1 Ich habe Dir ja nur angeboten, dass Du damit schnell JSONS in einzelne Datenpunkte unter userdata erstellen kannst. Da helfe ich gerne - ist nicht so kompliziert.
Das mit den Alias - ist Bestandteil der Basis Iobroker - Funktionalität.
-
@mickym said in ioBroker als MQTT Client, wie?:
Archivierung findet nicht im direkt im iobroker statt. Der iobroker verwaltet nur aktuelle Zustände. Für die Archivierung für irgendwelche Grafen gibt es diverse Adapter: History, SQL-Adapter, Influx Adapter die dann eine Historie der Datenpunkte aufzeichnen und in den entsprechenden Datenbanken speichern.
sql-Adapter ist schon installiert, damit werd ich mich auch noch beschäftigen (postgreSQL)
-
@mickym Das mit dem Alias war ein echt guter Tipp!
Habe an diversen Stellen nochmal nachgelesen und auch ein Video von "verdrahtet" gesehen, in welchem ein darauf aufsetzendes Plugin (Adapter) vorgestellt wird.
Was ich im Endeffekt wohl am meisten daraus mit genommen habe, ist mal diese Objektbeschreibung (Alias über Plugin erstellt), die hoffendlich ein paar gedankliche Lücken schliesst
Diese 18 Zeilen sind echt mächtig hilfreich!
Danke, dass Du mich auf den richtigen Pfad gesetzt hast!
Ich hatte mit sowas (vgl Screenshot) schon herum experimentiert, aber wohl an den falschen stellen gedreht
-
@chris-1 Na wenn Du den Thread, den ich gepostet habe, hat der Alias ein im Moment schon gutes Interface. Da brauchst Du keinen Adapter mehr. Da ist ja ein neuer Alias Tab dabei - mehr braucht es da nicht. da brauchst Du nicht das common-JSON zu bearbeiten.
Du musst aufpassen, dass Du gerade das was im Netz seit mehr als 1 Jahr rumsteht, heute nicht mehr aktuell ist und man heute anders macht.
-
@mickym Dieser Plugin/Adapter ist für mich als Neuling recht praktisch, um mir sozusagen erstmal Templates zu schaffen.
Allein schon diese erste, um zu verstehen, was der Alias bzw. selbst erzeugte DP (auch Gerät?) ist und wo das ganze hin zeigt bzw seinen Ursprung hat, allein diese kleine Info (id, _id, from, user) hilft wohl viel für das Verständnis.Hiernach kann ich auf Deinem Weg schneller gehen
-
@chris-1 sagte in ioBroker als MQTT Client, wie?:
@mickym Dieser Plugin/Adapter ist für mich als Neuling recht praktisch, um mir sozusagen erstmal Templates zu schaffen.
Allein schon diese erste, um zu verstehen, was der Alias bzw. selbst erzeugte DP (auch Gerät?) ist und wo das ganze hin zeigt bzw seinen Ursprung hat, allein diese kleine Info hilft wohl viel für das verständnis.Hiernach kann ich auf Deinem Weg schneller gehen
Du musst auch überlegen, ob das unbedingt notwendig ist. Im Zigbee2mqtt gibts Du ja den friendlyName an. Wenn Du also die Hardware tauschen musst, kannst Du die neue Hardware immer noch unter dem gleichen Namen anlegen. Genauso bei den Shellies.
Im Moment ist es mehr interessant, um gezielt einzelne Werte als eigenen Datenpunkt aus dem JSON zu extrahieren, für die History.
-
@mickym said in ioBroker als MQTT Client, wie?:
Du musst auch überlegen, ob das unbedingt notwendig ist. Im Zigbee2mqtt gibts Du ja den friendlyName an. Wenn Du also die Hardware tauschen musst, kannst Du die neue Hardware immer noch unter dem gleichen Namen anlegen.
Nach Tunlichkeit möchte ich ja zigbee2mqtt in der Zukunft durch plain mqtt ersetzen (ESP32 der Gate macht)
Ich mag es aufgeräumt und wenn für 20-25€ der ganze Zigbee-Kram sich in mqtt verwandelt, dann will ich zufrieden sein. -
@chris-1 Na mit ESP32 kenn ich mich nicht aus. Aber zigbee2mqtt wandelt ja alles in reines mqtt um. Wie gesagt JSON sind eine sehr effiziente Art viele Informationen in einem Objekt zu speichern.
-
@chris-1 said in ioBroker als MQTT Client, wie?:
@mickym said in ioBroker als MQTT Client, wie?:
Du musst auch überlegen, ob das unbedingt notwendig ist. Im Zigbee2mqtt gibts Du ja den friendlyName an. Wenn Du also die Hardware tauschen musst, kannst Du die neue Hardware immer noch unter dem gleichen Namen anlegen.
Nach Tunlichkeit möchte ich ja zigbee2mqtt in der Zukunft durch plain mqtt ersetzen (ESP32 der Gate macht)
Ich mag es aufgeräumt und wenn für 20-25€ der ganze Zigbee-Kram sich in mqtt verwandelt, dann will ich zufrieden sein.Dein Vietnamesisch wird nicht viel besser sein als meins, aber es gibt dazu eine englische Blogseite mit wesendlichen Informationen und den Rest kann man bildlich übernehmen.
-
@chris-1 Na wie gesagt musst Du wissen - glaube nicht, dass das viele hier nutzen und ich sehe auch kein Vorteil darin - eher eine weitere Blackbox für mich. Für mich reicht was der Koordinator und die Software mir liefern.
-
@mickym Noch ne frag:
Was genau ist "ts" in der Objekt-Definition? Ist dies ein uniq-Object-Identifyer oder ist das nochmals ein externer Bezug?
-
@chris-1 ts im Objekt enthält den Timestamp - also Zeitstempel. Wahrscheinlich letzte Aktualisierung. Musst halt schauen. Ist das UNIX Zeitformat in ms.
-
@mickym Also kann ich da reinschreiben was ich will?
-
@chris-1 Du sollst da gar nichts reinschreiben. Diese Eigenschaften müssen aber vorhanden sein, damit der iobroker die Verwalten kann. Wie gesagt - Du solltest eigentlich nicht selbst in den Objektdefinitionen rumschreiben. - Das kann zum ganz absonderlichen Verhalten des iobrokers führen. Deswegen halte ich diese alten Videos nicht für sinnvoll, weil man da für die Aliase noch selbst im common-Objekt rumfuhrwerken musste, weil es noch keine Oberfläche für gab.
-
@mickym In dem Video wurde garnix daran gemacht, das war rein GUI/Adapter.
Ich hab mir halt nur angeschaut, was das Ergenis war, was dann in Alias auftauchte.Der letztlich springende Punkt ist wohl
"alias": { "id": "das.kommt.von.hier" }
-
@chris-1 Na wie gesagt mach halt mal den Alias Tab auf.
Da kannst Du bequem über die 3 Punkte den Quelldatenpunkt auswählen für Deinen Alias
Da musst du nicht in dem common Objekt rumfuhrwerken. Dann vergisst ein Komma oder sonst was. Das ist doch viel komfortabler.
Die Aliase definiterst Du alle unter alias.0
-
@mickym Ach huch... da ist ja ein Menue-Punkt oben dazu gekommen.
Ja das erspart ja Plugin und herumgefummel vollkommen!
Danke!
Wenn man als Anfänger nicht mit der Nase drauf gestubst wird,
dann übersieht man solche "Kleinigkeiten" gern