Divoom Times Gate API-ontwikkelaarsgids

Divoom Times Gate API-ontwikkelaarsgids

Je haalt de Divoom Times Gate uit de doos, sluit hem aan en ziet vijf lcd-schermen oplichten met beurskoersen, het weer en pixelartanimaties. De app werkt prima. Maar je blijft je afvragen: kan ik mijn eigen gegevens naar die schermen sturen? Kan ik een script schrijven dat een aangepast dashboard op scherm drie zet, terwijl de klok op scherm één blijft draaien?

Het korte antwoord is ja — maar niet op de manier die je misschien verwacht. Divoom heeft geen officiële API-documentatie voor de Times Gate gepubliceerd. In plaats daarvan heeft de ontwikkelaarscommunity de lokale netwerk-API van het apparaat reverse-engineered, bibliotheken gebouwd in Python, Rust en C#, en deze geïntegreerd met platforms zoals Home Assistant. In deze handleiding lees je hoe de Times Gate daadwerkelijk communiceert, wat de lokale LAN-API kan en met welke tools je het snelst aan de slag kunt.

De officiële installatiehandleiding voor de Times Gate van het YouTube-kanaal van Divoom.

Hoe de Times Gate met je netwerk communiceert

Voordat je ook maar één regel code schrijft, moet je één ding begrijpen waar bijna elke ontwikkelaar de eerste keer tegenaan loopt: de Times Gate biedt niet meteen een lokale API aan zodra je het apparaat inschakelt. Wanneer het apparaat opstart, maakt het via MQTT verbinding met de cloudservers van Divoom voor realtimeberichten en gebruikt het HTTPS voor gegevenssynchronisatie. Pas nadat die eerste cloudhandshake is voltooid, wordt het lokale HTTP-eindpunt beschikbaar op je netwerk.

Dit is een andere architectuur dan die van de Pixoo-64, die als een eenvoudiger lokaal apparaat werkt. Als je eerder de REST-API van de Pixoo-64 hebt gebruikt (behandeld in onze beginnershandleiding voor de Pixoo-64 API), kun je bij de Times Gate een steilere leercurve verwachten. Door de afhankelijkheid van de cloud heb je tijdens de installatie een werkende wifiverbinding met internettoegang nodig, en verdwijnt de lokale API als het apparaat zijn cloudverbinding verliest.

Waarom is dit belangrijk? Omdat het elke beslissing bepaalt die je neemt over hoe je het apparaat wilt bedienen. Als je een smarthome-dashboard bouwt dat een internetstoring moet kunnen doorstaan, heb je een fallbackstrategie nodig. Als je gewoon scripts vanaf je bureau uitvoert, is de cloudhandshake een eenmalige configuratiestap en werkt de lokale API daarna probleemloos.

Divoom Times Gate met vijf onafhankelijke lcd-schermen waarop aandelen-, crypto-, weer- en klokgegevens op een bureau worden weergegeven
Elk van de vijf lcd-schermen van 128×128 kan onafhankelijke inhoud weergeven — aandelen, cryptovaluta, weer, sociale statistieken of aangepaste pixelkunst.

De Times Gate is geen apparaat met één scherm waaraan achteraf een API is toegevoegd. Het is een dashboard met vijf schermen dat volledig programmeerbaar is — zodra je begrijpt hoe je ermee moet communiceren.

De lokale LAN-API: wat je rechtstreeks kunt bedienen

Zodra de Times Gate met je wifi is verbonden en de cloudverbinding heeft voltooid, stelt het apparaat een HTTP-API beschikbaar op je lokale netwerk. Ontwikkelaars uit de community hebben de belangrijkste mogelijkheden door experimenten en reverse-engineering in kaart gebracht. Dit kun je daadwerkelijk met dat eindpunt doen:

  • Schermkanalen wisselen — laat elk van de vijf schermen een ander kanaal weergeven (klok, weer, beursticker, sociale statistieken, aangepaste kunst).
  • Aangepaste pixelkunst sturen — stuur onbewerkte pixelgegevens naar een specifiek scherm, zodat je alles kunt weergeven wat in een raster van 128×128 past.
  • Helderheid en volume regelen — pas de schermintensiteit en audio-uitvoer programmatisch aan.
  • Apparaatstatus opvragen — lees de huidige status van elk scherm, actieve kanalen en verbindingsinformatie.

De API communiceert via standaard-HTTP. Dat betekent dat je er vanuit elke taal die netwerkverzoeken kan uitvoeren bij kunt — Python, JavaScript, Rust, Go, zelfs een shellscript met curl. Voor lokale verzoeken is geen authenticatietoken of API-sleutel nodig; het apparaat vertrouwt alles op hetzelfde lokale netwerk.

Een ontwikkelaar in de Divoom-community op Reddit stelde dezelfde vraag als veel nieuwe Times Gate-eigenaren: "Ik wil het apparaat programmatisch bedienen in plaats van alleen de mobiele app te gebruiken. Weet iemand of er een API is?" Uit de discussie bleek dat de lokale API, hoewel Divoom er helemaal geen documentatie over heeft gepubliceerd, nog steeds actief is en goed reageert.

Installatietip

Voordat je API-aanroepen gaat schrijven, moet je ervoor zorgen dat de Times Gate met hetzelfde wifinetwerk als je ontwikkelcomputer is verbonden en volledig is opgestart (de schermen moeten livegegevens tonen, niet een laadstatus). Als het lokale API-eindpunt niet reageert, start je het apparaat opnieuw op en controleer je of het internettoegang heeft.

Aangepaste widgets naar vijf schermen sturen

Hier wordt de Times Gate interessant. In tegenstelling tot een pixeldisplay met één scherm beschik je over vijf onafhankelijke rasters van 128×128. Dat betekent dat je een echt desktopdashboard kunt bouwen: live aandelenkoersen op scherm één, cryptografieken op scherm twee, een weerwidget op scherm drie, je aantal YouTube-abonnees op scherm vier en een aangepaste pixelkunst-animatie op scherm vijf.

Het proces voor het versturen van aangepaste inhoud volgt hetzelfde patroon, ongeacht welk scherm je target. Je rendert je gegevens in een bitmap van 128×128 pixels, codeert deze in de indeling die de API verwacht (meestal onbewerkte RGB of een gecomprimeerde variant) en verstuurt deze als een HTTP POST naar het lokale eindpunt, met de schermindex gespecificeerd. Het apparaat vernieuwt het scherm onmiddellijk.

Voor praktische implementaties renderen de meeste ontwikkelaars hun gegevens aan de serverzijde met een lichtgewicht grafische bibliotheek — Pillow voor Python is een veelgebruikte keuze — en sturen ze de resulterende bitmap op gezette tijden naar de Times Gate. Een eenvoudig Python-script dat aandelenkoersen ophaalt via een gratis API, deze als tekst en een kleine grafiek op een canvas van 128×128 weergeeft en het resultaat elke 60 seconden naar scherm één stuurt, is een project dat je in één middag kunt bouwen.

De ambiëntverlichting met twee lichtgevende randen en 12 aanpasbare RGB-effecten is ook via de API aan te sturen, al loopt de ondersteuning vanuit de community voor het programmatisch bedienen van de verlichting nog achter op die voor de schermbediening.

Communitytools voor Times Gate-ontwikkeling

Je hoeft niet alles vanaf nul op te bouwen. De ontwikkelaarsgemeenschap rond Divoom-apparaten heeft verschillende bibliotheken en tools gemaakt die de onbewerkte HTTP-API omzetten in iets gebruiksvriendelijkers. Als je de Pixoo-64-API al eens hebt gebruikt, zullen sommige van deze tools je bekend voorkomen — verschillende ervan zijn oorspronkelijk voor de Pixoo gebouwd en later uitgebreid met ondersteuning voor Times Gate-eindpunten.

Tool Taal Wat het doet Ideaal voor
pixoo-rest Python (REST-server) Draait een lokale REST-server die de HTTP-API's van Divoom omhult; ondersteunt het tekenen van pixels, lijnen, rechthoeken en tekst, en het automatisch downloaden van afbeeldingen Ontwikkelaars die een REST-middlewarelaag tussen hun app en het apparaat willen
divoom-cli Rust Opdrachtregeltool en bibliotheek; bevat ontdekking van apparaten via LAN, kanaalwisseling en het rechtstreeks versturen van onbewerkte pixels Rust-ontwikkelaars en iedereen die liever CLI-scripts schrijft dan een server bouwt
Divoom.Api C# / .NET .NET-bibliotheek die een wrapper vormt rond de API's van Divoom-apparaten; oorspronkelijk gebouwd voor Timebox-apparaten C#-ontwikkelaars in het .NET-ecosysteem
divoom-gateway REST-gateway (Swagger UI) Zelfstandige REST-API-gateway met OpenAPI-specificatie en Swagger UI; verpakt onbewerkte Divoom-HTTP-API's voor elke programmeertaal Teams die een gedocumenteerde, taalonafhankelijke API-laag met ingebouwde verkenningsinterface willen

Elke tool kiest een andere aanpak. Pixoo-rest is het populairste startpunt voor Python-ontwikkelaars, omdat het de protocol details afhandelt en je overzichtelijke eindpunten biedt, zoals /api/draw/text of /api/draw/rectangle. De op Rust gebaseerde divoom-cli is uitstekend als je een gecompileerd binair bestand wilt aanroepen vanuit shellscripts of cronjobs. Divoom.Api dekt de .NET-kant. En divoom-gateway is de juiste keuze als je iets voor meerdere talen bouwt en direct Swagger-documentatie wilt.

Het Rust-ecosysteem verdient een speciale vermelding, omdat zowel het project pixoo-rest als de Rust divoom-crate een API voor apparaatdetectie bevat — je roept één functie aan en die vindt elk Divoom-apparaat op je LAN. Dat is echt handig als je meerdere schermen hebt of als het IP-adres van het apparaat na een herstart van de router verandert.

Home Assistant-integratie

Als je Home Assistant gebruikt, hoef je geen aangepaste applicatie te schrijven om de Times Gate te bedienen. De lokale HTTP-API is rechtstreeks toegankelijk via de REST-opdrachtintegratie van Home Assistant, waardoor je API-aanroepen kunt versturen als onderdeel van elke automatisering.

De configuratie is eenvoudig. Je definieert een REST-opdracht in je configuration.yaml die verwijst naar het lokale IP-adres van de Times Gate en het API-eindpunt dat je wilt aanroepen. Vervolgens activeer je die opdracht vanuit elke automatisering — een druk op een knop, een tijdtrigger, een statuswijziging op een andere sensor of een spraakopdracht. De discussie in de Home Assistant-community over Divoom-apparaten bevat werkende voorbeelden van REST-opdrachtconfiguraties waarmee je van schermkanaal wisselt, aangepaste afbeeldingen verstuurt en de helderheid aanpast op basis van omgevingslichtsensoren.

Praktische automatiseringsideeën die eigenaren van Times Gate met Home Assistant hebben gebouwd, zijn onder andere alle vijf schermen overschakelen naar een klok in de ‘focusmodus’ wanneer een Pomodoro-timer start, weerwaarschuwingen weergeven wanneer er een stormwaarschuwing wordt afgegeven, een deurbelmelding met een aangepaste pixelanimatie tonen wanneer iemand aanbelt en tijdens een livestream elke paar minuten wisselen tussen statistieken van sociale media.

Houd er rekening mee dat de Times Gate eerst verbinding moet maken met de cloud voordat de lokale API beschikbaar is. Voeg daarom een voorwaarde toe aan je Home Assistant-automatisering die controleert of het apparaat reageert voordat je opdrachten verstuurt. Met een eenvoudige pingcontrole voorkom je dat foutlogboeken zich opstapelen als je internetverbinding wegvalt.

Wat de API nog niet kan

Eerlijk zijn over beperkingen hoort bij een goede ontwikkelaarsgids. De community-API van de Times Gate is krachtig, maar kent reële beperkingen die je moet kennen voordat je er een productiesysteem omheen bouwt.

Ten eerste is er geen officiële API-documentatie. Alles wat de community weet, is afkomstig uit reverse engineering, wat betekent dat de API zonder waarschuwing kan veranderen na een firmware-update. Als je iets bedrijfskritisch bouwt op basis van de lokale API, zorg dan voor een terugvalplan — zelfs als dat alleen betekent dat je na elke firmware-update controleert of je scripts nog werken.

Ten tweede is de afhankelijkheid van de cloud een harde vereiste. Een gebruiker in de Home Assistant-subreddit ontdekte dit op de harde manier toen die zijn Divoom-apparaat in een geïsoleerd VLAN zonder internettoegang probeerde te gebruiken. De REST-API reageerde simpelweg niet totdat de gebruiker het apparaat toegang tot de cloudservers van Divoom gaf. Als je een volledig van het internet afgesloten smart-home-installatie plant, is de Times Gate mogelijk niet het juiste display voor die omgeving.

Ten derde wordt de ondersteuning van communitytools specifiek voor de Times Gate nog steeds uitgebreid. Veel bibliotheken zijn oorspronkelijk geschreven voor de Pixoo-64 of de Timebox en later uitgebreid met ondersteuning voor Times Gate-eindpunten, maar niet elke functie is op alle apparaatmodellen geverifieerd. Als je een bibliotheek gebruikt die niet oorspronkelijk voor de Times Gate is ontworpen, test dan elke API-aanroep afzonderlijk voordat je erop vertrouwt.

Veiligheid bij firmware-updates

Voer na elke firmware-update van de Times Gate een snelle test van je API-scripts uit voordat je ervan uitgaat dat alles nog werkt. Leg je firmwareversie vast als je een stabiele automatiseringspipeline hebt die niet mag uitvallen.

Veelgestelde vragen

Heeft de Times Gate een officiële API?

Nee. Divoom heeft geen officiële API-documentatie voor de Times Gate gepubliceerd. De ontwikkelaarscommunity heeft de lokale HTTP-API echter reverse-engineered en bibliotheken gebouwd in Python, Rust en C#, waarmee het apparaat praktisch programmatisch kan worden aangestuurd.

Kan ik de Times Gate bedienen zonder internetverbinding?

Niet volledig. De Times Gate vereist eerst een cloudverbinding via MQTT en HTTPS voordat de lokale LAN-API beschikbaar wordt. Zodra die handshake is voltooid, werken lokale API-aanroepen zonder voortdurende internettoegang — maar als het apparaat opnieuw opstart of stroom verliest, moet het opnieuw verbinding maken met de cloudservers van Divoom voordat de lokale API weer reageert.

Welke programmeertalen hebben communitybibliotheken?

Python (pixoo-rest), Rust (divoom-cli en de divoom-crate) en C# (Divoom.Api voor .NET). Er is ook divoom-gateway, een zelfstandige REST-API-gateway met Swagger UI die werkt met elke taal die HTTP-verzoeken kan uitvoeren.

Ondersteunt Home Assistant de Times Gate?

Ja, via de REST-opdrachtintegratie van Home Assistant. Je definieert een REST-opdracht die verwijst naar het lokale API-eindpunt van de Times Gate en activeert die vanuit elke automatisering. De Home Assistant-community heeft werkende voorbeelden voor de integratie van Divoom-apparaten.

Kan ik aangepaste widgets naar afzonderlijke schermen sturen?

Ja. Elk van de vijf lcd-schermen van 128×128 pixels kan onafhankelijke inhoud weergeven. Je kunt aangepaste pixelart, tekst of weergegeven gegevens naar elk specifiek scherm sturen door het via de schermindexparameter in de API aan te spreken.

Waar ga je vanaf hier naartoe?

Als je al een Times Gate hebt, begin dan met een eenvoudig curl-commando tegen de lokale API om het kanaal van een scherm te wijzigen — dat is je ‘hello world’-moment. Kies vervolgens de communitytool die bij je voorkeurstaal past en bouw een klein project: een aandelenkoersentikker, een weerdashboard of een aangepaste meldingsanimatie. De Times Gate nodigt uit tot experimenteren, en zodra één scherm iets aangepasts doet, volgen de andere vier vanzelf.

Als je uit de wereld van Pixoo-64 komt, behandelt onze beginnersgids voor de Pixoo-64-API het eenvoudigere lokale REST-API-model dat de Pixoo gebruikt — nuttige achtergrondinformatie om te begrijpen wat er is veranderd met de cloudverbonden architectuur van de Times Gate. Voor de hardware-installatie en officiële productdocumentatie vind je op de pagina met Divoom-producthandleidingen de actuele gidsen.

Divoom Times Gate-informatiedisplay met vijf schermen en pixelart

Divoom Times Gate

Vijf onafhankelijke lcd-schermen van 128×128 pixels, verbonden via wifi en volledig programmeerbaar met de lokale API en communitytools. Ingebouwde widgets voor aandelen, crypto, het weer en statistieken van sociale media.

Times Gate bekijken
Pixoo-64 + Home Assistant: Bouw een slim pixeldashboard voor thuis App Guide Pixoo-64 + Home Assistant: Bouw een slim pixeldashboard voor thuis De Divoom Pixoo-64 is een van de populairste displays binnen de Home Assistant-communit... Pixelkunst animeren voor een Divoom-display (stap-voor-staphandleiding) animate pixel art divoom Pixelkunst animeren voor een Divoom-display (stap-voor-staphandleiding) Leer hoe je beeld-voor-beeld pixelartanimaties voor je Divoom-display maakt. Kies je to... Divoom Weer Klopt Niet: Los Problemen met Locatie, Tijdzone en Vernieuwing op App Guide Divoom Weer Klopt Niet: Los Problemen met Locatie, Tijdzone en Vernieuwing op Los problemen met de Divoom weerwidget op: verkeerde stad, verouderde gegevens of geen ...
Terug naar de blog
Laat een reactie achter

Houd er rekening mee dat opmerkingen goedgekeurd moeten worden voordat ze worden gepubliceerd.