22 août 2021 in eedomus, LoRa, Non classé, Produits, WiFi

API WiFi des LAM (version 2.01 du 22/08/2021)

Light AlarM - LAM
Light AlarM - LAM

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[x503010], 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[x503010], 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.




By browsing this website, you agree to our privacy policy.
I Agree