NEWS
Fragen zur Umstellung von Sonoff- auf MQTT-Adapter
-
Hallo Broker,
ich habe einige Tasmota-Geräte welche über den Sonoff-Adapter ausgewertet und gesteuert werden.
Nun kommt ein Gerät hinzu welches auch MQTT spricht, aber über den Sonoff-Adapter nicht auffindbar ist. Da beide Adapter über MQTT kommunizieren, habe ich mir einen Mosquitto-Server auf einem anderen Port installiert und zusätzlich den MQTT-Adapter als Client installiert. Darüber kann ich das neue Gerät sehen und auch auswerten.Da ich jedoch ungern zwei Adapter für die gleiche Aufgabe installiert haben möchte und an vielen Stellen sowieso der reine MQTT-Adapter empfohlen wird, wollte ich auf diesen wechseln und habe dazu einige Tasmota-Geräte testweise auf diesen umgestellt. Die Geräte tauchen dann auch ordnungsgemäß im Knoten mqtt.0 auf. Leider gibt es trotzdem noch verschiedene Probleme und ich möchte Fragen, wie ihr diese gelöst habt:
1.) Ein Gerät hat zwei Powerzustände, die ich unter "stat" getrennt als "POWER1" und "POWER2" sehen kann, unter "cmnd" finde ich jedoch nur ein gemeinsames "POWER" für beide Zustände... Wie kann ich diese getrennt steuern?
2.) Ein Gerät fragt auch verschiedene Sensoren ab. Diese kann ich in der Sonoff-Instanz bequem abgreifen und mitloggen. In der MQTT-Instanz befinden sich diese Daten jedoch in einen JSON unter "tele/gerät/sensor" - wenn ich diese Sensordaten mitloggen möchte, muss ich mir die ja erst "umständlich" herausholen und in einen neuen Alias werfen. Dies spart weder Arbeit noch Systemressourcen.Wie habt ihr das elegant gelöst oder ist es einfacher beides parallel laufen zu lassen?
Danke im Voraus für eure Meinungen und Tipps!
PaulchenPlump -
@paulchenplump sagte in Fragen zur Umstellung von Sonoff- auf MQTT-Adapter:
Wie kann ich diese getrennt steuern?
Viele deiner Fragen lassen sich mit einem Blick in die Dokumentation lösen: https://tasmota.github.io/docs/Commands/
"cmnd" ist im Prinzip alles, was Du auch in die Tasmota-Konsole eingeben kannst. Darüber kannst du auch Tasmota umkonfigurieren usw.
Power ON turns first defined power output (usually Relay1) on
Power1 1 also turns first defined power output (usually Relay1) on dela Power1 True also turns first defined power output (usually Relay1) onReplace <x> in a command with the appropriate index number. Leave it empty to use the first available.
Also:
Power1 ON Power2 ON
@paulchenplump sagte in Fragen zur Umstellung von Sonoff- auf MQTT-Adapter:
wenn ich diese Sensordaten mitloggen möchte, muss ich mir die ja erst "umständlich" herausholen und in einen neuen Alias werfen. Dies spart weder Arbeit noch Systemressourcen.
Genau deswegen gibt es ja den Sonoff-Adapter. Der bricht Dir das in einzelne Datenpunkte auf, ohne dass Du alles selbst machen musst. Generell finde ich es aber sinnvoll, alle Geräte in einen alias zu überführen / mit dem Devices-Adapter zu arbeiten.
-
1.) Ein Gerät hat zwei Powerzustände, die ich unter "stat" getrennt als "POWER1" und "POWER2" sehen kann, unter "cmnd" finde ich jedoch nur ein gemeinsames "POWER" für beide Zustände... Wie kann ich diese getrennt steuern?
Ja das ist so, weil ein Endgerät nicht published auf topics die es subscribed hat. Also einfach die Datenpunkt unter cmnd anlegen - oder mit dem Tasmota Device Manager anlegen lassen. Im Prinzip kannst Du alles was Du auf der Tasmota-Kommandozeile eingibst über einen Backlog Datenpunkt oder eben über verschiedene Datenpunkte steuern.
2.) Ein Gerät fragt auch verschiedene Sensoren ab. Diese kann ich in der Sonoff-Instanz bequem abgreifen und mitloggen. In der MQTT-Instanz befinden sich diese Daten jedoch in einen JSON unter "tele/gerät/sensor" - wenn ich diese Sensordaten mitloggen möchte, muss ich mir die ja erst "umständlich" herausholen und in einen neuen Alias werfen. Dies spart weder Arbeit noch Systemressourcen.
JSON ist nun mal die effizienteste und offizielle Art Daten zwischen Systemen zu übertragen. Einzelne Werte kann man leicht herausfiltern und verarbeiten. Falls Du Node-Red nutzt habe ich einen Subflow, der Dir zwar die einzelnen Datenpunkte unter userdata_0.0 aufdröselt. Aber effizient ist eher JSON als das aufzudröseln. Das hat bis jetzt halt der Adapter für Dich gemacht und das musst Du nun halt in Eigenleistung vollbringen, was in meinen Augen aber wirklich einfach ist.
Hier ein Beispiel, wie Du ein einzelnes Attribut mittels Blockly aus dem JSON holst:
und was mein Node Red Subflow macht, um alle Datenpunkte einzeln zu schreiben - siehst Du am Beispiel 6 in dem vom mir verlinkten Thread.
-
Vielen Dank für eure Rückmeldungen und eure Erklärungen auf dieser Seite. Merke immer mal wieder, dass ich beim iobroker noch am Anfang stehe...
Habe mir testweise manuell einen Datenpunkt unter cmnd/ angelegt und konnte damit beide Kanäle getrennt schalten - juhu. Da ich NodeRed nicht verwende, habe ich anschließend über den alias-manager die gewünschten Datenpunkte für die Sensoren angelegt und mittels z.B. "JSON.parse(val).BME280.Temperature" die Werte vom Originalobjekt geholt. Soweit alles super.
Ich habe jetzt aber auch jede Menge manuell angelegt... Ist das so gewollt? Legen die Profis wirklich alles über die Aliase an? Fühle mich an dieser Stelle etwas überfordert und frage mich auch, ob ich zum Anlegen den "devices"- oder den "alias-manager"-Adapter verwenden kann/sollte? Und gibt es allgemeine Tipps zur Strukturierung/Benennung der Datenpunkte?
Sorry, dass es jetzt eher mehr als weniger Fragen werden.
Danke nochmals und einen schönen Abend euch!
-
@paulchenplump sagte in Fragen zur Umstellung von Sonoff- auf MQTT-Adapter:
Legen die Profis wirklich alles über die Aliase an?
Geschmackssache. Ich habe das anfangs nicht gemacht und dann war es super nervig, wenn man etwas ändern musste / ein Gerät austauschen muss. Ich denke langfristig fährt man mit dem Devices-Adapter am besten, weil der auch die verschiedenen Typen berücksichtigt.
Man muss aber sagen, dass das Konzept noch relativ jung ist und noch nicht in allen Adaptern angekommen ist.