Webserver

Der myEthernet Webserver

Die Firmware des myEthernets enthält die Software des embedded Webservers. Er unterstützt das Senden von Dateien an den Rechner im LAN und WAN sowie das Übertragen und Setzen von Zuständen, Werten, Konfigurationen des myEthernets.

Einstellungen des Webservers

Der Webserver muss eine eindeutige und noch nicht verwendete Adresse im Netzwerk besitzen. Die Einstellungen dafür werden in der Datei "config.cfg" auf der MicroSD-Karte gespeichert. Alle Dateien der Webseite sowie die Datei config.cfg müssen sich im Wurzelverzeichnis befinden. Beim Einschalten des myEthernets wird die Datei ausgelesen und alle Einstellungen daraus übernommen.

Beispiel config.cfg:

# das ist ein Kommentar
; das ist auch ein Kommentar
#IP-Adresse
ip=192.168.20.98
#Subnetzmaske
ipMask=255.255.255.0
#Webserverport
port=80
#Mac-Adresse
macAddr=125.126.124.2.8.99

Sollte keine config.cfg existieren oder keine MicroSD-Karte eingelegt sein, dann werden folgende Standardeinstellungen aktiviert:
IP-Adresse: 192.168.20.96
Webserver-Port: 80
Subnet-Maske: 255.255.255.0
Mac-Adresse: 73.53.133.71.1.34

Ersetzungen:

Mit dem embedded Webserver des myEthernets sind vielfältige Auswertungen möglich. Dabei wird eine eigene Kommando- und Ersetzungssyntax verwendet. Mit Anwendung dieser Befehle können Sie Abfragen von aktuellen Werten an einem, mehreren oder allen Pins vornehmen. Des Weiteren werden aktuelle Pin-Konfigurationen und alle Möglichkeiten zur Pin-Einstellung ausgegeben.
Ersetzungen werden nur in htm-Dateien durchgeführt und können dort in jeglicher Kombination von JavaScript oder HTML-Elementen verwendet und plaziert werden.
Achtung: Wollen Sie das Gradzeichen ° ausgeben, dann verwenden Sie dazu das benannte Zeichen für HTML-eigene Zeichen °.

Syntax: °<Typ><Pin-Nr>°

° ⇒ Begrenzungszeichen (Grad)
<Typ> ⇒ Wert bzw. Konfiguration abfragen
  • c ... aktuelle Konfiguration
  • C ... mögliche Konfiguration
  • v ... aktueller Wert
<Pin-Nr> ⇒ *, 0...23, virtuell: 200 und folgende

Beispiel:
var ledGruen="°c20°"; gibt die aktuelle Konfiguration am Pin 20 aus und weist diese der Variable "ledGruen" im JavaScript einer HTML-Seite zu

<body>°v*°</body> gibt die Werte aller Pins beim Aufruf einer HTML-Seite aus
Zusätzliche Ersetzungen:
Neben den Abfragen zu den Pins sind auch Informationen über den embedded Webserver und seiner aktuelle Konfiguration auslesbar.
Syntax: °i<Parameter>°

° ⇒ Begrenzungszeichen (Grad)
i ⇒ Befehl zur Informationsabfrage
<Parameter> ⇒ Informationstyp
  • i ... IP-Adresse
  • n ... Netzwerkmaske (Subnet)
  • m ... Mac-Adresse (hexadezimale Ausgabe)
  • p ... Webserver-Port
  • v ... Version der Firmware
  • t ... Systemzeit seit Start (Sekunden)
Kommentare:
Syntax: °!<Kommentartext>°

° ⇒ Begrenzungszeichen (Grad)
! ⇒ Kennzeichen für Kommentare
Alle Texte innerhalb der Begrenzungszeichen werden entfernt.

Kommandos:

Die Kommandos sind Anweisungen für den Mikrocontroller des myEthernets, die eine Änderung eines bzw. vieler Pins zu veranlassen. Dabei kann die Wertausgabe sowie das Verhalten der Pins geregelt werden.
Im Gegensatz zu Ersetzungen wird ein Kommando über einen HTTP-Request veranlasst. Dies kann durch Eingabe in die Adresszeile eines Webbrowser oder per JavaScript durch Einsatz des XMLHttpRequest-Objektes geschehen.

Syntax: <Befehl>=°<Typ><Pin-Nr>~<Wert>°

<Befehl> ⇒ Kommando für myEthernet
  • myConfigCmd ... Konfiguration ändern
  • myChangeCmd ... Wertausgabe ändern
= ⇒ Befehlszuordnungszeichen
° ⇒ Begrenzungszeichen (Grad) mit Zeichencode «%B0»
<Typ> ⇒ Wert bzw. Konfiguration umstellen
  • c ... Konfiguration ändern
  • o ... Ausgabe ändern
<Pin-Nr> ⇒ 0...23, virtuell: 100,101...
~ = Wertzuordnungszeichen (Tilde) mit Zeichencode «%7E»
<Wert> ⇒ neuer Ausgabewert im Dezimal- oder Hexadezimalformat z.B.: 0x20

Beispiel:
http://192.168.20.98/?myConfigCmd=%B0c0%7E0x1%B0 Pin 0 auf Digital-Ouput stellen

http://192.168.20.98/?myChangeCmd=%B0o21%7E0%B0 rote LED am Pin 21 ausschalten

Wenn viele HTTP-Requests auf den selben Pin stattfinden, ist es notwendig einen zusätzlichen Parameter zu senden. Dieser ist für das Umgehen das Browsercaches notwendig. Das vorige Beispiel ändert sich in:

http://192.168.20.98/?myChangeCmd=%B0o21%7E0%B0&423801

Der blau dargestellte Zusatz ist ein zufälliger Wert und kann z. B. per JavaScript generiert werden.