Programmeer Handleiding

Meerdere Protocollen

Wij willen het programmeurs zo makkelijk mogelijk maken om met onze lampen en led computers te communiceren. Daarom zijn onze protocollen volledig open. Onze led computers praten verschillende protocollen, die door ons zelf zijn ontwikkeld. Er zijn drie protocollen waar u gebruik van kunt maken. Deze protocollen zijn: ArtiAPI, ArtiNET en ArtiTCP.

ArtiNET is een protocol dat onze apparaten onderling met elkaar praten. Dit protocol is op TCP gebaseerd en geschikt voor realtime communicatie. Communicatie gaat middels efficiënte socket programming met simpele byte streams. Hierbij kan je alles maar moet je wel veel zelf regelen.

ArtiTCP is een protocol dat onze Hub praat met onze apparaten. Dit is ook een gebaseerd TCP gebaseerd protocol, maar tekst gebaseerd en niet geschikt voor realtime communicatie. met ArtiTCP is het ook mogelijk om de gehele lamp of led controller te besturen zoals bijvoorbeeld het updaten van de software.

ArtiAPI is gebaseerd op HTTP/HTTPS REST en werkt met JSON. Hierbij heet het protocol veel meer intelligentie en neemt het werkt uit handen, maar dit is niet geschikt voor realtime.

Multi Client Communicatie

Onze led computers en lampen praten zowel ArtiNET als ArtiTCP. Deze protocollen zijn beiden multi client. Dat wil zeggen dat het mogelijk is om met meerdere apparaten tegelijk met een lamp of led controller te communiceren Met het ArtiNET protocol kan dit echter op hoge snelheid tot 50 wijzigingen per seconde. Het is zelfs mogelijk dat u met de ene controller één deel van een led strip of lamp bedient, terwijl een compleet andere controller een andere deel van de led strip bedient.

Onze ArtiHUB praat het ArtiAPI protocol. Via de Smart ArtiHUB en ArtiAPI is het echter mogelijk om meerdere lampen tegelijk aan te sturen en om bijvoorbeeld scenes aan te roepen. Via ArtiNET communiceert u altijd direct met één enkel apparaat.

En daarnaast we kunnen ook nog eens onze Smart ArtiHUB tegen andere apparaten laten aanpraten om ze te combineren in scenes. Denk hierbij aan bestaande Philips Hue lampen of bijvoorbeeld Zwave lampen via een Fibaro controller. Op deze manier heeft u alles centraal via één API.

Veel commando’s

Onze protocollen bevatten veel commando’s. Zo zijn er commando’s voor het aansturen van hele led strips, of segmenten hier van, individuele pixels, meerdere segmenten of meerdere pixels tegelijk. Er kan gewerkt worden met kleur paletten, die u zelf kunt definiëren, diverse effecten zijn standaard ingebouwd. Er kan gerekend worden met kleuren, een patroon kan worden verschoven, segmenten gewisseld en veel meer. Lees de protocol definitie voor alle commando’s. Het is echt te veel om op te noemen.

Er kan ook heel veel informatie worden opgevraagd uit een lamp of led controller. Hoeveel vermogen wordt er verbruikt?, wat was het maximale verbruik?, Wat zijn de temperaturen in de controller of in de lamp? hoeveel commando’s per seconde zijn er ontvangen? Welke ledjes zijn aan? Hoeveel leds zijn er aan? Welke kleuren zijn er actief. De mogelijkheden zijn bijna oneindig.

En als iets nog niet kan dan denken wij graag met u mee hoe we dit alsnog kunnen realiseren. Wij maken zelfs custom firmware en custom producten als het nodig is.

ArtiNET Protocol

Het ArtiNET protocol is door ons ontworpen om op een zo efficiënt mogelijke manier onze lampen en led computers aan te sturen. Het protocol is gebaseerd op een TCP byte stream en is volledig open. Dat betekent dat u alle commando’s kunt inzien en wij uitleggen wat alles doet. In de illustratie is de plek van het protocol in het OSI model te zien.

Het protocol begint altijd met een Start byte, gevolgd door een Command byte dat het uit te voeren commando bevat. Hierna volgt altijd een Realtime byte dat aangeeft of het om een real time communicatieopdracht gaat zonder antwoord of dat er een antwoord verwacht wordt. Het volgende byte bevat het kanaal waar het commando voor bedoeld is. Kanaal 0 betekent alle kanalen. Dan volgt een Amount byte bestaande uit een lsb/msb byte dat het aantal Data bytes aangeeft dat volgt. Dan volgen de daadwerkelijke data bytes zoals aangegeven. En als laatste een Stop byte.

U kunt de hele ArtiNET protocol definitie zien door op onderstaand knop te klikken. Mocht u vragen hebben neem dan gerust contact met ons op. Wij ondersteunen u graag. Maar lees ook verder voor de standaard libraries die wij reeds bieden.

ArtiNET Libraries

Om het makkelijk te maken om te starten met het ArtiNET protocol hebben wij een Python en een PHP library geschreven met daarbij een bestand met voorbeeld commando’s. De Python library is geschikt voor real time communicatie. PHP is hier helaas wat minder goed in.

Het staat u natuurlijk vrij om zelf met TCP sockets te programmeren. Bekijk hiervoor de Protocol Definitie hierboven en wellicht kunt u dan onze libraries gebruiken als voorbeeld. En mocht u zelf een library ontwikkelen in een andere programmeer taal stellen wij het uiteraard op prijs als u die met ons zou willen delen ten behoeve van onze andere klanten.

Houdt er rekening mee dat wij nog steeds ontwikkelen aan het ArtiNET protocol dus check altijd voor de laatste versies van de libraries online. Onze lampen en led computers updaten hun libraties automatisch bij een software update.

Klik op onderstaande knoppen voor onze huidige libraries.

ArtiTCP Protocol

Het ArtiTCP protocol is door ons ontworpen om op een zo makkelijk mogelijke manier onze lampen en led computers aan te sturen. Het protocol is gebaseerd op een TCP stream met leesbare tekst commando’s en is volledig open. Dat betekent dat u alle commando’s kunt inzien en wij uitleggen wat alles doet. In de illustratie is de plek van het protocol in het OSI model te zien.

U kunt een simpele Telnet sessie starten naar de led controller of lamp en direct commando’s invoeren of dit doen vanuit uw software. Er moet wel vooraf een authenticatie gedaan worden met een token dat per controller of lamp uniek is.

ArtiAPI Protocol

Het ArtiAPI protocol is door ons ontworpen om op een centrale manier via de Smart Hub onze lampen en led computers aan te sturen. Het protocol is gebaseerd op een HTTP(S) REST API en is volledig open. Dat betekent dat u alle commando’s kunt inzien en wij uitleggen wat alles doet. In de illustratie is de plek van het protocol in het OSI model te zien.

Er is ook een bijbehorend discovery protocol dat ArtiDISCOVERY heet waarmee u de Smart Hub kunt ontdekken op het netwerk. Via ArtiAPI ontvangt u na een eerste authenticatie middels username/wachtwoord een token waarmee u diverse commando’s naar de Hub kunt sturen, zoals bijvoorbeeld het starten van een scene. De Smart Hub zal vervolgens de communicatie met de lampen en led computers voor zijn rekening nemen.

U kunt de hele ArtiAPI protocol definitie zien door op onderstaand knop te klikken. Mocht u vragen hebben neem dan gerust contact met ons op. Wij ondersteunen u graag.