Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. Tasmota Rule: Motor und Entfernung

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Tasmota Rule: Motor und Entfernung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Marc_el_K
      Marc_el_K last edited by

      Hallo liebe Community,

      ich würde gern wissen, ob man folgende Komponenten mit einer Regel in Tasmota steuern kann. Darin bin ich leider noch gar nicht bewandert...

      Folgende Komponenten sollen zum Einsatz kommen:

      • Wemos D1 Mini
      • HC-SR04 Entfernungsmesser
      • SG90 Micro Servo Motor

      Ziel soll es sein, den Motor um 90° zu bewegen, wenn die Distanz kleiner als 10cm ist.

      Ich würde mich sehr freuen, wenn mir jemand helfen könnte, der es vielleicht schon realisiert hat 🙂

      Danke, Gruß Marcel

      D 1 Reply Last reply Reply Quote 0
      • D
        Dieter_P @Marc_el_K last edited by Dieter_P

        @marc_el_k

        Hi

        hier findest Du eine Erläuterung wie man einen SG90 bei Knopfdruck per Rule um 45° drehen lässt.
        https://espeasy.readthedocs.io/en/latest/Plugin/P000_Servo_motor.html#p000-servo-motor-page

        Das Ganze kann dann noch um eine Wenn-Dann Prüfung nach allgemeiner Vorlage (https://espeasy.readthedocs.io/en/latest/Rules/Rules.html) ergänzt werden um eine Prüfung für die Distanz zu ergänzen.

        Somit bist Du dann etwa hier:

        On HCSR04#distance do       // HCSR04 ist in ESPeasy das angelegte Device
          if [HCSR04#distance] <10       //#distance ist ein frei vergebener Name einer Varaiable eines Device     
            Servo,1,GPIO,90                   // GPIO zu ersetzen durch den PWM GPIO des Servo am D1 Mini
          else
           Servo,1,GPIO,0
          endif
        EndOn
        

        Die Regeln in Tasmota basieren auf einer Kooperation aus ESPeasy und dürften daher sehr ähnlich zu erstellen sein. Entweder also direkt ESPEasy nutzen oder ausknobeln ob ggf. Anpassungen in Tasmota notwendig sind.

        Viel Erfolg!

        Marc_el_K 1 Reply Last reply Reply Quote 0
        • Marc_el_K
          Marc_el_K @Dieter_P last edited by Marc_el_K

          @dieter_p Danke für deine Ansätze und Links. Trotz lesens habe ich es noch nicht rausgefunden, wie es geht...

          Was ich schon rausgefunden habe:

          • Der Entfernungsmesser scheint mit SR04 angesprochen werden zu müssen.
          • Dann muss man Rule1 davor setzen und die Regel mit Rule1 on aktivieren.
          • Anscheinend wird die IF-Schleife mit ( ) angeführt, bin ich mir aber noch nicht sicher
          • Den Motor muss mal wohl mit Dimmer ansteuern

          Diese Werte habe ich für den Motor im Netz gefunden und das funktioniert auch super.

          DimmerRange 26 67
          fade on
          speed 18
          PWMFrequency 50
          Setoption69
          

          Wenn ich den Motor steuere erscheint zum Beispiel:

          21:25:21.475 RSL: RESULT = {"POWER":"ON","Dimmer":22}
          

          Da ich den Motor mittels PWM1 auf D4 GPIO2 gesetzt habe, stehe ich momentan bei folgenden Ergebnis. Ist aber irgendwo noch ein Fehler drin:

          Rule1 On SR04#distance do if (SR04#distance) <10 Servo,1,2,90 else Servo,1,2,0 endif EndOn
          

          Das Ergbnis ist

          21:36:10.232 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":84,"Free":427,"Rules":"On SR04#distance do if (SR04#distance) <10 Servo,1,2,90 else Servo,1,2,0 endif EndOn"}}
          21:36:12.510 RUL: SR04#DISTANCE performs "if (SR04#distance) <10 Servo,1,2,90 else Servo,1,2,0 endif"
          21:36:12.517 RSL: RESULT = {"If":"Done"}
          
          1 Reply Last reply Reply Quote 0
          • D
            Dieter_P last edited by Dieter_P

            Da ich den Motor mittels PWM1 auf D4 GPIO2 gesetzt habe, stehe ich momentan bei folgenden Ergebnis. Ist aber irgendwo noch ein Fehler drin:

            Rule1 On SR04#distance do if (SR04#distance) <10 Servo,1,2,90 else Servo,1,2,0 endif EndOn
            

            Das Ergbnis ist

            21:36:10.232 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":84,"Free":427,"Rules":"On SR04#distance do if (SR04#distance) <10 Servo,1,2,90 else Servo,1,2,0 endif EndOn"}}
            21:36:12.510 RUL: SR04#DISTANCE performs "if (SR04#distance) <10 Servo,1,2,90 else Servo,1,2,0 endif"
            21:36:12.517 RSL: RESULT = {"If":"Done"}
            

            Einfach nur ein paar Gedanken dazu.
            Gemäß
            8dd99b74-2a16-4c55-9cb7-13316604f730-grafik.png

            Würde ich mir mal per MQTT den SR04 schicken lassen um zu prüfen ob der Ausdruck "SR04#Distance" für Tasmota richtig ist.

            Im nächsten Schritt würde ich mir den Ausdruck "Servo" angucken. Denke das ist ein fertiges Plug-In in ESPEasy und so ggf in Tasmota nicht vorhanden. Entsprechend vlt. dort über eine Dimmer/PWM Funktion anzusteuern.

            Marc_el_K 1 Reply Last reply Reply Quote 0
            • Marc_el_K
              Marc_el_K @Dieter_P last edited by Marc_el_K

              @dieter_p sagte in Tasmota Rule: Motor und Entfernung:
              Entsprechend vlt. dort über eine Dimmer/PWM Funktion anzusteuern.

              Ich habe es mal per MQTT eingebunden. Wenn ich in der Console "Dimmer 26" eingebe, beispielsweise, dann rotiert der Motor.

              Eingestellt habe ich "DimmerRange 26 67"

              Als Test habe ich nun, womit es funktioniert. Nun bleibt noch herauszufinden, warum die IF-Schleife nicht will...

              Rule1 On SR04#distance<10 do Dimmer 26 EndOn
              

              c6fc9ff6-4933-47b6-851f-f83846f0b780-image.png

              EDIT: Mit einer 2.Rule kann man es auch einfach lösen 🙂

              1 Reply Last reply Reply Quote 1
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              585
              Online

              31.6k
              Users

              79.4k
              Topics

              1.3m
              Posts

              2
              5
              323
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo