Pour déclencher une action sur la gamme des LAM, il suffit d’envoyer une commande http de type GET à partir de votre box domotique ou bien d’un navigateur internet, d’un PC, smartphone ou tablette.
Dans les exemples qui vont suivre, nous utiliserons le nom « lam » qui peut être remplacé par le nom figurant sur l’étiquette du produit, par le « Device name » que vous aurez paramétré ou bien par l’adresse IP (l’IP est préconisée).

API en entrée vers le LAM

Synoptique des animations du LAM

API WiFi LAM

http://lam/api/set?cmd=…&color=…&bright=…&led=…&speed=…&iteration=…&delay=…[&user=…&pwd=…]

Nota : L’ordre des mots clés n’a pas d’importance. Tous les mots clés ne sont pas forcément nécessaires, dans le doute, faites des tests avec un navigateur internet.

cmd=[ on | off | pause | stop | restart | wheel | strobe | fade | fadein | fadeout | random | roundtrip | test ]

  • on, allume les leds en fixe avec la dernière couleur et dernière luminosité
  • off, éteint les leds, arrête définitivement l’animation en cours et supprime les couleurs fixées
  • pause, suspend l’animation en cours sans éteindre les leds
  • stop, arrête l’animation en cours et éteint les leds
  • restart, reprend l’animation qui était en pause ou en stop
  • wheel, animation roue (même couleur sur toutes les leds)
  • strobe, animation flash (même couleur sur toutes les leds)
  • fade, animation progressive fondue in/out (même couleur sur toutes les leds)
  • fadein, allumage progressif
  • fadeout, extinction dégressive
  • random, animation aléatoire des couleurs (le paramètre &color sera ignoré)
  • roundtrip, autre animation roue (même couleur sur toutes les leds)
  • test, pour tester les 3 couleurs primaires sur toutes les leds

color=[red | green | blue | yellow | cyan | orange | purple | pink | white | black | rgb(r,g,b) | xrgb ]
avec une couleur prédéfinie : red, green, blue, yellow, cyan, orange, purple, pink, white, black
avec rgb(r,g,b) en valeur décimale ou hexadécimale commençant par la lette ‘x’, exemple pour du bleu : rgb(0,0,255) ou rgb(x0,x0,xff)
avec xrgb un triplet en hexadécimal commençant par la lettre ‘x’, exemple pour du bleu : x0000ff

bright=0 à 255, correspondant à la luminosité (brightness) des leds (valeur par défaut 31 soit 1/8 de la luminosité au démarrage)

led=0 à nombre de leds-1, pour allumer une led de façon indépendante (ne fonctionne que pour les commandes « on / fadein / fadeout »).
La syntaxe peut également être :
led=n[color] avec une couleur optionnelle entre crochets telle que décrite ci-dessus,
led=n1-n2[color] qui permet de fixer de la led n1 à n2 avec une couleur optionnelle,
Si le paramètre led est égal à -1, il affectera toutes les leds,
led peut également fixer des leds en série avec comme séparateur une virgule, exemple :
led=-1[black],2-4[blue],6[x503080]

speed=0 à 4 294 967 295, correspondant à la vitesse de l’animation (cmd=[ wheel | strobe | fade | fadein | fadeout | random | roundtrip ]) en millisecondes, valeur par défaut 50ms ou 3ms suivant l’animation, valeur par défaut 50ms

iteration=n, (cmd=[ wheel | strobe | fade | random | roundtrip ]) n=-1 pour une animation permanente, ou n de 1 à 2147483647 après quoi la commande cmd=stop sera automatiquement exécutée

delay=n, n=0 pour une animation permanente, à n=4294967295, (cmd=[ on | wheel | strobe | fade | fadein | random | roundtrip ]) pour une durée en secondes après quoi la commande cmd=stop sera automatiquement exécutée

Nota : itération travaille en numérique à la led ou avec un groupe de leds ce qui permet à une animation un cycle complet, alors que delay arrête une animation au bout de n secondes même si le cycle n’est pas complet. En cas de doute, utilisez le mot clé delay.

Optionnel, user (ou api_user) et pwd (ou api_secret) est un utilisateur et mot de passe associé pour exécuter les API s’ils sont définis dans la page « Passwords ».

En retour des API, vous obtiendrez la structure JSON suivante si la commande est valide :

{
  "success": 1
}

Quelques exemples :

  • http://lam/api/set?cmd=on&color=blue, allume les leds en bleu
  • http://lam/api/set?cmd=pause, suspend l’animation en cours
  • http://lam/api/set?cmd=strobe&color=white&speed=50, stroboscope blanc, à une vitesse de 20 flashs par seconde, ATTENTION AUX YEUX ça flashe, risque de cécité si vous regardez les leds
  • http://lam/api/set?cmd=strobe&color=blue&speed=1000&bright=20, allume les leds en bleu pendant 1 seconde puis éteint les leds pendant 1 seconde de façon périodique avec une luminosité de 8% environ
  • http://lam/api/set?cmd=wheel&color=red&speed=50, animation roue en rouge à une vitesse de 50 millisecondes par led soit 1/3 de seconde environ par tour
  • http://lam/api/set?cmd=restart, reprend l’animation mis en pause
  • http://lam/api/set?cmd=fade&color=green&speed=3, fondue in/out en vert avec 3 millisecondes entre chaque pas des 256 intensités soit un peu moins d’une seconde entre chaque fondue
  • http://lam/api/set?cmd=off, éteint les leds et supprime les couleurs
  • http://lam/api/set?cmd=on&color=cyan&bright=20, allume les leds en cyan avec une luminosité de 8% environ
  • http://lam/api/set?cmd=random, allume les leds de façon aléatoire
  • http://lam/api/set?cmd=fadein&delay=10, créé un allumage progressif avec la dernière couleur fixée, un on pendant 10 secondes, puis une extinction dégressive
  • http://lam/api/set?cmd=on&led=-1[black],2-4[blue],6[x503080], fixe toutes les leds en noir, fixe les leds 2 3 et 4 en bleu, la led 6 sur la couleur 0x503080 que je vous laisse deviner
  • http://lam/api/set?cmd=fadeint&delay=10&led=-1[black],2-4[blue],6[x503080], la même chose que la commande précédente en progressif avec un fixe de 10 secondes

http://lam/api/get?cmd=system&version[&user=…&pwd=…]

Cette API renvoie une structure JSON :

{
  "product": "W-LAM",                   Nom du produit
  "version": "2.00",                    Version
  "build": "May 11 2021 19:49",         Réalisé le ...
  "sn": "XXXXXXXXXXXX",                 Numéro de série
  "success": 1
}

http://lam/api/get?cmd=system&information[&user=…&pwd=…]

{
  "product": "W-LAM",                   Nom du produit
  "version": "2.00",                    Version
  "build": "May 11 2021 19:49",         Réalisé le ...
  "sn": "XXXXXXXXXXXX",                 Numéro de série
  "device": "LAM-W",                    Nom du device donné dans la page de configuration
  "uptime": "0 day 0 hour 9 minutes"    En service depuis ...
  "ssid": ".........",                  Nom du réseau WiFi
  "rssi": "-39",                        Signal et qualité du réseau WiFi
  "success": 1
}

http://lam/api/get?cmd=state[&user=…&pwd=…]

{
  "cmd": "on",                          Dernière commande d'animation
  "speed": 0,                           Vitesse
  "iteration": 1,                       Nombre d'itérations
  "delay": 0,                           Délai
  "bright": 10,                         Luminosité
  "color": "xff0000",                   Couleur RGB globale en hexadécimal
  "led0": "x000000",                    Couleur impactée de la luminosité pour la led 0
  "led1": "xe80000",                    Couleur impactée de la luminosité pour la led 1
  ...
  "led11": "x000000",                   Couleur impactée de la luminosité pour la dernière led
  "success": 1
}

http://lam/api/set?cmd=system&auto_update=[ yes | no ]&restore_last_set=[ yes | no ]&brightness=…&first_led=…[&user=…&pwd=…]

Nota : L’ordre des mots clés n’a pas d’importance. Tous les mots clés ne sont pas forcément nécessaires.

  • auto_update, permet d’automatiser les mises à jour au démarrage du LAM
  • restore_last_set, permet de reprendre l’état en cours après une coupure de courant
  • brightness, luminosité des leds par défaut au démarrage de 1 à 255
  • first_led, première led pour la translation de 0 à nombre de leds-1 (voir la disposition des leds).

Pour l’option Switch (interrupteur tactile)

http://lam/api/set?cmd=system&delay=…&varn=…&url=…[&user=…&pwd=…]

  • delay=n, de 500 à 5000ms, temps d’attente pour déterminer l’appui long et les appuis brefs (Delay of switch)
  • varn, avec n de 1 à 3 sont les variables de type texte définies dans la page de configuration ([VAR1], [VAR2], [VAR3])
  • url, contenu de l’url (commande) qui sera envoyé à la box domotique lors d’un appui sur l’interrupteur, l’url doit obligatoirement commencer par http:// (URL send [SWITCH])

http://lam/api/set?cmd=system&reboot[&user=…&pwd=…]

Permet de redémarrer le LAM à distance.

http://lam/api/set?cmd=system&reset_all[&user=…&pwd=…]

Efface tous les paramètres y compris le WiFi, mots de passe, etc …

API en sortie du LAM avec interrupteur tactile vers une box domotique ou backend

http://box_domotique/…actionneur=…&value=[SWITCH]

Le mot clé [SWITCH] est automatiquement remplacé par :

  • 10, pour un appui long
  • 11, une pression brève
  • 12, deux pressions brèves
  • 13, trois pressions brèves
  • 14, quatre pressions brèves

Nota : La saisie de cette API s’effectue dans la page de configuration. Si l’envoi de la première commande échoue, 2 autres essais seront faits à 200ms d’intervalle, après la commande sera ignorée.

Exemple pour eedomus :

http://ip_eedomus/api/set?action=periph.value&periph_id=xxx&value=[SWITCH]&api_user=xxx&api_secret=xxx

Cette url permet d’envoyer à l’eedomus sur l’actionneur virtuel « periph_id=xxx » la valeur « value=[SWITCH] » avec les codes d’authentification « api_user=xxx&api_secret=xxx ».
Il faut donc créer un actionneur d’état avec une liste de valeurs de 10 à 14 représentant l’état de l’interrupteur tactile.

1 commentaire