Le Dreamscreen est un équipement multimédia du type "ambilight". Cet équipement utilise une application Android/iPhone pour être configuré et contrôlé (par Wifi) mais ne dispose pas de télécommande.
Un simple programme en C pour Linux (disponible sur Github) permet contrôler un dreamscreen depuis un système de télécommande maison, utilisable avec Kodi. Ce programme est compatible avec n'importe quel autre périphérique de type clavier. Techniquement il s'agit d'une implémentation en C du protocole dreamscreen qui envoie des messages UDP en fonction d'évènements clavier. Ce programme peut facilement être intégré dans des systèmes comme LibreELEC ou encore OpenELEC.
Structure du message
Dreamscreen utilise le port 8888 en UDP sur son interface WiFi pour envoyer et recevoir des messages binaires.
Structure du message:
[début, longueur du paquet, adresse de groupe, flag, commande principale, commande secondaire, payload (1 à 3 octets), CRC8]
[0xFC , 0x?? , 0x?? , 0x11, 0x03 , 0x?? , [0x??, 0x??, 0x??] , 0x??]Début: Permet la synchronisation lors de la
réception d’un paquet. Contient toujours 0xFC
Longueur du paquet: Nombre d’octet contenu entre
l’Adresse de groupe et le CRC inclus. Normalement 0x06
(payload d’un seul octet) sauf pour la définition d’une couleur ambiante
0x08 (payload de 3 octets).
Adresse de groupe: Adresse identifiant le groupe
auquel l’équipement est associé. 0x00 pour aucun groupe,
0x01 pour le groupe 1, 0x02 pour le groupe 2
etc. Dans le cas où l’adresse de groupe est incorrect, le message sera
ignoré.
Flag: Défini le contexte pour d’interprétation du
message. Utiliser 0x11 pour commander le dreamscreen.
Commande principale: Défini la commande, utiliser
0x03 pour commander le Dreamscreen.
Commande secondaire: Identifie l’élément à paramétrer (cf. tableau plus bas).
Payload: Valeur à affecter au paramètre (cf. tableau plus bas).
CRC8: CRC sur 8 bits pour valider l’intégrité du message. S’il est incorrect, le message sera ignoré.
Commandes et paramètres
| Description | Commande | Paramètre | Payload | Longueur du payload (en octets) |
|---|---|---|---|---|
| Mode | 0x03 | 0x01 | 0x00: Éteindre; 0x01: Vidéo; 0x02: Musique; 0x03: Ambiance | 1 |
| Luminosité | 0x03 | 0x02 | 0x00 à 0x64 (pourcentage de 0 à 100) | 1 |
| Couleur d’ambiance lumineuse | 0x03 | 0x05 | Couleur RGB (sur 3 octets) | 3 |
| Type d’ambiance lumineuse | 0x03 | 0x08 | 0x00: Couleur RGB; 0x01: Préréglage | 1 |
| Préréglage d’ambiance lumineuse | 0x03 | 0x0D | 0x00: Couleur aléatoire; 0x01: Fireside; 0x02: Twinkle; 0x03: Océan; 0x04: Arc-en-ciel; 0x05: 4 Juillet; 0x06: Vacances; 0x07: Pop; 0x08: Forêt enchantée | 1 |
| Entrée HDMI | 0x03 | 0x20 | 0x00: Entrée 1; 0x01: Entrée 2; 0x02: Entrée 3 | 1 |