FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sir BuB am 12 September 2016, 15:20:01

Titel: EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Sir BuB am 12 September 2016, 15:20:01
Am kommenden Samstag (17.09.2016) gibt es bei Aldi-Süd das Steckerset. Kann dieses in FHEM eingebunden werden? Welche Voraussetzungen müssen den CULseitig dafür geschaffen sein. Laut Doku laufen diese auf der Funkfrequenz 433,92 MHz.

Näheres zum Produkt: https://www.aldi-sued.de/de/angebote/angebote-ab-samstag-17-september/detailseite-kw37-sa/ps/p/easy-home-wifi-steckerset-20160917/
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: KölnSolar am 12 September 2016, 15:30:27
Könnte passen. Man müsste ein Gerät öffnen oder Bedienungsanleitung zur Hand nehmen, um festzustellen, ob es sich um Intertechno-Derivate handelt. Dann benötigt man z.B. einen CUL433 mit a-culfw.
Grüße Markus
Titel: EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: KernSani am 12 September 2016, 17:10:51
Stellt sich nur die Frage, warum? Ein Baumarktsteckdosen-Set gibt's für die Hälfte...

Edit: Korrigiere. IP44 ist zu dem Preis beim Baumarkt eher nicht zu finden...
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: majorshark am 12 September 2016, 17:32:53
Soll aber nach der Beschreibung auch via WiFi funktionieren. Sollte sie auch da ja die Handyapp nicht 433MHz senden kann.
Grüße
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: ernst1024 am 12 September 2016, 18:07:34
blicke ich nicht so recht. Entweder WIFI oder 433? Oder sollte der WIFI Adapter die Befehle empfangen und mit 433 an die Steckdose schicken????
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Bapt. Reverend Magersuppe am 12 September 2016, 18:42:53
So lese ich das auch. Der Adaper macht WLAN, sendet dann weiter auf die Funkedose. Also ein gewisses pilight auf kleinstem Raum.

Da entbeine ich lieber eine veraltete 433-Dose vom Pollin und setz da ein ESP8266 Sonoff rein. Billiger.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: KernSani am 12 September 2016, 18:49:59
Zitat von: ernst1024 am 12 September 2016, 18:07:34
Oder sollte der WIFI Adapter die Befehle empfangen und mit 433 an die Steckdose schicken????
Steht genau so drin: "Der Adapter gibt die Befehle des Smartphones per Funk an den Funkadapter weiter"
aber wenn man die Dinger ohne das Wifi-Ding zum Laufen bekommt... Wie gesagt für IP44 ganz günstig, denke ich...
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Loetkolben am 14 September 2016, 11:50:36
Bei toom gibt es ein 4er-Set mit einer Aussensteckdose.
Wenn es nur um die Aussesteckdose geht, ist das noch günstiger.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: majorshark am 17 September 2016, 09:33:55
Aber die haben meistens keine DIP Schalter mehr und lassen sich in FHEM nur schwer oder garnicht integrieren. Ich habe mein Set bei Kleinanzeigen wieder verkauft. Ich werde mir für den Weihnachtsbaum so ein Sonoff organisieren. Dann passt auch die Reichweite
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: KernSani am 18 September 2016, 22:18:52
Hat denn jetzt jemand die Dinger mal ausprobiert?
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: marsmars am 19 September 2016, 11:53:02
Hallo zusammen!
Ich habe habe mir je einmal indoor und outdoor set gekauft.
Das setbesteht jeweils aus einer WLAN-Zwischensteckdose (immer indoor), die wenn ich dass richtig verstehe auch schallten kann und 433MHz Sender ist. Die 2. Steckdose (Indoor oder Outdoor) ist 433MHz.

Bis jetzt habe ich mich noch nicht registriert beim App-Anbieter (Bin kein FAN von).  Der Anbieter der Android App smart2connect heißt   Frank Wen. Die App habe ich mir dann mal mit raccoon aus dem Appstore heruntergeladen und mit jadx mal angesehen. Also erster Eindruck:

Des Weiteren habe ich die Steckdose in den Connect Modus gesetzt. (lange drücken bis LED rot schnell blinkt) und nach WLANs gescannt. noch kein Treffer. Hier sind einfach zu viele WLANs also ... Steckdose rausgezogen und mit dem Befehl als root

iwlist wlan0 scan | awk -F ':' '/ESSID:/ {print $2;}' >> k_ssid.txt

die umgebenen WLAN-Netze durch mehrfaches ausführen gesammelt. Anschliessend die Steckdose wieder in den Modus versetzt und mit dem Filter

iwlist wlan0 scan | awk -F ':' '/ESSID:/ {print $2;}' | grep -v -f k_ssid.txt

erneut gescannt. Leider kein Treffer ...
Auszug aus man iwlist:
       scan[ning]
              Give the list of Access Points and Ad-Hoc cells  in  range,  and
              optionally a whole bunch of information about them (ESSID, Qual-
              ity, Frequency,  Mode...).  The  type  of  information  returned
              depends on what the card supports.
              Triggering  scanning  is  a privileged operation (root only) and
              normal users can only read left-over scan results.  By  default,
              the  way  scanning  is  done  (the  scope  of  the scan) will be
              impacted by the current setting of the driver. Also,  this  com-
              mand is supposed to take extra arguments to control the scanning
              behaviour, but this is currently not implemented.


Bei mir wäre es möglich, dank Fritz!Box mit Freetz, die DNS-Einträge usw. zu verbiegen, bzw. entsprechend Geräte  zu sperren ...
Aber ich bin kein guter Programmierer, da kommt der Sysadmin durch.
Jemand eine Idee, auch ohne Registrierung auf die Dose zugreifen zu können? Hat sie bereits jemand im WLAN und könnte mal den Datenverkehr der Dose mitschneiden? HTTPS? Kann die APP auch über das lokale LAN mit der Doe sprechen (wie GHoma) oder geht das alles über den Server des Anbieters?

Gruß
marsmars
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Wernieman am 19 September 2016, 15:59:19
Fürs Sperren der Geräte brauchst Du keine FritzBox-Freeze ....

Verstehe ich es richtig, das Dein Gerät nicht ins WLAN-Netz geht, d.h. Du keines "siehst"?
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: marsmars am 19 September 2016, 22:36:12
Bezüglich sperren: Ja ich würde da die AVM-Kindersicherung nehmen ;-)
Bringe ich die WLAN-Steckdose in den Anlernmodus, dann finde ich keine neue WLANs
Mir fällt grade ein, wäre eine Hidden-SSID (verstecktes WLAN, "Netzwerkname verstecken") möglich?
In der APP habe ich per jadx für das Anlernen keine Hinweise gefunden. Wer kennt sich den mit Java und Android-App-Entwicklung gut aus und würde sich das mal genauer anschauen?
Ansonsten habe ich grade noch mit airodump-ng gemäß diesem  HowTo aber mit Deabian 8 Testing versucht: http://www.matthewhknight.com/how-to-find-hidden-ssids
airodump-ng wlan0
ioctl(SIOCSIWMODE) failed: Device or resource busy

ARP linktype is set to 1 (Ethernet) - expected ARPHRD_IEEE80211,
ARPHRD_IEEE80211_FULL or ARPHRD_IEEE80211_PRISM instead.  Make
sure RFMON is enabled: run 'airmon-ng start wlan0 <#>'
Sysfs injection support was not found either.

Aber leider bekomme ich da  "ailed: Device or resource busy", obwohl ich grade nicht im WLAN bin... verstehe ich nicht wirklich.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Wernieman am 20 September 2016, 08:32:33
Ist Dein Device wirklich wlan0??

Und im netz ist wirklich nichts über das WLAN des Adapters rauszukriegen .... da wirst Du um die erst-Konfiguration über die App nicht rumkommen ..
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Snickers am 21 September 2016, 12:43:08
Zitat von: marsmars am 19 September 2016, 22:36:12
airodump-ng wlan0

Aber leider bekomme ich da  "ailed: Device or resource busy", obwohl ich grade nicht im WLAN bin... verstehe ich nicht wirklich.

Erstmal danke, dein Nick hat mich zu meinem inspiriert ;)

Ich habe airodump ausgeführt, ohne mich selbst vorher vom Router zu trennen. Da hat es funktioniert.
Die MAC-Adresse des Wi-Fi Adapters gehört zu:

LSD Science and Technology Co.,Ltd.
Lierda Building,No.425 Dengyun Rd.
Hangzhou Zhijiang 310011
CN

Also 00:95:69:xx:xx:xx

Weiter bin ich aber auch noch nicht.

Edit: Ich bring sie zurück. Scheint wirklich nur über die Cloud zu funktionieren.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: norbert-walter am 21 September 2016, 21:36:33
Habe heute mein WiFi Steckerset von Aldi mal unter die Lupe genommen. Hier mal in Kurzform eine Zusammenfassung:

- WiFi Adapter fungiert als Gateway 433MHz für den Funkadapter
- WiFi Adapter wird per WLAN durch ein eigenes Netz (als AP) konfiguriert
- Login und Passwort dienen scheinbar nur zur Kontrolle der Nutzungshäufigkeit
- Die Befehle laufen nicht über eine Cloud und werden nicht extern ausgeführt sondern im lokalen Netz (daher schnelle Ausführung der Befehle)
- Internet wird nur für die Anmeldung benötigt, danach geht es auch ohne Internetverbindung und man kann beliebig schalten
- Der WiFi Adapter hat eine chinesische Webpage die unter der DHCP-IP auf Port 80 angesprochen werden kann
- Das Login lautet: admin | admin (wie einfach! extrem Sicherheitskritisch)
- Das Passwort lässt sich neu setzen (puhhh)
- Auf der Webpage sind viele Parameter einsehbar unter anderem der WLAN-Key als Klartext
- So wie es dort aussieht läuft der WiFi Adapter im STA-Mode (was immer das heisst, vermutlich als Kommandointerpreter)
- Man kann zusätzlich auch einen AP gleichzeitig freischalten, der ein eigenes WLAN aufbaut in das man sich einloggen kann
- Intern scheinen die Befehle per serielle Schnittstelle an einen weiteren Controller weitergegeben zu werden 115kBd 8N1
- Der Kommandointerpreter lauscht vermutlich auf Port 8088 als TCP-Client (steht so in der Webpage, habs noch nicht mit einem Sniffer getestet)
- Die Firmware lässt sich aktualisieren
- Der Schaltzustand des WiFi Adapters wird zurückgelesen, der des Funkadapters leider nicht
- Bedienung aus dem Internet ist nicht möglich. Der WiFi- Adapter muss im Internet-Router explizit freigegeben werden, da mit  man von Extern zugreifen kann. (ist auch gut so)

Fazit:
- den WiFi Adapter müsste man im lokalen Netz per TCP Befehle senden können, die er ausführt (Protokoll müsste man noch sniffen)
- Es müssten sich theoretisch auch Funkadapter andrer Hersteller auf 433MHz anbinden lassen (anlernfähige Apapter, da sind nur einfache 433MHz Sender und Empfänger drin)
- Damit liesse sich die Palette der Funkadapter vergrößern
- Der WiFi Adapter wäre ein prima Gateway zur Steuerung der Funkadapter mit FHEM
- Es sollten sich auch gleichzeitig mehrere WiFi-Adapter bedutzen lassen (geht, habs gestestet)

Werde die Teile nochmal zerlegen
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: norbert-walter am 21 September 2016, 23:30:24
Nachtrag:

Habe die Teile mal aufgescraubt und fotografiert. Hier noch Detailinfos zu der verbauten Elektronik:

WiFi Adapter:
- Enthält ein SOC-Modul mit der Bezeichnung LSD4WF-2MD05106 http://www.lierda.com/upload/product/150922/0938504001442905506.png (http://www.lierda.com/upload/product/150922/0938504001442905506.png)
http://www.lierda.com/product/id/376/show.html (http://www.lierda.com/product/id/376/show.html)
- Der SOC ist seriell mit einem Microcontroller von ST (STM8L101F3P6TR, 8MHz) verbunden, der die Schaltbefehle ausführt und den 433MHz-Sender ansteuert
http://www.farnell.com/datasheets/1880974.pdf (http://www.farnell.com/datasheets/1880974.pdf)
- Die Stromversorgung wird über ein Schaltnetzteil 5V/0,3A realisiert
- 433MHz-Sender als einfaches On-Board-Modul realisiert

Funkadapter:
- 433Mhz-Empfänger (auf ICs sind alle Bezeichner ausgeschliffen)
- Die Stromversorgung erfolgt über ein einfaches Kondensator-Netzteil
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: marsmars am 26 September 2016, 19:17:18
Hallo zusammen!
Da tut  sich ja was hier. Heute hatte ich nochmal ein paar Minuten Zeit.

@Wernieman: Ja es ist wlan0
@Snickers: Schade das du sie zurückbringst, weil über cloud laufen die bei mir definitiv nicht! Sondern nur im nur im lokalen WLAN derzeit mit der App.
@norbert-walter: Danke, bin jetzt auch so weit.

Da es anscheinend nicht übers Internet geht, wird die Dose wohl auch nicht SSL / TSL und Co  geben ;-) Ich sehe somit eigenlich kein Problem für einen TCP-Server und Client....
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: marsmars am 27 September 2016, 23:25:11
ALDI Süd mal angeschrieben. Ich finde das geht gar nicht mit dem chinesischen Webinterface und der WLAN PSK, welche quasi als Klartext abgreifbar ist...
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Wernieman am 28 September 2016, 20:40:18
Kannst Du Dich jetzt mit dem WLAN verbinden oder nicht??
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: marsmars am 28 September 2016, 20:45:40
Nach dem ich die App installiert habe usw. ja. [Rand Bemerkung Sony xperia Z und Sony xperia tablet z ging der 1. connect nicht. Beim Moto G5 schon. Anschließend fanden meine Sonys die auch im Netzwerk...]
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Wernieman am 29 September 2016, 08:46:50
Kriegst Du die WLAN Daten raus?

Denn dann könnte man mit Analysetools versuchen die Kommunikation mitzuschneiden ...
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: micky0867 am 04 Oktober 2016, 23:29:16
Ich habe mir heute auch so ein Set besorgt.

Für die Einrichtung braucht man die App, bei der man sich zwingend "registrieren" muss.
Registrieren bedeutet aber nur, dass man (irgend)eine Mailadresse angibt und sich ein Passwort ausdenkt.
Es kommt keine Mail mit Bestätigungslink oder so. Man kann sich dann einfach so in der App anmelden.

Nachdem ich den Funkstecker mit Hilfe der App angelernt hatte, habe ich ihn mittels der Fritzbox für's Internet gesperrt.
Die Funktionen waren danach trotzdem alle noch vorhanden. Also ist das wohl kein Cloudzeugs.

An das Web-Interface des Funksteckers kann man sich einfach per Browser anmelden (admin/admin).
Danach wird man von einer Oberfläche mit chinesischen Schriftzeichen begrüßt.
Per bing translator habe ich mich dann durchgehangelt und geschaut, was alles geht.

Das Webinterface bietet an, das Gerät im AP (AccessPoint) und/oder STA (STAtion) Modus zu betreiben.
Wie das mit dem gemischten Betrieb funktionieren kann, ist mir schleierhaft. Scheint aber auch egal, weil sich der AP Modus überhaupt nicht aktivieren ließ.
Das Gerät ging immer wieder in den STA Modus.

Dann habe ich mal versucht, den Netzwerkverkehr zu sniffen.
Wie es scheint, kommunizieren die App und der Funkstecker per UDP auf Port 8530.
Den Dateninhalt konnte ich nicht entziffern/zuordnen. Das mag vllt daran liegen, dass in der Bedienungsanleitung darauf hingewiesen wurde, dass der Funkstecker auf einen NTP-Server zugegreifen können muss und die App/das Handy auch eine entsprechend korrekte/ähnliche Uhrzeit haben muss. Dies ist für mich ein Anzeichen für eine mögliche Verschlüsselung.

Nach einigem Rumspielen und neu konfigurieren hat sich die weitere Untersuchung scheinbar von selbst erledigt.
Ich bekomme den Funkstecker nicht mehr dazu, sich an meiner Fritte anzumelden. Da App macht auch keine Anstalten, mit Fehlermeldungen zu einer Lösung zu kommen.

Eigentlich hatte ich die Hoffnung, dass ich auch noch andere EasyHome Komponenten, die ich hier rumliegen habe, damit schalten kann.
Ein kurzer Versuch brachte aber die schnelle Ernüchterung, dass es zumindest für meine Komponenten nicht so ohne weiteres geht.
Ein weiterer Versuch hat sich wg. og. Problems erledigt.

Fazit:
Schön wär's ja gewesen, wenn ich das Teil einfach per http hätte einbinden und auch meine anderen HomeEasy hätte schalten können.

Micky
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: starfish am 07 Oktober 2016, 18:01:25
Zitat von: Wernieman am 29 September 2016, 08:46:50
Kriegst Du die WLAN Daten raus?

Denn dann könnte man mit Analysetools versuchen die Kommunikation mitzuschneiden ...

habs mal versucht. anbei die beiden relevanten frames  für Ein- und Ausschalten des Hauptgeräts. Ich hoffe, ich habe die richtigen erwischt.  die MAC adresse ist 00 95 69 A7 31 28. 
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Wernieman am 07 Oktober 2016, 19:32:37
Es ist spät .. (und ich müde ..) womit hast Du mitgeschrieben?

Momentan sagt mir .pcap gar nichts .... wie öffnest Du?
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: starfish am 07 Oktober 2016, 21:05:24
mit der fritzbox capture  (http://fritz.box/html/capture.html) geht das recht komfortabel.  Mit wireshark kann man .pcap anschauen.
vllt. mal im thread über die lidl-wlan-dose nachlesen, ich denke die Chancen sind gut, dass man die Dose direkt ansprechen kann.
https://forum.fhem.de/index.php/topic,38112.0.html
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: Wernieman am 07 Oktober 2016, 23:03:56
Danke .. kann nur erst in 2 Wochen mich drum kümmern :o(
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: starfish am 11 Oktober 2016, 07:38:11
macht nichts.  Im oben erwähnten "Mutter-thread" wurden die codes zur Steuerung gefunden.

Voraussetzung ist eine "Original"-Einrichtung und Anmeldung am heimischen WLAN mittels der App.

Bei mir funktionieren folgende Skripte:
WiFi Dose ein
#!/bin/bash -x
echo -n "0140009569a73128105b94d42ef5c01e302b1b7cb7a7d8eab0" | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' | nc -u -w1 192.168.0.178 8530

Wifi Dose aus
#!/bin/bash -x
echo -n "0140009569a73128106630bcfe88830cb4eeab4a784356ab9f" | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' | nc -u -w1 192.168.0.178 8530

Slave-Dose ein
#!/bin/bash -x
echo -n "0140009569a731281082b36c894db462909fc19e24a48f73f8" | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' | nc -u -w1 192.168.0.178 8530

Slave-Dose aus
#!/bin/bash -x
echo -n "0140009569a7312810aff14bdafc0a3127bfadeb2a4d904bbf" | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' | nc -u -w1 192.168.0.178 8530


Achtung: die MAC im code-string (hier 009569a73128) muss an die eigene angepasst werden, ebenso natürlich die IP am Schluss.
Weitere Info im thread https://forum.fhem.de/index.php/topic,38112.0.html
Im thread wird beim Netcat-Aufruf   nc -4u  ...  angegeben,  die Netcat-Version auf meinem mini-Rechner versteht dies so nicht, deshalb  nc -u ....
Besonderen Dank an SebiM und enterpriseII.

Nachtrag 20.11.16  betr. Slave Dosen: die angegebene verschlüsselte Sequenz gilt offensichtlich nur für meine Slave-Dose, weil eine Hardware-Identifikation enthalten ist (wenn ich richtig verstanden habe).
Zitat enterpriseII:
Zitat00xxxxc21192dd010000ffff04040404 und 00xxxxc21192dd01000000ff04040404 sind die bereits bekannten Ein- und  Ausschaltbefehle für die WLAN-Steckdose.
xxxx zählt in der Regel einfach hoch. Um ein immer gültiges Paket zu erhalten, lässt sich xxxx durch ffff ersetzen.
Für deine 433 MHz-Steckdose sieht es so aus:
00xxxxc21192dd0879fa116004040404 ist zum Einschalten.
00xxxxc21192dd0879fa117004040404 ist zum Ausschalten.
Deine spezieller Funkadapter müsste durch den Teil 79fa11 identifiziert sein.
Auch hier ist xxxx für einen allgemeingültigen Schaltbefehl wieder durch ffff zu ersetzen.

"Verschlüsselt" man dann den Befehlsteil wieder und baut den Gesamtbefehl wieder zusammen, müssten sich für dich diese Paketinhalte zum Schalten der Funkdose ergeben:
Einschalten:
Code:

0140009569a731281082b36c894db462909fc19e24a48f73f8

Ausschalten:
Code:

0140009569a7312810aff14bdafc0a3127bfadeb2a4d904bbf
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: bepe am 16 Oktober 2016, 00:21:58
Hallo, ich hab mir mal die Mühe gemacht die Befehle etwas zu analysieren. Die meisten Bytes konnte ich bestimmen. Der eigentliche Befehl ist AES verschlüsselt, hätte man sich aber auch sparen können, wenn man "0123456789abcdef" als Key benutz :o.

Folgendes PS1 Script baut einen verschlüsselten Befehl und kann zum Ein-/Ausschalten benutzt werden:

[CmdletBinding(DefaultParameterSetName = "ByInput")]
param (
    [Parameter(ParameterSetName = "ByInput", Position = 0)]
    [string] $stateString

)

$remoteip   = "192.168.178.51"   # IP to send to
$remoteudpport = 8530            # port to send to

$aesManaged = New-Object "System.Security.Cryptography.AesManaged"
$aesManaged.Mode = [System.Security.Cryptography.CipherMode]::CBC
$aesManaged.Padding = [System.Security.Cryptography.PaddingMode]::Zeros
$aesManaged.BlockSize = 128
$aesManaged.KeySize = 128
$aesManaged.IV = [Text.Encoding]::UTF8.GetBytes("0123456789abcdef")
$aesManaged.Key = [Text.Encoding]::UTF8.GetBytes("0123456789abcdef")

$ON = (0x00, 0x00, 0xFF, 0xFF)
$OFF = (0x00, 0x00, 0x00, 0xFF)

$state = $OFF
if($stateString -eq "ON") {
$state = $ON
}

$data = (
0x00, # CONST
0x00, 0x05, # hop count

0xC2, # companyCode
0x11, # deviceType

0x92, 0xDD, #authCode

0x01 #set ???
)  + $state

$encrypted = $aesManaged.CreateEncryptor().TransformFinalBlock($data, 0, $data.Length)
$aesManaged.Dispose()

$header  = (
0x01, # CONST
0x40, # z ? 68 : 64 - both are working!?
0x00, 0x95, 0x69, 0xA6, 0x39, 0xC8, # Device MAC
$encrypted.length  # Data length
) + $encrypted

$udpClient = new-Object system.Net.Sockets.Udpclient(0)
$udpClient.Send($header, $header.length, $remoteip, $remoteudpport)
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: bepe am 16 Oktober 2016, 00:37:25
Zusammenfassung

Header:
  01 # CONST
  40 # 68 oder 64 (bit 3 bedeutet Content verschlüsselt)
  009569a639c8 # MAC
  10 # Data length
Data:
  6eed72d95f2db03b82d5662e0a603424 # verschlüsselter Content


Content: (6eed72d95f2db03b82d5662e0a603424 entschlüsselt)
  00 # CONST
  00D5 # hop count
  C2 # companyCode
  11 # deviceType
  92DD #authCode
  01 #set ???
  0000FFFF # state (0000FFFF: ON, 000000FF: OFF)
  04040404 # padding (ignore)
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: epek am 30 Oktober 2016, 13:50:01
Die weiße Dose im Aldi-Set erinnert mich stark an die Medion MD16173, die ich in diesem Thread https://forum.fhem.de/index.php/topic,38112.msg309885.html#msg309885 erwähnt habe. Zur Vollständigkeit verlinke ich den Beitrag über die Steuerbefehle dort. Vielleicht sind die Informationen hilfreich?
Im übrigen scheint es sich bei den jetzt bei Hofer Österreich vertriebenen Maginon-Dosen um ein anderes Modell zu handeln. Es basiert dennoch auf den HF-LPB100-Umsetzern.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: mha am 15 November 2016, 22:14:22
Mahlzeit,
ich habe nun meine ersten Erfahrungenmit  TCPDUMP auf Android gesammelt und bin auf Folgende Seite gestoßen:
http://icomen.yunext.com/api/device/wifi/list?accessKey=Q763W08JZ07V23FR99410B3PC945LT28&username=manfred%40mustermann.de&password=5F4DCC3B5AA765D61D8327DEB882CF99

password ist md5 (Buchstaben groß) des Passworts, Mailadresse hier im Beispiel manfred@mustermann.de

Hier erhalte ich ohne Paketsniffer die nötigen Daten, um das erforderliche UDP-Paket zu generieren:
  {"list":[{"macAddress":"XXXXXXX","companyCode":"C2","deviceType":"11","authCode":"92AA","deviceName":"Aquarium1","imageName":"","orderNumber":1,"lastOperation":1077151974282}],"success":true}

(Werte durch mich leicht verfälscht...)

Weiterhin gibt es Informationen zum gekoppelten RF-Geräten hier:
http://icomen.yunext.com/api/device/rf/list?accessKey=.......

Damit sollte es doch möglich sein, das zur Steuerung erforderliche UDP-Paket auch ohne Sniffer zu generieren?


Weitere Steckdosen die zumindest mit der gleichen APP Steuerbar sein sollten:
https://www.amazon.de/MEDION-Intelligente-Steckdose-Funksteckdosen-Set-App-Kompatibel/dp/B014V2OLIE
https://www.amazon.de/CSL-Steckdose-App-Steuerung-Bedienung-Tagesprogramm/dp/B01LXASIZG
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: ludwich am 16 November 2016, 13:01:48
#29
Hallo Miteinander,
genial was ihr schon rausbekommen habt!
Ich kann meine WLAN Dose (Aldi DIS-120 WIFI Adapter // smart2connect 48170 Hauptgerät vom Verkauf 14.11.2016) mit Starfischs Shellcode ansprechen. Meine beiden 433 Slaves klappen leider noch nicht.

Frage: (@bepe) Ich habe ein Verständnisproblem mit der AES(128/CBC/Padding=0) Verschlüsselung
Ich benötige ja einen 32 stelligen Key, "01234567890ABCDEF" ist aber nur 16 stellig, ich habe in einem Online Crypter den Key um 16 Nullen ergänzt, verdoppelt, je eine Null voran.... das Ergebnis immer falsch zumindest keine Anfang mit

Content crypted: (6eed72d95f2db03b82d5662e0a603424)
Content encrypted: (0000D5C21192DD010000FFFF04040404)

  00 # CONST
  00D5 # hop count
  C2 # companyCode
  11 # deviceType
  92DD #authCode
  01 #set   
  0000FFFF # state (0000FFFF: ON, 000000FF: OFF)
  04040404 # padding (ignore)


Kann mir da jemand helfen?

Schöne Grüße Ludwich

Ich versuche mal alle Labels zu sammeln und Nützliches zu kumulieren.
http://www.ludwich.de/ludwich/smart_home_IdOTy.html
PS:Wenn es fundierter wird gern auch in FHEM Wiki :-)
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: technyj am 19 November 2016, 01:39:52
Zitat von: mha am 15 November 2016, 22:14:22
Mahlzeit,
ich habe nun meine ersten Erfahrungenmit  TCPDUMP auf Android gesammelt und bin auf Folgende Seite gestoßen:
http://icomen.yunext.com/api/device/wifi/list?accessKey=Q763W08JZ07V23FR99410B3PC945LT28&username=manfred%40mustermann.de&password=5F4DCC3B5AA765D61D8327DEB882CF99

password ist md5 (Buchstaben groß) des Passworts, Mailadresse hier im Beispiel manfred@mustermann.de

Hier erhalte ich ohne Paketsniffer die nötigen Daten, um das erforderliche UDP-Paket zu generieren:
  {"list":[{"macAddress":"XXXXXXX","companyCode":"C2","deviceType":"11","authCode":"92AA","deviceName":"Aquarium1","imageName":"","orderNumber":1,"lastOperation":1077151974282}],"success":true


Hallo, wie soll ich deinen Post verstehen? Wenn ich meine email einsetze und mein PW md5 verschluessel komme ich nicht zum Ziel. Was mache ich falsch, bzw was ist der Accesskey? Vielen Dank
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: ludwich am 19 November 2016, 18:56:41
Ich hab es gerade nochmals probiert, bei mir klappt es :-)

Der AccessKey ist statisch
MD5 deines Passwortes (in Orginalschreibweise) ziehen --> Im MD5 HASH alles in Großbuchstaben wandeln.
Die E-Mail ist wie bei der Anmeldung @ ist %40

Hilft das ?

ludwich



Zitat von: technyj am 19 November 2016, 01:39:52
Hallo, wie soll ich deinen Post verstehen? Wenn ich meine email einsetze und mein PW md5 verschluessel komme ich nicht zum Ziel. Was mache ich falsch, bzw was ist der Accesskey? Vielen Dank
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: snessl am 30 November 2016, 22:29:12
Hallo,
hat es von euch schon jemand geschafft die Funksteckdose anzusprechen?
Den individuellen "addressCode" für die RF Empfänger habe ich auf der  icomen.yunext.com Seite ausgelesen. Ich habe jedoch auch Probleme, die Daten per AES zu verschlüsseln...

Ich habe mir gerade mit Hilfe eurer Infos und dem fauxmo Skript von makermusings ein Python Skript erstellt, welches eine WeMo Steckdose emuliert. Dieses läuft nun auf dem RaspberryPi und so werden die Wlan Steckdosen von EasyHome auch von Amazon Echo erkannt und können über Alexa gesteuert werden...

Wenn ich nun noch die Funksteckdosen per Sprachsteuerung ansprechen könnte, wäre das pefekt... :-)

Edit: Das Problem hat sich gelöst. Zum Kodieren habe ich auf dem Skript von bepe aufgebaut. Ich hatte nur noch einen Fehler in dem Datenpaket. Nun funktioniert aber auch die Ansteuerung der RF Steckdosen ohne Probleme.

Viele Grüße
Sebastian
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: HLCPsycho am 14 Januar 2017, 22:37:56
bepe hat den Kern bereits als Powershell-Script gepostet. Ich habe allerdings auch ein wenig gebraucht um das mit der Verschlüsselung zu verstehen.

Habe hier mal ein C#-Snippet:
        public static string DecryptString(byte[] encryptedString)
        {
            using (var provider = new AesManaged())
            {
                provider.Padding = PaddingMode.Zeros;
                provider.BlockSize = 128;
                provider.KeySize = 128;
                provider.IV = Encoding.UTF8.GetBytes("0123456789abcdef");
                provider.Key = Encoding.UTF8.GetBytes("0123456789abcdef");
                provider.Mode = CipherMode.CBC;

                var test = provider.CreateDecryptor().TransformFinalBlock(encryptedString, 0, encryptedString.Length);
                return ByteArrayToString(test);
            }
        }


Wichtig ist wohl dabei, dass Padding, BlockSize und KeySize vor dem IV und Key gesetzt werden, da sonst die Fehlermeldung wegen der Keylänge kommt.
Somit sollte sich also das "verschlüsselte" Element in dem abgefangenen UDP-Paket (z.B. über die Fritzbox-Protokollierung) in Klartext übersetzen lassen. Danach muss man es natürlich wieder verschlüsseln um es nutzen zu können. Habe nur leider null Erfahrung mit Programmierung für Android-Geräte. Wenn jemand ein gutes Tutorial kennt, wie ich eine "One-Click-Lösung" für Andoid erstellen kann immer her damit.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FH
Beitrag von: nifram am 02 Februar 2017, 18:16:20
hallo, ich sitze seit ein paar Tagen und versuch das ganze System zum laufen zu bringen. .. fast alles geht, nur noch  die  RF Empfänger ... ich habe schon den "AddressCode" für sie heraus gefunden aber ich verstehe nicht wie genau sollte ich diese lange Nummer zusammen stellen. Ich habe nach Anleitung die wifiplug-cloudfetch.php bei mir ausgefüllt. Die zeigt mir im Browser bzw. im Terminal nur "#!/usr/bin/php Usage: on|off". Ich habe wirklich überall nach einer Anleitung gesucht und herum probiert mit online crypter, aber irgendwas mach ich nicht richtig :-( kann mir bitte jemand helfen?

Danke im Voraus Mark
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FH
Beitrag von: Ronson1909 am 07 März 2017, 21:46:14
Zitat von: nifram am 02 Februar 2017, 18:16:20
hallo, ich sitze seit ein paar Tagen und versuch das ganze System zum laufen zu bringen. .. fast alles geht, nur noch  die  RF Empfänger ... ich habe schon den "AddressCode" für sie heraus gefunden aber ich verstehe nicht wie genau sollte ich diese lange Nummer zusammen stellen. Ich habe nach Anleitung die wifiplug-cloudfetch.php bei mir ausgefüllt. Die zeigt mir im Browser bzw. im Terminal nur "#!/usr/bin/php Usage: on|off". Ich habe wirklich überall nach einer Anleitung gesucht und herum probiert mit online crypter, aber irgendwas mach ich nicht richtig :-( kann mir bitte jemand helfen?

Es funktioniert also nur nicht der slave Befehl? Und die Slave Adresse kennst du? Wie schon von anderen geschrieben schaut der unverschlüsselte Teil so aus:

Slave aus:
00FFFFC21192DD08xxxxxx7004040404

Slave ein:
00FFFFC21192DD08xxxxxx6004040404

Wobei du xxxxxx durch die Slave Adresse ersetzen musst, z.B. A4CE79. Dieser String muss dann codiert werden mit AES CBC mit Key und Initialisierungsvektor (IV)

0123456789abcdef
(das ist in hex 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66)

Kann man z.B. auf http://aes.online-domain-tools.com/ machen. Das verschlüsselte Ergebnis packst du dann hinter den unverschlüsselten Anfang

0140yyyyyyyyyyyy10

wobei du y durch deine MAC ersetzt, z.B. 009569A7169E

Das Ergebnis ist dann z.B. bei mir:

0140009569A7169E10D108321C569D22918ED3BC5908CAC173 für Slave ein
0140009569A7169E109D86A35565BDD42F519E36CED2E33F09 für Slave aus

Ich hoffe, das fasste es nochmal zusammen.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: nifram am 12 März 2017, 22:26:05
endlich, vielen dank!
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: sandra am 05 April 2017, 19:46:32
Hallo,
ich habe mir letztes Jahr bei Aldi 2 Wifi Steckerset Außen gekauft, nachdem ich mich jedoch nicht bei dieser App anmelden möchte und noch keine weitere Hardware/Software habe, um euer System nutzen zu können, habe ich mich jetzt dazu entschlossen ersteinmal zwei Steckdosen mit Funkfernbedienung zu verwenden, welche ich später in euer System einbinden kann. Hierzu gleich mal Danke für die super Seite und auch das Script für Neulinge, ich werde mich dem ganzen dann weiter zuwenden, wenn die anderen Baustellen abgearbeitet sind.
Nachdem ich beim googeln auf eure Seite aufmerksam geworden bin, wollte ich jetzt hier einfach mal fragen, ob jmd von euch Interesse an den 2 EasyHome Wifi Steckerset Außen hat, da ich den Kassenzettel nicht mehr finde und sie deshalb auch nicht zurück geben kann.

Ich weis dass dieser Beitrag nicht direkt etwas mit FHEM zu tun hat, aber ihr wart ja von den Steckdosen und dem Preis begeistert.

LG
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: münster am 03 Juli 2017, 10:07:08
Hallo,

hat hier jemand weitergeforscht?

Ich habe das Set dieses Wochenende vom Wertstoffhof mitgenommen (spricht schon irgenwie für sich selbst, wenn jemand das Ding nach einem halben Jahr wegwirft ... ;-)).

Mich würde interessieren, ob's baugleiche Geräte gibt (womöglich günstig aus China direkt).
Und grundsätzlich, was hier damit nun realisiert werden konnte.
Konnten z.B. die Funk-Dosen schon angesteuert werden?
Über angepassten yunex-Link komme ich zumindest an das Hauptgerät ran.
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: doITyourself am 05 September 2017, 20:59:24
Hallo zusammen,

erst einmal vielen Dank an alle, die schon sehr gute Forschungs-Vorarbeit geleistet haben.

Ohne Euch wäre ich nicht weitergekommen :)

Inzwischen habe ich es nun fertiggebracht, sowohl Hauptschalter als auch Nebenschalter  von einem Raspberry Pi mittels einem Perl-Skript zu schalten und möchte das als kleinen Dank an die Community zurückgeben.

Vorher musste ich allerdings das Perl-Modul für AES-Verschlüsselung über CPAN installieren, da Debian das nicht mitliefert. Doch das ist ein anderes Thema, das ausführlich in anderen Foren beschrieben ist.

Ansonsten muss man nur noch die MAC-Adresse und die IP-Adresse des Funkmodules, sowie die  ID des RF-Schalters (wie man die erhält ist weiter oben beschrieben) anpassen.

Und eventuell muss noch am $count etwas nachgebessert werden ...


#!/usr/bin/perl
#
# Meldungen an den Funkschalter senden

use IO::Socket;
use Crypt::Mode::CBC;

# RF-Codierung der Remot-Dose
my $rf1= 0xcc ;
my $rf2= 0xdd ;
my $rf3= 0xee ;

# MAC-Adresse des Funk-Schalters
my $mac1 = 0x00 ;
my $mac2 = 0x95 ;
my $mac3 = 0x69 ;
my $mac4 = 0xca ;
my $mac5 = 0xff ;
my $mac6 = 0xeE ;

my $count = 999 ;
my $action = 0 ;

my $dest = "192.168.127.119" ;
my $port = 8530 ;

if ( $ARGV[0] eq "ON" )
   { $action = 1 ; }
elsif ( $ARGV[0] eq "OFF" )
   { $action = 2 ; }
elsif ( $ARGV[0] eq "ON2" )
   { $action = 3 ; }
elsif ( $ARGV[0] eq "OFF2" )
   { $action = 4 ; }

# Schluessel und Vektordefinition
my $key = '0123456789abcdef'; # length has to be valid key size for this cipher
my $iv  = '0123456789abcdef';  # 16 bytes



my $head = pack "CCCCCCCC" ,
           0x1 , # Konstante
           0x40, # Senden
           $mac1, $mac2, $mac3 , $mac4, $mac5, $mac6 ; # MAC-Adresse ;

my $message = pack "CCCCCCC",
            0x00 ,    # Const
            $count/256, $count%256 , # Count-Nr.
            0xC2 , # Company Code
            0x11 , # Device Type
            0x92, 0xdd ; # AuthCode

if ($action == 1) # MAIN ON
{
     $message .=  pack "CCCCC",
                  0x01,    # Set MAIN Command
                  0x00,0x00,0xFF,0xFF; # Command: On
}
elsif ($action == 2) # MAIN OFF
{
     $message .=  pack "CCCCC",
                  0x01,    # Set MAIN Command
                  0x00,0x00,0x00,0xFF; # Command: On
}
elsif ($action == 3) # RF ON   
{
     $message .=  pack "CCCCC",
                  0x08,    # Set MAIN Command
                  $rf1,$rf2,$rf3, # Adresse RF-Device
                  0x60; # Command: On
}
elsif ($action == 4) # RF OFF   
{
     $message .=  pack "CCCCC",
                  0x08,    # Set MAIN Command
                  $rf1,$rf2,$rf3, # Adresse RF-Device
                  0x70; # Command: On
}
else
{ printf STDERR "Usage:\n%s ON   - Main-Device einschalten\n%s OFF  - Main-Device ausschalten\n%s ON2  - Slave-Device einschalten\n%s OFF2 - Slave-Device ausschalten\n",
         $ARGC, $ARGC,$ARGC,$ARGC  ;
  exit 1 ;
}

my $cbc = Crypt::Mode::CBC->new('AES');
my $cryptmsg =  $cbc->encrypt($message , $key, $iv);

my $sizebyte = pack "C" , length $cryptmsg ;

my $datagram = $head . $sizebyte . $cryptmsg ;



$sock = IO::Socket::INET->new(Proto     => 'udp',
                              PeerPort  => $port,
                              PeerAddr  => $dest )
    or die "Creating socket: $!\n";

  $sock->send($datagram)."\n" or print "Error $!\n" ;

exit 0 ;    # Dieses Kommando auskommentieren, um die Daten anzuzeigen
while (length $datagram)
{  my $c = unpack "C", substr($datagram, 0 , 1 ) ;
      $datagram = substr ($datagram, 1) ;
      printf "%02x ", $c ;
}
print "\t( ";
while (length $message)
{  my $c = unpack "C", substr($message, 0 , 1 ) ;
      $message = substr ($message, 1) ;
      printf "%02x ", $c ;
}
printf " ) sent.\n";

Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: HLCPsycho am 18 Januar 2018, 20:15:30
Ich hab mittlerweile ne App gebastelt, worüber ich meine eine Dose schalten kann. Ist mit Android Studio  entstanden, wobei ich zwischenzeitlich auch an einer C# Variante gebastelt habe. Leider funktioniert es seit dem Update auf Android 8.1 nicht mehr ganz so sauber wie vorher und ich finde mein Repository gerade nicht, bin mir aber ziemlich sicher, dass ich das auf GitHub weggesichert hatte. Hatte mich nur ewig nicht hier eingeloggt. Falls also noch Interesse am Basteln besteht... versuche mal wieder öfter hier vorbei zu schauen.

<Edit>Hab gerade den Quellcode wiedergefunden... ich weiß allerdings aktuell nicht wie ich das wieder lauffähig bekomme... das rundherum müsste ich mir wohl neu zusammenclicken, aber hier das wichtigste:

public class Lichtschalter extends AppCompatActivity
{

    private boolean _switchState;
    private TextView _textSwitchStatus;
    private Switch _lichtschalter;

    // Mit den folgenden genannten Daten lassen sich alle Zustände der beiden Dosen beschreiben!
    static final String _ipAdressSchreibtisch = "192.168.123.45";
    static final String _ipAdressCouch = "192.168.123.46";

    static final String _staticPartOfHeader = "0140";
    static final String _ambigiousPartOfMyMacAdresses = "009569a6";
    static final String _fullPrefix = _staticPartOfHeader + _ambigiousPartOfMyMacAdresses;

    static final String _macAdressSchreibtischSuffix = "ab12";
    static final String _macAdressCouchSuffix = "ab13";

    static final String _headerDataLength = "10";
    //Ab hier muss verschlüsselt werden:
    static final String _staticDecryptedPrefix = "00";
    // Da ich heruasgefunden habe, dass der hopCount keine Rolle spielt, gilt einer für alle! Es ist allerdings noch zu prüfen, ob das für ALLE Dosen diese Art funktioniert!
    static final String _hopCountDefault = "0000";
    static final String _hopCountCouchAn = "0064";
    static final String _hopCountCouchAus = "012e";
    static final String _hopCountSchreibtischAn = "0218";
    static final String _hopCountSchreibtischAus = "0217";
    static final String _staticDecryptedMiddlePart = "c21192dd010000";
    static final String _staticDecryptedPartFull = _staticDecryptedPrefix + _hopCountDefault + _staticDecryptedMiddlePart;

    static final String _decryptedOffSignal = "00";
    static final String _decryptedOnSignal = "ff";

    static final String _staticDecryptedPadding = "ff04040404";

    static final String _passPhrase = "0123456789abcdef";

    static final String _testAus = "0140009569a6549c10c6cff0f82030b4da6b712af8e5e37d8e";
    static final String _testAn = "0140009569a6549c10468c5db3f86ac57b1c58247531ac8c1b";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lichtschalter);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        _textSwitchStatus = (TextView) findViewById(R.id.switchStatus);

// ToDo: Rausfinden warum das nicht geht!
//        Switch blub = (Switch) findViewById(R.id.lichtschalter);
//        if (blub != null)
//        {
//            blub.setOnCheckedChangeListener(onCheckedChanged(blub));
//        }

        _lichtschalter = (Switch) findViewById(R.id.lichtschalter);

        if(_lichtschalter != null)
        {
            _lichtschalter.setOnCheckedChangeListener(new OnCheckedChangeListener()
            {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
                {
                    if(isChecked)
                    {
                        _switchState = true;
                    }
                    else
                    {
                        _switchState = false;
                    }

                    try
                    {
                        tuWas();
                    } catch (UnknownHostException e)
                    {
                        e.printStackTrace();
                    } catch (SocketException e)
                    {
                        e.printStackTrace();
                    } catch (IOException e)
                    {
                        e.printStackTrace();
                    } catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                }
            });
        }
    }

    private void tuWas() throws Exception
    {
        java.net.InetAddress local = InetAddress.getByName(_ipAdressCouch);

        byte[] message;
        int server_port = 8530;

        DatagramSocket s = new DatagramSocket();

        if(_switchState == true)
        {
            message = hexStringToByteArray(_testAn);
//            message = buildFullCommand(_macAdressCouchSuffix, _decryptedOnSignal, _hopCountCouchAn);

            _textSwitchStatus.setText(_ipAdressCouch + " Switch is currently ON");
        }
        else
        {
            message = hexStringToByteArray(_testAus);
//            message = buildFullCommand(_macAdressCouchSuffix, _decryptedOffSignal, _hopCountCouchAus);

            _textSwitchStatus.setText(_ipAdressCouch + " Switch is currently OFF");
        }

        DatagramPacket dp = new DatagramPacket(message, message.length, local, server_port);
        s.send(dp);
    }

    /// <param name="macAdresse">Enthält nur den Teil der sich unterscheidet!</param>
    private static byte[] buildFullCommand(String macAdresse, String signal, String hopCount) throws Exception
    {
        byte[] encrytedByteArray = encrypt(_staticDecryptedPrefix + hopCount + _staticDecryptedMiddlePart + signal + _staticDecryptedPadding);
        String encryptedHexString = byteArrayToHexString(encrytedByteArray);
        // Aus irgendeinem Grund muss ich hier noch die Hälfte abschneiden, damit ich den gleichen encryptedString bekomme wie in C#
        encryptedHexString = encryptedHexString.substring(0, encryptedHexString.length()/2);

        String fullCommand = _fullPrefix + macAdresse + _headerDataLength + encryptedHexString;

        return hexStringToByteArray(fullCommand);
    }

    public static byte[] hexStringToByteArray(String s)
    {
        int len = s.length();
        byte[] data = new byte[len/2];

        for(int i = 0; i < len; i+=2)
        {
            data[i/2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i+1), 16));
        }

        return data;
    }

    final protected static char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
    public static String byteArrayToHexString(byte[] bytes) {
        char[] hexChars = new char[bytes.length*2];
        int v;

        for(int j=0; j < bytes.length; j++) {
            v = bytes[j] & 0xFF;
            hexChars[j*2] = hexArray[v>>>4];
            hexChars[j*2 + 1] = hexArray[v & 0x0F];
        }

        return new String(hexChars);
    }

    private static byte[] encrypt(String sinput) throws UnsupportedEncodingException, NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException
    {
        String skey = _passPhrase;
        String siv = _passPhrase;

        byte[] key = skey.getBytes("UTF8");
        byte[] iv = siv.getBytes("UTF8");
        byte[] input = hexStringToByteArray(sinput);

        Cipher cipher = Cipher.getInstance("AES/CBC/ZeroBytePadding");
        SecretKeySpec keyspec = new SecretKeySpec(key, 0, 16, "AES/CBC/ZeroBytePadding" );
        IvParameterSpec ivparams = new IvParameterSpec(iv);
        cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivparams);

        byte[] encrypted = cipher.doFinal(input, 0, input.length);

        return encrypted;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_lichtschalter, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings)
        {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public CompoundButton.OnCheckedChangeListener onCheckedChanged(Switch lichtschalter)
    {
        Toast.makeText(this, "The Switch is " + (lichtschalter.isChecked() ? "on" : "off"), Toast.LENGTH_SHORT).show();
        if(lichtschalter.isChecked())
        {
            _textSwitchStatus.setText(_ipAdressCouch + " Switch is currently ON");
        }
        else
        {
            _textSwitchStatus.setText(_ipAdressCouch + " Switch is currently OFF");
        }
        return onCheckedChanged(lichtschalter);
    }
}

</Edit>
Titel: Antw:EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: kroseneg am 06 Februar 2023, 02:01:29
Hallo

Der Thread ist zwar schon etwas älter, aber meine Antwort hat doch direkt was damit zu tun. Vielleicht sind bei dem einen oder anderen die erwähnten WLAN-Stecker ja noch im Einsatz, oder dümpeln auf dem Dachboden rum.

Warum ich schreibe: Ich habe für die Stecker, die die icomen-Cloud benutzen, eine MQTT-Bridge in Python geschrieben, die die Cloud vollständig ersetzen können sollte. Bisher habe ich diese zwar nur mit einer einzelnen Aldi-Steckdose probiert, ich denke aber, dass es problemlos mit anderen Marken und auch mit mehreren Steckdosen gleichzeitig funktionieren sollte.

Das Script findet ihr hier:

https://github.com/kroseneg/icomen-mqtt-bridge

Ich würde mich freuen, wenn es für jemanden nützlich ist :)

Viele Grüße
Titel: Aw: EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: epek am 03 Juni 2023, 11:36:13
Necroposting: icomen.yunext.com scheint, wie schon vor ein paar Jahren, nicht mehr erreichbar zu sein.
Sollte man dafür einen eigenen Thread aufmachen?
Titel: Aw: EasyHome WIFI Steckerset von Aldi-Süd und FHEM
Beitrag von: epek am 24 März 2024, 23:59:35
Zitat von: kroseneg am 06 Februar 2023, 02:01:29Hallo

Der Thread ist zwar schon etwas älter, aber meine Antwort hat doch direkt was damit zu tun. Vielleicht sind bei dem einen oder anderen die erwähnten WLAN-Stecker ja noch im Einsatz, oder dümpeln auf dem Dachboden rum.

Warum ich schreibe: Ich habe für die Stecker, die die icomen-Cloud benutzen, eine MQTT-Bridge in Python geschrieben, die die Cloud vollständig ersetzen können sollte. Bisher habe ich diese zwar nur mit einer einzelnen Aldi-Steckdose probiert, ich denke aber, dass es problemlos mit anderen Marken und auch mit mehreren Steckdosen gleichzeitig funktionieren sollte.

Das Script findet ihr hier:

https://github.com/kroseneg/icomen-mqtt-bridge

Ich würde mich freuen, wenn es für jemanden nützlich ist :)

Viele Grüße


Danke! Jetzt, da wieder einmal der Server, den die Icomen-App nützt, nicht erreichbar ist und die App (diesmal auch icomen X2 nutzlos ist), ist das vielleicht ein gute Alternative. Ich werde es einmal testen, habe aber schon einmal  in der Medion-Community darauf hingewiesen. Die mir bekannten ,,Marken" waren, Medion/Micromaxx (Hofer/Aldi, Medion), Aplic (CSL-Store/Amazon), Silvercrest.