NEWS
[Gelöst] 4ch Relais per esp32 (Tasmota) mqtt einbinden
-
Hallo zusammen,
Ich bin gerade dabei einen Höhenverstellbaren Schreibtisch Smart zu machen und habe dafür einen esp32 mit einem 4 Kanal Relais verbunden. Die einzelnen Relais imitieren dann sozusagen den Knopfdruck auf der Platine der Schreibtisch Steuerung. Soweit sogut. Habe dann Tasmota auf den ESP32 installiert und per Wlan verbunden. Die entsprechenden Pins habe ich dan Konfiguriert und schon kommt ich in der Tasmota Weboberfläche über die einzelnen Relais den Tisch auf und ab fahren. Anschließend habe ich dann MQTT eingestellt, um die Relais in IOBroker zu bekommen. Das funktioniert soweit auch. Jedoch wird mir der Zustand der einzelnen Relais nur in On und Off angezeigt und nicht als Switch in True und false.
Ich weiß auch nicht wie ich die Relais nun in iobroker steuern kann. Das manuelle umschreiben von Off auf On funktioniert zumindest nicht.
Falls mir jemand hier weiterhelfen könnte würde ich mich sehr freuen !!!
-
@berserker sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
Jedoch wird mir der Zustand der einzelnen Relais nur in On und Off angezeigt und nicht als Switch in True und false.
zeig mal den DP und die Objektdaten dazu bitte.
-
Meinst du das hier?
habe auch schon versucht den Datenpunkt manuell in ein Logikwert und Switch umzuformatieren. Aber ohne Erfolg
-
@berserker sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
Meinst du das hier?
beinahe... OBJEKTDATEN auswählen und nochmal zeigen
@berserker sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
habe auch schon versucht den Datenpunkt manuell in ein Logikwert und Switch umzuformatieren
? Einen DP eines Adapters ändert man nicht !
-
{ "_id": "mqtt.0.stat.tasmota_6A7278.POWER1", "common": { "name": "stat/tasmota_6A7278/POWER1", "write": true, "read": true, "role": "variable", "desc": "mqtt server variable", "type": "string" }, "native": { "topic": "stat/tasmota_6A7278/POWER1" }, "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1684687337824 }
so jetzt hab ich es
Okay wusste ich nicht
-
@berserker OFF und ON ist halt nicht Off und On
Schreibweise ist das A und O
-
Du gehst auf den Folder "tasmota_XXXX" und legst dort einen neuen Datenpunkt vom Typ boolean an:
den nennst Du "cmnd.POWER1". Das Ganze wiederholst Du für POWER2-4.
Die Datenpunkte kannst du zum Schalten benutzen.
-
@djmarc75 sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
@berserker OFF und ON ist halt nicht Off und On
Schreibweise ist das A und O
Ne, das geht so bei Tasmota nicht, Schreibweise hin oder her...
-
@marc-berg sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
Ne, das geht so bei Tasmota nicht, Schreibweise hin oder her...
wieder was gelernt
-
Dem widerspreche ich - meine POWER Datenpunkte unter Tasmota sind Strings und funktionieren mit ON und OFF und sind keine Booelans - die funktionieren nicht.
Vielleicht geht auch beides - man sollte sich halt an die Doku halten: https://tasmota.github.io/docs/Commands/
Bei mir hat das auch der tamota Device Manager angelegt. -
@mickym sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
Dem widerspreche ich - meine POWER Datenpunkte unter Tasmota sind Strings und funktionieren mit ON und OFF und sind keine Booelans - die funktionieren nicht.
Und wenn du dir mal die Mühe machst und testest, dann wirst du herausfinden, dass es auch mit boolean und number geht. MQTT sind die Datentypen eh egal. Da werden nur Strings gesendet, und ob da "true", "1" oder "ON" drin steht, ... geht alles.
-
@marc-berg Ich halte mich an dem was mir der Tasmota Device Manager vorgibt:
Ausserdem sehe ich ja was mir der stat -Ast zurückgibt:
Der Boolean geht zwar auch:
Aber ich halte mich lieber an das was Tasmota mir zurückliefert und das kann man dann ja auf der Console sehen.
Sprich ich sehe ja was für ein Kommando, welches Ergebnis liefert:
-
Danke erstmal für die Beteiligung aller. Ich komme zwar nicht ganz hinterher aber ich versuche es.
Also erst einmal stück für Stück. Die Datenpunkte kann ich irgendwie nicht anlegen. Das + zeichen ist ausgegraut. Muss der Datenpunkt in dem Ordner sein, oder kann ich den auch woanders hin packen?
-
@marc-berg sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
MQTT sind die Datentypen eh egal. Da werden nur Strings gesendet, und ob da "true", "1" oder "ON" drin steht, ... geht alles.
Nein dem widerspreche ich auch. MQTT arbeitet mit JSONs und kennt deshalb sehr wohl auch numerische und boolesche Datentypen. Sprich es werden zwar nur Strings oder Buffers übertragen - aber als JSONs versteht MQTT auch andere Datentypen bzw. kann die übertragen.
Außerdem würde "false" dann nicht als boolean false interpretiert, wenn es nur als Text interpretiert würde.
-
@berserker Du gehst eine Ebene höher und gibst den Pfad mit Punkt ein.
Habe ich hier gerade im Detail beschrieben: https://forum.iobroker.net/post/994423
-
jetzt sieht es so aus. aber durch das schalten des neuen Datenpunktes passiert nichts. Mache ich etwas flasch?
wie gesagt, ich kann nicht einmal durch das ändern der ON/OFF Datenpunkte die Relais zum schalten bringen
-
@berserker Das hängt davon - wie Du in deinen Devices das topic und device definiert hast. Wenn Du es standardmässig hast, dann sind die cmnd und stat Äste nicht unter dem Device. Wenn Du den mqtt Adapter hast und das standardmässig hast, dann hast Du auf root Ebene cmnd und stat und dann die Geräte. Die Struktur die ich habe definiert die Topics anders, weil ich das übersichtlicher finde.
Sprich wie sieht denn Deine Konfig aus.
Ich habe das gedreht, weil ich das nicht so mag, wie der Standard. - Aber wenn du den SONOFF nimmst - darfst Du das nicht ändert. Beim mqtt Adapter bist Du frei. - Du kannst auch den topic hierarchisch gliedern. Also statt meiner Steckdosenleiste hätte ich auch Licht/Küche/Steckdosenleiste nehmen können.
Also standardmässig hast Du auf root Ebene cmnd und stat Ast.
-
@mickym sagte in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
Nein dem widerspreche ich auch. MQTT arbeitet mit JSONs und kennt deshalb sehr wohl auch numerische und boolesche Datentypen. Sprich es werden zwar nur Strings oder Buffers übertragen - aber als JSONs versteht MQTT auch andere Datentypen bzw. kann die übertragen.
tolle Theorie, nur dass diese hier mal überhaupt keine Rolle spielt. Tasmota wird keinerlei Unterschied erkennen können, egal wie du die Datentypen im iobroker definierst.
-
@mickym said in 4ch Relais per esp32 (Tasmota) mqtt einbinden:
@berserker Das hängt davon - wie Du in deinen Devices das topic und device definiert hast
Okay, also ich habe es noch anderherum.
reicht es das zu ändern, so wie du es hast?
-
@berserker Wenn Du es lieber so hast, wie ich es habe - dann kannst Du das einfach ändern und dann hast Du stat,cmnd und tele Äste unter dem Gerät. Ansonsten hast Du auf Root-Ebene ein topic stat, cmnd und tele und darunter die Geräte. Ich habe ja noch fix tasmota als Prefix:
damit habe ich unter mqtt - auch die verschiedene Systeme, die alle mqtt sprechen schön von einander abgegrenzt.
Mein fulltopic sieht deshalb so aus:
tasmota/%topic%/%prefix%/