IOT-Haushaltsgeräte, die über WLAN von einem Smartphone aus gesteuert werden können, sind praktisch, nicht wahr? Aber Es ist mühsam, jedes Mal eine dedizierte Anwendung für jedes Haushaltsgerät zu öffnen. .. Darüber hinaus steigt mit der Anzahl der Haushaltsgeräte auch die Anzahl der Apps. .. .. (´Д `)
einfach, ** Ich möchte alle Haushaltsgeräte zu Hause bedienen, indem ich Siri anrufe! **
Zumindest möchte ich es mit nur wenigen Fingertipps von appleWatch bedienen. Wir planen, IOT-Haushaltsgeräte in Siri zu integrieren.
In diesem Artikel werde ich im folgenden Ablauf grob erklären.
Klicken Sie hier für das GitHub-Repository ↓ Github:akiraset/daikinCleaner
Die folgende Umgebung wird angenommen.
--RaspberryPi: Um Homebridge zu einem Homekit-Hub zu machen --iPhone: Betreiben Sie die IOT Home Appliance-App und verwenden Sie sie mit Mitmproxy --appleWatch: Es macht Spaß zu bedienen ♪ Es ist einfach, vom Futon aus zu bedienen, wenn Sie nachts ins Bett gehen. (iPhone kann als Ersatz verwendet werden) --Mac: PC, Linux ist ebenfalls akzeptabel, aber bitte lesen Sie die entsprechende Installationsmethode.
"Internet der Dinge Dinge sind mit dem Internet verbunden" Das wird in Chimata erklärt, aber kurz gesagt, die aktuellen IOT-Haushaltsgeräte ** Haushaltsgeräte, die von einer Smartphone-App über WLAN gesteuert werden können! ** Ich denke, das ist vorerst ein Wort.
Als Funktion bieten Hersteller Apps zur Steuerung von Haushaltsgeräten an. Luftreiniger → App A. TV → App B. Klimaanlage → App C. ︙ Ah ... die Anzahl der Apps nimmt stetig zu. Wenn Sie versuchen, 10 Haushaltsgeräte zu betreiben, müssen Sie 10 Apps installieren und ordnungsgemäß verwenden. Es scheint einen Schritt zur Vereinigung zu geben, aber es wird einige Zeit dauern.
Hmmm, es ist doch lästig (´Д `) Wie eingangs erwähnt, möchte ich es nur über Siri und appleWatch ein- und ausschalten.
Ich habe es eines Tages bemerkt Die Tatsache, dass Haushaltsgeräte gesteuert werden können, wenn sie über WLAN mit demselben Netzwerk verbunden sind, bedeutet Wird es nicht einfach durch den Austausch mit der API gesteuert? ** Wenn Sie die API-Spezifikationen kennen, können Sie sie programmgesteuert steuern, ohne eine App zu verwenden ?! **
Beachten Sie jedoch, dass zwei Arten von IOT-Haushaltsgeräten erforderlich sind: Anwendung und Authentifizierung erforderlich / nicht erforderlich. Aus der Schlussfolgerung, Bei der Authentifizierung scheint es schwierig zu sein, das Programm zu steuern. Möglicherweise kommunizieren die App und die Haushaltsgeräte über den Authentifizierungsschlüssel. Ich denke, es ist schwierig, es programmgesteuert zu steuern, da der von Ihnen verwendete Authentifizierungsschlüssel nicht abgerufen werden kann. Als Beispiel für mein Haus ist der NORITZ-Warmwasserbereiter ein IOT-Haushaltsgerät, für das jedoch eine Zertifizierung erforderlich ist. Ich habe nach Iloilo gesucht, aber aufgrund meiner Fähigkeiten konnte ich den NORITZ-Warmwasserbereiter nicht über das Programm steuern. Wenn Sie sorgfältig darüber nachdenken, ist es für einen Warmwasserbereiter, der mit Gas und Feuer umgeht, zu gefährlich, um die Kontrolle zu übernehmen. Wie erwartet, NORITZ! Deshalb sind es ** IOT-Haushaltsgeräte, für die keine Zertifizierung erforderlich ist. ** ** **
Ich habe ein IOT-Haushaltsgerät gefunden, das die Bedingungen in meinem Haus erfüllt. "Daikin Befeuchtungsstreamer Luftreiniger MCK70W"
Dieses Mal werden wir basierend auf diesem Haushaltsgerät fortfahren.
Zunächst muss verstanden werden, welche API-Spezifikationen für die Kommunikation verwendet werden.
Als erstes müssen Sie zuerst auf der Website des Herstellers nach API-Spezifikationen suchen. Wenn der Hersteller die API-Spezifikationen veröffentlicht, ist es am zuverlässigsten und am einfachsten, auf sie zu verweisen.
Leider veröffentlichen nur wenige Hersteller die API-Spezifikationen für IOT-Haushaltsgeräte. In diesem Fall müssen Sie diese selbst suchen. Wie ??: Denken:
Wenn Sie in die Mitte der Steuerungs-App und der IOT-Haushaltsgeräte gelangen und einen Blick auf den Inhalt der API werfen können. .. Auf diese Weise können Sie den API-Inhalt überprüfen, den Sie betreiben möchten. Sie müssen nicht alle API-Spezifikationen kennen, sondern nur die Funktionen, die Sie steuern möchten. Es wäre auch gut, wenn die App tatsächlich einen Befehl geben und den Inhalt des Befehls überprüfen könnte.
mitmproxy
Das perfekte Werkzeug ist "Mitmproxy". Der Name steht für "Mann im mittleren Stellvertreter".
Mitmproxy ist ein in Python geschriebenes Programm und wird häufig zum Überprüfen von Anforderungen und Antworten verwendet, indem zwischen der Anwendung und dem Server eingegeben wird, hauptsächlich bei der Entwicklung von Smartphone-Anwendungen.
Einzelheiten finden Sie im folgenden Artikel. ↓ Es ist etwas alt, aber leicht verständlich organisiert. Einführung in Mitmproxy für Entwickler mobiler Apps
Was Sie mit Mitmproxy machen, ist
Dann werde ich kurz die Einführungsmethode vorstellen.
Zuerst ist das Setup.
install Verwenden Sie pip, um es auf Ihrem Mac zu installieren. Für die Installation ist Xcode erforderlich.
#install
pip install mitmproxy
Stellen Sie als Nächstes auf der iPhone-Seite ein, dass Mitmproxy, das auf einem Mac ausgeführt wird, als Proxyserver akzeptiert wird. Wählen Sie auf Ihrem iPhone "Einstellungen> Wi-Fi> Verbundenes Netzwerk> HTTP-Proxy". Stellen Sie den folgenden Inhalt ein.
Wenn Sie können, starten Sie Mitmproxy auf der Mac-Seite.
mitmproxy
Nach dem Start auf dem Mac ist es erforderlich, das Mitmproxy-Zertifikat auf der iPhone-Seite zu erhalten Kehre wieder zum iPhone zurück. Öffnen Sie Ihren iPhone-Browser und rufen Sie die Adresse "http: // mitm.it" auf.
Wählen Sie die Apple-Marke und installieren Sie das Zertifikat. Jetzt können Sie Mitmproxy verwenden.
Lassen Sie uns nun einen Befehl aus der App ausgeben.
・ Daikins App ↓ Versuchen Sie, den Befeuchtungsmodus auszuführen.
・ Ich konnte den Eingang der Anfrage mit mitmproxy bestätigen ↓
Ja ich habe es verstanden! Überprüfen Sie auf die gleiche Weise die Funktionen, die Sie für erforderlich halten.
Wenn Sie die minimal erforderlichen API-Spezifikationen erreicht haben, schreiben Sie ein Steuerungsprogramm, das die API verwendet. Es wird empfohlen, während der Überprüfung der Bewegung zu codieren, um festzustellen, ob die von Mitmproxy bestätigte API IOT-Haushaltsgeräte wirklich steuern kann, da dies leicht zu verstehen ist.
Sie können dies überprüfen, indem Sie die API im Browser aufrufen. Sie ist jedoch sehr ineffizient. Wir empfehlen daher, das API-Bestätigungstool zu verwenden. Ich verwende die API-Tools von IntelliJ. Wenn Sie JetBrains nicht verwenden, verwenden Sie ähnliche Funktionen wie Ihre IDE, und Sie werden wahrscheinlich eine haben. Wenn Sie noch keine haben, ist die kostenlose Software "Postman" für ihre Benutzerfreundlichkeit bekannt. Postman Download
Im Folgenden finden Sie eine Beschreibung des Tools "IntelliJ: RESTful Web Service Test". Ich denke, andere API-Tools sind ähnlich, also lesen Sie sie bitte.
・ Weisen Sie den Luftreiniger an, im Befeuchtungsmodus zu starten
・ Sensorinformationen vom Luftreiniger erhalten
-Sie können den Verlauf auch rückwirkend überprüfen und ausführen. Es wird die Meldung "Dieser REST-Client ist ~" angezeigt, es gibt jedoch kein Problem, und Sie können ihn normal verwenden. Ich werde es kurz erklären.
---- Methode: GET / POST etc. --Host / Port: Ziel-IP-Adresse (in diesem Fall die IP-Adresse der IOT-Home-Appliance) --Path: Da es sich um eine API handelt, unterscheidet sich der Inhalt dieses Pfads je nach Verarbeitungsinhalt. Hier ist wichtig.
+
hinzufügen, mit -
löschen. Sie können es durch Doppelklick ändern.▶
: Ausführung. Die Anfrage wird gesendet. (IOT-Haushaltsgeräte verhalten sich)
--Anfragetext: Sie können die gespeicherte JSON-Datei als Parameter für Text, Dateiinhalt usw. verwenden.andere,
Wenn Sie das Steuerungsprogramm während der Verwendung des API-Tools codieren, wird es große Fortschritte machen. Versuchen Sie es also bitte.
Es ist einfach, aber ich habe diesen Code grob geschrieben.
daikinCleaner.py
import sys
import requests
args = sys.argv
if len(args) == 1:
print('An argument is necessary.')
exit()
arg = args[1]
#IP-Adresse des Luftreinigers
url = 'http://192.168.0.10'
#Grundinformation
basic_info = '/common/basic_info'
#Sensorerfassung
get_sensor = '/cleaner/get_sensor_info'
#Holen Sie sich die Kontrolle
get_control = '/cleaner/get_control_info'
#Steuerung SET
set_control = '/cleaner/set_control_info'
#Satz von Parametern, die Sie ausführen möchten
param_off = {'pow': 0}
param_max = {'pow': 1,
'mode': 0,
'humd': 3,
'airvol': 5,
}
param_hum = {'pow': 1,
'mode': 4,
'humd': 4,
'airvol': 0,
}
def control(params):
return requests.get(url + set_control, params)
print('param: ', arg)
if arg == 'off':
res = control(param_off)
text = res.text
elif arg == 'max':
res = control(param_max)
text = res.text
elif arg == 'hum':
res = control(param_hum)
text = res.text
else:
text = 'nothing'
print('res: ', text)
off
: Schalten Sie den Luftreiniger aus
--max
: Maximale Luftfeuchtigkeit, maximale Windkraft!
--hum
: Starten Sie im Befeuchtungsmodus
-- / common / basic_info
: Sie können grundlegende Informationen wie die Modellnummer des Luftreinigers abrufen.
-- / cleanner / get_sensor_info
: Sie können Sensorinformationen wie Luftfeuchtigkeit, Temperatur und Luftverschmutzung abrufen. Daikins Sensor ist ausgezeichnet, so dass wir anscheinend etwas anderes machen können, indem wir diese Sensorinformationen erfassen. (Wird regelmäßig erfasst und für Statistiken grafisch dargestellt, oder das Licht geht an, wenn die Luft schmutzig wird. W)
-- / cleanner / set_control_info
: Verwenden Sie diesen Pfad, um den Luftreiniger zu steuern.Um mit Siri arbeiten zu können, muss das HomeKit von Apple immer Programmbefehle akzeptieren. Machen Sie den Raspberry Pi also zu einem Hub-Terminal von HomeKit und stehen Sie immer bereit.
Um ein Programm in HomeKit zu registrieren, können Sie es einfach mithilfe der Homebridge der Node.js-Bibliothek festlegen. Weitere Informationen und Einstellungen zu HomeKit und Homebridge finden Sie in den vorherigen Artikeln [Philips_Hue ist mit API verknüpft! ~ Raspberry Home Kit erstellen](https://qiita.com/akinko/items/58c650f99f25fc7e3cb5#%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4%E3%82 % 92homekit% E5% 8C% 96% E3% 81% 99% E3% 82% 8B)
Dieses Mal habe ich Homebridge Folgendes hinzugefügt.
config.json
"accessories": [
{
"accessory": "CMD",
"name": "Luftreiniger",
"on_cmd": "python3 /home/pi/daikinCleaner/daikinCleaner.py hum",
"off_cmd": "python3 /home/pi/daikinCleaner/daikinCleaner.py off"
}
]
Dieses Mal ist meine Haut im Winter trocken, daher habe ich als Argument "Brummen" angegeben, damit sie im Befeuchtungsmodus ein- und ausgeschaltet werden kann. Wenn der Regen kommt, werde ich das Argument in erfrischende Luft ändern: thumbsup_tone2:
Nachdem Sie sich bisher eingerichtet haben, starten Sie homebridge neu und Sie können loslegen! Ich werde es sofort benutzen !!
"Luftfilter einschalten (ein!)" → Der Luftreiniger arbeitet im Befeuchtungsmodus "Luftfilter ausschalten (aus)" → Der Luftreiniger schaltet sich aus.
Es kann auch mit appleWatch betrieben werden (auch mit iPhone) Tippen Sie einfach auf / aus! Ich war so glücklich, dass ich es viele Male vor dem Luftreiniger gemacht habe.
Ich habe es auch der Home-Szene hinzugefügt und es wie folgt genossen. "Gute Nacht" → Die Lichter gehen aus und PS4 ist ausgeschaltet und Luftreiniger ist aus "Guten Morgen" → Einige Lichter leuchten und der Luftreiniger startet im Befeuchtungsmodus
Mein Ziel ist es, ein schläfriges Leben zu führen, also werde ich mein Bestes geben, um dies zu tun!
Diesmal erklärte ich mit Daikins Luftreiniger, aber ich denke, dass andere IOT-Haushaltsgeräte auch gesteuert werden können, wenn keine Authentifizierung über WLAN erforderlich ist. Wir werden Haushaltsgeräte mit Sternen einzeln untersuchen und sie in die Siri-Familie aufnehmen ... Es macht Spaß und ist aufregend, sich das nur vorzustellen. (Und der respektierte Blick meiner Tochter wird gesammelt.)
Vielen Dank für das Lesen bis zum Ende.
Recommended Posts