Rule erstellen in Tasmota

  • Hallo,

    ich bräuchte Hilfe bei einem Projekt welches ich mit einem D1 Mini und Tasmota umsetzen möchte. Am Wemos sind 4xRelais und 3xTaster angeschlossen und ist über mqtt mit ioBroker verbunden. Wenn ich einen Taster drücke soll KEIN Relais schalten. Ich möchte nur dass sich ein Datenpunkt im ioBroker ändert. Denn die ganze Logik wird mit einem Skript im IoBroker erledigt. Diese schaltet die Relais ein und aus. Ich weiss dass man das mit den Rules in in Tasmota einstellen kann, aber ich komme damit leider nicht klar und weiss nicht was ich da eingeben soll.

    Kann mir bitte jemand helfen?

    So sind die Eingänge belegt:

    Relais1 -> GPIO16 (D0)

    Relais2 -> GPIO5 (D1)

    Relais3 -> GPIO4 (D2)

    Relais4 -> GPIO14 (D5)

    Taster1 -> GPIO12 (D6)

    Taster2 -> GPIO13 (D7)

    Taster3 -> GPIO15 (D8)

    Danke euch

    Christophe

  • Ich kenne deine Elektronik nicht, habe aber etwas Erfahrung mit den Tasmota Rules. Deshalb erst einmal folgende Einzelheiten:

    Das Schalten eines Relais<x> sollte mit Power<x> erfassbar sein, für die Rules braucht man meiner Erfahrung nach keine GPIO-Benennungen.

    Taster<x> sollte mit Button<x> erfassbar sein. Power<x> - und afaik Button<x> - sind in der Rules Eventsteuerung nur bei Änderung abfragbar.

    Ein aktueller Zustand ist NICHT per %Power...% abfragbar, dazu kann man diese Zustände in Variablen speichern, bspw. Power1 in Var1 ...
    Der Wert in Var<x> ist per Wertoperator %...% leicht abfragbar, also bspw. %Var1%.

    Beispiel: on power1#state do var1 %value% endon

    Dies kopiert den aktuellen (neuen) Zustand von Relais1 in die Variable Var1.

    Aber vielleicht brauchst du das (noch) nicht.

    Zum publishen gibt es das Kommando publish <topic> <payload> oder mit gesetztem Retain Flag publish2 ...

    Nun brauchst du "nur" noch die Event Steuerung zu verstehen und diese Elemente zu kombinieren. ;)

    Ok, du kannst ja weiter nachfragen, wenn es noch nicht gelingen sollte.

  • Mach dir keinen Stress mit Rules! Am Wemos kannst du 14 GPIOs konfigurieren. Somit kannst du an den freien GPIOs einfach 3 virtuelle Relaise einstellen und bekommst über den Relaise-Status die Taster in den IOBroker.

    zB. so

    Code
    Relais1 -> GPIO16     (D0)
    Relais2 -> GPIO5     (D1)
    Relais3 -> GPIO4     (D2)
    Relais4 -> GPIO14     (D5)
    Button5 -> GPIO12     (D6)
    Relais5 -> GPIO2
    Button6 -> GPIO13     (D7)
    Relais6 -> GPIO9
    Button7 -> GPIO15     (D8)
    Relais7 -> GPIO10
  • erstmal danke euch beiden für die Antworten!

    Ich bin noch dabei die Antwort von eich zu entschlüsseln ;)

    Den Code von Einstein hab ich schonmal vestanden, und das probier ich direkt mal heute Abend aus :)

    Danke :thumbup:

  • Sorry für meine Unwissenheit, aber wie gebe ich das in der Konsole ein? So:

    Relais1 -> GPIO16 (D0)

    sagt er command unknown.

    ich lese gerade die Wiki durch, kann aber nichts finden

    Nachtrag:

    ich glaube ich habe jetzt verstanden was du gemeint hast, ich soll den Eingängen die Buttons und Relais zuweisen. Also ich musste die Relais nach hinten schieben, da man nur 4 Buttons vergeben kann.

    Ich hab jetzt folgendes gemacht:

    Button1 -> D0

    Button2 ->D1

    Button3 ->D2

    Relais1 ->D3

    Relais2 ->D4

    Relais3 -> D5

    Relais4 ->D6

    Relais5 ->D7

    Relais6 ->D8

    Wenn ich das so mache, und starte neu, dann startet er normal und nach 10s macht er automatisch einen Reset auf Werkeinstellungen! Keine Ahnung was hier gerade passiert. Es ist auch in dem Moment nichts angeschlossen.

    Einmal editiert, zuletzt von paan83 (18. Mai 2020 um 17:37)

  • Vielen Dank für deine Hilfe, ich wusste nicht dass ich RX und TX ebenfalls als normale Eingänge benutzen kann. Ich habe nur noch die Buttons auf Switch umgestellt, so sind es dann auch Taster.

  • ich wusste nicht dass ich RX und TX ebenfalls als normale Eingänge benutzen kann

    Ja das geht problemlos! Du könntest auch noch mit dem Befehl "Setoption51 1" zwei (nicht wirklich vorhandene) GPIOs freischalten, und dort 2 von den virtuellen Relaise "anschließen".

    Edit: Und die Buttons hättest lassen können und mit den Befehlen:

    pulsetime1 5

    pulsetime2 5

    pulsetime3 5

    einstellen, dass die virtuellen Relaise nur eine halbe Sekunde aktiv sind.

  • okay, wenn die vituellen GPIOs aktiviert sind, kommen dann noch Auswahlfelder in der Geräteeinstellung hinzu?

    Ich brauche teilweise auch den langen Tastendruck, deswegen ist Switch besser :)