Daten auf Webseite aktualiseren

Hallo Zusammen

Hardware:

WEMOS LOLIN32
DHT22 2 mal
4 Relais

Ich habe endlich mein Projekt (Ventilatorsteuerung) fast fertig.

Ich möchte einen Ventilator so steuern, dass er je nach Temperatur von “Aus” bis “Schnell” alles selber regelt.

Dies ist soweit ja nicht das Problem und die Relais funktionieren so wie sie sollten.

Da dieser Venti natürlich nicht in der Nähe steht und demjenigen der in nutzt die Geschwindigkeit nicht passt, habe ich das Ganze mit einer Webseite gelöst.

Auf dieser zeige ich auch die Temperatur und Luftfeuchtigkeit an, diese möchte ich aber nun alle 5 Sekunden aktualisieren lassen.

Habe in Zeile 402 schon versucht, funktioniert aber irgendwie nicht, weil er “refresh” nicht kennt.

// sResponse = “<>”;

Bei Zeile 452 hätte ich den “Aktualisieren”-Button, gibt es die Möglichkeit denn irgendwie Zeitabhängig zu “drücken”?

sResponse += "
<a href="?pin=aktualisieren"> aktualisieren

";

Mit bestem Dank

Martin

Webserver2dht.ino (17.5 KB)

Hi

Die doppelte spitze Klammer passt so?
Wenn JavaScript aktiviert ist (Sicherheits-Lücke), kannst Du den Button damit ansprechen - und eben auch das Drücken darauf auslösen.
Bin Da aber schon ein paar Jahre draußen.
Mit dem JavaScript könntest Du aber nur Teile der Seite neu laden, also Frames neu füllen (benutzt man heute wohl nicht mehr).
Beim Refresh wird immer die ganze Seite komplett neu geladen.

MfG

PS: value als Variablen-Name ist unglücklich - was macht das Teil? Warum steht Das mitten im Sketch, obwohl die Variable global ist?
Timeout mit millis()+xxx sieht unglücklich aus, müsste aber passen.
Zeile 494: Stufe 'Auto' musst Du die Lüfterstufe nicht setzen, Das passiert wenige Zeilen tiefer eh in Abhängigkeit mit der Temperatur.

Der "Button" funktioniert manuel. Nur leider kriege ich ihn nicht automatisch hin. Eine andere Möglichkeit wäre, die Daten immer aktuell in die Felder zu schreiben

Die doppelte spitze Klammer wird es sein.

So habe ich in einem meiner Sketche und es funktioniert.

Hallo Thorsten

Die << sind tatsächlich ein Problem.

Statt " musste ich ich ’ setzen und er kommt ohne Fehler aus, aber einen Refresh machte er trotzdem nicht.

Wieso weiss ich leider nicht.

Es geht devinitiv, habs noch mal getestet.

oder so

Sollte es bei dir nicht klappen, zeig bitte den Quelltext der Webseite.

Gruß Fips

Ist alles im Code enthalten.

Der als Anhang beim ersten Post dabei ist

Darter69:
Ist alles im Code enthalten.

Der als Anhang beim ersten Post dabei ist

Das ist in dem Fall nicht interresant.
Edit: dort steht es eh verkehrt drin.

Ich möchte sehen was im Browser ankommt.

rechts Klick -> Quelltext anzeigen

Gruß Fips

Hallo Fips

Dein Tip mit dem Quellcode war genau der Richtige.

Habe da den Fehler gesehen.

Stand noch vor dem .

Jetzt geht es.

Danke für die Hilfen

Gruss

Martin

Darter69:
Hallo Fips

Dein Tip mit dem Quellcode war genau der Richtige.

Habe da den Fehler gesehen.

Stand noch vor dem .

Jetzt geht es.

Danke für die Hilfen

Gruss

Martin

Genau deshalb wollte ich sehen was im Browser ankommt.
Schön das du es selber lösen konntest.

Gruß Fips

noiasca:
und die Krönung wäre ja vieleicht auf den Refresh zu verzichten und die Seite mit AJAX zu aktualiseren.

Einspruch!

Die Krönung ist dann fällig, wenn alles perfekt funktioniert, und zwar IMO mit den allergeringsten und simpelsten Mitteln.

Dali: Habe keine Angst vor der Perfektion, denn du wirst sie sowieso nie erreichen.
Anderswo: Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.

Die Idee, das über einen clientbasierten (?) Refresh zu machen, ist der IMO bessere Ansatz.

Gruß

Gregor

Im allgemeinen steht clientseitiger Refresh für das neu Laden der ganzen Seite, während AJAX und Fetch nur die Inhalte der interessierenden Bestandteile neu laden. Sie erzeugen damit wesentlich weniger Traffic und die Aktualisierung erfolgt meist flackerfrei.

Gruß Tommy

Tommy56:
Im allgemeinen steht clientseitiger Refresh für das neu Laden der ganzen Seite, während AJAX und Fetch nur die Inhalte der interessierenden Bestandteile neu laden. Sie erzeugen damit wesentlich weniger Traffic und die Aktualisierung erfolgt meist flackerfrei.

Dass es Vorteile haben kann, wenn man es „noch hübscher“ macht, ist klar. Ich finde nur, dass es mit jeder eingesetzten Technik oder Möglichkeit anfälliger für Fehler ist. Insofern bin ich Minimalist :slight_smile:

Gruß

Gregor

noiasca:
und die Krönung wäre ja vieleicht auf den Refresh zu verzichten und die Seite mit AJAX zu aktualiseren.


"noiasca" der Vasal von AJAX
findet das der Sketch aus #1 mit 581 Zeilen etwas zu kurz geraten ist, und möchte ihn gerne in mittelalterlicher Tradition, mit XMLHttpRequest auf ∞ pimpen.

Darter69:
aber einen Refresh machte er trotzdem nicht.

Wieso weiss ich leider nicht.

Da der TO momentan zufrieden ist das es überhaupt funktioniert, wöllte ich ihn ungern in diesen Glaubenskrieg drängen.

Gruß Fips

noiasca:
Zusammenfassend: es lohnt sich jetzt den Kopf etwas schief zu halten und ein wenig Hirnschmalz in etwas neues zu investieren und sich vieleicht neue Fähigkeiten anzueignen. Man will ja auch geistig vorankommen.

Dass sich die Lernerei lohnen könnte, ist ein sehr starkes Argument.

Mit mancher Lernerei zeigt sich ja manchmal auch, dass es sich lohnt, zu lernen. Mir ging's mit VRML allerdings anders, danach kräht heute (leider) keine Sau mehr.

Auf lange Sicht ist das Lernen vielleicht lohnender. Das kann hier und da ja auch sehr viel Spaß machen -- was auch ein starkes Argument für die Lernerei ist.

Erfahrung sammelt man aber so oder so. Fies ist manchmal nur, dass man Erfahrung oft dann sammeln (muss), wenn man nicht darauf gefasst ist.

Eine entspannte Woche Euch allen!

Gregor

Verbesserungen!

Als Erstes soll es mal so laufen, dass ich sagen kann es funktioniert perfekt.

Wenn die HW und SW dann den ersten Test bestanden haben, dann kann ich auch über eine "Verbesserung " nachdenken.
Sprich einem anderen Ansatz steht dann nichts mehr im Wege.

Es ist aber so, dass an dieser Code nur der Anfang ist von meiner Temperatursteuerung.

Der nächste Ansatz ist es dann, das Ganze dann über ein "Nextion" laufen zu lassen und da wird es dann eh wieder anders sein.

Bis zu diesem Tag, leistet mir der Code sicherlich gute Ergebnisse.

Gruss

Martin