Klimatisierung über WLAN

Das Thema wurde bereits wiederholt angesprochen, und es gibt sogar Lösungen, aber ich werde Ihnen noch etwas erzählen. Beim Durchsuchen einer der beliebtesten Online-Sites stieß ich auf ein Gerät, das mir bisher unbekannt war: Broadlink RM Mini 3. Der Preis betrug zu diesem Zeitpunkt 9,90 USD. Welches ist viel billiger als Analoga. Es gab aber auch Nachteile, über die unten.


Bild

Das Gerät ist ein Zylinder, in dessen oberem Teil sich 360-Grad-IR-Sensoren befinden. Die Geräteverwaltung erfolgt über die Anwendung. Sie können jedes Gerät steuern, das über einen IR-Empfänger verfügt. Aber mein Ziel war es, die Klimaanlage zu kontrollieren. Um nach Hause zu kommen, gelang es ihm bereits, eine angenehme Temperatur zu schaffen.

Mein erstes Problem war, dass meine Klimaanlage keine Befehle akzeptierte, die nach dem Training des Geräts automatisch vom Server heruntergeladen wurden. Alles wurde durch manuelles Konfigurieren der Fernbedienung entschieden, eine solche Möglichkeit ist im Programm vorhanden. Aber das war noch nicht alles. Als nächstes wurde mir klar, dass einige Befehle, zum Beispiel das Ändern der Lüftergeschwindigkeit, auch Temperatur enthalten. Es stellte sich heraus, dass sich auch die Temperatur während des Trainings des Geräts änderte, wenn ich die Lüftergeschwindigkeit änderte.

Als nächstes stellte sich heraus, dass die Anwendung das Gerät nicht über das VPN sieht. In einer Android-Anwendung wird das Gerät automatisch erkannt und auch im Netzwerk gefunden. Sie können die Adresse nicht manuell auswählen.

Das Folgende ist nicht kritisch, aber eine nuancierte Kontrolle über das Internet erfolgt über den Cloud-Service des Herstellers. Obwohl die Anwendung und das Gerät direkt im lokalen Netzwerk kommunizierten, wollte jemand keine Kontrolle über das Internet geben. Es ist keine offene API vorhanden.

Bei Verwendung von Traffic Sniffing auf einem WLAN-Router stellte sich heraus, dass die Anwendung und das Gerät über Port 80 miteinander kommunizieren.

tcpdump -w /tmp/dump.cap host <ip >


Bild

Es wurde beschlossen, eine Konsole auf einem lokalen Webserver zu erstellen, um die Klimaanlage zu steuern. Von Anfang an erstellen wir die Fernbedienung in der proprietären Anwendung:

Bild

Danach starten wir den Sniffer und beginnen langsam alle Befehle auszuführen. Stoppen Sie den Sniffer und stellen Sie sicher, dass die Anzahl der Pakete mit der Anzahl der ausgeführten Befehle übereinstimmt. Kopieren Sie sie in die Webanwendung. Das einzig mühsame war, sich an die Temperatur bei verschiedenen Drehzahlen zu erinnern. Es stellte sich Folgendes heraus:

Bild

Danach schloss ich den Internetzugang des Geräts.

Der gesamte Code wurde auf GitHub veröffentlicht

Source: https://habr.com/ru/post/de396347/


All Articles