- 12V Akku mit 280 Ah bauen         
Seite 3 von 10 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 97

Thema: esp8266, Arduino IDE: neuer Versuch: warum wird website sofort beendet?

  1. #21
    HaWe
    Gast
    Anzeige

    Praxistest und DIY Projekte
    in dieser Form springt es wieder sofort aus der Website raus, wie ganz am Anfang.

    - - - Aktualisiert - - -

    mit
    Code:
     
       while(client.connected()) {
                 delay(10);
       }          
    
       client.stop();
    baut er wieder auf, bleibt aber auch wieder komplett im Formular hängen (wie zuvor)

  2. #22
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    wie lese ich diese version beim nodemcu aus?

  3. #23
    HaWe
    Gast
    Werkzeuge => Board => Boardverwalter =>....
    dann in der Eingabezeile
    nodeMCU
    eingeben
    dann steht die Version ganz oben im Feld, Version auswählen ganz unten

    Klicke auf die Grafik für eine größere Ansicht

Name:	Arduino_Boardverwalter.jpg
Hits:	2
Größe:	46,1 KB
ID:	34420

    Klicke auf die Grafik für eine größere Ansicht

Name:	Boardverwalter.jpg
Hits:	3
Größe:	50,8 KB
ID:	34418
    Geändert von HaWe (21.10.2019 um 15:03 Uhr)

  4. #24
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    habe 2.2.0, update wird geladen

    jetzt 2.5.2

    beim nächsten Programmupload auf das Board dann hoffentlich 2.5.2

  5. #25
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Ich bin mir zwar nicht sicher was du genau bezwecken willst, aber ich würde erstmal versuchen zu verstehen was ich für ein Verhalten erwarte, mich darüber schlau machen wie Browser sich in der gegebenen Situation verhalten und wie ich meinen Code bauen muss damit es auch mit jedem Browser überall funktioniert.

    Webseiten darstellen ist kein Problem, man akzeptiert einen Client, ließt die Anfrage per client.read() aus, sucht die passende Webseite für die aufgerufene Adresse und gibt den HTML code zurück, flush, stop und fertig ist der Lack, das sollte auch einfach so ohne irgendwelche Probleme funktionieren.

    Webaufrufe mit Daten vom Browser zum Server geht per GET oder POST, wobei man die GET Daten auch sofort übermitteln kann, sofern man weis was man eingeben muss.
    Per POST braucht es erst ein Formular, welches man vorher auch zum Client senden muss, dafür braucht es also 2 Anfragen, die erste Anfrage welche die Webseite mit dem Formular an den client sendet und die 2te Anfrage als Action mit POST und dem ausgefüllten Formular.

    Was du also schreiben musst ist eine Schleife, welche (sofern die Verbindung zum Browser offen hält mit wie Moppi schon beschrieben hatte, was allerdings auch nicht garantiert ist) immer client.read() benutzt um Anfragen zu empfangen, auszuwerten und zu verarbeiten und zu beantworten.

    Zu jeder Anfrage muss es auch eine Webseite als Antwort geben, sonst beschwert sich dein Browser wie in deinem Fall dass der Server die Verbindung geschlossen hat!

    Was du brauchst ist ein strukturierterer Ansatz für deine Aufgabe. Außerdem solltest du dich mit einfachen Session-Cookies beschäftigen, sonst bekomst du spätestens dann Probleme wenn du längere Zeit auf der Webseite bist, weil dein Browser irgendwann den Socket von sich aus schließt und du einen neuen "client" bekommst den du dann wieder neu authentifizieren musst. (oder du speicherst dir die IP des client als trick, aber das ist bei leibe nicht sicher und nur als workaround gemeint!!!!!!!)


    --------------


    Am besten schreibst du erstmal einen dummen Server, welcher Browseranfragen annimmt und an den Browser zurück spiegelt um erstmale in Gefühl für die Anfragen zu bekommen.

    Wenn das klappt, braust du dir eine einfache Webseite zusammen, welche bei der richtigen Adresse auch ausgegeben wird.

    Dann baust du in einer der Seiten einen Knopf für eine GET und einen Knopf + Formular für eine POST Anfrage ein.

    Auf jeder Seite lässt du Platz um den Inhalt der Anfrage zu posten und auf Anfragen die du nicht lesen kannst Antwortest du dem Browser wie beim ersten Schritt mit der Anfrage als Antwort um zu verstehen was genau der Browser da gesendet hat.

    So hangelst du dich dann bei deinem Adress-Parser langsam vorwärst und musst nicht in einem einzelnen Codeblock rumstricken
    Geändert von Ceos (21.10.2019 um 15:28 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  6. #26
    HaWe
    Gast
    naja, es funktioniert doch im Prinzip, bis auf einen "Schönheitsfehler", username wird korrekt geprüft und pwd auch - zumindest in der Version Seite 2 oben
    https://www.roboternetz.de/community...l=1#post655516 ,
    und auch wenn man hier noch 2x hintereinander ENTER drücken muss.
    Diesen Schönheitsfehler gilt es nun zufinden und ebenfalls auszumerzen - unter core 2.4.0 hat es ja auch noch 100%ig funktioniert.

    Sehr schön wäre es auch, wenn man GET durch POST ersetzen könnte.

    Cookies will ich keine setzen.

    Deine sehr allgemeinen Tipps kann ich allerdings nicht umsetzen, mein Ursprungscode war bereits so leistungsfähig wie ich es überhaupt verstehen und schreiben konnte - für einen ganz neu geschriebenen Code wäre ich ntl auch sehr dankbar .

  7. #27
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Ich habe oben mal eine Empfehlung ergänzt wie du dich an deine konkrete Problematik heranarbeiten kannst.
    Ich wollte eigentlich nur so höflich wie möglich darauf hinweisen dass man mit dem Code wie er ist nicht unbedingt weiterarbeiten sollte und nochmal sauber neu anfangen sollte weil amn sonst mit Phänomenen und Seiteneffekten arbeitet die nicht im geringsten Hilfreich für das Verständnis sind.

    Ich schlage vor du schreibst einfach nochmal ein neues Beispiel welches nichts weiter macht als Anfragen entgegen zu nehmen und diese als HTML oder Text an den Browser zurück spiegelt.

    Mit dem String den du da spiegelst kannst du dann einen Parser bauen um die Anfrage auszuwerten und entsprechend Webseiten auszugeben.

    Wenn das klappt, kannst du dir dann eine POST und GET Anfrage in einer deiner Webseiten einbauen und spiegeln lassen um deinen Parser zu erweitern

    edit: ich versuche hier nur mal einen kleinen Objektorientierten Ansatz für das Verständnis

    Ich bin der Server und du der Browser, du kannst mich entweder mit der Zimmernummer und dem Geheimen Passwort ansprechen (GET mit Daten in der Aufrufzeile ... unsicher weil Klartext) und ich lasse dich rein
    oder du musst erstmal mich fragen ob ich dir das Klemmbrett(Webseite) mit dem Login Formular gebe (GET) damit du es mir ausgefüllt zurück geben kannst (POST)

    In jedem Fall muss ich wissen wer du bist und solange ich dich sehe (offener Socket) weis ich auch dass die Formulardaten oder Anfragen von dir sind. Wenn du allerdings nur einmal außer Sichtweite gehst muss ich annehmen dass du nicht mehr du bist oder du dich mir gegenüber ausweist.
    Geändert von Ceos (21.10.2019 um 15:47 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  8. #28
    HaWe
    Gast
    ich selber kann es nicht besser und ich würde es momentan auch nicht anders machen, so wie ich das Prinzip verstehe
    - vlt hat Moppi ja mit seiner Version noch etwas mehr Erfolg, denn die letzte hängt ja auch wieder.
    Wir hatten das Thema ja schon öfter - ich brauche keine allgemeinen Ratschläge, was ich brauche, sondern Code, der kompilierbar ist und den ich testen kann.
    Konkrete Codevorschläge also immer gerne!

  9. #29
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Das Problem ist, dass du noch nicht mal die Grundlage zu verstehen scheinst wenn man den Code ansieht. (nicht bös gemeint) Du verarbeitest nicht mal die Anfrage sondern wartest einfach auf "irgendeine" Anfrage und spuckst die Webseite aus.
    Wenn du jemals authorized auf true setzt sollte der Browser theoretisch nie wieder antworten weil der client schon nach dem verbinden sofort mit einem return abgewürgt wird.
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  10. #30
    HaWe
    Gast
    wie gesagt, es funktioniert alles bis core 2.4.0, erst danch nicht mehr.
    Sogar jetzt aber geht das Einloggen und Ausloggen (aus der Haupt-html-Seite) einwandfrei, denn dadurch wird authorized wieder auf false gesetzt.
    Je nachdem,, wie authorized gesetzt ist, wird im Hauptprogramm (loop() ) entweder die Login Seite aufgerufen oder die Haupt-Website.

    Wirklich hilfreich ist jetzt tatsächlich nur funktionierender Code für core 2.5.2

Seite 3 von 10 ErsteErste 12345 ... LetzteLetzte

Ähnliche Themen

  1. arduino ide mit esp8266
    Von NotEvil im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 4
    Letzter Beitrag: 12.01.2017, 15:17
  2. Raspberry Pi 3: Neuer Bastelrechner ist ab sofort verfügbar
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 4
    Letzter Beitrag: 29.02.2016, 21:56
  3. [ERLEDIGT] Google wird am Lenovo-Tablet ohne Zutun beendet
    Von oberallgeier im Forum Offtopic und Community Tratsch
    Antworten: 5
    Letzter Beitrag: 24.11.2015, 09:02
  4. Funktion wird nicht richtig beendet
    Von kowolfgang im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 31.12.2008, 17:37
  5. schieberegister neuer versuch...
    Von Bluesmash im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 11.07.2005, 22:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests