Le dernier jour de mars était censé être le premier jour de préparation des déclaration de revenu pour le fisc. Procrastiner s'est avéré plus attrayant et tester le nouveau capteur de mouvement de IKEA, soit le VALLHORN type E2134, était la meilleure stratégie d'évitement. Il s'agit d'une installation provisoire, car il y a une très forte probabilité que le capteur soit déplacé. Le moment venu, j'aurai tout oublié, d'où ce billet pour documenter comment j'ai procédé. Conséquemment, il ne s'agit pas d'un examen approfondi de ce capteur de type Zigbee.
Le capteur de mouvement VALLHORN récemment introduit est probablement destiné à remplacer les anciens modèles TRÅDFRI (type E1745 et type E1525). Ces modèles n'étaient pas dans le magasin IKEA d'Halifax (Canada) lorsque j'ai acheté le VALLHORN et ne sont plus dans le catalogue en ligne au Canada. Cependant le E1745 est actuellement disponible (le 2 avril 2024) aux États-Unis, mais probablement seulement jusqu'à l'épuisement des stocks.
Le VALLHORN est très grand, relativement parlant. Sa face est un carré arrondi 71 x 71 mm et il a une profondeur de 34,5 mm; 38,4 mm avec le support de montage. En raison de la plus grande taille, le capteur est alimenté par deux piles AAA au lieu d'une pile bouton au lithium. Ainsi, les piles devraient durer plus longtemps, mais je ne serai pas en mesure de le vérifier parce que je n'ai aucun des vieux capteurs de mouvement IKEA.

Le nouveau capteur ajoute le niveau de luminosité aux mesures de présence et du pourcentage de charge de la pile des capteurs plus anciens si l'on se fie à la description Blakadder des ces derniers. Cela est utile, car le test consiste à utiliser le VALLHORN pour allumer les lumières dans un escalier quand une personne s'approche, mais seulement si le niveau de clarté est inférieur à un seuil fixé. L'éclairage dans l'escalier est contrôlé par un dispositif Shelly 1 avec un micrologiciel Tasmota. Lorsque la lumière est activée, une minuterie est déclenchée pour l'éteindre après cinq minutes. Cela est fait avec Domoticz, notre serveur domotique. Ainsi, tout le travail est effectué par le système domotique existant et le VALLHORN n'aura qu'à déclencher des routines existantes. Bien entendu, le capteur doit être jumelé avec le coordinateur Zigbee du système domotique qui, dans notre cas, est une passerelle ZbBridge Sonoff (de Itead) avec ZigbeeToTasmota comme micrologiciel.
Bien que le concentrateur Zigbee recommandé par IKEA ne soit pas nécessaire dans cette configuration, il se peut que les fonctionnalités du capteur ne soient pas exploitées. Il est probable qu'il soit possible de fixer le seuil de luminosité pour les messages de marche/arrêt (cluster 0x0006) envoyés par le capteur à une lampe, une passerelle ou à tous les autres autres dispositifs Zigbee appariés. L'installation de test ignorera ces complications et notre système domotique n'utilisera que trois messages du capteur une fois qu'il sera apparié avec le coordinateur Zigbee du système.
| Attribut Zigbee | Type | Message ZigbeeToTasmota |
|---|---|---|
Illuminance | non negative integer | {"ZbReceived":{"0xB8BC":{"Device":"0xB8BC","Illuminance":20969,"Endpoint":3,"LinkQuality":55}}} |
Occupancy | 0 or 1 | {"ZbReceived":{"0xB8BC":{"Device":"0xB8BC","Occupancy":1,"Endpoint":2,"LinkQuality":13}}} |
BatteryPercentage | 0...100 | {"ZbReceived":{"0xB8BC":{"Device":"0xB8BC","BatteryVoltage":2.7,"BatteryPercentage":90,"Endpoint":1,"LinkQuality":52}}} |
Les messages de ZigbeeToTasmota présentés sur le tableau sont affichés dans la console Tasmota du pont de la passerelle ZbBridge.
La luminosité n'étant signalée que lorsqu'elle change, les valeurs envoyées par le capteur doivent être conservées par Domoticz. Une variable définie par l'utilisateur semblait être la meilleure façon de le faire. La capture d'écran suivante montre comment atteindre la page de configuration des variables utilisateurs dans l'interface web Domoticz.

On ajoute une variable en définissant son nom, son type et sa valeur initiale.

Ensuite, il faut cliquer sur le bouton . Une fois cela fait, la nouvelle variable sera ajoutée au tableau des variables en haut et un idx de type variable lui sera attribué. Dans ce cas stair_illuminance s'est fait attribuer l'idx 4.
L'on pourrait sans doute ajouter un interrupteur de lumière virtuelle (cachée) dans Domoticz pour illuminer l'escalier, mais il y a déjà un commutateur virtuel contrôlant le dispositif Shelly 1 déjà mentionné. Au lieu de cela, une autre variable utilisateur a été crée. Appelée stair_occupency, son idx est 5.
L'étape suivante consiste à ajouter les règles Tasmota au coordinateur Zigbee. Dans mon cas, j'ai joint trois règles à Rule3.
On constate que ces règles définissent des messages MQTT publiés en réponse au message du capteur zigbee reçu par la passerelle ZbBridge. Les messages MQTT ont tous domoticz/in comme sujet auquel Domoticz est automatiquement abonné par défaut si le matériel
MQTT Client Gateway with LAN interface est installé. C'est un choix de ma part, et la passerelle Zigbee pourrait envoyées des requêtes HTTP directement à Domoticz.
La troisième règle ajoutée met à jour un capteur de pourcentage virtuel ajouté dans Domoticz pour afficher le niveau de la batterie. Le système domotique se charge d'envoyer une notification si le niveau de la pile descend sous le 60%. L'idx de ce capteur virtuel est 225.
La dernière partie du puzzle est un script dzVents (en Lua) assez simple qui sera déclenché par tout changement dans la valeur de la variable occupancy_stairs.
J'estime que la logique du script est assez claire. La fonction execute sera (on le devine...) exécutée chaque fois que la valeur de la variable 5 change. Si cette valeur est supérieure à un, cela signifie que le capteur a détecté qu'une personne s'approchait des escaliers. Dans ce cas, la lumière d'escalier est allumée si la luminosité ambiante est inférieure au seuil de 4000.
Notes ou informations et idées aléatoires.
- Une référence importante&nbp;: ZigBee Cluster Library Specification. Ce n'est pas la dernière version, mais elle est probablement tout à fait suffisante pour la plupart des capteurs sur le marché à ce stade. Abréviation : [ZCL].
- Voici le type de message marche/arret envoyé par VALLHORN (catégorie :
0x0006 On/Off cluster messagesselon ZCL).{"Device":"0xB8BC","0006!42":"0158020000","Power":1,"PowerOnlyWhenOn":1,"PowerOnTime":60,"PowerOffWait":0,"Endpoint":1,"LinkQuality":65}Ici,0x0006!42dénote un message de type "On with timed off" soit "allumé avec arrêt programmé" - voir [ZCL] p. 3-54. - Un argument aurait pu être avancé pour utiliser un capteur virtuel Lux plutôt qu'une variable utilisateur pour stocker l'intensité lumineuse rapporté par le capteur. Contrairement à une variable utilisateur, un capteur Domoticz peut enregistrer les données et les présenter de façon graphique, ce qui faciliterait la détermination du seuil approprié en dessous duquel l'éclairage de l'escalier doit être allumée. J'ai décidé de mettre en place la variable utilisateur décrite ci-dessus et d'ajouter temporairement un capteur Lux. Puis j'ai modifié le script dzVents.
--[[ Turn "stair_light" on when "stair_occupancy" > 1 and stair_illuminance < 4000 stair_light: switch idx 138, stair_occupancy: user-variable idx 5, stair_illumnance: user-variable idx 4, stair_lux: lux sensor idx 226. ]] return { on = { variables = { 4, 5 } }, execute = function(dz, variable) if variable.id == 4 then dz.devices(226).updateLux(variable.value) else if ( (variable.value > 0) and (dz.variables(4).value < 4000) ) then dz.devices(138).switchOn() end end end }
Après quelques essais, il sera plus facile d'affiner la valeur seuil.

Ce qui précède est le journal graphique pour la mesure de la luminescence en début d'après-midi d'une journée par temps nuageux.
- D'après [ZCL] 4.2 Illuminance Measurement, le niveau de luminosité mesuré doit être un entier de 16 bits compris entre 0 et 65355 (0xFFFF). Si zéro alors le niveau de lumière était trop faible pour être mesuré et si égal à 0xFFFF alors la mesure était invalide. Pour les valeurs intermédiaires, l'intensité lumineuse (mesurée en lux) est calculé à partir de la valeur mesurée (mv) comme suit :
lux = 1O^(0.0001*mv)-1ou, du moins, je pense que c'est ce qu'il dit sur la page 4-5 [ZCL]. Peu importe, seule une valeur seuil appropriée est nécessaire, quelles que soient ses unités de mesure. La valeur magique 4000 utilisée dans les deux scripts a presque été choisie aléatoirement, mais elle fonctionne en première approximation et sera affinée plus tard. - Instructions pour appareillé le capteur VALLHORN.
Instructions d'IKEA: Procéder sans la passerelle DIRIGERA
- Vérifiez que le produit que vous souhaitez connecter est installé et mis sous tension.
- Placez le détecteur de mouvement à proximité du produit connecté (à une distance inférieure à 5 cm).
- Appuyez sur le bouton d'appairage et maintenez-le appuyé au moins 10 secondes. Une LED rouge s’allume en continu sous la lentille du capteur de mouvement. Lorsque le produit est connecté, une LED blanche clignote.
mihailmoise sur la communauté Home Assistant :
Afin d'ajouter ce dispositif, vous devez pousser le bouton de liaison de l'appareil VALLHORN 4 fois en 5 secondes ou moins, comme indiqué pour réinitialiser le capteur. Il sera ensuite trouvé et ajouté à votre liste d'appareils. N'appuyez pas sur le bouton de liaison pendant « au moins 10 secondes » - les conseils d'IKEA, je pense que vous avez de meilleures choses à voir avec votre temps.
Adding an IKEA Trådfri Shortcut Button in Domoticz