lua: scene/couleurs pour gateway Xiaomi

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Répondre
johnnybravo
Messages : 48
Enregistré le : 04 mai 2017, 14:15

lua: scene/couleurs pour gateway Xiaomi

Message par johnnybravo » 20 sept. 2018, 16:04

Bonjour
Je suis sur Domoticz V3.8590
J'utilise une gateway de Xiaomi depuis de nombreux mois, avec quelques capteurs
La gateway est en hauteur dans l'entrée, visible depuis l'extérieur. Domoticz est sur un raspberry qui est à 2 mètres de la.

Qui pourrait me guider pour créer un clignotement stable, et avec plusieurs couleurs spécifiques, pour une gateway de Xiaomi ?


j'avais créé une scène appelée depuis un script pour que la gateway clignote quand un capteur de porte/fenêtre est alarmé.
Une simple scène avec 3 lignes: gateway On en rouge, puis orange puis blanc, chaque ligne avec des "On Delay" et "off Delay".
Le problème est que depuis quelques semaines, la gateway semblait ne pas toujours terminer la scène: elle restait parfois sur une couleur intermédiaire

Le code était tout simple, du style:

Code : Tout sélectionner

if (devicechanged['Contact 1 - Front door'] == 'Open' or devicechanged['Contact 2 - Front window'] == 'Open' or devicechanged['Contact 3 - Back door'] == 'Open') then
commandArray[#commandArray + 1]={['Scene:XiaomiGatewayBlink'] = 'On'}
-> avec des +1 pour m'assurer que les commandes passent dans un certain ordre: plus loin dans le code la gateway est soit éteinte si c'est durant le jour, soit passe au vert si c'est la nuit.

J'essaye maintenant de piloter la gateway avec json.
Ça marche.. plus ou moins.. Porte ouverte, je vois bien dans les logs les " fetching url".
La gateway réagit parfois immédiatement et correctement et d'autres fois, il peut s'écouler des secondes/minutes et puis le cycle se fait..
Je ne sais pas ou est le souci.

J'utilise le code ci dessous. Les commandes sont répétées plusieurs fois pour obtenir une certaine durée - je n'ai pas trouvé d'autre manière correcte d'appliquer une durée (appliquer le ON FOR ne semble être possible que si on lance la commande sans préciser la couleur et la gateway flashe alors en blanc).

Code : Tout sélectionner

commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ffff00&iswhite=false'}
 commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ffff00&iswhite=false'}
 commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ffff00&iswhite=false'}
  
  
  commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ff4800&iswhite=false'}
  commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ff4800&iswhite=false'}
  commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ff4800&iswhite=false'}
  
  
  commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ffff00&iswhite=false'}
  commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ffff00&iswhite=false'}
  commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx=116&hex=ffff00&iswhite=false'}
  
  commandArray[#commandArray + 1]={['OpenURL']='127.0.0.1:7373/json.htm?type=command&param=switchlight&idx=116&switchcmd=Off'}

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


johnnybravo
Messages : 48
Enregistré le : 04 mai 2017, 14:15

Re: lua: scene/couleurs pour gateway Xiaomi

Message par johnnybravo » 09 oct. 2018, 12:10

Je me réponds à moi-même
Pour l'instant ça tourne avec le code ci dessous, morceaux de codes récupérés je ne sais plus ou :oops:
je n'utilise plus de scènes pour mon clignotement.

Ca tourne depuis 2 jours, semble très réactif si ce n'est quasi instantané: plus de délai entre ouverture de porte et clignotement

Prochaine étape... charger une musique sur la gateway et la faire clignoter avec couleurs diverses au rythme de la musique :)
(jingle bells à Noël, Happy Birthday etc)

Code : Tout sélectionner

commandArray = {}
local GATEWAY = 116
local Yellow = '(/usr/bin/curl -s -i -H "Accept: application/json" "http://127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx='..GATEWAY..'&hex=ffff00&iswhite=false" &)'
local Orange = '(/usr/bin/curl -s -i -H "Accept: application/json" "http://127.0.0.1:7373/json.htm?type=command&param=setcolbrightnessvalue&idx='..GATEWAY..'&hex=ff4800&iswhite=false" &)'
local Wait1 = '(/bin/sleep 0.5)'
local Wait1ThenOff = '(/bin/sleep 0.5 && /usr/bin/curl -s -i -H "Accept: application/json" "http://127.0.0.1:7373/json.htm?type=command&param=switchlight&idx='..GATEWAY..'&switchcmd=Off" &)'
local TurnOff = '(/usr/bin/curl -s -i -H "Accept: application/json" "http://127.0.0.1:7373/json.htm?type=command&param=switchlight&idx='..GATEWAY..'&switchcmd=Off" &)'

if (devicechanged['Contact 1 - Front door'] == 'Open' or devicechanged['Contact 2 - Front window'] == 'Open' or devicechanged['Contact 3 - Back door'] == 'Open') then

exec = os.execute(Yellow)
exec = os.execute(Wait1)
exec = os.execute(Orange)
exec = os.execute(Wait1)
exec = os.execute(Yellow)
exec = os.execute(Wait1ThenOff)

end
return commandArray

Wolfen38
Messages : 315
Enregistré le : 19 oct. 2017, 14:49

Re: lua: scene/couleurs pour gateway Xiaomi

Message par Wolfen38 » 09 oct. 2018, 12:33

Bonne chance, moi j'avais voulu utiliser des sons "maisons" pour la sirène et j'avais bien galéré.

Maintenant plus de problème, le HP du gateway est mort !

johnnybravo
Messages : 48
Enregistré le : 04 mai 2017, 14:15

Re: lua: scene/couleurs pour gateway Xiaomi

Message par johnnybravo » 10 oct. 2018, 12:06

Wolfen38 a écrit :
09 oct. 2018, 12:33
Bonne chance, moi j'avais voulu utiliser des sons "maisons" pour la sirène et j'avais bien galéré.

Maintenant plus de problème, le HP du gateway est mort !
ah mince, c'est vrai que ce n'est pas évident
Ici j'ai utilisé une tablette samsung avec Android, et installé une vieille app (la fonction d'upload n'a jamais existé pour IOS et a disparu des dernières versions pour Android)

j'ai chargé plusieurs sons, en les ayant d'abord modifiés en me référant au commentaire trouvé la: http://en.miui.com/thread-974667-1-1.html
Bizarrement j'ai un son qui est bien chargé
et l'autre qui est toujours accéléré.. et pourtant les 2 ont étés (re) encodés de la même façon :(

Le commentaire, okazou :
Ok, found a problem. My initial (chipmunked) mp3 had 22kHz

test.mp3: MPEG ADTS, layer III, v2, 32 kbps, 24 kHz, Monaural

After converting it to 44kHz all work great

output.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre