Edimax SP 1101W, Funktionsweise, Installation, Ansteuerung im lokalen Netzwerk vom PC aus
03.04.2014, 21:47
Edimax Smartplug SP 1101W, FW 1.05
Hallo,
hier auf allgemeinen Wunsch, was ich rausfinden konnte:
Das Smartplug wird nachstehend als "Edimax" bezeichnet, das Smartphone als "Phone", das WLAN im (eigenen) Haus als "HOMEWLAN"
a) Installation, Firmwareupgrade usw.
Das Edimax spannt, während Install-Led blinkt, ein eigenes WLAN mit der SSID "Ediplug.setup" auf, die IP-Adresse des Edimax in diesem WLAN ist 192.168.20.3, es ist nicht geschützt.
Das Phone nimmt, sobald die Ediplug-App gestartet wird, mit dem Edimax über dieses WLAN (das überigens die am Edimax aufgedruckte MAC 80-1F-02... hat!) Verbindung auf.
Vom Phone wird dem Edimax dann das WLAN-Passwort für das (im Haus) zur Verfügung stehende WLAN (z.B. HOMEWLAN kann aber auch jede andere SSID sein die man halt daheim eingerichtet hat) mitgeteilt, gibts mehrere WLAN's, kann man auswählen welches man will und wie das WLAN-Passwort dafür ist.
Wichtig ist, dass der Edimax aus diesem lokalen WLAN (dem HOMEWLAN) per DHCP eine IP-Adresse, ein Default-Gateway und ev. auch einen Nameserver zugewiesen bekommt.
Wenn das nicht der Fall ist, dann kann der Edimax nichts ins Internet connecten (und das ist für die Installation erforderlich) und nichts geht!
Sollte der Edimax allenfalls eine alte Firmware haben und darum ev. nicht funktionieren bzw. noch nicht installiert sein, so kann
# eine aktuelle Firmware auf das Phone geladen werden
# dann (der Edimax muss im Installationsmodus sein, sprich die rote LED muss im Sekundentakt blinken) im Browser am Phone zur Adresse "192.168.20.3\tnsetup.html" gehen, und dort kann dann der Edimax mit einer neuen Firmware beschrieben werden
Ist der Edimax bereits installiert und über das lokale WLAN (HOMEWLAN) erreichbar, so gibts ein Updatetool Namens "edimax_sp_1101W_FWUpgradeTool.exe"
Die aktuelle Firmware gibts unter http://www.edimax.com -> Support -> Homeautomation ... zum Download.
Nach der Einrichtung des Edimax schaltet der sein eigenes WLAN (mit der SSID "Ediplug.setup") wieder ab und verbindet sich ins lokale WLAN (HOMEWLAN) und zwar mit der MAC 82-1F-02... (die steht so aber nicht auf dem Edimax drauf, da steht die 80-1F-02... drauf).
Ab diesem Zeitpunkt ist der Edimax über die vom lokalen WLAN zugewiesenen IP-Adresse erreichbar (ping geht z.B.).
Jetzt kann mit einem einfachen IP-Scanner (http://www.heise.de/download/advanced-ip-scanner.html ist free!) nach dem Edimax gesucht werden, bzw. Wireshark über die MAC-Adresse (aber eher was für Spezialisten).
b) Technik und Syntax - Betrieb und Steuerung bzw. Statusabfrage des Edimax
Die Kommunikation zw. Geräten aus dem lokalen LAN bzw. lokalen WLAN und dem Edimax rennt direkt vom Gerät (PC oder was auch immer, der Einfachheit halber rede ich hier nur vom PC) zum Edimax - da geht nichts raus ins Internet.
Das Grundprinzip ist, dass der PC eine URL mit CGI-Script am Edimax mit Username und Passwort auf Port 10.000 via HTTP aufruft und eine XML-Steuerdatei an den Edimax schickt.
Der Edimax wiederum schickt dann eine XML-Antwortdatei zurück, die die durchgeführte Aktion bestätigt bzw. den abgefragten Status bringt.
Die URL am Edimax ist folgende:
http://Edimax_user:Edimax_pass@Edimax-IP-Adresse:10000/smartplug.cgi
oder klarer:
http://admin:1234@10.0.0.111:10000/smartplug.cgi
Die Steuerdateiinhalte (was ich bis dato finden konnte und vor allem auch benötigt habe - es gibt noch wesentlich mehr) sind wie folgt:
A# Edimax-Ein
<?xml version="1.0" encoding="utf-8"?>
<SMARTPLUG id="edimax"><CMD id="setup"><Device.System.Power.State>ON</Device.System.Power.State></CMD></SMARTPLUG>
# Antwort vom Edimax
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="setup">OK</CMD></SMARTPLUG>
B# Edimax-Aus
<?xml version="1.0" encoding="utf-8"?>
<SMARTPLUG id="edimax"><CMD id="setup"><Device.System.Power.State>OFF</Device.System.Power.State></CMD></SMARTPLUG>
# Antwort vom Edimax
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="setup">OK</CMD></SMARTPLUG>
C# Edimax-Status
<?xml version="1.0" encoding="UTF8"?>
<SMARTPLUG id="edimax">
<CMD id="get"><Device.System.Power.State></Device.System.Power.State>
</CMD></SMARTPLUG>
# Antwort vom Edimax
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="get"><Device.System.Power.State>OFF</Device.System.Power.State></CMD></SMARTPLUG>
bzw.
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="get"><Device.System.Power.State>ON</Device.System.Power.State></CMD></SMARTPLUG>
c) praktische Umsetzung
Da ich schon ein paar 1000 Zeilen in Autohotkey (www.autohotkey.com) geschrieben habe, wollte ich die Umsetzung (die Kommunikation von meinen PC's und dem Edimax) mit Autohotkey (kurz AHK) lösen. In AHK gibt es aber leider keine einfache Möglichkeit zur geforderten HTTP-Kommunikation mit user/pass, auf Port 10.000, mit Übergabe bzw. Rückübernahme von XML-Files usw.
Kurzum, das ist der Grund weshalb ich die Kommunikation mit dem Edimax mittels dem Kommandozeilentool CURL gelöst habe (Freeware, gibts hier: http://8tut.com/how-to-install-curl-command-utility-on-windows-7-64-bit/), das kann, was hier gefordert ist.
Hier die Aufrufe von CURL die funktionieren:
Erklärung zum CURL-Aufruf:
die Steuerdatei "off.xml" wird an den Edimax auf die IP-Adresse 10.0.0.111 an Port 10.000 geschickt, und das CGI-Script "smartplug.cgi" am Edimax aufgerufen der User "Admin" und Passwort "1234" (das sind die Defaults am Edimax), die Antwort des Edimax wird in der Datei "output.txt" gespeichert.
Das wars, es ist nicht weniger aufwendig.... ;-)))
Ich habe auf Basis dieser Informationen einen ersten Entwurf eines AHK-Skripts geschrieben, mit dem meine Kids
# den Edimax mittels klick auf ein Icon jeweils umschalten können (ist ein, dann ist nachher aus bzw. vice-versa)
# weiters wird der Status des Edimax wird angezeigt (sprich Kid A schaltet aus und Kid B am anderen PC sieht ein rotes Icon und kann mit Klick wieder einschalten)
# der Edimax wird nach z.B. 30 min (nach dem letzten Einschalten) automatisch ausgeschalten
am Edimax hängt bei mir der Netzwerkdrucker (via Printserver am LAN) der soll zu Stromsparzwecken nur dann laufen, wenn er von irgendwem in unserem Netzwerk (über mehrere Stockwerke verteil) benötigt wird.
Es gibt noch viel zu entdecken (die Zeitsteuerung des Edimax z.B. auch sehr interessant) am Edimax und seinen Befehlen, wenn ich wieder was habe, melde ich mich.
Schon ein recht geniales Teil der Edimax, wenn man sich ansieht was der kostet.
Tja und bitte den "Roman" (den langen Text) zu entschuldigen, aber diese Materie lässt sich nicht mit wesentlich weniger Text ausreichend beschreiben.
Schöne Grüße aus Österreich/Vorarlberg am Bodensee
J.M.
Hallo,
hier auf allgemeinen Wunsch, was ich rausfinden konnte:
Das Smartplug wird nachstehend als "Edimax" bezeichnet, das Smartphone als "Phone", das WLAN im (eigenen) Haus als "HOMEWLAN"
a) Installation, Firmwareupgrade usw.
Das Edimax spannt, während Install-Led blinkt, ein eigenes WLAN mit der SSID "Ediplug.setup" auf, die IP-Adresse des Edimax in diesem WLAN ist 192.168.20.3, es ist nicht geschützt.
Das Phone nimmt, sobald die Ediplug-App gestartet wird, mit dem Edimax über dieses WLAN (das überigens die am Edimax aufgedruckte MAC 80-1F-02... hat!) Verbindung auf.
Vom Phone wird dem Edimax dann das WLAN-Passwort für das (im Haus) zur Verfügung stehende WLAN (z.B. HOMEWLAN kann aber auch jede andere SSID sein die man halt daheim eingerichtet hat) mitgeteilt, gibts mehrere WLAN's, kann man auswählen welches man will und wie das WLAN-Passwort dafür ist.
Wichtig ist, dass der Edimax aus diesem lokalen WLAN (dem HOMEWLAN) per DHCP eine IP-Adresse, ein Default-Gateway und ev. auch einen Nameserver zugewiesen bekommt.
Wenn das nicht der Fall ist, dann kann der Edimax nichts ins Internet connecten (und das ist für die Installation erforderlich) und nichts geht!
Sollte der Edimax allenfalls eine alte Firmware haben und darum ev. nicht funktionieren bzw. noch nicht installiert sein, so kann
# eine aktuelle Firmware auf das Phone geladen werden
# dann (der Edimax muss im Installationsmodus sein, sprich die rote LED muss im Sekundentakt blinken) im Browser am Phone zur Adresse "192.168.20.3\tnsetup.html" gehen, und dort kann dann der Edimax mit einer neuen Firmware beschrieben werden
Ist der Edimax bereits installiert und über das lokale WLAN (HOMEWLAN) erreichbar, so gibts ein Updatetool Namens "edimax_sp_1101W_FWUpgradeTool.exe"
Die aktuelle Firmware gibts unter http://www.edimax.com -> Support -> Homeautomation ... zum Download.
Nach der Einrichtung des Edimax schaltet der sein eigenes WLAN (mit der SSID "Ediplug.setup") wieder ab und verbindet sich ins lokale WLAN (HOMEWLAN) und zwar mit der MAC 82-1F-02... (die steht so aber nicht auf dem Edimax drauf, da steht die 80-1F-02... drauf).
Ab diesem Zeitpunkt ist der Edimax über die vom lokalen WLAN zugewiesenen IP-Adresse erreichbar (ping geht z.B.).
Jetzt kann mit einem einfachen IP-Scanner (http://www.heise.de/download/advanced-ip-scanner.html ist free!) nach dem Edimax gesucht werden, bzw. Wireshark über die MAC-Adresse (aber eher was für Spezialisten).
b) Technik und Syntax - Betrieb und Steuerung bzw. Statusabfrage des Edimax
Die Kommunikation zw. Geräten aus dem lokalen LAN bzw. lokalen WLAN und dem Edimax rennt direkt vom Gerät (PC oder was auch immer, der Einfachheit halber rede ich hier nur vom PC) zum Edimax - da geht nichts raus ins Internet.
Das Grundprinzip ist, dass der PC eine URL mit CGI-Script am Edimax mit Username und Passwort auf Port 10.000 via HTTP aufruft und eine XML-Steuerdatei an den Edimax schickt.
Der Edimax wiederum schickt dann eine XML-Antwortdatei zurück, die die durchgeführte Aktion bestätigt bzw. den abgefragten Status bringt.
Die URL am Edimax ist folgende:
http://Edimax_user:Edimax_pass@Edimax-IP-Adresse:10000/smartplug.cgi
oder klarer:
http://admin:1234@10.0.0.111:10000/smartplug.cgi
Die Steuerdateiinhalte (was ich bis dato finden konnte und vor allem auch benötigt habe - es gibt noch wesentlich mehr) sind wie folgt:
A# Edimax-Ein
<?xml version="1.0" encoding="utf-8"?>
<SMARTPLUG id="edimax"><CMD id="setup"><Device.System.Power.State>ON</Device.System.Power.State></CMD></SMARTPLUG>
# Antwort vom Edimax
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="setup">OK</CMD></SMARTPLUG>
B# Edimax-Aus
<?xml version="1.0" encoding="utf-8"?>
<SMARTPLUG id="edimax"><CMD id="setup"><Device.System.Power.State>OFF</Device.System.Power.State></CMD></SMARTPLUG>
# Antwort vom Edimax
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="setup">OK</CMD></SMARTPLUG>
C# Edimax-Status
<?xml version="1.0" encoding="UTF8"?>
<SMARTPLUG id="edimax">
<CMD id="get"><Device.System.Power.State></Device.System.Power.State>
</CMD></SMARTPLUG>
# Antwort vom Edimax
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="get"><Device.System.Power.State>OFF</Device.System.Power.State></CMD></SMARTPLUG>
bzw.
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="get"><Device.System.Power.State>ON</Device.System.Power.State></CMD></SMARTPLUG>
c) praktische Umsetzung
Da ich schon ein paar 1000 Zeilen in Autohotkey (www.autohotkey.com) geschrieben habe, wollte ich die Umsetzung (die Kommunikation von meinen PC's und dem Edimax) mit Autohotkey (kurz AHK) lösen. In AHK gibt es aber leider keine einfache Möglichkeit zur geforderten HTTP-Kommunikation mit user/pass, auf Port 10.000, mit Übergabe bzw. Rückübernahme von XML-Files usw.
Kurzum, das ist der Grund weshalb ich die Kommunikation mit dem Edimax mittels dem Kommandozeilentool CURL gelöst habe (Freeware, gibts hier: http://8tut.com/how-to-install-curl-command-utility-on-windows-7-64-bit/), das kann, was hier gefordert ist.
Hier die Aufrufe von CURL die funktionieren:
curl -d @off.xml http://admin:1234@10.0.0.111:10000/smartplug.cgi -o "output.txt"
Erklärung zum CURL-Aufruf:
die Steuerdatei "off.xml" wird an den Edimax auf die IP-Adresse 10.0.0.111 an Port 10.000 geschickt, und das CGI-Script "smartplug.cgi" am Edimax aufgerufen der User "Admin" und Passwort "1234" (das sind die Defaults am Edimax), die Antwort des Edimax wird in der Datei "output.txt" gespeichert.
Das wars, es ist nicht weniger aufwendig.... ;-)))
Ich habe auf Basis dieser Informationen einen ersten Entwurf eines AHK-Skripts geschrieben, mit dem meine Kids
# den Edimax mittels klick auf ein Icon jeweils umschalten können (ist ein, dann ist nachher aus bzw. vice-versa)
# weiters wird der Status des Edimax wird angezeigt (sprich Kid A schaltet aus und Kid B am anderen PC sieht ein rotes Icon und kann mit Klick wieder einschalten)
# der Edimax wird nach z.B. 30 min (nach dem letzten Einschalten) automatisch ausgeschalten
am Edimax hängt bei mir der Netzwerkdrucker (via Printserver am LAN) der soll zu Stromsparzwecken nur dann laufen, wenn er von irgendwem in unserem Netzwerk (über mehrere Stockwerke verteil) benötigt wird.
Es gibt noch viel zu entdecken (die Zeitsteuerung des Edimax z.B. auch sehr interessant) am Edimax und seinen Befehlen, wenn ich wieder was habe, melde ich mich.
Schon ein recht geniales Teil der Edimax, wenn man sich ansieht was der kostet.
Tja und bitte den "Roman" (den langen Text) zu entschuldigen, aber diese Materie lässt sich nicht mit wesentlich weniger Text ausreichend beschreiben.
Schöne Grüße aus Österreich/Vorarlberg am Bodensee
J.M.