NEWS
[gelöst] ioBroker als MQTT Client, wie?
-
@mickym Hey,
wie hast du das gemacht, das die Geräte in Ordnern und Unterordnern stecken?
Bei mir sind nämlich alle Geräte einfach unter den Zigbee2mqtt Ordner aufgelistet...Grüße Christian
-
@fam3xce wenn du in zigbee2mqtt einen friendly Name angibst, gibst du ein mqtt topic ein und das kannst du mit Schrägstrichen, also /, beliebig tief machen.
Also statt „Nachttischlampe“ als „friendly Name“ kann man den Namen auch „Licht/Schlafzimmer/Nachttisch“ nennen. -
@mickym super, das habe ich schon mal hinbekommen.
Beim Rest hier vom Beitrag bin ich noch am durcharbeiten.
Danke schon mal..... -
@mickym Habe heute mal einen ESP32 bestellt und werde damit nächstes Wochenende herum basteln.
Habe dazu mehrere Projekte (firmware) gefunden, die mir gut gefallen... falls alles reibungslos läuft.a) EQ-3 <-> MQTT (https://github.com/softypit/esp32_mqtt_eq3)
b) BTLE <-> MQTT (https://espresense.com/)
c) Zigbee <-> MQTT (https://github.com/search?p=1&q=esp32+zigbee&type=Repositories)Dann wär ich aus dem BLE Gefummel (springender hci Port) mit dem Dongle raus und wenn die Zigbee Geschichte auch funktioniert, dann wirds auch im ioBroker etwas kürzer/übersichtlicher; steht aber als letzter Punkt auf der Liste, wegen Bastel-Aufwand
-
@chris-1 Na wie gesagt, da kann ich wenig zu sagen. Wenn Du es schaffst in Deinen mqtt-Broker zu schreiben, dann bin ich wieder im Spiel. Ansonsten bin ich bzgl. Basteln mit ESP32 und flashen von Software außen vor. War froh, dass ich ohne Löten ein/zwei Geräte mit Tasmota flashen konnte.
Wie gesagt, wenn es dann in mqtt drin ist und Du versuchst dann mit Logik was miteinander zu verbinden, dann kann ich ggf. wieder unterstützen.
-
@mickym Na ich pub/sub doch auf mosquitto schon fleissig
-
@chris-1 Gut also klappt Dein Schalten jetzt ?
-
@mickym Jupp,
aber ich würde halt so manches gerne noch vereinfachen und Probleme auch einfach auslagern, daher die Idee mit ESP32.
Bei der EQ-3 Geschichte (Thermostat) zB würde ich die BLE Probleme im PC umschiffen. Der ESP würde sich munter mit der Heizung unterhalten und pub/sub dann direkt an mosquitto machen. -
@chris-1 Gut aber das Schalten der zigbee Lampe über mqtt hatte ja gestern noch nicht geklappt und shelly hattest Du ja auch noch nicht implementiert.
-
@mickym Zigbee-Lampe steuern geht via mqtt. Um Shelly hab ich mich noch nicht gekümmert, läuft bisher via WIFI bzw. ioBroker.Adapter
Wenn ich mich recht entsinne, dann kann man die Shelly aber direkt über die Browser-Konfiguration der Shelly auf MQTT umschalten. Werde ich bei Gelegenheit machen. Dann könnte auch der ioBroker.Adapter für Shelly raus fliegen.
Ach, lach ... Lampe. Wenn ich nach Hause komme und Dämmerung/dunkel ist, dann schaltet sich meine Zimmerbeleuchtung an, falls sie aus war, sobald ich nach Hause komme
-
@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.