Forum: Haus & Smart Home Edimax SP-2101W entclouden


von n9n33r (Gast)


Lesenswert?

Hallo Elektronikfreunde!

Ich habe mir ein Projekt zurechtgelegt und zwar zwei Edimax SP-2101W 
SmartPlugs, ich möchte diese dazu bringen die Daten im LAN statt der 
Cloud abzulegen aber nicht direkt die Firmware modifizieren. Dazu will 
ich in meinem lokalen Netzwerk die Cloud "simulieren". Sprich lokale 
Dienste einrichten, die die gesamte Datenkommunikation mit den 
Smartplugs übernehmen.

Dafür habe ich die Standard-Komponenten frei konfigurierbar vorbereitet
- DNS-Server (per DHCP zur exklusiven Verwendung der Smartplugs)
- Webserver
- DB-Server
- WLAN AP

Danach habe ich den GPL Sourcecode herangezogen und versucht diesen zu 
analysieren. Gerätefirmware Url: 
http://www.edimax-de.eu/edimax/mw/cufiles/files/download/OpenSourceCode/transfer/Wireless/Smartplug/SP-2101W/SP-2101w_GPL_v1.03.zip

Nun ist es leider so das dieser "Quellcode" wieder teilweise aus 
präkompilierten Programmen besteht (Anteile die ich für relevant halte, 
bestehen aus bereits kompilierten Bytecode) und daher auch nicht 
besonders geeignet ist um die Protokollbeschaffenheit davon abzuleiten.

Danach habe ich die Smartplug geöffnet (Trotz der Dreieckschrauben), 
darin verstecken sich zwei ProzessorPlatinen, einmal Prolific PL8331 für 
die Leistungsmessung und ein Ralink RA5350F als WLAN Linux Modul für die 
Kommunikation nebst der SMD Wiese.

Mein nächster Ansatz war Reverse Engineering der Protokolle (Klartext & 
Binär).

Zur Analyse habe ich folgende Software/Hardware herangezogen
- MS Message Analyzer (Funktionsumfang erschlägt einen)
- Wireshark (Handlich und eher intuitiv)
- Packet Sender (Um UDP Pakete aus Hexcode abzusenden, habe dazu die 
Netzwerkkarten MAC auf "Edimax" umgestellt 80:1F:02:xx:xx:xx)
- Managed-Switch für die Port-Spiegelung


Als einschlägige Informationsquellen (allgemeine Theorie) habe ich 
bisher folgende herangezogen:
Paper: Reverse Engineering of Protocols from Network Traces
Url: http://www.di.fc.ul.pt/~nuno/PAPERS/WCRE11.pdf
Paper: MS Research - Automatic Protocol Reverse Engineering from Network 
Traces
Url: 
http://research.microsoft.com/en-us/um/people/wdcui/papers/discoverer-security07
Paper: MIT - Peer to Peer Communication across NAT
Url: 
https://www.usenix.org/conference/2005-usenix-annual-technical-conference/peer-peer-communication-across-network-address


Danach habe ich damit begonnen, dass fertig installierte Gerät 
einzuschalten und die IP-Daten mitzuschneiden, welche ins Internet 
gehen.

Festgestellte Abfolge:

S1.) DNS Abfrage nach www.google.com
S2.) kurze TCP-Session zum google server auf Port 80 ohne Nutzdaten zu 
senden
S3.) DNS Abfrage nach NTP-Zeitserver (NTP Pool Europa)
S4.) NTP-Zeitsynchronisierung
S5.) DNS Abfrage nach der Cloud (www.myedimax.com -> Amazon EC2 Cloud)
S6.) UDP Broadcast im LAN mit JSON Klartext Info zu benutztem UDP-Port
S7.) 2 UDP Nachrichten in die Cloud zu Port 8765 mit binärem Inhalt
S8.) UDP Antwort von der Cloud (binäre Daten)
S9.) S1
S10.)S2
S11.)UDP Paket mit Binärdaten an die cloud
-> dieses Paket sieht immer gleich aus, egal wie oft aus/ein oder welche 
der zwei Endgeräte angeschlossen wird.

Die Abfolge S9 bis S11 wiederholt sich nun automatisch alle 60 Sekunden.


Die binären Pakete aus S7 und S8 scheinen zusätzlich kodiert zu sein,
Das erste Byte ist so eine Art Index mit Offset, die restlichen Bytes 
können von Paket zu Paket durch bitweise Rotation (Rechtsshift) 
"umgerechnet" werden und ergeben so "zurecht" gerechnet immer das 
gleiche.

Es gibt immer ein Word (2 Bytes), das sich in allen Paketen wiederholt.
(Grundsätzlich ist es innerhalb eines Pakets immer gleich, nach dem 
"umrechnen" auch zwischen verschiedenen Paketen des selben Senders also 
entweder der Smartplug oder der Cloud)

Dieses Word ist zwischen Smartplug und Cloud verdreht (Highbyte vs 
Lowbyte)
[...]

So das sind erstmal meine Erkentnisse dazu, hat sich damit schon ein 
anderer auch auseinandergesetzt? Im ELV-Forum habe ich zum bauähnlichen 
Gerät SP-1101 bereits eine Menge zu Parametern im JSON Format gefunden 
um das Gerät zu parametrieren und Stati abzufragen. Das ist schon recht 
gut dokumentiert. Zum binären Kommunikationsbedürfniss mit der Cloud 
schweigen sich alle ziemlich aus. g

Na vielleicht hat ja jemand seinen Senf dazu? :)

mfg ngneer

von L33t (Gast)


Lesenswert?

Kannst du die UDP Pakete mal hochladen? Nur mit deiner Beschreibung kann 
ich mir den Aufbau schlecht vorstellen.

Dieses regelmäßig übertragene Paket scheint auch nur ein Lebenszeichen 
bzw. eine Synchronisation sein. Interessant wird es wohl erst wenn du 
eine Cloud-Funktion aktivierst und Nutzdaten fließen.

Hast du mal probiert wie stabil das alles läuft?
Aufgebohrter Google-Ping als Verbindungstest(?) und UDP für Messwerte 
hört sich jetzt nicht grade zuverlässig an...

Eine Erkenntnis hat deine Untersuchung immerhin schon ermöglicht: Wenn 
Deutschland sein Smart Grid einschaltet wird Google unter einer massiven 
DDOS-Attacke zusammenbrechen. :)

von Guntram (Gast)


Lesenswert?

Du musst nicht unbedingt die Cloud nachbauen, wenn Du nur an die Daten 
drankommen willst. Dein (Microcontroller/Arduino/Raspberry Pi/Was auch 
immer, das die daten speichert) kann die auch regelmäßig direkt 
abfragen. Mehr Info hier:

http://sun-watch.net/index.php/eigenverbrauch/ipschalter/edimax-protokoll/

von Georg F. (n9n33r)



Lesenswert?

L33t schrieb:
> Kannst du die UDP Pakete mal hochladen? Nur mit deiner Beschreibung kann
> ich mir den Aufbau schlecht vorstellen.

Ja, ich habe die angesprochenen Daten bereitgestellt.
Tool:
Wireshark Version 1.12.2 (v1.12.2-0-g898fa22 from master-1.12), Compiled 
(64-bit).

Filter:
Folgende Filter habe ich auf die Daten angewendet um Broadcasts und 
anderen Traffic aus meinem LAN auszublenden:
xx81:
1
(ip.src == 192.168.0.81) || (ip.dst == 192.168.0.81)
xx80:
1
(ip.src == 192.168.0.80) || (ip.dst == 192.168.0.80)

Dateien:
2x Bootsequenz vom SmartPlug mit der IP 192.168.0.81:
Edimax_SP-2101W_xx81.zip

2x Bootsequenz vom SmartPlug mit der IP 192.168.0.80:
Edimax_SP-2101W_xx80.zip


Filter:
Folgender Filter um beide Geräte zeitgleich zu analysieren
xx81+82: xx81:
1
(ip.src == 192.168.0.80) || (ip.dst == 192.168.0.80) || (ip.src == 192.168.0.81) || (ip.dst == 192.168.0.81)

Datei:
1x Bootsequenz von Smartplug IP 192.168.0.80 und IP 192.168.0.81 
gleichzeitig eingesteckt.
Edimax_SP-2101W_xx80+81_Bootup.zip


> Dieses regelmäßig übertragene Paket scheint auch nur ein Lebenszeichen
> bzw. eine Synchronisation sein. Interessant wird es wohl erst wenn du
> eine Cloud-Funktion aktivierst und Nutzdaten fließen.

Darüber habe ich mir auch schon das Hirn zermartert, ich "glaube" dass 
dies eigentlich nur dazu dient einen UDP-IP Kanal am Leben zu halten um 
NAT auszutricksen und ohne dezidierte Firewall Regel einen Rückkanal von 
der Cloud ins Gerät offen zu halten. Auch bekannt unter Port-Punching. 
Eigentlich gehört die SmartPlug damit im LAN in die DMZ.

> Hast du mal probiert wie stabil das alles läuft?
> Aufgebohrter Google-Ping als Verbindungstest(?) und UDP für Messwerte
> hört sich jetzt nicht grade zuverlässig an...

Die App hakelt ein wenig, da ja diese gar nicht selbst auf die cloud 
greift sondern im LAN die SmartPlug als Cloud-Proxy fungiert, komische 
Konfiguration.

Google investiert sehr viel in die 24/7/365 Verfügbarkeit. Nur ob Google 
weiß das es als TCP-Pingserver dient? TCP-Sessions brauchen schon sehr 
viel mehr Ressourcen am Server als stupides Ping.

> Eine Erkenntnis hat deine Untersuchung immerhin schon ermöglicht: Wenn
> Deutschland sein Smart Grid einschaltet wird Google unter einer massiven
> DDOS-Attacke zusammenbrechen. :)

Ohja, auch wenn ST&T sowie Edimax einen Haufen dieser Dosen verkaufen 
werden sich Larry und Sergey wundern wieso ein ganzes Rechenzentrum 
durch leere TCP-Sessions beschäftigt wird... bei 5000 Stk verkaufte 
Dosen sind das hmm 7.2 Mio TCP-Sessions pro Tag

von Georg F. (n9n33r)


Lesenswert?

Guntram schrieb:
> Du musst nicht unbedingt die Cloud nachbauen, wenn Du nur an die Daten
> drankommen willst.

Ja, da hast Du natürlich Recht. Streng genommen könnte ich damit viel 
einfacher mein oben genanntes Ziel erreichen. Möglicherweise muss ich es 
am Ende auch so machen und mich auf den Klartext Teil beschränken. 
Vorerst möchte ich mir das als Fallback offen lassen, falls ich Binär 
endgültig scheitere.

Aber das Binäre hat mein Interesse geweckt, da nach einem Hardware-Reset 
die Konfiguration erst dann abgeschlossen ist, wenn die Kommunikation 
übers Internet (zur Cloud) erfolgreich war. Außerdem interessiert es 
mich wahnsinnig welche Daten tatsächlich per Internet hinausgehen :)

von Georg F. (n9n33r)


Lesenswert?

Achja ich war noch so frei und habe eine Smartplug nochmal zerrissen um 
Fotos der Innereien anzufertigen:
SP-2101W PCB's Rev V1.0 http://imgur.com/a/pDxSF/embed

von Guntram (Gast)


Lesenswert?

Hab mal noch ein bisschen die UDP-Pakete angeschaut; also diejenigen, 
die Daten enthalten und nicht nur 4 Bytes. Du hast völlig recht, das 1. 
Byte gibt einen Zähler an, die andren Bytes sind entsprechend viele Bits 
rotiert. Der Trick ist: die Pakete sind XML Daten, das "echte" 1. Byte 
ist also immer ein '<'. Die Anzahl der Bits, um die die andren Bytes 
rotiert sind, sind zu dem '<' (Hex 3C) addiert. Wenn also das 1. Zeichen 
ein 'A' ist, Hex 41, dann sind die restlichen Bytes um 4 (0x41-0x3c) 
Bits rotiert.

Aus den Nutzdaten des Pakets 18 in Deiner xx80_Bootup1.pcapng wird 
dadurch
1
$ ./decode 3d38b039b0b61f1eb1b732b2103bb036bab29e11991818181110971f1e9738b039b0b61f
2
<param><code value="3000" /></param>

Und hier das C-Programm dazu:
1
char *teststr="41830b930b6bf150e11b7b232b01b30b63ab2be91189818981110179f150"
2
        "e16b7b232b6301b30b63ab2be9119a826991898189ba110179f150e14b23"
3
        "01b30b63ab2be911c18189328191320ab1a10aa9110179f150e1a3cb832b"
4
        "01b30b63ab2be9119a6b0b93a38263ab3b110179f150e10b634b0b9b01b3"
5
        "0b63ab2be911a2937b1b5b732b93110179f150e1630b734b8301b30b63ab"
6
        "2be91189c9917189b1c1718171c181110179f150e1630b73837b93a301b3"
7
        "0b63ab2be911a1c98999b1110179f150e19b7301b30b63ab2be9115a5a5a"
8
        "5a5a5a5a5a110179f150e12b731b93cb83a34b7b7301b30b63ab2be91181"
9
        "110179f150e1730ba3a3cb832b01b30b63ab2be911b9110179f150e1232b"
10
        "b333bbb32b9301b30b63ab2be9118971819919818981818189110179f150"
11
        "e183937b23ab1ba34b2301b30b63ab2be9112a224a6a0ac2199a82699189"
12
        "8189ba198971811989718199110179f150e179830b930b6bf1";
13
14
int main(int argc, char **argv) {
15
  char *bytes=teststr;
16
  if (argc>1)
17
    bytes=*++argv;
18
  int rotate=0;
19
  while (*bytes && bytes[1]) {
20
    int val;
21
    sscanf(bytes, "%02x", &val);
22
    if (rotate==0) {
23
      rotate=val-'<';
24
      val='<';
25
    } else {
26
      val<<=rotate;
27
      val=(val&0xff) | ((val&0xff00)>>8);
28
    }
29
    putchar(val);
30
    bytes+=2;
31
  }
32
  putchar('\n');
33
}

Der teststr ist Dein Paket 19, daraus wird
1
<param>
2
<code value="1010" />
3
<model value="SP-2101W" />
4
<id value="801F02FA64A5" />
5
<type value="SmartPlug" />
6
<alias value="Trockner" />
7
<lanip value="192.168.0.80" />
8
<lanport value="49136" />
9
<sn value="KKKKKKKK" />
10
<encryption value="0" />
11
<nattype value="7" />
12
<devfwver value="1.03#010001" />
13
<productid value="EDIMAX#SP-2101W#1.0#1.03" />
14
</param>

Und die Antwort der Cloud in Paket 20 ist
1
<param><code value="1020" /><id value="801F02FA64A5" /><status value="000" /></param>

Die immer gleichen 4 Bytes, die später an die Cloud geschickt werden, 
könnten aus der ID - die mit der MAC der Edimax übereinstimmt - 
generiert werden, aber da bin ich noch nicht sicher.

von Hans Ulli K. (Gast)


Lesenswert?

Der entsprechende "Client" auf der Edimax ist in

bin/agent
im RootFS
zu finden in den GPL Sourcen unter FW/srcbase/apps/prebuild

von Guntram (Gast)


Lesenswert?

Genau, und wenn man die Datei bei www.onlinedisassembler.com hochlädt, 
findet man einige interessante Funktionen:
1
0x004193e0  T  choose_random_shiftnum
2
0x00419504  T  rrotate
3
0x004195d8  T  lrotate
4
0x0041968c  T  show_binary
5
0x0041977c  T  rEncodeBytes
6
0x00419858  T  lDecodeBytes
7
0x00419934  T  mk_param

So bin ich auf die oben beschriebene Codierung der XML-UDP-Pakete 
gekommen. Leider liefert der retargetable Decompiler 
(http://decompiler.fit.vutbr.cz/) nichts vernünftiges. Und als ich 
fertig war, hätte ich mir gewünscht, die Beschreibung des 
Threaderstellers von wegen unterschiedlich rotierten Bytes genauer 
beachtet zu haben, das hätte mir erspart, eine Menge ungewohnten 
MIPS-Code zu lesen pfeif

von n9n33r (Gast)


Lesenswert?

Ein herzliches Danke für die exzellente Ausarbeitung! Das hilft weiter 
:)

von Guntram (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab mir jetzt auch 2 Edimaxen besorgt, und damit eine Weile 
rumgespielt.

Solange das Tablet im gleichen Lan ist wie die Edimax, scheinen die 
direkt miteinander zu sprechen. Wenn ich bei meinem Handy WLAN 
ausschalte und nur noch GSM erlaube, geht es über die Cloud. War ja 
anzunehmen.

Sobald das passiert, kommen wirklich von aussen UDP Pakete rein, in 
denen dann Anfragen an die Edimax stehen. Die sind auf die gleiche Art 
und Weise codiert, und enthalten (die X-e sind von mir):
1
<param><code value="1040" /><devip value="92.211.XX.YYY" /><devport value="58296" /><reqip value="80.187.XX.YYY" /><reqport value="31228" /><connip value="80.187.XX.YYY" /><connport value="31228" /><samelan value="0" /><relayip value="122.248.234.231" /><relaydevport value="8767" /><relayreqport value="8768" /><relayid value="e231d35c.e3b8.fb6abb50.79fc" /><nettype value="D" /><natweight value="14" /><reqfwver value="1.0#010000" /><reqdirport value="0" /><auth value="38f989453c733de4afaf64XXXXXXXXXX" /><seq value="801F02FA70BF141XXXXXXXXXX" /><delay value="500" /><relaytype value="" /><punchingtime value="" /></param>

devip ist dabei die IP meines DSL, connip und reqip meine GSM-IP.

Daraufhin macht die Edimax eine TCP-Verbindung zum relayip:relaydevport 
auf. Über die kommen Anfragen rein, auf die bekannte Art verschlüsselt, 
mit dem Beispielinhalt
1
<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD id="get"><NOW_POWER><Device.System.Power.NowCurrent></Device.System.Power.NowCurrent><Device.System.Power.NowPower></Device.System.Power.NowPower></NOW_POWER></CMD></SMARTPLUG>

was genau dem entspricht, was man auch via HTTP an die smartplug.cgi auf 
Port 10000 schicken kann, und dies wird dann beantwortet mit
1
PnvDataLen: 445
2
3
.......
wobei die ..... wieder nach dem bekannten Schema verschlüsselte Daten 
sind; entschlüsselt sind die genau das HTTP, das der Server 
zurückschickt (man beachte das Extra < am Anfang das die Verschlüsselung 
nun mal so will):

<HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 253
Date: Fri, 05 Dec 2014 21:40:03 GMT
Server: lighttpd/1.4.31

<?xml version="1.0" encoding="UTF8"?><SMARTPLUG id="edimax"><CMD 
id="get"><NOW_POWER><Device.System.Power.NowCurrent>0.7604</Device.Syste 
m.Power.NowCurrent><Device.System.Power.NowPower>148.77</Device.System.P 
ower.NowPower></NOW_POWER></CMD></SMARTPLUG>

Die Cloud-Funktion ist also im Wesentlichen eine Methode, die 
smartplug.cgi von aussen aufzurufen und ein Ergebnis zurückzubekommen.

Ich habe noch einen kleinen Dissector für Wireshark geschrieben, um die 
UDP-Daten gleich im Wireshark entschlüsseln zu können. Unter Linux muss 
die Datei als $HOME/.wireshark/init.lua abgelegt werden. Unter Windows 
muss die vermutlich irgendwo nach %APPDATA%\.wireshark, davon habe ich 
aber nicht wirklich Ahnung ...

von Klaus S. (phoneman)


Lesenswert?

Der Pfad für die init.lua unter Win7 ist 
C:\Users\XX-USERNAME-XX\AppData\Roaming\Wireshark , wobei 
"XX-USERNAME-XX" durch den eigenen Usernamen zu ersetzen ist. 
Funktioniert bei mir einwandfrei.

von Hans Ulli K. (Gast)


Lesenswert?

Ich habe mir mal die Bilder von  Georg F genauer angesehen ...

Die Anbindung vom Prolific PL8331 läuft per serieller Schnittstelle.
In dem Chip ist laut Datenblatt eine 8052 CPU, das Protokoll dürfte was 
eigenes sein.

Sowie es aussieht ist das mit dem Chip eine Referenzplattform. Dieser 
ist auch im DLINK DWA 215 eingebaut, dort wird aber ein Atheros WLAN Soc 
genutzt

von Triam (Gast)


Lesenswert?

Nochmal ein paar weitere Infos :

Im GPL Paket was Edimax zu verfügung stellt finden sich noch ein paar 
weitere Intressante Dinge. So gibt est bsp in der Webserverconfig eine
Verlinkung auf http:/admin:1234@sp2101w:10000/tnb2 Diese verlinkung
ruft /web/cgi-bin/mapping.cgi auf. Bei einem direkten Browseraufruf 
bekommt man eine gefakte 404 Meldung von mapping.cgi (es wird eine ander 
Schrift und Schriftgröße als beim Webserver genutzt) So wie es von 
String Fileinhalt aussieht ist mapping.cgi (/tnb2) in wirklichkeit eine 
Debbuging Seite.

Unter anderem findet sich im Stringinhalt von mapping.cgi ebenfalls auch 
eine Telnetd ausführung (telnetd -p 1355 -l /bin/sh) Es gibt also eine 
Vorbedinung die mapping.cgi zu leben erwecket.

Intressant auch easyedx, hier finden sich in den Strings auch hinweise 
auf die versteckte Seite (Device.System.HiddenPage.Enable und 
Device.Test.HiddenPag.Enable). Bisher hatte ich jedoch noch kein Glück. 
Werden die Befehle Parameterlos mit Slash am ende in ein XML Telegram 
verpackt, kommt zwar ein OK zurück aber das dann auch :(

Gruß Triam

von Michael R. (netadair)


Lesenswert?

Hallo,

> eine Telnetd ausführung (telnetd -p 1355 -l /bin/sh) Es gibt also eine

darauf hin wird auf Port 1355 ein telnetd gestartet, der auch gleich 
ohne Login eine Shell liefert...

Ciao
Michael

von Michael R. (netadair)


Lesenswert?

Hallo zusammen,

hier die Anleitung zum "Telnet enable" des SP-2101W:

- Gerät muss im Install-Modus sein ("AP-Mode" reicht nicht)
  - Hard reset (>10sec), oder <CMD id="reset" />

- http://admin:1234@192.168.20.3:10000/tnb2   -> OK
- telnet 192.168.20.3 1355
- nvc set Device.Test.HiddenPage.Enable ON
- Gerät über App konfigurieren (Bastle gerade an direktem Setup)...
- Reboot
- Wieder /tnb2 aufrufen unter der per DHCP zugewiesenen Adresse -> OK
- telnet xxx 1355
- Spass haben :)

Ciao
Michael

von Holger S. (spinne1000)


Lesenswert?

Hallo,

nachdem ich das hier alles gelesen hatte, hab ich mir auch mal einen zum 
Testen bestellt.

Eingerichtet und den Gefrierschrank angeschlossen. Ich hab dann ein 
kleines Shellscript geschrieben um die Verbrauchsdaten abzufragen und in 
ner Datenbank zu speichern. Hat auch funktioniert.... einen Tag lang. 
Dann war der Gefrierschrank ohne Strom. Der Schalter war tot. 
Eingeschickt und nen neuen bekommen (während dessen nochmal 3 bestellt) 
welcher nach einem Tag ebenfalls tot war.

Die 3 anderen funktionierten ca 5 Tage (an 
Kühlschrank/Mikrowelle/Kaffeemaschine, TV, PC). Diese wurden per 
Shellscript alle 5 Sekunden abgefragt. Daraus hab ich dann per PHP 
schöne Diagramme erstellt :-) Funktionierte eigentlich super, aber die 
Schalter liefern keine Messwerte mehr, sie schalten nur noch. Auch über 
die App zeigen sie keinen Stromverbrauch mehr an. Reset bringt auch 
nichts.

Muß ich wohl alle zurückschicken.

Weiß jemand ne Alternative die zuverlässig funktioniert?

lg
Holger

von PanJanek (Gast)


Lesenswert?

Maybe you will be interested in my little project - command line utility 
for controlling Edimax Plugs using undocummented cloud protocol:

https://github.com/panjanek/EdiManager

von Arne (Gast)


Lesenswert?

Hi!

Ein wirklich sehr interessanter Thread. Gibt es Erkenntnisse zum Thema 
"Einrichtung ohne App"?

Gruß

Arne

von Holger S. (spinne1000)


Lesenswert?

Arne schrieb:
> Hi!
>
> Ein wirklich sehr interessanter Thread. Gibt es Erkenntnisse zum Thema
> "Einrichtung ohne App"?

Hallo,

zur Einrichtung nicht, das hab ich initial über die App gemacht. Die 
weitere Benutzung funktioniert dann ohne die App.

lg
Holger

von Raphael M. (ramack)


Lesenswert?

oh, das klingt ja alles spannend hier. Hatte mir zufällig eine Edimax 
SP-2101W V2 bestellt, weil ich eine Wifi-Smart Schalt-Steckdose mit 
direktem Schalter am Gerät die ich an openhab klemmen kann wollte.
Irgendwie alles etwas ominös, was Edimax da macht - aber es scheint kein 
Einzelfall zu sein, "nach Hause telefonieren" will wohl nicht nur ET.

Hat jemand eine vernünftige Alternative? Oder weiß jemand wie man das 
Passwort während der Einrichtung setzt oder mit Firmware 3 umzugehen 
hat? Und wie ist es mit Einrichtung ohne App weitergegangen? War jemand 
erfolgreich?

Noch lieber wäre mir natürlich eine alternative Firmware die nicht mehr 
telefonieren will...

Gekauft ist das Ding jetzt erstmal Mal schauen, ob ich mich nochmal 
trau' das Ding einzuschalten

von Felix S. (fixe)


Lesenswert?

Hallo Raphael

Ich bin schon länger unterwegs mit den EDIMax SP2101, habe jetzt aber 
drei Stück neu gekauft. Mein problem is, dass die mit Firmware 1.0 
ausgeliefert werden und die aktuelle Version ist 3.0

Leider habe ich die SP2101 mit der Firmware 3.0 oder 1.0 nicht 
vernünftig konfigurieren können, Basis IPhone.

Weder die "alte" Software "EdiPlug" noch die "neuen" "EdiSmart" oder 
"EdiLife"
funktionieren wie gewünscht.

Der downgrade der Firmware auf 2.08 hat das Problem auch nicht behoben.
Ich bin jetzt auf der Suche nach der Firmware 1.03 für die SP2101 - die 
läuft für mich zufriedenstellend.

Entclouden kann man die SP2101 indem der UDP Verkehr gesperrt wird, nach 
dem die Konfiguration abgeschlossen ist.
Danach kann die Kommunikation getrost "Inhouse" laufen.

LG

Felix

PS: Wenn jemand die FW 1.03 für SP2101 hat, bitte melden!
Ja die verfügbare "open source" lässt sich nich kompilieren.

von Sven (Gast)


Lesenswert?

Felix S. schrieb:
> Hallo Raphael
>
> Ich bin schon länger unterwegs mit den EDIMax SP2101, habe jetzt aber
> drei Stück neu gekauft. Mein problem is, dass die mit Firmware 1.0
> ausgeliefert werden und die aktuelle Version ist 3.0
>
> Leider habe ich die SP2101 mit der Firmware 3.0 oder 1.0 nicht
> vernünftig konfigurieren können, Basis IPhone.
>
> Weder die "alte" Software "EdiPlug" noch die "neuen" "EdiSmart" oder
> "EdiLife"
> funktionieren wie gewünscht.
>
> Der downgrade der Firmware auf 2.08 hat das Problem auch nicht behoben.
> Ich bin jetzt auf der Suche nach der Firmware 1.03 für die SP2101 - die
> läuft für mich zufriedenstellend.
>
> Entclouden kann man die SP2101 indem der UDP Verkehr gesperrt wird, nach
> dem die Konfiguration abgeschlossen ist.
> Danach kann die Kommunikation getrost "Inhouse" laufen.
>
> LG
>
> Felix
>
> PS: Wenn jemand die FW 1.03 für SP2101 hat, bitte melden!
> Ja die verfügbare "open source" lässt sich nich kompilieren.

Gerade ausprobiert:

1. Virtuelle Maschine mit F-7-i386-DVD.iso aufgesetzt
2. Datei beim Hersteller geladen für FW 1.03
3. Nach Anleitung gebaut
4. Firmware liegt im image Ordner

???

von Raphael M. (ramack)


Lesenswert?

Also zum Einrichten die App verwenden damit habe ich keine 
grundsätzlichen Probleme, mit der App (EdiSmart auf Android) 
funktioniert auch alles so wie man es sich nach der Beschreibung von 
EdiMax vorstellt.

Was mir aber wichtig ist, ist die Anbindung an die 
Heimautomatisierungslösung Openhab und damit die Verwendung der 
Steckdose ohne die App.

Leider bin ich noch nicht dazu gekommen mich weiter um das Ding zu 
kümmern und habe noch nicht wirklich den Überblick welche Möglichkeiten 
ich habe. Würde mich darum freuen, wenn ihr eure UseCases bzw. Lösungen 
die in die selbe Richtung kurz beschreibt.

Edit: z. B. hätte ich auch die Frage ob im Quellcode die gesamte 
Firmware enthalten ist und damit quasi beliebig verändert werden könnte 
und ob man das dann auch "einfach" auf die Geräte flashen kann und ob 
das auch bei den aktuellen "V2" Modellen (noch) geht.

: Bearbeitet durch User
von Sven K. (svenk)


Lesenswert?

Raphael M. schrieb:
> Also zum Einrichten die App verwenden damit habe ich keine
> grundsätzlichen Probleme, mit der App (EdiSmart auf Android)
> funktioniert auch alles so wie man es sich nach der Beschreibung von
> EdiMax vorstellt.
>
> Was mir aber wichtig ist, ist die Anbindung an die
> Heimautomatisierungslösung Openhab und damit die Verwendung der
> Steckdose ohne die App.
>
> Leider bin ich noch nicht dazu gekommen mich weiter um das Ding zu
> kümmern und habe noch nicht wirklich den Überblick welche Möglichkeiten
> ich habe. Würde mich darum freuen, wenn ihr eure UseCases bzw. Lösungen
> die in die selbe Richtung kurz beschreibt.
>
> Edit: z. B. hätte ich auch die Frage ob im Quellcode die gesamte
> Firmware enthalten ist und damit quasi beliebig verändert werden könnte
> und ob man das dann auch "einfach" auf die Geräte flashen kann und ob
> das auch bei den aktuellen "V2" Modellen (noch) geht.

Zu dem Quellcode: es gibt einige binäre Teile, Dh. Treiber oder 
Programme die mit in die Firmware eingebaut werden, die aber nicht mit 
dem Quellcode geliefert werden.
In diesem Sinne lässt sich natürlich in einem gewissen Rahmen etwas 
verändern aber nicht alles; außer man schreibt die Programme/ Treiber 
von Grund auf neu. Ich hatte das angefangen, aber die private Zeit am 
Abend ist einfach begrenzt. :-)

Gruß Sven

von Felix S. (fixe)


Lesenswert?

Sven schrieb:
> Felix S. schrieb:

>
> Gerade ausprobiert:
>
> 1. Virtuelle Maschine mit F-7-i386-DVD.iso aufgesetzt
> 2. Datei beim Hersteller geladen für FW 1.03
> 3. Nach Anleitung gebaut
> 4. Firmware liegt im image Ordner
>
> ???

Hallo Sven

Ja an die VM hab ich nicht gedacht, habs auf meinem Fedora versucht :(
Aber jetzt hat das geklappt.

Besten Dank & Gruss

Felix

von Michael P (Gast)


Lesenswert?

Hi hatte jemand Erfolg das gerät ohne App ins WLAN zu konfigurieren?
Bin mir nicht sicher welche Settings ich für den Zugang ins WLAN zu 
setzen habe mit dem nvc command via telnet?
1
nvc all | grep Device.LAN.2G
scheint alles relativ passend zu sein, aber ich weis nicht ob diese 
werte zu ändern sind oder neue/andere unter
1
Device.LAN.2G.1
 anzulegen sind? Auch könnte ich mir vorstellen dass es eine art "setup" 
mode gibt der anschließend deaktiviert werden muss.


In Wirklichkeit benötigt man ja nicht mehr als eine WLAN Konfiguration 
welche via telnet oder CURL (sofern jemand den XML Schatz via wireshark 
bergen könnte?)and das gerät schicke, und der Rest kann via curl 
abgefragt und in anderweitig verarbeitet werden. (alle 60s einen request 
mit allen nötigen Informationen, auslesen via xmlint und in eine 
Datenbank werfen. Sollten nicht mehr als 10 Zeilen sauberer Bash code 
werden der via cron  vom raspi ausgeführt wird)

Gibt's hierfür noch interessierte die helfen können?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.