Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Microcontroller
  5. Tasmota Rule: Motor und Entfernung

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Tasmota Rule: Motor und Entfernung

Scheduled Pinned Locked Moved Microcontroller
5 Posts 2 Posters 611 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Marc_el_KM Offline
    Marc_el_KM Offline
    Marc_el_K
    wrote on last edited by
    #1

    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
    0
    • Marc_el_KM Marc_el_K

      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 Offline
      D Offline
      Dieter_P
      wrote on last edited by Dieter_P
      #2

      @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_KM 1 Reply Last reply
      0
      • D 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_KM Offline
        Marc_el_KM Offline
        Marc_el_K
        wrote on last edited by Marc_el_K
        #3

        @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
        0
        • D Offline
          D Offline
          Dieter_P
          wrote on last edited by Dieter_P
          #4

          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_KM 1 Reply Last reply
          0
          • D 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_KM Offline
            Marc_el_KM Offline
            Marc_el_K
            wrote on last edited by Marc_el_K
            #5

            @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
            1
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate

            643

            Online

            32.4k

            Users

            81.5k

            Topics

            1.3m

            Posts
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Home
            • Recent
            • Tags
            • Unread 0
            • Categories
            • Unreplied
            • Popular
            • GitHub
            • Docu
            • Hilfe