Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. Wemos d1 mini - http Aufruf geht nur einmal.

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wemos d1 mini - http Aufruf geht nur einmal.

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

      Hallo zusammen.

      Ich habe mir dieses kleine Programm zusammengebastelt. Das habe ich auf einen Wemos d1 mini.

      Ich geb zu, das ich alles nur abgeschaut habe.

      #include <AccelStepper.h>
      
      #include <ESP8266WiFi.h>
      #include <ESP8266WebServer.h>
      ESP8266WebServer server(80);
      const char* ssid = "...2";
      const char* password = "1......7";
      
      
      // Define some steppers and the pins the will use
      AccelStepper stepper1(1, D3, D4);
      AccelStepper stepper2(1, D6, D7);
      
      void setup()
      {
        Serial.begin(115200);
        Serial.println("ESP Gestartet");
        WiFi.begin(ssid, password);
        Serial.print("Verbindung wird hergestellt ...");
        while (WiFi.status() != WL_CONNECTED)
        {
          delay(500);
          Serial.print(".");
        }
        Serial.println();
        Serial.print("Verbunden! IP-Adresse: ");
        Serial.println(WiFi.localIP());
        server.onNotFound([]() {
          server.send(404, "text/plain", "Link wurde nicht gefunden!");
        });
        server.on("/startfutter1", []() {
          startfutter1();
        });
        server.begin();
        Serial.println("Webserver gestartet.");
      
        stepper1.setMaxSpeed(2000.0);
        stepper1.setAcceleration(2500.0);
        stepper1.moveTo(2400);
      
        stepper2.setMaxSpeed(100.0);
        stepper2.setAcceleration(1000.0);
        stepper2.moveTo(1500);
      
      }
      
      void startfutter1() {
        pinMode(D2, OUTPUT); // Enable Motor 1
        digitalWrite(D2, LOW);
      
        pinMode(D5, OUTPUT); // Enable Motor 2
        digitalWrite(D5, LOW);
      
       
      }
      
      void loop() {
        server.handleClient();
      
        // Change direction at the limits
        if (stepper1.distanceToGo() == 0)
          stepper1.moveTo(-stepper1.currentPosition());
        stepper1.run();
      
        if (stepper2.distanceToGo() == 0)
          stepper2.moveTo(stepper2.currentPosition());
        stepper2.run();
      
        if (stepper2.currentPosition() >= 1100)
          digitalWrite(D5, HIGH);
      
        if (stepper2.currentPosition() >= 1500)
          digitalWrite(D2, HIGH);
      
      }
      
      

      Das Programm startet nach dem "anwählen" per Browser genau einmal. Die Motoren drehen sich so wie sie sollen.

      Danach kann ich es nicht mehr durch ein erneutes "anwählen" ausführen.

      Wo habe ich den Fehler?

      Grüße

      OpenSourceNomad BananaJoe 3 Replies Last reply Reply Quote 0
      • OpenSourceNomad
        OpenSourceNomad Most Active @Beowolf last edited by OpenSourceNomad

        @beowolf said in Wemos d1 mini - http Aufruf geht nur einmal.:

        Wo habe ich den Fehler?

        Du versuchst das Rad neu zu erfinden?

        Warum nicht auf ein vorhandenes und solides System aufsetzen wie zum Bleistift esphome? 🤔 Außer das es um einige Wellenlängen schneller geht das Teil zum laufen zu bekommen hast du auch die Möglichkeit es einfach an eine Zentrale anzudocken sowie - das vielleicht wichtigste Thema - du kannst trivialst updaten 🚀

        Es soll hier Leute geben die irgendwelchen Gammelcode mittels alten und verwundbaren arduino cores auf ihre esp's laden und deren Geräte (und potentiell deren kompletten Netzwerke) verwundbar sind 💥

        joergeli B 2 Replies Last reply Reply Quote 0
        • BananaJoe
          BananaJoe Most Active @Beowolf last edited by

          @beowolf Also, das was dein Webserver darstellt ist startfutter1. Und da steht nun mal nicht viel drin außer die die Motoren zu aktivieren und 2 Pins auf LOW zu setzen. Was soll denn beim 2. mal passieren?

          Ich hab mal so etwas ähnliches gemacht - mein "server" ist eine html-Webseite auf welcher man die Position auswählen kann und welche dann angefahren wird:

          https://znil.net/index.php?title=ESP8266_Wemos_D1_Mini_mit_Servo_Motor_SG90_Beispiel

          Ich habe dort eine andere Bibliothek genutzt - aber darauf kommt es nicht an.

          Das habe ich mir damals auch zusammengesucht bzw. bei anderen abgeschaut (Quellen sind auf der Seite verlinkt).

          Und auch wenn @OpenSourceNomad wieder mal nicht versteht das der Weg das Ziel ist und man nur so Programmieren lernt - mach nur weiter so.

          B 1 Reply Last reply Reply Quote 0
          • B
            Beowolf @BananaJoe last edited by

            @bananajoe

            Also, das Einzige was passieren soll ist folgendes.

            Wenn ich per webbrowser die ip mit "192..../startfutter1" aufrufe, sollen sich die Motoren in der Reihenfolge drehen wie ich es eingestellt habe.

            Bei dem ersten Aufruf machen sie das auch genauso.

            Jetzt soll der Wemos im Prinzip wieder auf "Anfang" gehen und auf den nächsten Aufruf warten.

            Im Prinzip so, als ob ich ein Treppenhauslicht per Taster schalte, es geht an und nach drei Minuten wieder aus. Bis der Nächste wieder den Taster betätigt.

            Grüße
            Manfred

            @OpenSourceNomad

            Das mit esphome schaue ich mir mal an. Klingt ganz interessant.

            1 Reply Last reply Reply Quote 0
            • joergeli
              joergeli @OpenSourceNomad last edited by

              OT:
              @opensourcenomad sagte in Wemos d1 mini - http Aufruf geht nur einmal.:

              Es soll hier Leute geben die irgendwelchen Gammelcode mittels alten und verwundbaren arduino cores auf ihre esp's laden und deren Geräte (und potentiell deren kompletten Netzwerke) verwundbar sind

              Falls Du da auf mich anspielst:
              Es soll hier Leute geben, die selbst nicht programmieren wollen/können, sondern sich nur in esphome was zusammenklicken und meinen, damit den Stein der Weisen gefunden zu haben.
              Woher bist Du Dir so sicher, daß esphome nicht irgendwie verwundbar ist?
              Nur weil bisher nichts darüber bekannt geworden ist, oder hast Du dessen "Gammelcode" selbst entwickelt?

              Sorry, aber mir geht das ständige "Das Ende ist nahe ...."-Geschreibsel auf die Nerven ( Mal ist es gammel msDOS, mal hat der 20 Jahre alte mqtt broker ausgedient, mal sterben die SD-Karten wie die Fliegen, etc.)

              Gruß vom
              Gammelcode-Programmierer

              P.S.
              Das geht hier nicht gegen die User, die esphome verwenden - jeder kann verwenden, was ihm gefällt, bzw. mit dem er am Besten klar kommt.

              B OpenSourceNomad 2 Replies Last reply Reply Quote 0
              • B
                Beowolf @joergeli last edited by

                @joergeli

                Bitte hier keinen Kleinkrieg anfangen. Ich möchte doch nur eine Hilfe/Lösung für mein Problem. 😕

                1 Reply Last reply Reply Quote 1
                • OpenSourceNomad
                  OpenSourceNomad Most Active @joergeli last edited by

                  @joergeli said in Wemos d1 mini - http Aufruf geht nur einmal.:

                  Es soll hier Leute geben, die selbst nicht programmieren wollen/können

                  Jeder darf natürlich machen was er/sie will. Keiner wird dir vorschreiben was du in deinen 4 Wänden für software verwendest.

                  Wenn du z.B. gerne alte (vom Hersteller bereits aufgegebene) software verwendest, welche bekannte Sicherheitslücken enthält (die im Falle deiner esp's mit arduino core 2.7.1 sogar ohne direkten Zugriff auf's Gerät ausgenutzt werden können), kannst du das machen. Sobald du dies aber öffentlich verlautest, kannst du nicht erwarten das es keine Kritik gibt, da geht es dann auch weniger darum dich auf den rechten Weg zu bringen (manchmal ein netter Nebeneffekt) als andere auf die Fahrlässigkeit deines handeln hinzuweisen und potentielle Nachahmer nicht sang und klanglos in's verderben laufen zu lassen 😉

                  Und nochmal: Du bist natürlich auch frei auch mit einem Windows XP und Internet Explorer 6 dieses Forum (und das ganze Internet zu besuchen), sobald du das aber verlautest/empfiehlst musst du mit (zu erwartender) Widerrede rechnen, ganz einfach 💡

                  In der IT gibt es eben best practice (wie auch das Gegenteil). Solltest du Angestellter im IT Wesen sein und wissentlich eine veraltete und verwundbare Software im Unternehmen einsetzen würde ich beim ersten mal eine Abmahnung und bei Wiederholung direkt eine fristlose Kündigung erwarten. 🚶

                  Woher bist Du Dir so sicher, daß esphome nicht irgendwie verwundbar ist?

                  Bin ich nicht und kann ich auch gar nicht. Aber die Sicherheitslücke von 2020, die bei dir (heute noch?) vorhanden ist, wurde z.B. innerhalb von einer Woche nach Bekanntmachung in esphome gefixt, ganz so wie ich mir das vorstelle. 🚀

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    Beowolf @OpenSourceNomad last edited by

                    @opensourcenomad

                    Echt jetzt? Könnt Ihr den Kleinkrieg an einer anderen Stelle machen?

                    Danke

                    OpenSourceNomad 1 Reply Last reply Reply Quote 3
                    • OpenSourceNomad
                      OpenSourceNomad Most Active @Beowolf last edited by OpenSourceNomad

                      @beowolf said in Wemos d1 mini - http Aufruf geht nur einmal.:

                      Könnt Ihr den Kleinkrieg an einer anderen Stelle machen?

                      Kein Krieg, der herscht woanders.

                      Hier handelt es sich um Fakten/Aufklärung/Berichtigung/... 💡

                      Zu viel Misst steht leider schon unkommentiert im Internetz, da muss nicht noch mehr dazu kommen 😉

                      👇

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        Beowolf @OpenSourceNomad last edited by

                        @opensourcenomad

                        Das mag ja sein - ich kann es nicht bewerten.

                        Ich möchte ja auch nur eine einfache Funktion per Web aufrufen. Mehr nicht.

                        Das Internet vom Mist befreien können wir doch am Wochenende machen, ok?

                        OpenSourceNomad 1 Reply Last reply Reply Quote 0
                        • OpenSourceNomad
                          OpenSourceNomad Most Active @Beowolf last edited by

                          @beowolf said in Wemos d1 mini - http Aufruf geht nur einmal.:

                          Das Internet vom Mist befreien können wir doch am Wochenende machen, ok?

                          Was? Wochenende schon wieder vorbei?

                          Ich möchte ja auch nur eine einfache Funktion per Web aufrufen. Mehr nicht.

                          du brauchst dafür einmal die stepper component und dazu den web server 🚀

                          1 Reply Last reply Reply Quote 0
                          • BananaJoe
                            BananaJoe Most Active @Beowolf last edited by

                            @beowolf so, ich habe beim Autofahren noch ein wenig nachgedacht und ich denke ich weis nun das Problem.

                            Du gibst nichts zurück.
                            Du rufst im Webbrowser den Wemos auf, der merkt das ihn da einer auf Port 80 kontaktiert und er führt startfutter1 aus.
                            Nun wartet der Webbrowser aber auf Antwort.

                            Die kann auch nichts sein, aber zumindest einen Statuscode möchte er.
                            So ein

                            server.send(200, "text/plain", "OK");
                            

                            am Ende der Funktion startfutter1() würde wahrscheinlich schon reichen. Im Browser würde dann "OK" stehen.
                            Per F5 sollte es dann noch einmal starten

                            B 1 Reply Last reply Reply Quote 0
                            • B
                              Beowolf @BananaJoe last edited by Beowolf

                              @bananajoe sagte in Wemos d1 mini - http Aufruf geht nur einmal.:

                              @beowolf so, ich habe beim Autofahren noch ein wenig nachgedacht und ich denke ich weis nun das Problem.

                              Du gibst nichts zurück.
                              Du rufst im Webbrowser den Wemos auf, der merkt das ihn da einer auf Port 80 kontaktiert und er führt startfutter1 aus.
                              Nun wartet der Webbrowser aber auf Antwort.

                              Die kann auch nichts sein, aber zumindest einen Statuscode möchte er.
                              So ein

                              server.send(200, "text/plain", "OK");
                              

                              am Ende der Funktion startfutter1() würde wahrscheinlich schon reichen. Im Browser würde dann "OK" stehen.
                              Per F5 sollte es dann noch einmal starten

                              Leider keine Änderung. Ich glaube, das die Werte in den Variablen nicht wieder auf Null gesetzt werden. Ich muß mir die Werte mal ausgeben lassen.

                              BananaJoe 1 Reply Last reply Reply Quote 0
                              • BananaJoe
                                BananaJoe Most Active @Beowolf last edited by

                                @beowolf das kannst du ja auch gleich im server.sendam ende machen.
                                Du darfst das nur einmal aufrufen weil damit dann das Laden der Webseite abgeschlossen wird.
                                also ggf. den Text zuerst zusammenbauen und dann senden.

                                1 Reply Last reply Reply Quote 0
                                • B
                                  Beowolf @OpenSourceNomad last edited by

                                  @opensourcenomad sagte in Wemos d1 mini - http Aufruf geht nur einmal.:

                                  @beowolf said in Wemos d1 mini - http Aufruf geht nur einmal.:

                                  Wo habe ich den Fehler?

                                  Du versuchst das Rad neu zu erfinden?

                                  Ich habe es jetzt mal mit ESPHome Probiert.

                                  Dieses hier habe ich geschrieben:

                                  esphome:
                                    name: futterpender1
                                  
                                  esp8266:
                                    board: d1_mini
                                  
                                  # Enable logging
                                  logger:
                                  
                                  # Enable Home Assistant API
                                  api:
                                  
                                  ota:
                                    password: "36a7cb41816e3f18cec9888c42a89a86"
                                    
                                  web_server:
                                    port: 80 
                                  
                                  wifi:
                                    ssid: !secret wifi_ssid
                                    password: !secret wifi_password
                                  
                                    # Enable fallback hotspot (captive portal) in case wifi connection fails
                                    ap:
                                      ssid: "Futterpender1 Fallback Hotspot"
                                      password: "KalbpluyilLb"
                                  
                                  captive_portal:
                                  
                                  
                                  
                                  stepper:
                                    - platform: a4988
                                      id: my_stepper1
                                      step_pin: D3
                                      dir_pin: D4
                                      max_speed: 1000 steps/s
                                  
                                      # Optional:
                                      sleep_pin: D2
                                      acceleration: inf
                                      deceleration: inf
                                  
                                    - platform: a4988
                                      id: my_stepper2
                                      step_pin: D6
                                      dir_pin: D7
                                      max_speed: 100 steps/s
                                  
                                      # Optional:
                                      sleep_pin: D5
                                      acceleration: inf
                                      deceleration: inf
                                         
                                  
                                  #cover:
                                  #  - platform: template
                                  #    name: "Shade 1"
                                  #    id: shade_1
                                  
                                  
                                  button:
                                    - platform: template
                                      name: Futterspender1
                                      id: my_button
                                  
                                      # Optional variables:
                                      icon: "mdi:emoticon-outline"
                                      on_press:
                                        - logger.log: "Button pressed"
                                   
                                  #    open_action:
                                        - stepper.report_position:
                                            id: my_stepper1
                                            position: 0
                                        - stepper.set_target:
                                            id: my_stepper1
                                            target: 5000
                                  
                                            
                                        - stepper.report_position:
                                            id: my_stepper2
                                            position: 0
                                        - stepper.set_target:
                                            id: my_stepper2
                                            target: 500
                                  

                                  Wenn ich das installiere läuft alles durch. Gehe ich auf die ip Adresse kommt dieses hier:

                                  1.jpg

                                  Die Motoren drehen sich so wie gewünscht.

                                  Wenn ich nun unter ioBroker versuche bei Instanzen / esphome auf den Schraubenschlüssel klicke um auf ADD DEVICE klicke, passiert folgendes:

                                  Ich gebe die ip Adresse ein und bekomme diese Meldung.

                                  2.jpg

                                  Wo liegt der Fehler?

                                  OpenSourceNomad Dutchman 2 Replies Last reply Reply Quote 0
                                  • OpenSourceNomad
                                    OpenSourceNomad Most Active @Beowolf last edited by

                                    @beowolf said in Wemos d1 mini - http Aufruf geht nur einmal.:

                                    Wo liegt der Fehler?

                                    Wahrscheinlich kann der Autor des esphome adapter für iobroker ( @Dutchman) dazu was sagen?

                                    1 Reply Last reply Reply Quote 0
                                    • Dutchman
                                      Dutchman Developer Most Active Administrators @Beowolf last edited by

                                      @beowolf sagte in Wemos d1 mini - http Aufruf geht nur einmal.:

                                      @opensourcenomad sagte in Wemos d1 mini - http Aufruf geht nur einmal.:

                                      @beowolf said in Wemos d1 mini - http Aufruf geht nur einmal.:

                                      Wo habe ich den Fehler?

                                      Du versuchst das Rad neu zu erfinden?

                                      Ich habe es jetzt mal mit ESPHome Probiert.

                                      Dieses hier habe ich geschrieben:

                                      esphome:
                                        name: futterpender1
                                      
                                      esp8266:
                                        board: d1_mini
                                      
                                      # Enable logging
                                      logger:
                                      
                                      # Enable Home Assistant API
                                      api:
                                      
                                      ota:
                                        password: "36a7cb41816e3f18cec9888c42a89a86"
                                        
                                      web_server:
                                        port: 80 
                                      
                                      wifi:
                                        ssid: !secret wifi_ssid
                                        password: !secret wifi_password
                                      
                                        # Enable fallback hotspot (captive portal) in case wifi connection fails
                                        ap:
                                          ssid: "Futterpender1 Fallback Hotspot"
                                          password: "KalbpluyilLb"
                                      
                                      captive_portal:
                                      
                                      
                                      
                                      stepper:
                                        - platform: a4988
                                          id: my_stepper1
                                          step_pin: D3
                                          dir_pin: D4
                                          max_speed: 1000 steps/s
                                      
                                          # Optional:
                                          sleep_pin: D2
                                          acceleration: inf
                                          deceleration: inf
                                      
                                        - platform: a4988
                                          id: my_stepper2
                                          step_pin: D6
                                          dir_pin: D7
                                          max_speed: 100 steps/s
                                      
                                          # Optional:
                                          sleep_pin: D5
                                          acceleration: inf
                                          deceleration: inf
                                             
                                      
                                      #cover:
                                      #  - platform: template
                                      #    name: "Shade 1"
                                      #    id: shade_1
                                      
                                      
                                      button:
                                        - platform: template
                                          name: Futterspender1
                                          id: my_button
                                      
                                          # Optional variables:
                                          icon: "mdi:emoticon-outline"
                                          on_press:
                                            - logger.log: "Button pressed"
                                       
                                      #    open_action:
                                            - stepper.report_position:
                                                id: my_stepper1
                                                position: 0
                                            - stepper.set_target:
                                                id: my_stepper1
                                                target: 5000
                                      
                                                
                                            - stepper.report_position:
                                                id: my_stepper2
                                                position: 0
                                            - stepper.set_target:
                                                id: my_stepper2
                                                target: 500
                                      

                                      Wenn ich das installiere läuft alles durch. Gehe ich auf die ip Adresse kommt dieses hier:

                                      1.jpg

                                      Die Motoren drehen sich so wie gewünscht.

                                      Wenn ich nun unter ioBroker versuche bei Instanzen / esphome auf den Schraubenschlüssel klicke um auf ADD DEVICE klicke, passiert folgendes:

                                      Ich gebe die ip Adresse ein und bekomme diese Meldung.

                                      2.jpg

                                      Wo liegt der Fehler?

                                      kommen da noch. mehr Informationen im log ?

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        Beowolf @Dutchman last edited by

                                        @dutchman
                                        Nö

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        719
                                        Online

                                        31.8k
                                        Users

                                        80.0k
                                        Topics

                                        1.3m
                                        Posts

                                        5
                                        18
                                        1106
                                        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