Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Microcontroller
  5. Rotary encoder

NEWS

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    914

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.5k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    5.9k

Rotary encoder

Geplant Angeheftet Gesperrt Verschoben Microcontroller
14 Beiträge 5 Kommentatoren 293 Aufrufe 5 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    Smigl
    schrieb am zuletzt editiert von
    #1

    Hm, irgendwie scheint das Thema Rotary Encoder für keinen interessant zu sein.
    Deshalb jetzt mal hier.
    Hat irgendjemand schon mal einen rotary encoder zur helligkeitssteuerung einer Lampe verwendet?
    Wie zum Henker hat er das geschafft?
    Einfach im esp8266 per rule?
    Per MQTT über ein script?
    Oder braucht man da die ki, die dann bei jedem klick des reglers 2000 bitcoin von meinem nicht vorhandenen Konto abbucht?

    Ich bin ziemlich verwirrt...

    1 Antwort Letzte Antwort
    0
    • geschildG Offline
      geschildG Offline
      geschild
      schrieb am zuletzt editiert von
      #2

      Was für eine Lampe willst du steuern ? Hängt die am iobroker ?

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Smigl
        schrieb am zuletzt editiert von
        #3

        Tja, ich hab da vor das ein esp8266 mit encoder ein led stripe steuert. Soll natürlich per tasmota und iobroker über mqtt auch von anderen gesteuert werden können...
        Siehe https://forum.iobroker.net/topic/85055/wemos-d1-rotary-encoder-mqtt

        mickemupM 1 Antwort Letzte Antwort
        0
        • geschildG Offline
          geschildG Offline
          geschild
          schrieb am zuletzt editiert von
          #4

          Wenn man 'tasmota encoder' googelt gibts es eine recht ausführliche Anleitung. Hab sie selber jetzt nicht ausprobiert. Gibt es da ein Problem?

          1 Antwort Letzte Antwort
          0
          • HomoranH Homoran verschob dieses Thema von Plauderecke am
          • S Smigl

            Tja, ich hab da vor das ein esp8266 mit encoder ein led stripe steuert. Soll natürlich per tasmota und iobroker über mqtt auch von anderen gesteuert werden können...
            Siehe https://forum.iobroker.net/topic/85055/wemos-d1-rotary-encoder-mqtt

            mickemupM Offline
            mickemupM Offline
            mickemup
            schrieb am zuletzt editiert von
            #5

            @Smigl
            Wenn du das Ganze primär von IoBroker aus steuern willst, dann würde ich die Logik auch darüber laufen lassen.

            Encoder am ESP liefert die Daten an IoB via MQTT=> hier wird die Logik gemacht => IoB befiehlt PWM via mqtt an ESP.

            Du musst dein Problem/deine Fragen etwas konkreter formulieren, dann ist auch die Feedbackquote deutlich höher....

            1 Antwort Letzte Antwort
            0
            • geschildG Offline
              geschildG Offline
              geschild
              schrieb am zuletzt editiert von
              #6

              Ist dein Led Stripe einer mit WS2812 Led oder konverntionellen ?

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Smigl
                schrieb am zuletzt editiert von
                #7

                Original post
                So hat das angefangen:

                Tja, da kommt der Elektroniker wieder durch...
                Bin zwar schon Jahre aus der Materie draussen, habe aber mit iobroker/ Tasmota ESP8266 wieder angefangen.
                Nun das nächste Projekt. Steuerung meiner zwei LED- Stripes (weiss) am Schreibtisch.
                Bis jetzt gesteuert über NE555 mit Poti.
                2x Taster (Steuerung von 2 NOUS A1T für Server und PC per MQTT)
                Die Idee war jetzt folgende Konfiguration:
                1x Wemos D1
                2x 2N2222 für die LED's
                2x Rotary Encoder für Helligkeit und On/Off
                2x Taster
                ein paar Widerstände, Spannungsregler, Schraubklemmen.
                Gehäuse 100x60x25 von Amazon Klick
                Entsprechende Blockly- Scripte und fertig...
                Das ganze in dem Gehäuse zwischen meiner Tastaturschublade und meinem Lötarbeitsplatz.
                Der Elektroniker kriegt den ganzen Lötkram natürlich hin, aber funktioniert das auch?
                Ich könnte auch entsprechende Schaltpläne aus EAGLE bereit stellen
                

                ... und jetzt???

                1 Antwort Letzte Antwort
                0
                • geschildG Offline
                  geschildG Offline
                  geschild
                  schrieb am zuletzt editiert von
                  #8

                  Ob du das mit tasmota auf einem! Wemos hinkriegst ? Ich bin nicht sicher. Müsste eine Kombination sein aus dem oben angesprochenen tasmota/rotaryEncoder und https://tasmota.github.io/docs/Lights/#switched-lights-aka-relays.
                  Ich nehme an programmieren / Arduino ist nicht so dein Ding. Sollte dir niemand hier weiterhelfen können, würde ich dir anbieten dir (mit Wartezeit) eine Software für den Wemos zu schreiben. Aber die Lösung mit dem NE555 finde, da ich aus der 'Bastlergeneration' stamme, eigentlich sehr charmant.

                  1 Antwort Letzte Antwort
                  0
                  • MartinPM Online
                    MartinPM Online
                    MartinP
                    schrieb am zuletzt editiert von
                    #9

                    Muss man den Rotary Encoder eigentlich zwingend mit Tasmota erledigen, oder könnte man die i/o Signale des Encoders nicht an iobroker durchreichen lassen, wo dann die Drehrichtungserkennung und das Zählen der Pulse erfolgt? Platzproblemen im Programmspeicher des ESP könnte man aber auch ausweichen, indem man statt eines ESP8266 einen ESP32 mit ordentlich Speicher anschafft

                    Intel(R) Celeron(R) CPU N3000 @1.04GHz 8G RAM 480G SSD * Virtualization : unprivileged lxc container on Proxmox * 6 GByte RAM für den iobroker Container * Remote-Access über Wireguard meiner Fritzbox

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      peterfido
                      schrieb am zuletzt editiert von
                      #10

                      ESP Easy soll das können. Jeden einzelnen Tick per mqtt senden wird doch viel zu träge. Hier hat jemand ein Projekt veröffentlicht.

                      Gruß

                      Peterfido

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Smigl
                        schrieb am zuletzt editiert von
                        #11

                        Ok.
                        Das bedeutet das der esp8266 wohl zu träge ist, die signale vom encoder zeitrelevant zu verarbeiten (schnell genug).
                        Verstanden...
                        Man müsste den encoder also per ttl verarbeiten und den aktuellen Wert an den esp durchreichen...
                        Mit setzen des startwertes bei stromausfall und Begrenzung.
                        Oder braucht das dann drei Pins an einem 8086 mit entsprechendem Programm?
                        Bis jetzt löse ich das über 3 Taster mit Script...
                        2 für up/down einer für on/off
                        Wäre mit dem encoder eleganter/ hübscher...

                        Ich glaube ich beerdige das Projekt encoder erst mal...

                        1 Antwort Letzte Antwort
                        0
                        • geschildG Offline
                          geschildG Offline
                          geschild
                          schrieb am zuletzt editiert von
                          #12

                          Der ESP8266 oder besser noch der ESP32 kann die Signale eines Encoders locker verarbeiten und das PWM Signal für die Leds generieren. Nur halt mit tasmota könte das tricky werden.

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            peterfido
                            schrieb am zuletzt editiert von peterfido
                            #13

                            Also Google spuckt eine Anleitung nebst Code für folgende Suchanfrage aus:

                            tasmota script für rotary encoder, variable hoch/runterzählen und per mqtt senden
                            

                            Dann noch eine Erweiterung hinterher und das Grundgerüst steht:

                            Erst senden, wenn der rotary encoder 500 ms nicht bewegt wurde
                            
                            Verwunden Sie Tasmota-Schalter (Switch) für die Impulse des Drehgebers und das Tasmota Scripting im Bereich Consoles -> Edit Script, um eine Variable beim Drehen zu verändern und per MQTT zu senden.1. GPIO-Konfiguration (Web-Oberfläche)Stellen Sie sicher, dass die Pins des Rotary Encoders (CLK und DT) als Schalter konfiguriert sind:Switch1 (Pin für CLK, z. B. GPIO12)Switch2 (Pin für DT, z. B. GPIO13)(Optional) Switch3 (Taster des Encoders, z. B. GPIO14)Setzen Sie in der Tasmota-Konsole folgende Befehle, um das Schalterverhalten zu entkoppeln:textSetOption98 1
                            Verwende Code mit Vorsicht.2. Tasmota Script CodeFügen Sie diesen Code in den Editor für das Skript ein:text>D
                            v=0
                            old_v=0
                            step=1
                            min_v=0
                            max_v=100
                            
                            >B
                            v=50
                            
                            >S
                            ; Auslesen der Switches (angenommen Switch1 = Pin A, Switch2 = Pin B)
                            ; Wenn sich Switch1 ändert, wird die Richtung anhand von Switch2 ermittelt
                            #sw1=sw[1]
                            #sw2=sw[2]
                            
                            if chg(sw1)>0 then
                              if sw2==1 then
                                v += step
                              else
                                v -= step
                              endif
                              if v > max_v then
                                v = max_v
                              endif
                              if v < min_v then
                                v = min_v
                              endif
                            endif
                            
                            ; Wenn sich der Wert geändert hat, per MQTT senden
                            if v != old_v then
                              old_v = v
                              mqttc [tele/rotary/RESULT] {"Count":%v%}
                            endif
                            
                            >J
                            ,"Rotary": {"Count": %v%}
                            Verwende Code mit Vorsicht.3. Erklärung der Sektionen>D: Deklaration der Variablen (v für den Zähler, step für die Schrittweite, min_v/max_v als Limits).>B: Initialisierung (Startwert des Zählers beim Booten auf 50 gesetzt).>S: Die Hauptschleife prüft Flankenwechsel an Switch1 (sw[1]) und bestimmt über den Zustand von Switch2 die Richtung. Bei einer Änderung wird die Variable innerhalb der Grenzen angepasst und via mqttc direkt gesendet.>J: Optional – fügt den aktuellen Zählerstand in die regulären JSON-Telemetriedaten (SENSOR) von Tasmota ein.Soll der Drehgeber unendlich zählen (ohne min_v/max_v) oder möchten Sie den internen Taster nutzen, um den Zähler auf 0 zurückzusetzen?KI-Antworten können Fehler enthalten
                            
                            
                            
                            Erst senden, wenn der rotary encoder 500 ms nicht bewegt wurdeUm das Senden zu verzögern, nutzen wir einen Timer. Bei jeder Bewegung des Drehgebers wird der Timer auf 500 Millisekunden zurückgesetzt. Erst wenn der Timer abläuft (keine Bewegung mehr), wird die MQTT-Nachricht gesendet.Aktualisierter Tasmota-Skript-CodeErsetzen Sie Ihr bisheriges Skript durch diese Version:text>D
                            v=0
                            old_v=0
                            step=1
                            min_v=0
                            max_v=100
                            ; Timer-Variable (0 bedeutet Timer läuft nicht)
                            t_send=0
                            
                            >B
                            v=50
                            
                            >S
                            #sw1=sw
                            #sw2=sw
                            
                            ; Bewegung erkennen und Wert anpassen
                            if chg(sw1)>0 then
                              if sw2==1 then
                                v += step
                              else
                                v -= step
                              endif
                              if v > max_v then
                                v = max_v
                              endif
                              if v < min_v then
                                v = min_v
                              endif
                              
                              ; Wenn sich der Wert geändert hat, Timer auf 500 ms setzen (5 * 100 ms)
                              if v != old_v then
                                t_send = 5
                              endif
                            endif
                            
                            ; Der Tasmota-Sekundentakt (>S) läuft ca. alle 100ms
                            ; Timer herunterzählen, wenn er aktiv ist
                            if t_send > 0 then
                              t_send -= 1
                              ; Wenn der Timer genau jetzt abläuft (0 erreicht)
                              if t_send == 0 then
                                old_v = v
                                mqttc [tele/rotary/RESULT] {"Count":%v%}
                              endif
                            endif
                            
                            >J
                            ,"Rotary": {"Count": %v%}
                            Verwende Code mit Vorsicht.Funktionsweise der Verzögerungt_send = 5: Die Sektion >S wird in Tasmota-Skripten standardmäßig alle 100 Millisekunden ausgeführt. Ein Wert von 5 entspricht daher genau einer Verzögerung von 500 ms.Dauer-Drehen: Wenn Sie den Encoder schnell drehen, wird t_send bei jedem Rastpunkt sofort wieder auf 5 gesetzt. Der Timer erreicht die 0 erst, wenn Sie 500 ms lang aufgehört haben zu drehen.MQTT-Schonung: Es wird pro Dreh-Vorgang nur noch ein einziges JSON-Paket über Ihr Netzwerk gesendet.Möchten Sie die Verzögerungszeit flexibel anpassen oder soll der aktuelle Wert während des Drehens zumindest auf einem angeschlossenen Display sofort sichtbar sein?
                            
                            

                            Gruß

                            Peterfido

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              Smigl
                              schrieb am zuletzt editiert von
                              #14

                              Gut. Ich werde am Wochenende mal testen und berichten.

                              1 Antwort Letzte Antwort
                              0

                              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                              Registrieren Anmelden
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              359

                              Online

                              33.0k

                              Benutzer

                              83.5k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2026
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe