EDAboard.com | EDAboard.de | EDAboard.co.uk | EE World

OT: Web-Server (ESP8266) die Uhrzeit von einem Clie nt über

NEUES THEMA

elektroda.net NewsGroups Forum Index - Electronics DE - OT: Web-Server (ESP8266) die Uhrzeit von einem Clie nt über

Marte Schwarz
Guest

Fri Jan 24, 2020 11:45 pm   



Hallo zusammen,

ist nicht bei mir, sondern bei einem Mitarbeiter. Er hat auf einem
ESP8266 einen lokalen Webnserver laufen, über den dieser seine Messdaten
an ein Händi oder eben auch Schläptop ausgibt. Da die Uhr des ESP8266
hinreichend ungenau geht und eine zusätzliche Echtzeituhr vermieden
werden soll, hatte ich die Idee, doch die Uhrzeit des abholenden Clients
zu verwenden. Mein Mitarbeiter meinte, das gehe nicht. Wirklich?

Ich habe keinen Plan von HTML und ähnlichem, was man so auf der
Serverseite treiben kann. Ist hier jemand, der das bestätigen kann?

Bitte keine Grundsatzdiskussionen über Zeitserver und Co. Das Teil soll
nicht in Internet uns auch keine Dienste daraus in Anspruch nehmen. Das
ist Vorgabe, dass der 8266 der Webserver stellt und man sich mit einem
Client via Browser dran einklinkt. Nicht mehr und auch nicht weniger.

Vielen Dank

Marte

Hanno Foest
Guest

Fri Jan 24, 2020 11:45 pm   



Am 24.01.20 um 23:18 schrieb Marte Schwarz:

Quote:
ist nicht bei mir, sondern bei einem Mitarbeiter. Er hat auf einem
ESP8266 einen lokalen Webnserver laufen, über den dieser seine Messdaten
an ein Händi oder eben auch Schläptop ausgibt. Da die Uhr des ESP8266
hinreichend ungenau geht und eine zusätzliche Echtzeituhr vermieden
werden soll, hatte ich die Idee, doch die Uhrzeit des abholenden Clients
zu verwenden. Mein Mitarbeiter meinte, das gehe nicht. Wirklich?

Ich habe keinen Plan von HTML und ähnlichem, was man so auf der
Serverseite treiben kann. Ist hier jemand, der das bestätigen kann?


Mein OpenWRT hat im Webinterface für die Uhrzeit eine Schaltfläche "Sync
with browser", womit die Uhrzeit des Routers nach der des Systems mit
dem Webbrowser gestellt wird, insofern sollte das schon irgendwie gehen.

Hanno

--
Nie irgendwas von Ulf Kutzner glauben, insbesondere Zitate immer im
Original und Kontext nachlesen. Er versucht, durch Zitatefälschung
Strohmann-Argumente zu konstruieren.

Stefan
Guest

Sat Jan 25, 2020 8:45 am   



Am 24.01.2020 um 23:18 schrieb Marte Schwarz:
Quote:
Hallo zusammen,

ist nicht bei mir, sondern bei einem Mitarbeiter. Er hat auf einem
ESP8266 einen lokalen Webnserver laufen, über den dieser seine Messdaten
an ein Händi oder eben auch Schläptop ausgibt. Da die Uhr des ESP8266
hinreichend ungenau geht und eine zusätzliche Echtzeituhr vermieden
werden soll, hatte ich die Idee, doch die Uhrzeit des abholenden Clients
zu verwenden. Mein Mitarbeiter meinte, das gehe nicht. Wirklich?


Ich arbeite auch nicht selber mit dem ESP8266, aber einer meiner Azubis.
Er hatte gerade ein änliches Problem.

Der ESP kommuniziert bei uns mit einer My-SQL Datenbank auf einem Linux
Server. Von dort bekommt er auch die Uhrzeit, also er bekommt auf
Anfrage ein Datentelegramm mit der aktuellen Uhrzeit des Servers. Damit
wird die interne Uhr des ESP synchronisiert.

Problem dabei ist, dass die interne Uhr des ESP wegläuft wenn die
Netzverbindung ausfällt. Um das Problem zu lösen hat er dann eine
Echtzeituhr eingebaut. Gibts als fertiges Modul mit I2C.

Quote:
Ich habe keinen Plan von HTML und ähnlichem, was man so auf der
Serverseite treiben kann. Ist hier jemand, der das bestätigen kann?


Ich auch nur minimal. Aber zumindest soviel um zu sagen, dass das was du
willst durchaus machbar ist. Mein Azubi bekommt es jedenfalls hin.

Quote:
Bitte keine Grundsatzdiskussionen über Zeitserver und Co. Das Teil soll
nicht in Internet uns auch keine Dienste daraus in Anspruch nehmen. Das
ist Vorgabe, dass der 8266 der Webserver stellt und man sich mit einem
Client via Browser dran einklinkt. Nicht mehr und auch nicht weniger.


Wir machen es anders rum, d.h. der ESP kommuniziert mit einem Server und
der Client ruft eine Website auf, die auf dem Server liegt.

Auch auch bei eurem Konzept sollte der Client die Uhrzeit senden können.

Gerrit Heitsch
Guest

Sat Jan 25, 2020 9:45 am   



On 1/25/20 8:17 AM, Stefan wrote:

Quote:
Der ESP kommuniziert bei uns mit einer My-SQL Datenbank auf einem Linux
Server. Von dort bekommt er auch die Uhrzeit, also er bekommt auf
Anfrage ein Datentelegramm mit der aktuellen Uhrzeit des Servers. Damit
wird die interne Uhr des ESP synchronisiert.


Das ist ein ziemlich komplizierter Weg. Einfacher wäre gewesen das alte
'time' Protocol auf dem Server zu aktivieren. Dann reicht ein 'telnet
<server> 37' und schon hat er die Zeit.

Gerrit

Marte Schwarz
Guest

Sat Jan 25, 2020 12:45 pm   



Hi Stefan,
Quote:
ESP8266 einen lokalen Webnserver laufen, über den dieser seine
Messdaten an ein Händi oder eben auch Schläptop ausgibt. Da die Uhr
des ESP8266 hinreichend ungenau geht und eine zusätzliche Echtzeituhr
vermieden werden soll, hatte ich die Idee, doch die Uhrzeit des
abholenden Clients zu verwenden. Mein Mitarbeiter meinte, das gehe
nicht. Wirklich?

Der ESP kommuniziert bei uns mit einer My-SQL Datenbank auf einem Linux
Server. Von dort bekommt er auch die Uhrzeit, also er bekommt auf
Anfrage ein Datentelegramm mit der aktuellen Uhrzeit des Servers. Damit
wird die interne Uhr des ESP synchronisiert.


So ähnlich wollten wir das auch, nur eben mit dem Unterschied, dass der
ESP der Server ist.

Quote:
Problem dabei ist, dass die interne Uhr des ESP wegläuft wenn die
Netzverbindung ausfällt.


Eben deswegen soll ja beim Abruf der Daten die Uhrzeit korrigiert
werden. Das wird bei uns alle paar Tage sein. Die Abweichungen bis dahin
sind nicht tragisch, aber sie sollte eben bei gelegenheit angepasst
werden können. Möglicherweise kann man dann auf dem ESP einen
Korrekturfaktor berechnen, der die Abweichungen kleiner werden läßt. So
hatte ich das in den frühen 90ern beim 286-Rechner gemacht, dessen
Echtzeituhr sehr ungenau war. Beim Start die Uhr nachgestellt, einen
Korrekturwert berechnet und das immer wieder. nach ein paar Wochen lief
das recht genau.

Quote:
Um das Problem zu lösen hat er dann eine
Echtzeituhr eingebaut. Gibts als fertiges Modul mit I2C.


Bei uns ist das in erster Linie ein Platzproblem. Wir haben schon das
kleinste ESP8266 Modul im Einsatz und das ist noch eher zu groß.

Quote:
Wir machen es anders rum, d.h. der ESP kommuniziert mit einem Server und
der Client ruft eine Website auf, die auf dem Server liegt.


So herum ist es trivial, das steht in jedem zweiten Tutorial zum ESP,
wie das geht.

Marte

Christian Zietz
Guest

Sat Jan 25, 2020 3:45 pm   



Marte Schwarz schrieb:

Quote:
Da die Uhr des ESP8266
hinreichend ungenau geht und eine zusätzliche Echtzeituhr vermieden
werden soll, hatte ich die Idee, doch die Uhrzeit des abholenden Clients
zu verwenden. Mein Mitarbeiter meinte, das gehe nicht. Wirklich?


Nein. Für eine im Browser geladene Webseite ist es (über Date.now())
trivial, Datum und Uhrzeit des Rechners zu erfahren, auf dem der Browser
läuft. Ebenso einfach ist es für die Webseite (Stichwort XHR) eine
HTTP-Anfrage beim Server für eine bestimmte URL mit beliebigen
Parametern auszulösen, in diesem Fall eben mit dem Ergebnis von Date.now().

Wie der Server die Anfrage verarbeiten muss, um die Uhr zu stellen,
hängt davon ab, wie Ihr den Webserver auf dem ESP8266 implementiert
habt. Sicherlich wird der Server Callbacks anbieten, wenn eine bestimmte
URL aufgerufen wird.

Dass man (wenn man keine weitere Absicherung einbaut) über diese URL
Datum und Uhrzeit des Servers beliebig manipulieren kann, ist Dir sicher
bewusst.

Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA

Marte Schwarz
Guest

Sat Jan 25, 2020 4:45 pm   



Hi Christian,
Quote:
Marte Schwarz schrieb:

Da die Uhr des ESP8266
hinreichend ungenau geht und eine zusätzliche Echtzeituhr vermieden
werden soll, hatte ich die Idee, doch die Uhrzeit des abholenden Clients
zu verwenden. Mein Mitarbeiter meinte, das gehe nicht. Wirklich?

Nein. Für eine im Browser geladene Webseite ist es (über Date.now())
trivial, Datum und Uhrzeit des Rechners zu erfahren, auf dem der Browser
läuft. Ebenso einfach ist es für die Webseite (Stichwort XHR) eine
HTTP-Anfrage beim Server für eine bestimmte URL mit beliebigen
Parametern auszulösen, in diesem Fall eben mit dem Ergebnis von Date.now().


Vielen Dank, ich geb das mal so weiter. Klingt sehr konstruktiv.

Quote:
Dass man (wenn man keine weitere Absicherung einbaut) über diese URL
Datum und Uhrzeit des Servers beliebig manipulieren kann, ist Dir sicher
bewusst.


Damit kann ich gut leben. Das Teil geht ja nicht in Internet. Es ist ein
lokaler Sensor, der seine Daten an einen Client weitergibt, der sich mit
ihm als Server verbindet und die html-Seite abruft, über die er
konfiguriert werden kann und auf einer anderen Seite die Messwerte der
Vergangenen Tage zur Verfügung stellt. Diese können dann heruntergeladen
werden, stehen aber auch direkt im Browser bereits graphisch aufbereitet
zur Verfügung. Schon aus Energieeinspargründen ist die WLAN-Einheit
mitsamt Webserver nur dann aktiv, wenn man den Sensor (nach spätestens
einer Woche Betrieb in die Ladeschale steckt (induktives Laden) und
selbst dann auch nur in einem 15 Minuten Zeitfenster. Dabei hätte ich es
gerne, dass der ESP die Uhrzeit vom Client ausliest udn übernimmt, ohne
dass man weiter etwas unternehmen müsste. Der Client wird in 9x% aller
Fälle ein Schlaufon sein, das in der Regel seine Uhrzeit aus dem Netz
bezieht, also denkbar unwahrscheinlich, dass da etwas falsch läuft. Da
außer den Messdaten auch keine Daten abzugreifen sind und die meisten
Menschen mit den Daten auch nichts anzufangen wüssten, halte ich das
Angriffs- und Manipulationsrisiko für überschaubar.

Marte

Christian Zietz
Guest

Sat Jan 25, 2020 5:45 pm   



Marte Schwarz schrieb:

Quote:
Nein. Für eine im Browser geladene Webseite ist es (über Date.now())
trivial, Datum und Uhrzeit des Rechners zu erfahren, auf dem der Browser
läuft. Ebenso einfach ist es für die Webseite (Stichwort XHR) eine
HTTP-Anfrage beim Server für eine bestimmte URL mit beliebigen
Parametern auszulösen, in diesem Fall eben mit dem Ergebnis von Date.now().

Vielen Dank, ich geb das mal so weiter. Klingt sehr konstruktiv.


Schnell herunter getippte Minimalimplementierung:
<https://www.chzsoft.de/storage/timetest.html>.

Was fehlt: 1. Fehlerbehandlung: Die Antwort des Servers wird nicht
ausgewertet. 2. Serverseitiger Code: Der Server muss beim Aufruf der
timeset-URL seine Uhr stellen. (Natürlich stellt mein Server hier nicht
seine Uhr um.)

Grüße
Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA

elektroda.net NewsGroups Forum Index - Electronics DE - OT: Web-Server (ESP8266) die Uhrzeit von einem Clie nt über

NEUES THEMA

Arabic version Bulgarian version Catalan version Czech version Danish version German version Greek version English version Spanish version Finnish version French version Hindi version Croatian version Indonesian version Italian version Hebrew version Japanese version Korean version Lithuanian version Latvian version Dutch version Norwegian version Polish version Portuguese version Romanian version Russian version Slovak version Slovenian version Serbian version Swedish version Tagalog version Ukrainian version Vietnamese version Chinese version Turkish version
EDAboard.com
WTWHMEDIA