Controlez vos lumières Triones Bluetooth Low Energy (BLE) avec votre Streamdeck (Partie 1)
Tags: streamdeck, triones, ble, csharp
Published: 2021-05-02 19:02:51

---
title: Controlez vos lumières Triones Bluetooth Low Energy (BLE) avec votre Streamdeck (Partie 1)
published: true
description: Comment controler des lumières Bluetooth Low Energy type Triones avec un epériphérique Streamdeck 
tags: 
- StreamDeck 
- Triones 
- BLE 
- Csharp   
//cover_image: https://i.imgur.com/8a0qiWM.png
---

Avant d'aller plus loin, je tiens à apporter quelque précision sur ma démarche:

Ce post n'est pas à objectif pédagogique. Je ne suis pas un professionnel et je me suis adapté en fonction de mes connaissances, du matériel à ma disposition et du temps qui m'étais imparti. 
Ce post, donc, est une explication de ma mise en place pour le sujet qui m'a été donné. Il sera plein de fautes, incomplet certainement voir même offrera des solutions plus compliqué que ce qu'il devrai être.

J'espère tout de même que ma démarche aidera d'autres personnes à imaginer de meilleur solution et dégrossira les difficultés qui peuvent être rencontré.

Merci à vous <3

# Comment j'ai contrôle les lumières BLE Triones avec un Streamdeck (Partie 1)

## Voici la demande

Mon Client est un Youtubeur qui souhaite créer un nouveau studio d'enregistrement et gérer son éclairage "facilement".
Dans son idée, il souhaite pré-configurer un éclairage et une vidéo spécifique en fonction des tournages et des scènes :
- tournage 1/ scène 1 => ambiance plage
    - lumière chaude + vidéo d'une plage
- tournage 1/ scène 2 => ambiance Spatial
    - lumières tamisées + vidéo de la terre
- tournage 2/ scène 1 => ambiance volcan
    - lumière rouge + vidéo lave
- .... (vous avez saisi l'idée.)

Pour composer ces ambiances, le studio est équipé de 6 projecteurs lumineux et d'une énorme télévision afin de remplacer le fond vert.
![La lumière en question](https://i.imgur.com/aMoFMAH.jpg)

Pour finir, le tout doit être contrôlé par un périphérique appelé le Streamdeck. Ainsi, il sera possible d'organiser les configurations en fonction des tournages et suffira d'appuyer sur un seul bouton pour automatiser les commandes aux lumières et à l’écran. Pour fonctionner, le Streamdek doit être connecté en permanence sur un pc (ici, un pc Windows) car le profil d'utilisation est enregistré sur le pc et non sur le périphérique.

## Comment tester ces périphériques facilement pour comprendre leur fonctionnement

Après quelques recherches, j'ai rapidement compris que ces lumières BLE portait le nom **Triones** (et aussi parce qu'une fois branchait, ce nom apparaissais dans la liste des périphériques disponibles).

Le seul moyen proposé pour les manipuler était de télécharger l'application [HappyLighting](https://play.google.com/store/apps/details?id=com.xiaoyu.hlight&hl=fr&gl=US) sur mon mobile Android. Effectivement, l'application fonctionne très bien et propose quelque fonctionnalité intéressante.

![Application HappyLighting](https://i.imgur.com/XteviW5.png)

Coté PC, j'ai eu la bonne surprise de découvrir une application nodeJs permettant d'effectuer 90% des fonctionnalité proposé par l'appli. [vinceroti](https://github.com/vinceroti) s'est penché sur le problème et propose une interface très fonctionnel et simple d'utilisation.

***TODO : Upload des images de l'appli bt-triones***

Malheureusement pour moi c'est encore insuffisant car je n'ai pas trouvé le moyen de le faire communiquer avec le Streamdeck.

Puis, c'est en lisant le post détaillé de [Uri Shaked](https://urish.medium.com/) que j'ai commencer à comprendre comment cette technologie est plutôt avare en information ([l'article en question](https://urish.medium.com/reverse-engineering-a-bluetooth-lightbulb-56580fcb7546))

en Bref, l'article explique comment les différentes entité composants le Bluetooth Low Energy (BLE) sont sensé communiqué et comment l'auteur s'est débrouillé dans ce petit dédale. On y apprend l’existence d'une application mobile android appelé [nRF Connect for Mobile](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) et qui permet de communiqué à l'aide du Bluetooth avec les appareils qui nous entours et voir leurs entrées et sorties d'information a notre disposition.


En ce qui concerne ces données devant commander nos lumières Triones, [madhead](https://github.com/madhead) à laissé une petite note récapitulative détaillant les données dont on connait leurs effets : 

[Cette documentation ici](https://github.com/madhead/saberlight/blob/master/protocols/Triones/protocol.md).

Ici aussi, on y voit encore une documentation incomplète avec des données "Magic" mais l'essentiel y est :

- allumer ou éteindre les lumières
- choisir la couleur
- choisir la luminosité 
- ... et d'autre truc ne nous interagissant pas

A présent, les travaux Pratique !
- Une fois la lumière trouvé sur l'application "nRF Connect Mobile", cliquez sur le bouton noir "connect"
- Vous allez basculer sur l’onglet de communication avec le périphérique
- Dans l'onglet "CLIENT", déployez le service dont l'UUID est "0xFFD5" en cliquant dessus
- En appuyant sur le flèche pointant vers le haut, tout à droite, vous allez ouvrir la fenêtre d’envoi de data.
- Pour tester, saisissez la valeur ```cc2333``` pour allumer ou ```cc2433``` pour éteindre. Puis validez avec le bouton "SEND"  

![application pas à pas](https://i.imgur.com/6AEhKtc.jpg)