Steuern Sie Smart Light "Yeelight" von Python aus, ohne die Cloud zu verwenden

yeelight.jpg (Das Foto stammt von der Produkteinführungsseite von Softbank Selection.)

Zusammenfassung von 3 Zeilen

1. Zuallererst

Am 24. April 2020 veröffentlichte Softbank C & S das Smart Light "Yeelight" für den heimischen Markt. Dieses intelligente Licht hat eine Funktion namens "LAN Control" (später beschrieben), die mich schon immer interessiert hat, aber seit es in Japan veröffentlicht wurde, habe ich es sofort gekauft und versucht, es von Python aus zu steuern. Natürlich ist die Fähigkeit perfekt.

2. Was ist Yeelight?

"Yeelight" (japanische offizielle Seite) ist ein Markenname von Smart Light und ein Produkt von "Xiaomi" (Komai Kagaku, Xiaomi), das für Smartphones und Haushaltsgeräte bekannt ist. Es gibt verschiedene Produkte wie Glühbirnen-, Band- und Laternentypen, aber hier werden wir über intelligente Glühbirnenleuchten sprechen.

Das diesmal gekaufte Modell "YLDP13YL" verfügt über eine Wi-Fi-Verbindung, 24-Bit-Farben (ca. 16,77 Millionen Farben), Unterstützung für intelligente Lautsprecher (Google Home, Alexa, Apple HomeKit) und ähnliche Funktionen wie allgemeine lampenförmige Smart Lights. Es hat jedoch eine charakteristische Funktion namens "LAN Control".

"LAN-Steuerung" wird später beschrieben. Weitere Spezifikationen von Yeelight finden Sie auf der Produkteinführungsseite von Softbank Selection. Siehe.

Zusätzlich zu der oben genannten SoftBank-Auswahl können Sie bei Amazon.de, Yodobashi.com usw. einkaufen.

Site Modell 1 2er-Set 4er-Set
Amazon.co.jp Multicolor 3.300 Yen 5.940 Yen 11.880 Yen
Glühbirnenfarbe (nur Dimmen) ¥ 2.200 3.960 Yen 7.920 Yen
Yodobashi.com Multicolor ¥ 3.630 - -

3. Was ist LAN-Steuerung?

Wie der Name schon sagt, ist die charakteristische Funktion "LAN Control" von Yeelight eine Funktion zur Steuerung von Lichtern über LAN (Local Area Network). Die API ist für die Öffentlichkeit zugänglich. Da es im LAN abgeschlossen ist, ohne die Cloud zu durchlaufen, kann die Steuerung mit weniger Verzögerung durchgeführt werden. Da die API für die Öffentlichkeit zugänglich ist, können Sie sie außerdem frei von Ihrer eigenen Anwendung aus steuern.

Weitere Informationen finden Sie auf der [Entwicklerseite] von Yeelight (https://www.yeelight.com/en_US/developer). (Die Seite wird sehr langsam geladen, bitte haben Sie etwas Geduld.)

4. yeelight Paket

Ohne die obige API-Spezifikation lesen zu müssen, verfügt Python über ein freiwilliges [yeelight] -Paket (https://pypi.org/project/yeelight/), das Sie einfach steuern können. Zum Zeitpunkt des Schreibens dieses Artikels war es "0.5.1".

mac$ pip install yeelight==0.5.1

Die API ist grob in Lichterkennung und -steuerung unterteilt. Werfen wir einen Blick auf jeden.

4.1. Suche

Nachdem Sie Yeelight eingerichtet und "LAN Control" aktiviert haben, können Sie das Licht mit "yeelight.discover_bulbs ()" erkennen. Da UDP-Multicast intern verwendet wird, muss es in Reichweite implementiert werden. (Im Allgemeinen denke ich, dass es in Ordnung ist, wenn Sie mit demselben Wi-Fi-Netzwerk verbunden sind.)

Ein spezielles Beispiel ist unten gezeigt.

mac$ python
Python 3.7.0 (default, Jun 28 2018, 07:39:16)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import yeelight
>>> yeelight.discover_bulbs()
[{'ip': '192.168.1.81', 'port': 55443, 'capabilities': {'id': '0x0000000012429e65', 'model': 'color4', 'fw_ver': '27', 'support': 'get_prop set_default set_power toggle set_bright set_scene cron_add cron_get cron_del start_cf stop_cf set_ct_abx adjust_ct set_name set_adjust adjust_bright adjust_color set_rgb set_hsv set_music', 'power': 'on', 'bright': '100', 'color_mode': '2', 'ct': '2000', 'rgb': '9109504', 'hue': '0', 'sat': '100', 'name': ''}}]

Wenn Sie die IP-Adresse des Schreibvorgangs bereits kennen, ist dieser Schritt nicht erforderlich. Sie können die IP-Adresse des Lichts auch in der Yeelight-App überprüfen.

4.2. Kontrolle

Wenn Sie die IP-Adresse des Schreibvorgangs kennen, können Sie den Schreibvorgang steuern. Es erfolgt keine Authentifizierung. Bitte achten Sie auf die Netzwerkkonfiguration.

Ein spezielles Beispiel ist unten gezeigt. Dies ist ein Beispiel für die Beleuchtung EIN, AUS, EIN / AUS-Umschaltung, Helligkeitseinstellung, Farbeinstellung nach RGB-Wert, Farbeinstellung nach HSV-Wert, Farbeinstellung nach Farbtemperatur und Eigenschaftenerfassung in der Reihenfolge von oben.

mac$ python
Python 3.7.0 (default, Jun 28 2018, 07:39:16)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import yeelight
>>> bulb = yeelight.Bulb("192.168.1.81")
>>> bulb.turn_on()
'ok'
>>> bulb.turn_off()
'ok'
>>> bulb.toggle()
'ok'
>>> bulb.set_brightness(50)
'ok'
>>> bulb.set_rgb(255, 0, 0)
'ok'
>>> bulb.set_hsv(320, 100, 50)
'ok'
>>> bulb.set_color_temp(3000)
'ok'
>>> bulb.get_properties()
{'power': 'on', 'bright': '100', 'ct': '3000', 'rgb': '8432127', 'hue': '221', 'sat': '49', 'color_mode': '2', 'flowing': '0', 'delayoff': '0', 'music_on': '0', 'name': None, 'bg_power': None, 'bg_flowing': None, 'bg_ct': None, 'bg_bright': None, 'bg_hue': None, 'bg_sat': None, 'bg_rgb': None, 'nl_br': None, 'active_mode': None, 'current_brightness': '100'}

Es gibt viele andere Funktionen. Weitere Informationen finden Sie in den API-Spezifikationen für Entwickler und in der API-Referenz des "yeelight" -Pakets.

Dann haben Sie einen guten Haushack!

Recommended Posts

Steuern Sie Smart Light "Yeelight" von Python aus, ohne die Cloud zu verwenden
Verwenden von Cloud-Speicher aus Python3 (Einführung)
Studie aus Python Hour8: Verwenden von Paketen
Mit Python abflachen
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Kopieren Sie mit Python rekursiv Dateien aus dem Verzeichnis direkt unter dem Verzeichnis
Anzeigen mit dem Python-Modul des mobilen Nifty Cloud-Backends
Instrumentensteuerung mit Python [pyvisa]
Berühren Sie NoSQL mit Python mithilfe des Oracle NoSQL Database Cloud Simulators
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
[Python + Heroku] Vom Zustand ohne Python zur Anzeige von etwas mit Heroku (Teil 2)
Versuchen Sie vorerst, FireBase Cloud Firestore mit Python zu verwenden
Verwenden von Rstan aus Python mit PypeR
[Python3] Google übersetzt Google Übersetzung ohne Verwendung von API
Hinweise zur Verwendung von MeCab aus Python
Existenz aus Sicht von Python
Studie aus Python Hour2: Steueranweisung
Python, Slice ohne Doppelpunkt (:). a .__ getitem__ (Slice (3,5)).
Verwenden Sie die Flickr-API von Python
Extrahieren Sie die Targz-Datei mit Python
Versuchen Sie es mit dem Python Cmd-Modul
Führen Sie Ansible über Python mithilfe der API aus
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Greifen Sie mit OAuth 2.0 von Python aus auf Tabellenkalkulationen zu
Versuchen Sie es mit Amazon DynamoDB von Python
Ich habe versucht, E-Mails von Node.js und Python mithilfe des E-Mail-Zustelldienstes (SendGrid) von IBM Cloud zuzustellen!
Zeigen Sie das Ergebnis der Videoanalyse mit der Cloud Video Intelligence API von Colaboratory an.
Verwenden Sie Python auf Raspberry Pi 3, um die LED mit Schaltersteuerung zu beleuchten!
Versuchen Sie es mit Pythons Webframework Django (1) - Von der Installation bis zum Serverstart
Erkennen Sie japanische Zeichen anhand von Bildern mithilfe der Cloud Vision-API von Google mit Python
Suchen Sie nach Synonymen aus der Wortliste (csv) von Python Japanese WordNet
So erstellen Sie eine Anwendung aus der Cloud mithilfe des Django-Webframeworks
Führen Sie Cloud Dataflow (Python) über AppEngine aus
Versuchen Sie es mit der Wunderlist-API in Python
Von Python bis zur Verwendung von MeCab (und CaboCha)
Versuchen Sie, die Kraken-API mit Python zu verwenden
Hinter dem Flyer: Docker mit Python verwenden
Verwenden Sie boto, um die Datei von S3 herunterzuladen.
Notizen vom Anfang von Python 1 lernen
Steuern Sie das Matrix-LED-Panel von ROS aus
Tweet mit der Twitter-API in Python
[Steuerungstechnik] Grafische Darstellung der Übertragungsfunktionen von Python
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Arbeiten mit OpenStack mit dem Python SDK
Verwenden Sie die Google Cloud Vision-API von Python
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Starten Sie den Router mit Python, Selenium, PhantomJS neu
Starten Sie den Python-Interpreter über Git Bash
Ab Python 3.4 wird pip zum Standardinstallationsprogramm! ??
Betreiben Sie den Cloud-Objektspeicher von Sakura von Python aus
Notizen vom Anfang von Python 2 lernen
[Python] Holen Sie sich die Hauptfarbe aus dem Screenshot
python setup.py testet den Code mit Multiprocess
Der Schlüssel zum Bereitstellen von Flask-Apps mit Python Buildpack in Cloud Foundry (Diego)
Flächenextraktionsmethode mit dem Zellautomaten Versuchen Sie die Flächenextraktion aus dem Bild mit Growcut (Python).
[IBM Cloud] Ich habe versucht, über Cloud Funtions (Python) auf die Tabelle Db2 on Cloud zuzugreifen.