esp8266 stürzt ab wenn Slider/Schieberegler daten liefert

Ich programmiere derzeit eine Webseite zum steuern von LedStreifen (Helligkeit, Geschwindigkeit, Effekt auswahl). Eigentlich funktioniert alles. Nur auf IOS Safari will es mal wieder nicht so recht.

Ich arbeite mit der Websocket Vorlage von Links2004. Auf der Webseite für die Led Kontrolle sind auch zwei Slider die eine Javascript Funktion oninput ="brightness(); auslösen. Die daten des Sliders werden kontinuierlich gesendet, also wenn jemand den Knopf zieht, werden viele Daten gesendet.

Wenn ich das an meinem Android Handy mache ist das kein Problem aber an einem IOS mit Safari bringt es den esp-01 zum Absturz bzw. es hängt so sehr das kaum noch was geht.

Ich möchte es eigentlich schon so haben das wenn man den Slider zieht, sich die Helligkeit live mit verändert. Allerdings müsste man den Datenstrom etwas eingrenzen damit IOS Safari damit auch zurecht kommt. Hat jemand von euch eine Idee wie ich das umsetzen könnte? Vielleicht ein delay in der JS-Funktion? Mit JS kenne ich mich nicht aus, eine Vorlage wäre mir da hilfreich. Oder gibt es andere Möglichkeiten?

Hier mal ein paar Codeschnippsel:
HTML der Slider. Step habe ich mal eingebaut um den Datenfluss etwas einzudämmen. Das reicht aber noch nicht.

<body onload="javascript:start();">
  <center>
    <header>
      <h1>LED-Base Control</h1>
    </header>
    <div>
      <table>
        <tr>
          <td style="width:14.4px; text-align: right">Helligkeit: </td>
          <td><input class="enabled" id="brightness" type="range" min="5" max="255" step="15" oninput  ="brightness();" value="50"></td>
        </tr>
        <tr>
          <td style="width:1.4px; text-align: right">
</td>
          <td>
</td>
        </tr>
        <tr>
          <td style="width:14.4px; text-align: right">Geschwindigkeit: </td>
          <td><input class="enabled" id="speed" type="range" min="10" max="700" step="15" oninput  ="speed();" value="5"></td>
        </tr>
      </table>

Java für einen slider:

function brightness() {
    var b = document.getElementById('brightness').value; 
    websock.send('+'+b);	
	console.log('brightness: ' + b);

und der abzufragende Arduino Code in case WStype_CONNECTED(Ich weiß es ist keine schöne Art der Variablenumwandlung, bekomme es aber derzeit nicht besser hin.)

     if (payload[0] == '+') {            // we get brightness back
         String payloadString=(const char *)payload;
         String text = String((char *) &payload[1]);
         helligkeit = text.toInt();
         FastLED.setBrightness(helligkeit);

hi,

genau wegen eines sliders bin ich auch bei websockets gelandet. und alles funktioniert problemlos. windows, android, IE, mozilla, dolphin...

nur auf ios hab' ich's noch nicht probiert. und das scheint bei Dir ja zu haken.

ich hab' eine installationsanleitung für einen node.js server hier hinterlegt:

http://playground.arduino.cc/PmWiki/Haustechnik-Eisebaer

da ist unten auch mein beispiel zum download. vielleicht funktioniert mein slider oder meine art, die daten zu senden, besser. keine ahnung. ist zwar für raspberry, aber das prinzip ist ja das gleiche.

das einzige, was mir sonst noch einfällt, ist window.setTimeout(). damit kann man sachen verzögern. aber das kann ja nicht der sinn sein. da kann man ja gleich auf den slider "tippen", statt zu ziehen (das sollte auch auf ios problemlos funktionieren, oder?).

eine alternative wäre auch der neue raspberry pi zero w statt des esp (etwa 11 euro). da fällt auch das programmieren leichter (Du hast einen echten rechner vor Dir und nicht nur einen mikrocontroller, bei dem Du ständig uploaden mußt und nicht wirklich debuggen kannst. den desktop kannst Du Dir einfach auf Deinen windows- oder apple-rechner spiegeln).

gruß stefan

Danke für deine Antwort. Ich werde mir das mal ansehen und schauen ob ich es verwenden kann oder ob neue Denkanstöße dabei sind. Da mein ESP keine Verbindung zum WWW hat, frage ich mich ob das ganze Node.js zeug auf die Spiffs des ESP passt. Ich habe einen 1Mb ESP-01. Ist denn nodejs oder bootstrap für mein Vorhaben vorteilhaft? Habe mich noch nie damit beschäftigt.

Einen raspberry pi zero w habe ich da, allerdings für ein anderes Projekt. Ich finde das für einen einfachen LED-Controller wie ich ihn mache zu überzogen. Auch von der Größe her passt das nicht. Ich steuere nur 5 einfache Funktionen für den LED-Streifen. Dennoch danke für den Hinweis.

Nodejs läuft auf einem Raspberrry aber nicht auf ESP.