Guide du développeur de l’API Divoom Times Gate

Guide du développeur de l’API Divoom Times Gate

Vous déballez le Divoom Times Gate, le branchez et regardez cinq écrans LCD s’allumer avec des cours boursiers, la météo et des animations en pixel art. L’application fonctionne parfaitement. Mais vous continuez à vous demander : puis-je envoyer mes propres données sur ces écrans ? Puis-je écrire un script qui affiche un tableau de bord personnalisé sur le troisième écran tout en laissant l’horloge fonctionner sur le premier ?

La réponse courte est oui — mais pas de la manière à laquelle vous pourriez vous attendre. Divoom n’a pas publié de documentation API officielle pour le Times Gate. La communauté des développeurs a plutôt rétro-ingéniéré l’API réseau locale de l’appareil, créé des bibliothèques en Python, Rust et C#, et l’a intégrée à des plateformes comme Home Assistant. Ce guide explique comment le Times Gate communique réellement, ce que son API LAN locale permet de faire et quels outils vous permettront de commencer à développer le plus rapidement.

Le guide officiel de configuration du Times Gate, publié sur la chaîne YouTube de Divoom.

Comment le Times Gate communique avec votre réseau

Avant d’écrire la moindre ligne de code, vous devez comprendre un point qui déroute presque tous les développeurs la première fois : le Times Gate n’expose pas d’API locale dès que vous le mettez sous tension. Au démarrage, l’appareil se connecte aux serveurs cloud de Divoom en utilisant MQTT pour la messagerie en temps réel et HTTPS pour la synchronisation des données. Ce n’est qu’une fois cette première connexion au cloud établie que le point de terminaison HTTP local devient disponible sur votre réseau.

Cette architecture est différente de celle du Pixoo-64, qui fonctionne comme un appareil local plus simple. Si vous avez déjà utilisé l’API REST du Pixoo-64 (présentée dans notre guide pour débutants sur l’API du Pixoo-64), attendez-vous à une courbe d’apprentissage plus exigeante avec le Times Gate. Sa dépendance au cloud signifie que vous avez besoin d’une connexion Wi-Fi fonctionnelle avec accès à Internet lors de la configuration, et l’API locale disparaîtra si l’appareil perd sa connexion au cloud.

Pourquoi est-ce important ? Parce que cela influence chacune de vos décisions concernant la manière de contrôler l’appareil. Si vous créez un tableau de bord domotique qui doit continuer à fonctionner en cas de panne d’Internet, vous aurez besoin d’une stratégie de secours. Si vous exécutez simplement des scripts depuis votre bureau, la connexion initiale au cloud ne constitue qu’une étape de configuration unique, et l’API locale fonctionne ensuite sans problème.

Le Divoom Times Gate affichant cinq écrans LCD indépendants avec des données boursières, de cryptomonnaies, météorologiques et horaires sur un bureau
Chacun des cinq écrans LCD de 128×128 peut afficher un contenu indépendant — cours boursiers, cryptomonnaies, météo, statistiques des réseaux sociaux ou créations pixelisées.

Le Times Gate n’est pas un appareil à écran unique auquel on aurait simplement ajouté une API. Il s’agit d’un tableau de bord à cinq écrans qui est entièrement programmable — dès que vous avez compris comment communiquer avec lui.

L’API LAN locale : ce que vous pouvez contrôler directement

Une fois que le Times Gate est connecté à votre Wi-Fi et a terminé sa liaison avec le cloud, il expose une API HTTP sur votre réseau local. Les développeurs de la communauté en ont établi les principales fonctionnalités par expérimentation et rétro-ingénierie. Voici ce que vous pouvez réellement faire avec ce point de terminaison :

  • Changer de canal d’écran — demander à chacun des cinq écrans d’afficher un canal différent (horloge, météo, cours boursiers, statistiques des réseaux sociaux, créations pixelisées).
  • Envoyer des images pixelisées personnalisées — transmettre des données de pixels brutes à un écran précis, ce qui permet d’afficher tout ce qui tient dans une grille de 128×128.
  • Contrôler la luminosité et le volume — régler la luminosité de l’affichage et la sortie audio par programmation.
  • Interroger l’état de l’appareil — lire l’état actuel de chaque écran, les canaux actifs et les informations de connexion.

L’API communique via HTTP standard, ce qui signifie que vous pouvez l’utiliser depuis n’importe quel langage capable d’effectuer une requête réseau — Python, JavaScript, Rust, Go, voire un script shell avec curl. Aucun jeton d’authentification ni aucune clé API ne sont requis pour les requêtes locales ; l’appareil fait confiance à tout ce qui se trouve sur le même réseau local.

Un développeur de la communauté Divoom sur Reddit a posé la même question que se posent de nombreux nouveaux propriétaires de Times Gate : « Je souhaite le contrôler par programmation plutôt que d’utiliser uniquement l’application mobile. Quelqu’un sait-il s’il existe une API ? » La discussion a révélé que l’API locale, bien que totalement non documentée par Divoom, est toujours active et réactive.

Conseil de configuration

Avant de commencer à rédiger des appels API, assurez-vous que le Times Gate est connecté au même réseau Wi-Fi que votre machine de développement et qu’il a entièrement démarré (les écrans doivent afficher des données en direct, et non un état de chargement). Si le point de terminaison de l’API locale ne répond pas, redémarrez l’appareil et vérifiez qu’il a accès à Internet.

Envoyer des widgets personnalisés sur cinq écrans

C’est ici que le Times Gate devient intéressant. Contrairement à un écran à pixels unique, vous disposez de cinq grilles indépendantes de 128×128. Vous pouvez ainsi créer un véritable tableau de bord de bureau : cours des actions en direct sur l’écran un, graphiques de cryptomonnaies sur l’écran deux, widget météo sur l’écran trois, nombre d’abonnés YouTube sur l’écran quatre et animation personnalisée de pixel art sur l’écran cinq.

Le processus d’envoi de contenu personnalisé suit le même schéma, quel que soit l’écran ciblé. Vous générez vos données dans une image bitmap de 128×128 pixels, l’encodez au format attendu par l’API (généralement en RVB brut ou dans une variante compressée), puis l’envoyez via une requête HTTP POST au point de terminaison local en indiquant l’index de l’écran. L’appareil actualise immédiatement l’affichage.

Pour les implémentations pratiques, la plupart des développeurs génèrent leurs données côté serveur à l’aide d’une bibliothèque graphique légère — Pillow de Python est un choix courant — puis envoient l’image bitmap obtenue au Times Gate à intervalles réguliers. Un simple script Python qui récupère les cours des actions depuis une API gratuite, les affiche sous forme de texte et de mini-graphique sur une toile de 128×128, puis envoie le résultat vers l’écran un toutes les 60 secondes est un projet réalisable en une après-midi.

L’éclairage d’ambiance à double bord, avec ses 12 effets RVB personnalisables, est également accessible via l’API, même si la prise en charge communautaire de son contrôle programmatique est encore moins mature que celle des points de terminaison de contrôle de l’écran.

Outils communautaires pour le développement de Times Gate

Vous n’avez pas besoin de tout créer de zéro. La communauté de développeurs autour des appareils Divoom a produit plusieurs bibliothèques et outils qui encapsulent l’API HTTP brute pour la rendre plus pratique à utiliser. Si vous avez déjà utilisé l’API Pixoo-64, certains de ces outils vous sembleront familiers — plusieurs ont été conçus à l’origine pour le Pixoo, puis étendus pour prendre en charge les points de terminaison Times Gate.

Outil Langage Fonctionnalités Idéal pour
pixoo-rest Python (serveur REST) Exécute un serveur REST local qui encapsule les API HTTP de Divoom ; prend en charge le dessin de pixels, de lignes, de rectangles et de texte, ainsi que le téléchargement automatique d’images Développeurs qui souhaitent une couche middleware REST entre leur application et l’appareil
divoom-cli Rust Outil et bibliothèque en ligne de commande ; inclut la découverte des appareils sur le réseau local, le changement de canal et l’envoi direct de pixels bruts Développeurs Rust et toute personne qui préfère les scripts en ligne de commande à la création d’un serveur
Divoom.Api C# / .NET Bibliothèque .NET encapsulant les API des appareils Divoom ; conçue à l’origine pour les appareils Timebox Développeurs C# dans l’écosystème .NET
divoom-gateway Passerelle REST (interface Swagger) Passerelle d’API REST autonome avec spécification OpenAPI et interface Swagger ; encapsule les API HTTP brutes de Divoom pour tous les langages Les équipes qui souhaitent une couche d’API documentée et indépendante du langage, avec une interface d’exploration intégrée

Chaque outil adopte une approche différente. Pixoo-rest est le point de départ le plus populaire pour les développeurs Python, car il gère les détails du protocole et fournit des points de terminaison clairs comme /api/draw/text ou /api/draw/rectangle. Le divoom-cli basé sur Rust est excellent si vous souhaitez disposer d’un binaire compilé que vous pouvez appeler depuis des scripts shell ou des tâches cron. Divoom.Api couvre l’écosystème .NET. Et divoom-gateway est le bon choix si vous développez quelque chose de multilingue et souhaitez disposer immédiatement d’une documentation Swagger.

L’écosystème Rust mérite une mention particulière, car le projet pixoo-rest et la crate Rust divoom incluent tous deux une API de découverte des appareils : il suffit d’appeler une fonction pour trouver tous les appareils Divoom présents sur votre réseau local. C’est réellement utile lorsque vous avez plusieurs écrans ou lorsque l’adresse IP de l’appareil change après le redémarrage du routeur.

Intégration Home Assistant

Si vous utilisez Home Assistant, vous n’avez pas besoin d’écrire une application personnalisée pour contrôler le Times Gate. L’API HTTP locale est directement accessible via l’intégration de commandes REST de Home Assistant, ce qui signifie que vous pouvez envoyer des appels d’API dans le cadre de n’importe quelle automatisation.

La configuration est simple. Vous définissez une commande REST dans votre configuration.yaml qui pointe vers l’adresse IP locale du Times Gate et le point de terminaison de l’API que vous souhaitez appeler. Vous déclenchez ensuite cette commande depuis n’importe quelle automatisation : l’appui sur un bouton, un déclencheur temporel, un changement d’état sur un autre capteur ou une commande vocale. La discussion de la communauté Home Assistant consacrée aux appareils Divoom contient des exemples fonctionnels de configurations de commandes REST permettant de changer de canal d’écran, d’envoyer des images personnalisées et d’ajuster la luminosité en fonction de capteurs de lumière ambiante.

Parmi les idées d’automatisation pratiques que les propriétaires de Times Gate ont mises en place avec Home Assistant, on peut citer le passage des cinq écrans à une horloge en « mode concentration » lorsqu’un minuteur Pomodoro démarre, l’affichage d’alertes météo lorsqu’une alerte de tempête est déclenchée, l’affichage d’une notification de sonnette accompagnée d’une animation pixelisée personnalisée lorsque quelqu’un sonne, et la rotation des statistiques des réseaux sociaux toutes les quelques minutes pendant une diffusion en direct.

N’oubliez pas que, puisque le Times Gate a besoin d’une première connexion au cloud avant que l’API locale soit disponible, vous devez ajouter à votre automatisation Home Assistant une condition qui vérifie que l’appareil répond avant d’envoyer des commandes. Un simple test ping évite que les journaux d’erreurs ne s’accumulent en cas de coupure d’Internet.

Ce que l’API ne peut pas encore faire

Être honnête sur les limitations fait partie des qualités d’un bon guide destiné aux développeurs. L’API communautaire du Times Gate est puissante, mais elle comporte de véritables contraintes que vous devez connaître avant de concevoir un système de production autour d’elle.

Premièrement, il n’existe aucune documentation API officielle. Tout ce que la communauté sait provient de la rétro-ingénierie, ce qui signifie que l’API pourrait changer sans préavis lors d’une mise à jour du firmware. Si vous construisez un système critique reposant sur l’API locale, prévoyez une solution de secours — même s’il s’agit simplement de vérifier que vos scripts fonctionnent toujours après chaque mise à jour du firmware.

Deuxièmement, la dépendance au cloud est une exigence incontournable. Un utilisateur du subreddit Home Assistant l’a appris à ses dépens lorsqu’il a essayé d’utiliser son appareil Divoom dans un VLAN isolé sans accès à Internet. L’API REST ne répondait tout simplement pas avant qu’il autorise l’appareil à accéder aux serveurs cloud de Divoom. Si vous prévoyez une configuration de maison connectée totalement isolée d’Internet, le Times Gate n’est peut-être pas l’écran adapté à cet environnement.

Troisièmement, la prise en charge spécifique du Times Gate par les outils communautaires est encore en cours de développement. De nombreuses bibliothèques ont été conçues à l’origine pour le Pixoo-64 ou le Timebox, puis étendues pour prendre en charge les points de terminaison du Times Gate, mais toutes les fonctionnalités n’ont pas été vérifiées sur chaque modèle d’appareil. Si vous utilisez une bibliothèque qui n’a pas été conçue à l’origine pour le Times Gate, testez chaque appel API individuellement avant de vous y fier.

Sécurité des mises à jour du firmware

Après toute mise à jour du firmware du Times Gate, effectuez un test rapide de vos scripts API avant de supposer que tout fonctionne toujours. Épinglez la version de votre firmware si vous disposez d’un système d’automatisation stable que vous ne pouvez pas vous permettre de perturber.

FAQ

Le Times Gate dispose-t-il d’une API officielle ?

Non. Divoom n’a pas publié de documentation API officielle pour le Times Gate. Cependant, la communauté des développeurs a rétroconçu l’API HTTP locale et créé des bibliothèques en Python, Rust et C#, ce qui permet de contrôler facilement l’appareil par programmation.

Puis-je contrôler le Times Gate sans connexion Internet ?

Pas entièrement. Le Times Gate nécessite une connexion initiale au cloud via MQTT et HTTPS avant que son API LAN locale ne devienne disponible. Une fois cette négociation terminée, les appels à l’API locale fonctionnent sans accès permanent à Internet — mais si l’appareil redémarre ou perd l’alimentation, il devra se reconnecter aux serveurs cloud de Divoom avant que l’API locale ne réponde à nouveau.

Quels langages de programmation disposent de bibliothèques communautaires ?

Python (pixoo-rest), Rust (divoom-cli et la crate divoom) et C# (Divoom.Api pour .NET). Il existe également divoom-gateway, une passerelle API REST autonome avec une interface utilisateur Swagger, compatible avec tout langage capable d’effectuer des requêtes HTTP.

Home Assistant prend-il en charge le Times Gate ?

Oui, grâce à l’intégration des commandes REST de Home Assistant. Vous définissez une commande REST pointant vers le point de terminaison de l’API locale du Times Gate, puis vous la déclenchez depuis n’importe quelle automatisation. La communauté Home Assistant dispose d’exemples fonctionnels d’intégration des appareils Divoom.

Puis-je envoyer des widgets personnalisés vers des écrans individuels ?

Oui. Chacun des cinq écrans LCD de 128×128 peut afficher un contenu indépendant. Vous pouvez envoyer un pixel art, du texte ou des données rendues personnalisés vers n’importe quel écran précis en l’adressant via le paramètre d’index d’écran de l’API.

Et maintenant ?

Si vous avez déjà un Times Gate, commencez par exécuter une simple commande curl sur l’API locale pour changer le canal d’un écran — ce sera votre moment « bonjour le monde ». Ensuite, choisissez l’outil communautaire correspondant à votre langage préféré et créez un petit projet : un afficheur de cours boursiers, un tableau de bord météo ou une animation de notification personnalisée. Le Times Gate encourage l’expérimentation et, dès qu’un écran fait quelque chose de personnalisé, les quatre autres suivent naturellement.

Si vous venez de l’univers du Pixoo-64, notre guide de démarrage de l’API du Pixoo-64 présente le modèle d’API REST locale, plus simple, utilisé par le Pixoo — un contexte utile pour comprendre ce qui a changé avec l’architecture connectée au cloud du Times Gate. Pour la configuration matérielle et la documentation officielle du produit, la page des manuels des produits Divoom contient les guides à jour.

Écran d’informations en pixel art à cinq écrans Divoom Times Gate

Divoom Times Gate

Cinq écrans LCD indépendants de 128×128, connectés au Wi-Fi et entièrement programmables via une API locale et des outils communautaires. Widgets intégrés pour les actions, les cryptomonnaies, la météo et les statistiques des réseaux sociaux.

Voir Times Gate
How to Store Photos Locally on Pixel Displays: A Privacy-Friendly Guide App Guide How to Store Photos Locally on Pixel Displays: A Privacy-Friendly Guide Learn how to store and display photos on Divoom pixel displays without cloud sync. Time... Pixoo-64 Node-RED + MQTT: Build Smarter Pixel Alerts App Guide Pixoo-64 Node-RED + MQTT: Build Smarter Pixel Alerts My smart-home alerts kept disappearing into phone notifications. This Node-RED and MQTT... Pixoo-64 + Home Assistant : créez un tableau de bord domotique en pixels App Guide Pixoo-64 + Home Assistant : créez un tableau de bord domotique en pixels Le Divoom Pixoo-64 est l’un des afficheurs les plus appréciés de la communauté Home Ass...
Retour au blog
Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.