Au profit de f.lux, à
un degré ou à
un autre, ils ont
écrit plusieurs fois à la fois sur le Habré et sur les giktimes. Ayant essayé ce programme il y a quelque temps, j'avais une question - qu'en est-il du reste de l'éclairage dans la pièce? Trop la nuit, l'écran orange du moniteur s'échappe de la lumière chaude et générale des lampes à incandescence.
Nous allons essayer de corriger ce malentendu gênant.
Clause de non-responsabilité
L'auteur du texte ne comprend pas bien comment fonctionne la vision humaine et si les opérations décrites ci-dessous lui seront utiles ou nuisibles. En outre, certains aspects des
tests des indicateurs des lampes LED pour leur qualité restent à la mer. Il a été décidé de les accepter comme «satisfaisants», remercie
AlexeyNadezhin et
Tiberius pour les études pertinentes.
Nous achetons des lampes
Une analyse rapide du marché a montré qu'il y avait beaucoup de choix. À commencer par les lampes chinoises super-budgétaires «sans nom», pour finir avec Belkin et Philips, qui sont déjà de l'argent tout à fait impudique. En conséquence, il a été décidé de prendre comme base l'ampoule LED intelligente Yeelight, produite sous la marque Xiaomi. Leur avantage est la possibilité de fonctionner sans équipement supplémentaire de la catégorie «maison intelligente» et la possibilité de travailler de manière autonome, sans être lié aux serveurs de gestion de l'entreprise (après quelques astuces).
Au moment d'écrire ces lignes, le coût d'une lampe est d'environ 20 $.
Partie logiciel
Nous allons écrire le code de contrôle des lampes en python, car il existe déjà un
module prêt à l'emploi qui vous permet de transférer des commandes de contrôle à ces lampes. Il y a aussi un
document détaillant l'api. Ainsi, il ne reste plus qu'à ajouter un petit serveur web afin de recevoir les commandes de contrôle de f.lux.
Cependant, vous devez d'abord initialiser Smart Bulb. Nous initialisons les lampes via l'application propriétaire
MiHome et
obtenons l'apparence de l'icône Yeelight Color Bulb dans l'interface de l'application. Des problèmes de connexion peuvent survenir en raison du DNS et du choix du serveur par défaut. Ils sont résolus en écrivant 8.8.8.8 en DNS et en choisissant le serveur Chine (continentale).

Il est également nécessaire de déverrouiller la possibilité d'accéder directement aux appareils en activant le mode développeur sur eux, via la deuxième application,
Yeelight . Après toutes ces opérations, les lampes apparaissent sur le réseau et sont déjà accessibles.

En raison de la réticence à dire les mots de passe du Wi-Fi aux ampoules intelligentes, ils se déplacent vers un sous-réseau distinct, avec un SSID distinct et sans accès à Internet.
Ainsi, les lampes sont suspendues au réseau, dans l'application, elles se sont déconnectées et vous pouvez essayer de leur transférer des commandes de contrôle.
Intégration avec f.lux
f.lux peut envoyer des données sur les changements de température de couleur et de luminosité à une URL donnée. Les données arrivent sous forme de post-demande du formulaire:
POST /room_1?ct=6500&bri=0.800000 HTTP / 1.1

Nous allons écrire un petit serveur web sur une bouteille qui traite ces paramètres:
from bottle import run, post, request from yeelight import Bulb @post('/room_1') def room_handler(): post_dict = request.query.decode() if 'ct' in post_dict and 'bri' in post_dict: ct = int(post_dict['ct']) bri = int(float(post_dict['bri']) * 100) bulb.set_color_temp(ct) bulb.set_brightness(bri) bulb = Bulb("%lamp_ip%") run(host='0.0.0.0', port=8080)
Résultat final
Ayant travaillé pendant une semaine dans ce mode, j'ai du mal à dire s'il y a des changements positifs et si mon œil est fatigué. La lumière réglable dynamiquement semble intéressante et la différence entre le moniteur et l'éclairage ambiant n'est pas si frappante. En revanche, le fait même d'un changement constant de la lumière ambiante est inhabituel.


