NEWS
[gelöst] ioBroker als MQTT Client, wie?
-
@chris-1 Genau bei mir ist im Shelly direkt auf mqtt umgeschaltet. - Die Cloud funktioniert dann nicht mehr, aber im lokalen Netz geht auch die App wieder. - Halt keine Historie das ist klar.
-
@mickym Ich möchte gar keine Cloud. Mir ist am liebsten, wenn das alles rein lokal läuft.
-
@chris-1 sagte in ioBroker als MQTT Client, wie?:
@mickym Ich möchte gar keine Cloud. Mir ist am liebsten, wenn das alles rein lokal läuft.
Na dann passt es ja.
-
@mickym ich nochmal....
Wie hast du die Datenpunkte angelegt, da bei dir beim Ordner "tischlampe" auch das json angezeigt wird? -
@fam3xce tischlampe ist ein state, der von zigbee2mqtt selbst kommt und deshalb ursprünglich nur als state Datenpunkt automatisch angelegt wird. Das ist das topic, was Du dort unter friendly name anlegst. Die Geräte als die mqtt-topics wohin dann gepublished wird, legst Du im zigbee2mqtt selbst an, in dem Du das Gerät entsprechend benennst:
Die Datenpunkte darunter also .../tischlampe/set und .../tischlampe/get musst Du selbst anlegen.
Das geht entweder in dem Du über ein anderes tool (MQTT-Explorer, Node-Red mqtt Nodes), über sendTo des Adapters auf dieses topic eine Nachricht publishst oder Du legst den Datenpunkte im admin selbst an.Dazu musst Du, wie hier beschrieben in dem Expertenmodus wechseln:
Da der Admin es nicht zulässt unter einem state noch einen Datenpunkt anzulegen, musst Du diesen Admin überlisten.Dazu gehst Du in die Hierarchie drüber (meist folder) und legst den Datenpunkt wie folgt an:
Durch den Punkt wird die Hierarchie übersprungen beim Anlegen.
-
@mickym danke. Das mit zigbee2mqtt war klar, nur konnte ich dann in iobroker unter diesem Datenpunkt nichts anlegen.
Jetzt mit "name.set" als neue Bezeichnung gehts. -
@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?