Explorer des éléments de domotique

Lampe de bureau IOT

Titillé par ce qui est proposé sur le marché, j’ai testé pour vous deux éléments : un relais électronique et une lampe de bureau. Commençons par celle-ci.

La lampe de bureau est présentée comme suit, avec le titre un peu pompeux « Original Xiaomi LED Smart Table Lamp Dimming Reading Light For Cellphone » sur le site de Banggood, au prix de environ 50.-. Comptez 3 semaines pour la livraison, mais le port est gratuit. Elle correspond physiquement complètement à la description, son maniement est simple (heureusement, car le mode d’emploi est … en chinois). Le bouton par impulsion sert à allumer/éteindre ; sa rotation diminue/augmente la luminosité ; et maintenu pressé, change la température couleur.

Mais que peut-on piloter par soft ? Le nom de l’application (ci-après nommée Apps), pas mentionné, m’est donnée via le forum : c’est Yeelight. Pour Androïd et IPhone (iOS). Une fois chargée, il faut s’inscrire sur un site, avec email (ou n° de téléphone) et password. Ensuite, il s’agit d’appairer le/les éléments contrôlables par l’Apps.

Pour la bonne compréhension, voici le schéma (partiel) de liaison que j’ai à la maison. Il y a un répéteur WiFi pour que le signal soit assez fort au 1er étage, le routeur étant au sous-sol.

schema-lan-masur

En cherchant l’appairage, je n’ai pas réussi en le faisant par le répéteur ; alors que PC portable ou le mobile passent sans difficulté du WiFi AP du sous-sol au répéteur au rez. J’ai donc déménagé la lampe près du routeur/WiFi pour ce faire ; malgré tout, il m’a fallu quelques essais pour y parvenir avec succès.

Une fois connecté, l’Apps Yeelight permet d’enclencher/déclencher la lampe ; de commuter sur une température couleur.

Les fonction sont : On-Off, une température couleur élevée pour de la lecture ; et une basse pour consulter un écran de PC sans trop de lumière bleue.

On peut renommer l’élément et même mettre un raccourci de bouton On-Off sur le bureau Androïd, ici « LED Bureau » :

Ceci a du sens lorsqu’on a plusieurs éléments commutables, pour les atteindre rapidement avec son mobile.

Conclusion provisoire

L’apps ne sert pas à grand-chose. En effet, si on travaille sur son bureau, pourquoi sortir son portable pour allumer ou éteindre la lampe qui y trône plutôt qu’allonger le bras? Il serait plus intéressant d’y avoir une commutation pour simuler une présence, par exemple. Ou un allumage progressif à partir d’une heure donnée pour servir de réveil sympathique.

De plus, comme mentionné peu avant, elle essaie de se connecter sur le routeur ; la communication est mauvaise, donc inutilisable. Souvent, le On-Off est inopérant.

17-yeelight-offline

Et l’aide pour le reset, pas secourable :

18-yeelight-how

 

Switch Sonoff

Le switch est aussi disponible par le site de Banggood, sous le nom de « DIY Wi­Fi Wireless Switch For Smart Home » pour moins de 7.-. Il fonctionne sur le 230 VAC et un pouvoir de coupure de 7 A, un courant maximal de 10A. Le voici inséré dans une rallonge secteur.

Dommage qu’il n’y ait pas de bornes pour le fil de terre…

00-sonoff

Attention : dans la description qui suit, « switch » nomme cet élément, et non un switch informatique.

Le constructeur Slampher a d’autres produits, dont des culots E27 permettant des commutations. Ce qui est moins clair est : comment sont faites les transmissions ? Sur le site, il est dit que la transmission est à 433 MHz, mais aussi WiFi. Avec sur le croquis un nuage, un AP et un smartphone… Le texte est un peu plus clair : Sonoff and Slampher will send data to cloud platform through Wi­Fi Router, they pair with the Wi­Fi through the APP, thus you can control all added appliances and lights with your smart phone or tablet.

Application

L’Apps à charger sur smartphone est : EWeLink. Son installation demande une inscription, un login, un mot de passe. Ce qui peut inquiéter toutefois est ceci :

01-ewelink-droits

Pourquoi une telle Apps a besoin de la position, du micro, de la caméra ? très intrusif, tout ça ! En tous cas, j’hésiterais à l’utiliser pour, disons, enclencher/déclencher un réacteur nucléaire.

La confirmation qui suit n’est pas de nature à tranquilliser :

02-securite

De mon expérience précédente, je n’essaie même pas d’appairer le switch via le répéteur ; mais je le fait directement au sous-sol, où se situe mon atelier de bricolage. Je commence bien sûr par un câblage du réseau et d’une prise femelle, et y branche une lampe. Le témoin vert commence à clignoter.

Malgré les précautions prises, cet appairage s’avère ardu. Il faut de la patience… 3 minutes par essai.

03-ewelink-pairing

Après x essais, je prends le parti d’y aller « à la main », comme proposé à l’écran suivant.

03-ewelink-pair-fail

Mécanisme d’appairage

Là, je comprends mieux le système : lorsqu’on appuie 5 secondes sur le bouton du switch (il sert aussi à enclencher/déclencher à la main), le WiFi interne du module se met en mode AP et présente une identification WiFi ; l’Apps connecte le WiFi du mobile sur le switch en mode AP, lui configure quelque chose, puis retourne sur la connexion WiFi « normale » et finalise la connexion sur le serveur. Il faut évidemment que ceci joue dans un certain laps de temps. Il suffit que le switch soit passé en mode client ; ou que le mobile n’ait pas eu le temps de tout faire pour « programmer » l’appairage et c’est à refaire.

Après quelques combats insoutenables, l’appairage est fait. Une fois le switch connecté, un bouton (renommable) se présente, et permet de le commuter.

Un coup d’œil sur la liste des appareils connectés sur le routeur montre ceci :

06-dhcp

Le genre de chip WiFi doit être le même pour la lampe Xiaomi et le switch que nous testons présentement. Intéressant, ce « ESP » au début de l’identification… Notez aussi le « computer » dont l’adresse finit par 107 : c’est mon portable Windows 10, qui demande un nombre impressionnant d’adresses IPV6. Les « android » sont le mobile de ma femme et le mien.

Essai de timer

L’Apps propose une tempo pour enclencher/déclencher ; ainsi qu’un maximum 8 timers programmables à date fixe ou selon les jours de la semaine. La question est : que se passe-t-il si je programme un timer et que mon mobile se déconnecte du WiFi ?

Le test est effectué, en programmant un déclenchement dans 2 minutes, puis en mettant le mobile en mode « avion »… Test passé avec succès. Ceci signifie que c’est bien par le serveur distant que les ordres sont stockés et effectués. Ou que la puce du switch maintient l’heure et une liste d’enclenchement déclenchement ?

Essai via la connexion GSM

La connexion WIFI du mobile est coupée. Comment va réagir le switch, si l’Apps n’est plus en connexion WiFi locale ?

Test : c’est fonctionnel. Donc, là on est sûr que ça passe bien par un serveur distant. Ou en bonne partie.

Essai avec réseau local, sans Internet

Est-ce que la liaison locale ne suffit pas pour commander en On-Off ? Pour en voir le cœur net, je coupe la liaison Internet du routeur ; le téléphone fixe de la maison devient hors service… Malgré la liaison WiFi active, par lequel tout le potentiel local subsiste, pas moyen d’actionner le switch. La preuve est bien là : les ordres de commutation instantanés passent aussi via le serveur chinois.

04-ewelink-device-offline

Réponse aux sollicitations

Passant par un serveur distant, on peut s’attendre à quelque délai. Toutefois, si la connexion et établie, c’est-à-dire que l’application est en avant-plan et que le réseau est stable, le délai entre le moment où l’on clique sur le bouton et l’activation du relais ne dépasse pas les 200 ms. A l’oreille bien sûr, je n’ai pas mis en place des conditions de labo pour cette mesure ! Et à l’oreille, parce que c’est bien un relais électromécanique qui clique dans le switch, et non un triac qui commute silencieusement.

 

Un ping sur www.ewelink.com montre une réponse de 27 ms. C’est peu. Comment est-ce possible ? Un coup d’œil sur le site répond à la question : ils utilisent le service « amazone cloud AWS » pour ce faire. Et via ce dominateur de la WebSphere qu’est Amazone, dont les serveurs sont distribués partout sur la planète. C’est aussi pourquoi l’Apps demande la localisation à l’inscription…

Essais de coupure d’alimentation du switch

Dans un tel cas, le switch doit reprendre la connexion WiFI avec le routeur/AP. Pour vérifier son temps de reconnexion, je lance un ping -t sur son adresse. Et lui coupe le jus.

Test : j’allume la barrette sur laquelle le switch est connecté et enclenche le chrono, puis observe la fenêtre des pings… il reprend la ligne en 5 secondes ! Si tous les appareils connectés en faisaient autant…

Conclusion provisoire

Le switch remplit sa fonction. Il est à dispo, reconnecté et reconnectable, rapide. L’état est à jour sur l’Apps, même en cas de changement manuel par le bouton. Les renommages, ajouts, ou encore du groupage (pas essayé avec 1 élément…) sont pratiques. Les fonctions de timers sont raisonnablement sûres.

On peut toutefois blâmer la difficulté à appairer les devices. Pour un bricoleur/développeur, on attend de pourvoir utiliser en direct de tels éléments avec une API de sorte ; ce qui ne semble pas le cas. A moins de sortir l’artillerie lourde et d’espionner les flux TCP-IP, on ne saura pas quel est le protocole. C’est bien dommage.

Tout bouge et tout change, c’est à surveiller.

Yves Masur (1/2017)

Références:
lampe LED Xiaomi
Relais Sonoff

 

 

 

 

 

 

Serveur DHCP avec Windows 7

Pourquoi un DHCP ?

Avec le développement sur l’Arduino Yun, me voici quelque peu ennuyé ; tout ne fonctionne pas comme dans le tuto. Les détails de cette expérience feront l’objet d’un article distinct ! Dans l’immédiat, j’ai besoin de le mettre sur le réseau câblé, avec une adresse connue.9-yun

Pour cela j’ai besoin d’un programme DHCP. Qu’est-ce que le DHCP ? Selon Wikipédia : Dynamic Host Configuration Protocol (DHCP) est un protocole réseau dont le rôle est d’assurer la configuration automatique des paramètres IP d’une station, notamment en lui affectant automatiquement une adresse IP et un masque de sous-réseau. DHCP peut aussi configurer l’adresse de la passerelle par défaut, des serveurs de noms DNS et des serveurs de noms NBNS (connus sous le nom de serveurs WINS sur les réseaux de la société Microsoft).

À ne pas confondre avec le DNS (http://fr.wikipedia.org/wiki/DNS ) le Domain Name System – qui s’occupe de faire la relation entre un nom (en fait une URL) et une adresse IP. Le DHCP attribue une adresse IP à un système, parmi une plage d’adresses, avec une durée limitée.

La configuration initiale

Voici ma config, qui est assez classique et probablement proche de la vôtre, hormis peut-être la barrette électrique:

–        Modem routeur Wi-FI NAT, adresse fixe 192.168.1.1
–        Un petit PC 14’ N145-YM, Wi-FI DHCP et une connexion LAN libre
–        Le module Arduino Yun, Wi-FI DHCP et une connexion LAN libre
–        Portable lourd, PC 17’ Vostro, Wi-FI DHCP
–        Sa connexion LAN, fixe : 10.1.0.7
–        La Barrette CBM, sur LAN, en DHCP, mais par défaut en 10.1.0.1

Ces 2 dernières sont câblées en direct ; la barrette peut donc accepter une adresse DHCP si elle est fournie. De plus, elle propage son nom « CBM11 » par NetBIOS. Le modem routeur Wi-Fi permet à la maisonnée d’aller sur l’Internet ; d’autres clients y sont connectés : PCs, PCs portables, imprimantes, NAS, seconde barrette et même mon portable Android… Bref il y a du monde.

Pourquoi une adresse fixe ?

L’attribution d’une adresse IP fixe est nécessaire pour les serveurs (on doit savoir où les trouver), sur des petits systèmes simples de disposant pas de mécanisme DHCP, ou qui ne propagent pas leur nom sur le réseau. Ou pas comme on l’aimerait. L’adresse fixe est aussi plus sûre dans certaines configurations techniques, sa présence sur le LAN lors du boot est forcément plus rapide. C’est notamment le cas des switchs managés et des routeurs : on imagine l’horreur en cas de coupure de courant si ces éléments clef commencent à se demander parmi une adresse…

Dans ma config, sont en adresse fixe : le modem routeur, les imprimantes, les NAS.

Pourquoi pas aussi une adresse pseudo-fixe ?

Si l’adresse fixe se révèle un besoin, c’est parfois pénible à mettre en œuvre et tout aussi difficile à modifier par la suite. Une possibilité intéressante est de programmer le serveur DHCP afin qu’il délivre toujours la même adresse à un système client. Ainsi, d’un coup d’œil sur la liste, on peut voir les réservations et les modifier facilement au besoin. Connexion/déconnexion, le tour est joué : le système client prend cette adresse. Les modem-routeurs récent le font d’office. Plutôt que d’attribuer le pool d’adresse dans l’ordre des démarrages des machines, selon leur MAC-adresse, il attribuera celle enregistrée auparavant ; mais ce n’est pas suffisant. Rien ne nous garantit que l’adresse soit conservée ad aeternam. Il faut pouvoir l’enregistrer dans une liste.

Ne cherchez pas ce terme de « pseudo-fixe » sur le Net ; je l’ai défini pour l’usage de nos machines dans le cadre d’appels d’offres pour mon travail. Un ennui peut toutefois découler de cette méthode : une machine tombe en panne de communication, et sa carte réseau est changée. Elle est donc réparée et retrouve le réseau, mais elle ne fonctionne toujours pas ! Son adresse MAC a changé. Et donc son adresse IP aussi !

Serveur DHCP

Une recherche montre que W7 peut servir de serveur DHCP si une carte réseau est configurée pour le partage Internet (par ICS), ici : http://answers.microsoft.com/en-us/windows/forum/windows_7-networking/make-windows-7-act-as-a-dhcp-server/8ff345f2-99b5-4670-bb6f-32d7bb63de3c

Il y a toutefois des limitations : l’adresse fixe est imposée, et les écrans abscons proposent de qualifier le sous réseau public, bureau ou privé. Cela a une incidence sur le mode dit de « découverte du réseau. »

A contrario, le programme gratuit DHCPServer (http://sourceforge.net/projects/dhcpserver/ ) permet de construire exactement ce que l’on veut. La version utilisée ci-après est la 1.61, elle occupe 1,3 Mo dans c:\OpenDHCPServer, soit la racine du disque dur. Le programme se démarre soit à la main, soit en service Windows.

Avant de le démarrer, il faut préparer la configuration, mais c’est assez simple (même pour les utilisateurs n’ayant pas des connaissances étendues en DHCP) via le fichier texte « OpenDHCPServer.ini ». Il faut également fixer l’adresse IP d’une carte du PC serveur – ce qui, dans mon cas, est déjà fait – par le Panneau de configuration -> Réseau et Internet -> Connexion réseau : choisir la carte réseau. Puis : Propriété – Gestion de réseau. Cliquer ensuite la ligne cochée Protocole Internet version 4(TCP/IPv4) et le bouton [Propriétés].

Les infos de passerelle et du DNS ne sont pas utiles pour notre utilisation.

Ensuite, on va définir une plage d’adresses à attribuer par le DHCP:

2-DHCP_range

Nouvelle configuration

Il y a 4 machines qui seront dans ce sous-réseau. Il nécessite un petit routeur à 4 ports, de ce genre :4-switch

–        Le PC Vostro, qui sera le serveur en 10.1.0.7, hors de la plage dynamique
–        Le PC N145-YM, dont on va pseudo-fixer l’adresse en 10.1.0.145
–        La Barrette, dont on va fixer l’adresse en 10.1.0.1, pour la maintenir tel quelle
–        Et l’Arduino Yun, qu’on va placer en 10.1.0.11

Seule cette dernière est importante ; le PC N145 pour le retrouver plus facilement, vu que sa RAM est si faible que j’ai désactivé un maximum de services dont les gadgets de découverte de réseau, par exemple. Pour la Barrette, c’est juste pour la maintenir ou elle était.

Voici les paramètres, selon les adresses MAC :

3-DHCP_pseudo-fixe

Un coup d’œil dans les logs montre que tout est OK :

[15-Jun-14 20:43:49] Network changed, re-detecting Static Interfaces..
[15-Jun-14 20:43:49] Lease Status URL: http://127.0.0.1:6789
[15-Jun-14 20:43:49] Listening On: 192.168.178.1
[15-Jun-14 20:43:49] Listening On: 192.168.56.1
[15-Jun-14 20:43:49] Listening On: 10.1.0.7
[15-Jun-14 20:43:49] Listening On: 192.168.216.1
[15-Jun-14 21:35:42] Host e8:11:32:7d:92:e0 (N145-YM) allotted 10.1.0.145 for 36000 seconds
[15-Jun-14 21:38:58] Host 90:a2:da:fc:0a:c0 (Host90a2dafc0ac0) allotted 10.1.0.110 for 36000 seconds
[15-Jun-14 21:41:33] Host 00:04:a3:00:00:00 (Host0004a3000000) allotted 10.1.0.1 for 36000 seconds

Comme j’ai des cartes virtuelles, dues à une config prévue pour de la virtualisation, elles sont aussi servies. Ceci laisse entrevoir les possibilités à d’intéressantes expériences en mode virtuel.

La page WEB du DHCP Server montre tout ça de manière synthétique.

9-DHCP_page

On remarque que toutes les adresse statiques (pseudo-fixes) sont prises; et que seul le nom du PC N145-YM est inscrit, les autres sont indiquées sous Host, suivi de l’adresse MAC. Pour savoir qui est qui, il suffit de déconnecter/reconnecter le LAN et d’observer l’écran (ou le log).

Configuration Arduino Yun en IP pseudo-fixe

Donc maintenant, le module Arduino est connecté aux 2 PCs par câble. On peut consulter sa page WEB, lancer une console Linux avec Putty, le programmer en connaissant de manière sûre son adresse IP. La dépendance et l’incertitude dues à un Wi-Fi instable sont éliminées. On peut avancer.

Yves Masur (6/2014)