Contrôlez la lumière intelligente «Yeelight» de Python sans utiliser le cloud

yeelight.jpg (La photo provient de la page d'introduction du produit de Softbank Selection)

Résumé de 3 lignes

1.Tout d'abord

Le 24 avril 2020, Softbank C & S a lancé la lampe intelligente «Yeelight» pour le marché intérieur. Cette lampe intelligente a une fonction appelée "LAN Control" (décrite plus tard), et je m'y intéresse depuis longtemps, mais depuis sa sortie au Japon, je l'ai achetée immédiatement et j'ai essayé de la contrôler depuis Python. Bien sûr, la compétence est parfaite.

2. Qu'est-ce que Yeelight?

"Yeelight" (page officielle japonaise) est un nom de marque de lumière intelligente et est un produit de "Xiaomi" (Komai Kagaku, Xiaomi), qui est célèbre pour les smartphones et les appareils ménagers. Il existe divers produits tels que le type d'ampoule, le type de ruban et le type de lanterne, mais nous parlerons ici des ampoules intelligentes de type ampoule.

Le modèle "YLDP13YL" acheté cette fois-ci dispose d'une connexion Wi-Fi, d'une couleur 24 bits (environ 16,77 millions de couleurs), d'une prise en charge de haut-parleurs intelligents (Google Home, Alexa, Apple HomeKit) et de fonctionnalités similaires aux lampes intelligentes générales en forme d'ampoule. Cependant, il a une fonction caractéristique appelée "Contrôle LAN".

"LAN Control" sera décrit plus tard, mais pour d'autres spécifications de Yeelight, voir Page d'introduction du produit de Softbank Selection. Se il vous plaît se référer.

En plus de la sélection SoftBank ci-dessus, vous pouvez acheter sur Amazon.co.jp, Yodobashi.com, etc.

Site modèle 1 Ensemble de 2 Ensemble de 4
Amazon.co.jp Multicolore 3 300 yens 5 940 yens 11 880 yens
Couleur de l'ampoule (gradation uniquement) 2 200 ¥ 3 960 yens 7 920 yens
Yodobashi.com Multicolore 3 630 ¥ - -

3. Qu'est-ce que le contrôle LAN?

Comme son nom l'indique, la fonction caractéristique de Yeelight "LAN Control" est une fonction de contrôle des lumières via LAN (Local Area Network), et son API est ouverte au public. Comme il est effectué dans le LAN sans passer par le cloud, un contrôle avec moins de retard peut être effectué. De plus, puisque l'API est ouverte au public, vous pouvez la contrôler librement depuis votre propre application.

Pour plus d'informations, veuillez consulter la [page développeur] de Yeelight (https://www.yeelight.com/en_US/developer). (La page se charge très lentement, alors soyez patient)

4. paquet yeelight

Sans avoir à lire la spécification de l'API ci-dessus, Python a un package volontaire yeelight que vous pouvez facilement contrôler. Au moment de la rédaction de cet article, il était "0.5.1".

mac$ pip install yeelight==0.5.1

L'API est largement divisée en découverte légère et contrôle. Jetons un coup d'œil à chacun.

4.1. Recherche

Après avoir configuré Yeelight et activé "LAN Control", vous pouvez détecter la lumière avec yeelight.discover_bulbs (). Puisqu'il utilise la multidiffusion UDP en interne, il doit être implémenté à sa portée. (En général, je pense que ce n'est pas grave si vous êtes connecté au même réseau Wi-Fi)

Un exemple spécifique est présenté ci-dessous.

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': ''}}]

Si vous connaissez déjà l'adresse IP de l'écriture, cette étape n'est pas nécessaire. Vous pouvez également vérifier l'adresse IP de la lumière depuis l'application Yeelight.

4.2. Contrôle

Si vous connaissez l'adresse IP de l'écriture, vous pouvez contrôler l'écriture. Il n'y a pas d'authentification. Veuillez faire attention à la configuration du réseau.

Un exemple spécifique est présenté ci-dessous. Ceci est un exemple d'éclairage ON, OFF, ON / OFF, réglage de la luminosité, réglage de la couleur par valeur RVB, réglage de la couleur par valeur HSV, réglage de la couleur par température de couleur et acquisition des propriétés dans l'ordre du haut.

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'}

Il existe de nombreuses autres fonctions, veuillez donc vous référer aux spécifications API pour les développeurs et à la référence API du package yeelight.

Alors faites un bon hack de maison!

Recommended Posts

Contrôlez la lumière intelligente «Yeelight» de Python sans utiliser le cloud
Utiliser Cloud Storage depuis Python3 (Introduction)
Étude de Python Hour8: Utilisation de packages
Aplatir à l'aide du rendement Python de
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
Copiez récursivement les fichiers du répertoire directement sous le répertoire en utilisant Python
Afficher à l'aide du module python du backend mobile Nifty Cloud
Contrôle d'instruments à l'aide de Python [pyvisa]
Touchez NoSQL avec Python à l'aide d'Oracle NoSQL Database Cloud Simulator
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
[Python + heroku] De l'état sans Python à l'affichage de quelque chose avec heroku (Partie 1)
[Python + heroku] De l'état sans Python à l'affichage de quelque chose avec heroku (partie 2)
Essayez d'utiliser FireBase Cloud Firestore avec Python pour le moment
Utilisation de Rstan de Python avec PypeR
[Python3] Google translate google translation sans utiliser l'API
Remarques sur l'utilisation de MeCab depuis Python
Existence du point de vue de Python
Étude de Python Hour2: instruction de contrôle
Python, découpez sans utiliser deux-points (:). a .__ getitem__ (tranche (3,5)).
Utilisez l'API Flickr de Python
Extraire le fichier targz en utilisant python
Essayez d'utiliser le module Python Cmd
Exécutez Ansible à partir de Python à l'aide de l'API
Précautions lors de l'utilisation de phantomjs de python
Accéder aux feuilles de calcul à partir de Python à l'aide d'OAuth 2.0
Essayez d'utiliser Amazon DynamoDB à partir de Python
J'ai essayé de livrer du courrier depuis Node.js et Python en utilisant le service de livraison de courrier (SendGrid) d'IBM Cloud!
Affichez le résultat de l'analyse vidéo à l'aide de l'API Cloud Video Intelligence de Colaboratory.
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Essayez d'utiliser le framework web de Python Django (1) - De l'installation au démarrage du serveur
Détectez les caractères japonais à partir d'images à l'aide de l'API Cloud Vision de Google avec Python
Recherche de synonymes dans la liste de mots (csv) par Python Japanese WordNet
Comment créer une application à partir du cloud à l'aide du framework Web Django
Exécutez Cloud Dataflow (Python) depuis AppEngine
Essayez d'utiliser l'API Wunderlist en Python
De Python à l'utilisation de MeCab (et CaboCha)
Essayez d'utiliser l'API Kraken avec Python
Derrière le flyer: utiliser Docker avec Python
Utilisez boto pour télécharger le fichier depuis S3.
Notes d'apprentissage depuis le début de Python 1
Contrôlez le panneau LED Matrix depuis ROS
Tweet à l'aide de l'API Twitter en Python
[Ingénierie de contrôle] Représentation graphique des fonctions de transfert par Python
Essayez d'utiliser Python avec Google Cloud Functions
Travailler avec OpenStack à l'aide du SDK Python
Utiliser l'API Google Cloud Vision de Python
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
Redémarrez le routeur en utilisant Python, Selenium, PhantomJS
Lancez l'interpréteur Python depuis Git bash
Depuis Python 3.4, pip devient le programme d'installation standard! ??
Exploitez le stockage d'objets cloud de Sakura à partir de Python
Notes d'apprentissage depuis le début de Python 2
[Python] Obtenez la couleur principale de la capture d'écran
python setup.py tester le code en utilisant le multiprocessus
La clé du déploiement d'applications Flask à l'aide de Python Buildpack sur Cloud Foundry (Diego)
Méthode d'extraction de zone à l'aide de l'automate cellulaire Essayez l'extraction de zone de l'image avec growcut (Python)
[IBM Cloud] J'ai essayé d'accéder à la table Db2 on Cloud à partir de Cloud Funtions (python)