Tag 12: Autonomer Webserver

Die Ergebnisse des gestrigen Versuches gilt es nun wieder in einem autonomen Programm zu verwenden. Das heutige Programm sendet aber nicht nur eine einfache Webseite an den Browser, sondern es ermöglicht zusätzlich die Ansteuerung einer LED.

Hinter dem heutigen Türchen befindet sich ein 9-V-Batterieclip mit dem Sie das Board mobil machen können. Als Alternative können Sie auch eine Power Bank (ein Akku-Pack, normalerweise für Handys) verwenden. Wenn Sie die 9V-Batterie verwenden wollen, achten Sie darauf, dass der rote Draht mit Vin verbunden werden muss, und der schwarze mit GND. Auf dem unteren Bild sehen Sie den Aufbau des heutigen Versuchs mit externer Stromversorgung.

So schließen Sie eine Batterie an den heutigen Versuchsaufbau an

So schließen Sie eine Batterie an den heutigen Versuchsaufbau an

Das Programm: Day12_TCPServerLed

Das heutige Programm sendet eine etwas komplexere Seite als der vorrangegangenen Versuch.  Zudem können Sie die LED am Pin D9  schalten, indem Sie hinter die IP des Moduls /LED eintragen. Der aktuelle Zustand der LED wird dann invertiert, also jedes Mal umgeschaltet (toggeln).

Tragen Sie Ihre WLAN-Daten ein und laden Sie das Programm hoch. Die IP des Boards wird im Seriellen Monitor angezeigt. Dann können Sie den Browser öffnen und die IP des Boards aufrufen. Die Webseite hat nun eine Überschrift und etwas mehr Text. Der Text weist Sie auch darauf hin, wie Sie die LED steuern können. Ein erster voll autonomer Webserver also.

 

53 Kommentare

  1. Sascha

    Habe vorher Tag 11 gemacht und mich gefreut dass dieser problemlos funktioniert, bei Tag12 dann wieder die üblichen Probleme. Aber wohl eine mögliche Lösung gefunden, wenn das Board mal wieder nicht will: Einfach stromlos machen und ein paar Minuten warten. Ich schätze nach dem neu Flashen mit dme nächsten Programm und dem folgenden Reset vergeben manche Router die IP nicht neu und das Board kann sich nicht neu anmelden. Zumindest bei mir war nach Stromtrennung das frisch geflashte Board direkt erreichbar.

  2. Markus

    Eine ganz ganz ganz dumme Frage.

    Hab das Board via USB am Laptop verbunden und dann das Programm aufgespielt + Serial Monitor geöffnet. Dannach (das Board) abgesteckt und an mein Ladegerät angeschlossen.
    Der Rest hat toll funktioniert.

    Habt ihr das Programm 12 via WIFI draufgespielt?
    Möcht nur wissen ob ich da was übersehen habe

  3. Noob

    Ich bekomme soweit alles gestartet (ich sehe auch den entten Infotext von wegen „Hallo Welt“), aber wenn ich die LED schalten will (bei mir mit „192.168.178.37/LED“) ändert sich bei der LED nichts. Im Seriellen Monitor bekomme ich die Meldung

    Server Aktiv
    Incomming Request
    Send and Close
    Incomming Request
    Send and Close
    Incomming Request
    Send and Close

    (ich habe es einige Male versucht). Die LED ist richtigherum angeschlossen, und ich habe es auch mit mehreren Kabelstücken versucht, also ist es wahrscheinlich auch kein Wackelkontakt… Bleibt da noch eine Fehlerquelle übrig? Wenn ja, bitte helfen :)

  4. bluetrain

    Hallo Zusammen,
    bin nun auch bis zum Tag 12 vorgestoßen.
    Bis jetzt ließen sich auch alle Projekte zum laufen bringen.
    Heute ist allerdings ein Problem aufgetaucht:
    Wenn das Programm startet, meldet es sich nach kurzer Zeit mit der IP-Adresse, auch im Accesspoint taucht der Nano als Gerät auf. Mit dem Browser (Firefox) muss ich fast 15 s wiederholt die Adresse aufrufen, bis endlich etwas passiert. (Ebenso mit Ping). Dann geht es flott und funktioniert auch wiederholt. Wenn man das ganze dann ca. 30s in Ruhe läßt, muß man erst wieder 15s das System stressen, bis es wieder läuft.
    Hat das WLAN-Modul so etwas wie einen Sleep-Modus ?
    Oder ist das eher ein Netzwerkproblem ? Hat jemand eine Idee?

    1. Martin

      Ich habe ein ähnliches Problem am Laptop. Wobei es manchmal auf anhieb klappt und manchmal überhaupt nicht (Internet Explorer verwenden hilft hier auch nicht).

      Über mein LG G3 funktioniert es problemlos im Android Browser.

      Hat dazu jemand eine Antwort?

  5. Viduq

    Grüßt euch,

    wenn ich das richtig verstehe kann ich auf das ESP-Board nur zugreifen wenn ich im gleichen Netzwerk bin? Gibt es eine Möglichkeit, den Webserver auch von außerhalb des Netzwerkes aufzurufen, oder kommt das erst hinter einem späteren Türchen?

    1. fk (Beitrag Autor)

      Hi, meinst du z.B. über das Internet? Dann müsstest du deinen Router so konfigurieren, dass er bestimmte Anfragen aus dem Netz an das Board weiterleitet (Stichwort Portforwarding)

    2. RICI

      Hallo Viduq,
      der normale Anwender bekommt jedenTag eine neue Ip adresse. Er hat auch keine web adresse wie „www.meineHomepage.de“. Damit es richtig klappt braucht Du DynDNS.
      Also du muß eine web adrese kaufen oder bei einem quasi kostenlosen DynDNS Provider beantragen.
      check mal die Seite von:
      http://www.noip.com

      Da bezahlts Du halt mit Deinen Daten. Dann die Frixbox mit DynDNS konfigurieren. Erst dann kann Du mit forewarding Ports einrichten wie z.B. port 80 für http.
      Für Day12
      Port 80 muß Du auch auf der Fritzbox einrichten.
      Erst dann kannst Du Deine eine eigene Webseite vom Handy erreichen.
      Achtung jetzt ist Dein locales Netz offen !
      Denn Dein Port 80 ist offen und bekannt für http Anwendungen.
      Es wäre zu empfehlen eine eigen Porttranslation einzu bauen (z.B. 34567 -> 80 ).Der Nachteilt Du muß Deine Eigne Homepage mit port /34567 aufrufen.
      Rechne mal mit der try und error Methode mit ca. 1-2 Wochen rum probieren.
      Auf der AVM Seite gibt es dazu eininge Anleitungen.
      Ich glaube, das wäre was für die Nachweihnachtszeit.

      1. RICI

        Ich habe das mal gleich aus probiert syntaxt
        wäre: mit dem Beispiel:

        „www.meineHomepage.de:34567/LED“

        „http://www.meinehomepage.de/“ ist eine Homepage
        die schon jemand gekauft hat,dass hier ist nur ein Beispiel. Zum Testen bitte nur die eigene Homepage verwenden.
        Aber auf der Seite ist ein netter Weihnachtsgruß
        und damit passt es zum Adventskalender :-)

        Wenn Jan Heuhoff, er ist der owner von „meinehomepage“ auch einen IoT Calender haette, wäre es ober-cool, wenn er seinen ESP mit der Homepape kopplen würde.
        Um dann noch eine Webcam. Schon könne man die Funktion sehr gut veranschaulichen.

  6. Kai

    Hallo,
    versuche auch mehrere LEDs zu stuern mit dem Aufbau der RGB-LED.

    Doch will es nicht funktionieren.

    habe das Programm um folgende Zeilen erweitert bzw. geändert:

    #define LEDrot 3
    #define LEDgruen 5

    pinMode(LEDrot, OUTPUT);
    pinMode(LEDgruen, OUTPUT);

    if (esp8266.findUntil(„LEDrot“,“\n“)) digitalWrite(LEDrot, !digitalRead(LEDrot));
    else (esp8266.findUntil(„LEDgruen“,“\n“)) ;digitalWrite(LEDgruen, !digitalRead(LEDgruen));

    Bei 192.168.2.112/LEDrot wird auch die rote LED an Pin 3 geschhaltet

    Nur die grüne wird immer geschaltet, auch wenn ich nur 192.168.2.112 eingebe.

    Habe es auch schon mit elese if probiert
    und mit {} und ohne {}.

    Bekomme es nicht hin!

    1. jz

      Ist bei diesem Programm auch so zu erwarten.
      Schau mal in früheren Kommentaren, wurde mehrmals behandelt.

    2. Hannes

      Hi,

      beim RGB Setup von Tag 10 musst Du analogWrite (PWM Signal) verwenden. Und einfaches invertieren geht auch nicht weil eine Zahl zwischen 0 und 255 verlangt wird.

      Ich hab‘ auch etwas in der Richtung gebastelt.
      Siehe hier:
      https://drive.google.com/file/d/0B3YbD96_4_tpaHdYZHBJN2dibDA/view?usp=sharing

      Zusätzlich wird in dieser Variante die LED per Link (klick) gesteuert.

      Hoffe das läuft bei Dir.

      LG

      1. Jonathan

        Hi, ja läuft. 2 LED Zustände. OK. Geht die Entwicklung noch weiter ? ;-)
        Link/Klick ist TOP.

        1. Hannes

          Ein wenig bunter hab‘ ich es noch bekommen. Stosse aber beim HTML Code an Grenzen mit der soft-Seriellen. Und stabil ist auch anders. Musste öffters zum Strom-Reset greifen…

          https://drive.google.com/open?id=0B3YbD96_4_tpeEhacEJjZG5CLTA

          Viel Spass.

          @Kai & Raabinator: Stimmt. Die größte Schwierigkeit liegt beim Unwissenden (wie mir) im Abholen von LEDx. Geht sicher noch eleganter als in meiner Lösung.

      2. Kai

        Die RGB-LED lässt sich aber auch digital ansteuern! Es ist keine Pulsweitenmodulation zwingend notwendig so wie meine Tests ergeben haben.

      3. Raabinator

        Die Pins, an denen die RGB-LED angeschlossen ist KÖNNEN als PWM-Pins verwendet werden, müssen aber nicht.
        Kai hat in seinem Programm die Pins schon richtig mit
        pinMode(LEDrot, OUTPUT);
        als digitale Ausgänge geschaltet. Die LEDs sind dann nur noch an oder aus, Helligkeit ändern ist dann nicht, aber toggeln funktioniert.
        ‚findUntil‘ konsumiert alle Zeichen bis zum nächsten „\n“. Die übrigen Suchen schlagen nach dem ersten dann immer fehl.

    3. Martin

      wenn das wirklich dein Code ist:

      if (esp8266.findUntil(„LEDrot“,“\n“))
      digitalWrite(LEDrot, !digitalRead(LEDrot));
      else (esp8266.findUntil(„LEDgruen“,“\n“))
      ;
      digitalWrite(LEDgruen, !digitalRead(LEDgruen));

      dann liegt es an dem Semikolon (‚;‘) nach else. du beendest damit das else und die anweisung auf LEDgruen wird ausgeführt egal was das if ergibt.

      Lg Martin

  7. MartinW

    So – ich wollte nur mal sagen: Bei mir funktioniert heute wieder mal alles auf Anhieb!
    Manch einer fragt sich jetzt vielleicht „warum muss der Blödmann das kundtun, wenn doch alles geht? Soll er doch einfach froh sein!“
    Naja, wenn man die Kommentare hier liest, melden sich ja fast nur die, die Probleme haben. Dabei kommt m.E. zu kurz, dass es sicher auch viele Leute gibt, bei denen es meistens klappt (wie bei mir) – und die mit mal mehr mal weniger Forschungsgeist und Verständnis die Dinge gut zum laufen bringen – und eine Menge dabei lernen.
    Deswegen an dieser Stelle ein Dank an ‚fkainka‘, der sich wirklich Mühe gibt und gegeben hat um uns was beizubringen. Natürlich ist es nicht so einfach dabei den Spagat zu schaffen zwischen solchen, die den Code wie ein Buch lesen, und solchen, denen man das Lesen erst Buchstabe für Buchstabe beibringen muss. Jeder hat mal klein angefangen.
    Alles in allem finde ich das hier wirklich gut gelungen – Danke!

  8. Costa

    Hallo Zusammen,

    in der Beschreibung heute fehlt der Hinweis, dass, man nach dem Laden des Programms und Starten über den Seriellen Monitor, mit angeschlossener externer Stromquelle, die Verbindung zum Rechner getrennt werden kann/darf/soll. Man kann es sich zwar denken :-) …

  9. Patrick

    Das WLAN Modul meines Boards wird mit der Zeit sehr heiß, was dazu führt, dass es dann nicht mehr über den Browser erreichbar ist.
    Durch externe Kühlung (Pusten) lässt es sich wieder ansprechen.
    Hat jemand ähnliche Probleme? Ist das Board defekt?

    1. MartinW

      Als erstes würde ich mal alles auf der Experimentierplatte abklemmen – nur noch das Board übrig lassen und mit USB anschließen wie gewohnt. Keine kleinen Drähte irgendwo die einen Kurzschluss verursachen ?
      Vielleicht ein abgeschnittenes Drähtchen zwischen Platte und Board gerutscht ?
      Wenn das ausgeschlossen ist und das Board immer noch heiß wird obwohl es funktioniert – dann liegt fürchte ich wirklich ein Problem mit dem Board vor.
      Bei mir wird es bisschen warm, aber nie heiß.

      1. Patrick

        Leider wird es auch nach kompletten Abklemmen (nur an USB Anschluss) so heiß, dass es irgendwann nicht mehr erreichbar ist.

    2. thymjan

      Hört sich verrückt an, aber mir das gleiche: LED lässt sich ein paar mal schalten, dann hängt der Browser und im Seriellen Monitor kommt „ESP SEND ERROR“.
      Mit Draufpusten auf das WLAN Modul läuft es wieder und ESP SEND ERROR kommt nicht mehr.
      Nach einiger Zeit ohne Kühlung kommen die Fehler wieder.

      1. thymjan

        … wobei, jetzt läuft’s auch ohne Pusten. Vielleicht lag’s auch nur am Positionswechsel des Moduls… Irrglaube?

  10. Leonard Voss

    Leider hab ich heute zum ersten Mal ein Problem. Ich bekomme in der arduino-Konsole die IP genannt und im speedport wird das esp auch unter dieser Adresse geführt. Aber wenn ich dann http://192.168.2.121/ mit oder ohne LED am Ende in einen Browser eingebe ist diese Website immer Nicht Verfügbar. Egal ob Chrome, Firefox, Edge oder sogar Internet Explorer. Ich weiß nicht wo das Problem liegen kann. Ich habe mehrfach schon das Programm neu auf das Board hochgeladen. Aber nichts passiert.

    1. Dirk

      Hi, lass mal „http://“ weg. Bei mir geht es.

    2. Toni Taste

      Hi,

      seit gestern ist ein Update auf die Fritzbox 7490 verfügbar. Nachdem sich dieses installiert hatte, kam ich mit dem NanoESP nicht mehr ins WLAN.

      Die Lösung (siehe auch Tag 0/1): Die Fritz!Box hat den Verbindungsstandard im WLAN wieder verändert. Man muss manuell von 802.11n+b+g auf 802.11b+g umstellen.

      1. Leonard Voss

        Vielen Dank, das hat mir geholfen! Ist aber ärgerlich das man das umschalten muss, schließlich will ich das 802.11n+b+g für alle „normalen Geräte“ an lassen.

      2. jz

        Dieser Effekt sollte weiter untersucht werden.
        Mein Netgear Router unterstützt 802.11n+b+g (und ac auf 5GHz), und ist auch so konfiguriert, und es funktioniert.
        n+b+g umfasst auch b+g, d.h. ältere Clients werden vom Router auch akzeptiert. Der PC wird aber n verwenden. Falls das esp8266 n (wirklich) nicht unterstützt (muss noch nachschauen), könnte es sein, dass es die Meldungen vom PC nicht versteht. Aber bei mir funktioniert es!

        1. jz

          unterstützt b+g+n, siehe Details unter:
          http://espressif.com/en/products/esp8266/

  11. Uwe M.

    Hallo Zusammen! Zur Halbzeit melde ich mich einfach mal zu Wort. Anscheinend sind ja hier sonst nur Profis am probieren, denn ich bin leider immer noch bei Tag 2.
    Ich wollte einfach mal einen anderen Adventskalender haben und eben diesen bei Conrad.de gefunden. Da stand auch noch geschrieben, dass keine Vorkenntnisse und keine Werkzeug erforderlich sind – also sollte schon passen. Doch leider falsch gedacht. Vielleicht mal ein Wort an den Autor: die Erklärungen dürfen ruhig etwas ausführlicher sein, so dass ein LAIE!!! sie auch versteht (wie gesagt, da stand OHNE Vorkenntnisse!). Wo z.Bsp. sehe ich denn dieses WLAN-Netz dieses Moduls, wie kann ich mich denn damit verbinden, was muss ich den beachten, wenn das Ganze nur als Heimnetzwerk funktioniert und und und. Es freut mich für alle, die sich bis zum jetzigen Zeitpunkt hier durchgebissen haben bzw. mithalten konnten – für mich war die Anschaffung des Kalenders bisher leider nur ein Flopp. Ich wünsche Euch trotzdem allen noch einen schönen 3.Advent und weiterhin viel Spaß und Erfolg beim ausprobieren.

    1. Ingo Baer

      Ich muss Dir recht geben.

      Bei mir haben zwar bislang fast alle Experimente funktioniert, aber ich fühl emich bei den Programmen etwas alleingelassen. Die einzelnen Programme sind fast gar nicht kommentiert, womit man halt auch eigentlich nichts lernt.

      Es ist immer nur: Da ist die Schaltung, hier das Programm und dann klappts oder halt nicht. Ein Lerneffekt, den ich mir erwünscht hatte gabs bislang leider gar nicht.

      Ich hab leider auch gar keine Vorkentnisse beim Programmieren und versuche die vorhandenen Programme immer etwas selbst zu ändern und schau mir dann das Ergebnis an. Teilweise unterstützt durch verschiedene Foren.

      Alles in Allen schaut der Adventskalender nach einem ziemlichen Schnellschuss aus. Anscheinend wurde alles „kurz vor knapp“ noch zusammengestellt, damit der Adventskalender auch dieses jahr noch in die Läden kommt.

      Ich hoffe es gibt bald irgendwo ein Forum für dieses Board, in dem man dann sich austauschen kann.

      1. Roebi

        Sali Ingo.
        Um die Funktionen zu verstehen oder zu suchen was für Funktionen es gibt hilft die englische Arduino Referenz
        https://www.arduino.cc/en/Reference/HomePage

        Die Funktionen für Serial sind hier beschrieben
        https://www.arduino.cc/en/Reference/Serial

        In Deutsch gibt von Arduino
        http://playground.arduino.cc/Deutsch/HomePage

        Ich hoffe es hilft.
        Gruß Roebi

  12. Markus

    Habe es doch noch herausgefunden.

    Die Beschreibung war unverständlich.

  13. Markus

    Hello World!

    Open [IP]/LED to Toggle LED on D9

    Ich verstehe nicht wie ich die LED steuern kann.

    1. Toni Taste

      Schreibe im Browser die Adresse des NanoESP und füge dahinter direkt die Zeichenkette /LED an, also z. B. 192.168.178.22/LED.
      Damit lässt sich die LED mit jedem Zugriff an-/ausschalten.

      1. Huetta

        Funktioniert bei mir trotzdem nicht,
        hast du noch eine Tipp?

        1. Raabinator

          Die LED richtig angeschlossen?
          Wenn noch die RGB-LED dran hängt, musst du die Pin-Nummer im Programm ändern.
          Wenn die einfache dran ist, ist sie vielleicht falsch herum.
          Der längere Draht, bzw. das kleinere Metallteil im inneren, ist die Anode (sprich: der Plus-Pol) und muss an den Widerstand Richtung Board.

  14. Chris

    Genau, nimm am besten ReadStringUntil:
    String input = esp8266.readStringUntil(‚\n‘);

    Dann vergleichst du input gegen LEDY und LEDX

    1. Ingo Baer

      Klappt auch irgendwie nicht :( Was mach ich nur falsch?

      String input = esp8266.readStringUntil(‚\n‘);

      if (esp8266.available()) // check if the esp is sending a message
      {
      if (esp8266.find(„+IPD,“))
      {
      debug(„Incomming Request“);
      int connectionId = esp8266.parseInt();

      if (input == „LEDX“)
      {
      digitalWrite(LEDX, !digitalRead(LEDX));
      }
      else if (input == „LEDY“)
      {
      digitalWrite(LEDY, !digitalRead(LEDY));
      }

      1. jz

        String input = esp8266.readStringUntil(‚\n‘);

        erst nach find(„+IPD“) einfügen, dann müsste in input das erste Zeichen ‚X‘ oder ‚Y‘ sein, wäre eine Variante.
        Andere Varianten wurden auch schon beschrieben.

        1. jz

          natürlich erst so nach zusätzlich find(„LED“).
          sorry, ich sollte vor der Antwort besser überlegen.
          Aber man kann natürlich auch den ganzen input nach find(„IPD“) analysieren.

  15. Holger

    Ich fand es heute spannend das Board mal vom Rechner zu „trennen“. Ich finde es mental immer eine Herausforderung zu „glauben“, dass das alles über WLAN läuft, wenn da ein Kabel am Rechner steckt ;-)
    Eines ist mir aufgefallen: Wenn ich die IP mit Firefox aufrufe, dann klappt es einwandfrei, wenn ich Safari nutze gibt es Probleme: Die LED lässt sich zwar schalten (mit kurzem Zwischenblinken), aber ich sehe die den Text nicht, sondern nur eine Fehlermeldung auf Safari. Weiß jemand, woran das liegt?

    1. Klaus

      Ich vermute mal fast, dass es genau der Effekt ist, den ich gestern hatte. Im Forum hatte ich gestern eine erweiterte Version gepostet. Dort hatte ich das gestrige Programm so erweitert, dass es automatisch eine Antwort schickt. Mit Firefox3 ging das, aktuelle Chrome, Opera und Safari gingen nur halb. Aktuellen Firefox hatte ich nicht probiert.

      Der Hintergrund meines gestrigen Problems:
      Firefox öffnete genau eine Verbindung. Die anderen Browser öffnen zusätzlich noch eine zweite Verbindung und schließen diese gleich wieder. Was der Sinn ist, weiß ich nicht. Bisher konnte mir noch keiner dieses Verhalten erklären.

      1. Jakob

        Der neue Microsoft Edge funktioniert auch einwandfrei.

      2. Toni Taste

        FF 42, Chrome 47, IE 11 unter Win7 funktionieren. Safari unter iPhone 4 schaltet LED, zeigt aber keinen Browsertext.

        1. fk (Beitrag Autor)

          Hi,
          ich vermute das Safari keinen reinen Text anzeigt. Damit also Text im Browser erscheint, muss der String anpassen, etwa so:
          String webpage = „HTTP/1.1 200 OK\n\nHello World!Open [IP]/LED to Toggle LED on D9“;

          und hinter den Text. Die Länge in CIPSEND muss dann natürlich noch angepasst werden.

          1. HuPeO

            Danke für den Tipp! Das war’s – jetzt wird der Text auch bei Safari (iPhone 5, iPad und iMac) ausgegeben.
            (Länge in CIPSEND musste allerdings gar nicht angepasst werden, da mit webpage.length() ermittelt wird…)

  16. Ingo Baer

    Wow,hat perfekt geklappt. Ich habe versucht das ganze noch auf 2 LEDs auszuweiten, bin aber gescheitert.

    if (esp8266.findUntil(„LEDX“,“\n“))
    {
    digitalWrite(LEDX, !digitalRead(LEDX));
    }
    else if (esp8266.findUntil(„LEDY“,“\n“))
    {
    digitalWrite(LEDY, !digitalRead(LEDY));
    }

    Es schaltet leider nur die erste LED. Wenn ich http://IP/LEDY eingebe, passiert nix.

    Und ja, ich habe die LEDY definiert und als Output geschaltet.

    Hat Jemand ne Idee ??

    1. Hartmut

      findUtil() leert den empfangenen Stream bis spätestens zum \n. Ein weiteres findUtil() findet dann keine Zeichen mehr zur Verarbeitung und endet dann mit einem Timeout d.h. gibt false zurück.

      1. Ingo Baer

        Ok, das erklärt es natürlich. Was kann ich dagegen machen?

        Kann ich vielleicht das Ergebnis vorab in einer Variable speichern und darin suchen?

        1. Roebi

          Hallo Ingo.
          Als Ansatz zur Lösung : Suche nach LE bis ein D kommt
          if (esp8266.findUntil(„LE“,“D“))
          anschließend kannst Du den nächsten Buchstaben (X oder Y) einzeln auslesen.

          1. jz

            wirklich?
            der nächste Buchstabe müsste hier ‚D‘ sein.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.