Ich experimentiere derzeit mit einem M5StickC an welchem ich einen ENV Sensor angeschlossen habe.
Der M5Stick verbindet sich mit dem Heim-Netzwerk und wenn ich mit einem anderen Gerät die
IP des M5StickC aufrufe, dann werden mir die Werte des Sensors angezeigt.
Das funktioniert soweit.
Nun möchte ich gerne einen Zeiger "zappeln" lassen, je nach Sensor-Wert.
Ich erzeuge auch mit Canvas eine Grafik, Rechteck und Linie.
Dies wird jedoch nur einmal zum Beginn der Verbindung aufgerufen.
Nur, wie kann ich nun den Verlauf der Linie in Abhängigkeit der Werte ändern?
Vielleicht hat da jemand ein einfaches Beispiel parat?
zahlt sich das aus selber zu machen? Warum nicht Highchart oder ähnliches?
und
Die Datenaktualisierung mittels AJAX beginnt eigentlich schon damit: kannst du bereits einzelne Werte auf deiner Webseite mittels Ajax ändern oder klappt reiner Text auch noch nicht?
wenn Bunt und Grafisch würde ich zunächst mal auf der HP von Derfips nachsehen...
Mit irgendwelchen codeschnippseln wird das nichts.
mach einen minimal lauffähigen aber vollständigen Sketch und schreibe was genau nicht funktioniert.
Was man so sieht: du holst dir mit AJAX halbes html.
Das willst du sicher nicht parsen um an die Werte zu kommen.
Schick dir ein JSON raus und lasse das Javascript das JSON parsen.
dann kannst du die Werte einerseits per JavaScript als Text in deine Seite einsetzen und andererseits auch vernünftig weiterarbeiten und grafisch darstellen.
du brauchst ja nichtmal eine großartige JSON lib
mach einfach aus deinem HTML ein valides JSON (unbedingt überprüfen!!!),
Javascript kann dann damit gut umgehen.
ich wollte mittteilen, dass ich das Rätsel gelöst habe.
Ich habe einen Messwert zwischen 2 "Sterne"(*) verpackt und diese Zeichenkette dann
aus "this.responseText" ausgefiltert.
Damit konnte ich dann mit dem ausgesiebten Wert meine SUB zum zeichnen der Grafik
aufrufen.
Nun habe ich aber festgestellt, im Heimnetzwerk, mit fast 10 anderen Geräten, der Durchsatz
ganz schön einbricht, also alle 500ms einen Wert abrufen, das ruckelt ganz schön.
Vielleicht sollte ich die Daten mit diesem UDP erstellen und aussenden?
Fazit: Das Parsen hat mich auf den richtigen Weg gebracht...
Vielen Dank für Eure Hinweise .
wenn du alle 500ms einen Wert abrufst - na klar ruckelt die Anzeige, eine halbe Sekunde sieht ein Mensch
Aber eigentlich liegt es an deiner Anzeige - du musst halt vom alten Wert zum neuen Wert "langsam" mit Zwischenschritten hochfahren.
ja und du sollst auch UDP probieren. Ob das was bringt, wage ich zu bezweifeln ohne deinen jetzigen Code zu sehen.
Mach mal ein Bild vom Netmonitor in deinem Browser (Firefox: Tools|Web Developer| Network) und zeige was da momentan in deiner Kommunikation zwischen Browser und Device abläuft, wie groß die Requests sind und wie lange die Dauern. Die Ausgabe von deinem void GetAjaxData(WiFiClient cl) ist ja jetzt schon suboptimal.
Und dass es an den 10 anderen Netzteilnehmern liegt, ist ebenso zu bezweifeln. Was glaubst du was da so bei uns im Netzt läuft
Der M5StickC ist eigentlich ein ESP32 oder? Ich denke dein webserver lässt sich massiv verbessern,...
noiasca:
wenn du alle 500ms einen Wert abrufst - na klar ruckelt die Anzeige, eine halbe Sekunde sieht ein Mensch
Aber eigentlich liegt es an deiner Anzeige - du musst halt vom alten Wert zum neuen Wert "langsam" mit Zwischenschritten hochfahren.
ja und du sollst auch UDP probieren. Ob das was bringt, wage ich zu bezweifeln ohne deinen jetzigen Code zu sehen.
Mach mal ein Bild vom Netmonitor in deinem Browser (Firefox: Tools|Web Developer| Network) und zeige was da momentan in deiner Kommunikation zwischen Browser und Device abläuft, wie groß die Requests sind und wie lange die Dauern. Die Ausgabe von deinem void GetAjaxData(WiFiClient cl) ist ja jetzt schon suboptimal.
Und dass es an den 10 anderen Netzteilnehmern liegt, ist ebenso zu bezweifeln. Was glaubst du was da so bei uns im Netzt läuft
Der M5StickC ist eigentlich ein ESP32 oder? Ich denke dein webserver lässt sich massiv verbessern,...
Hallo, mit dem Ruckeln meinte ich, dass die Werte manchmal schnell angezeigt werden und es dann wieder zu Pausen kommt die wesentlich länger als 500ms sind.
Aber da liegt noch irgendetwas im Argen denke ich.
Kann das aber noch nicht so genau beurteilen, dazu fehlen mir die Kenntnisse.
Nutzen tue ich Chrome als Browser