Tasmota: Beinahe Rollosteuerung, aber nur beinahe

  • Hallo zusammen

    Es schein mir, dass sich hier im Forum Leute tummeln, die das Wissen haben, um mir mit meinem Problem zu helfen.

    Für eine Bewässerungsanlage benötige ich eine Steuerung, welche folgende Aufgaben zu erledigen hat:

    1. Einschalten und Ausschalten der Wasserpumpe
    2. Motorsteuerung des Bewässerungsbalkens, Vor- und Rücklauf mit einem Drehstrom-Getriebemotor, Laufrichtung umschaltbar durch einen Reedschalter an beiden Schienenenden, dh. bei jedem der Endpunkte sitzt ein Magnet, der den Reedschalter betätigt
    3. Gesamtbewässerungsdauer einstellbar, dh. nach einer definierten Zeit schaltet sowohl die Wasserpunpe wie auch der Laufmotor aus

    Damit der Fahrmotor auslaufen kann, muss zwischen dem Links- und Rechtslauf eine Pause von 1 Sek. sein, in welcher der Motor vollständig ausgeschaltet ist, bevor er seine Reise in der Gegenrichtung fortsetzt.

    Hardwareseitig verwende ich einen Wemos D1 mini, welcher die beiden Motorschütze für rechts- und linkslauf bedient sowie ein Relais für die Wasserpumpe.

    Als erstes habe ich mit interlock die beiden Ausgänge D6 und D7 gesperrt, damit nicht beide gleichzeitig eingeschaltet werden können (Interlock 1,2). Interlock hat ein delay vom 50ms, was für mich zu kurz war. Ich habe daher diesen Wert direkt in der Firmware auf 1000ms erhöht.

    Interlock 1 12

    SetOption13 1 passt das Verhalten der Buttons an den Reedkontakt an.

    Zur Auswertung des Reedschalters habe ich die nachstehenden Rules definiert.

    Rule1 ON power1#state=1 DO power2 0 ENDON (Linkis)
    Rule2 ON power1#state=0 DO power2 1 ENDON (Rechts)
    Rule3 ON power1#state=1 DO power3 1 ENDON
    (Wasserpumpe)

    Dies funktioniert leider nur teilweise. In Schaltrichtung 2 --> 1 ist das Delay vorhanden, in Schaltrichtung 1 -->2 fehlt es. Wenn ich über das Webinterface schalte, wird das Delay in beiden Richtungen berücksichtigt.

    Wie ich den ganzen Prozess nach beispielsweise 3 Minuten beenden kann, ist mir im Moment auch noch nicht klar. Vielleicht habe ich für mein Problem auch einen viel zu komplizierten Ansatz gewählt. Für jeden Tipp oder Dankanstoss bin ich jedenfalls sehr dankbar.

  • Ist es zwingend, dass immer power2 auf power1 reagiert? Kann es nicht auch umgekehrt sein? Vielleicht besser jeweils zuerst ausschalten lassen, dann warten und das Gegenstück einschalten. Zumindest könnte ein DELAY helfen.

    Code
    Rule1 ON power2#state=0 DO backlog delay 10;power1 1 ENDON (Links)
    Rule2 ON power1#state=0 DO backlog delay 10;power2 1 ENDON (Rechts)