Question cube
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Question cube
Bonjour.
Je vois dans les logs que la fonction 'alert' du cube se lance seul.
Je pensai qu'elle ne se lancé qu'en binome avec une autre fonction.
Quelqu'un connait la raison ou la facon d'activer 'alert' autre qu'en utilisant le cube ? Je devrai au moins avoir 'move' si le cube est déplacé ?
Je vois dans les logs que la fonction 'alert' du cube se lance seul.
Je pensai qu'elle ne se lancé qu'en binome avec une autre fonction.
Quelqu'un connait la raison ou la facon d'activer 'alert' autre qu'en utilisant le cube ? Je devrai au moins avoir 'move' si le cube est déplacé ?
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
-
johnnybravo
- Messages : 63
- Inscription : 04 mai 2017, 14:15
Re: Question cube
je ne sais pas comment cette fonction est déclenchée
Ici je me sers de la rotation dans le plan (clock_wise, anti_clock_wise) pour augmenter/baisser l'intensité lumineuse de mes lampes
ca marche correctement
Le tap-twice actionné depuis domoticz (interrupteur), ça va, mais avec le cube physique, pas de bonne détection pour l'instant
Je vais aller chercher des vidéos pour apprendre comment taper 2 fois
Edit: j'ai secoué fortement le cube (?) et la passerelle s'est mise à me causer chinois à chaque secousse.. si je regarde dans les logs, le cube est en alerte
Par contre j'ai du mal à répliquer cela. Le free fall semble aussi fonctionner correctement mais je vais éviter.. pas envie que le cube soit détruit par mes enfants !
Je pense maintenant développer des scripts pour ceci:
tap_twice pour tout allumer/éteindre
flip90 pour passer d'une scène à une autre
shake_air pour une couleur aléatoire
Côté programmation, je ne sais pas encore trop comment m'y prendre, pour flip90 je pensais à un tableau qui contiendrait toutes mes scènes (j'en ai 7) et à chaque secousse, un variable serait incrémentée et la scène suivante dans le tableau serait activée
pour le shake air, je pensais à un fichier-tableau avec des codes de couleurs pour différents points sur l'arc en ciel et pioche aléatoire (aléatoire ne semble pas exister dans lua, je pensais générer cela avec un calcul basé sur temps de dernier changement du device vs temps actuel)- ou alors je mets les données dans un ordre quelconque et incrémente normalement
Ici je me sers de la rotation dans le plan (clock_wise, anti_clock_wise) pour augmenter/baisser l'intensité lumineuse de mes lampes
ca marche correctement
Le tap-twice actionné depuis domoticz (interrupteur), ça va, mais avec le cube physique, pas de bonne détection pour l'instant
Je vais aller chercher des vidéos pour apprendre comment taper 2 fois
Edit: j'ai secoué fortement le cube (?) et la passerelle s'est mise à me causer chinois à chaque secousse.. si je regarde dans les logs, le cube est en alerte
Par contre j'ai du mal à répliquer cela. Le free fall semble aussi fonctionner correctement mais je vais éviter.. pas envie que le cube soit détruit par mes enfants !
Je pense maintenant développer des scripts pour ceci:
tap_twice pour tout allumer/éteindre
flip90 pour passer d'une scène à une autre
shake_air pour une couleur aléatoire
Côté programmation, je ne sais pas encore trop comment m'y prendre, pour flip90 je pensais à un tableau qui contiendrait toutes mes scènes (j'en ai 7) et à chaque secousse, un variable serait incrémentée et la scène suivante dans le tableau serait activée
pour le shake air, je pensais à un fichier-tableau avec des codes de couleurs pour différents points sur l'arc en ciel et pioche aléatoire (aléatoire ne semble pas exister dans lua, je pensais générer cela avec un calcul basé sur temps de dernier changement du device vs temps actuel)- ou alors je mets les données dans un ordre quelconque et incrémente normalement
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: Question cube
Dommage ca aurait ete interressant.
Je crois que l'intensité lumineuse de deennoo on l'a tous xD
Le tap twice j'ai eu du mal aussi. Mais en fait il faut vraiment taper fort le cube sur la table et non pas juste le doigt sur le cube... Pas terrible. Je l'ai implementé pour ma part pour ouvrir les volets a mi hauteur (je n'ai pas de moteur a % j'ai du faire un calcul)
Pour l'alert peut etre qu'il s'agit d'une alarme activé sur mihome pour toi... Je ne sais pas.
Je te met ce que j'ai fais pour le cube. C'est simple je crois que j'avais trouvé ca ici aussi.
Ce que je fais pour les volets t'aidera surement pour ce que tu veux faire avec le flip90.
Pour l'aleatoire c'est interressant d'apprendre ca. J'en ai pas besoin mais des que j'ai le temps je me pencherai dessus. Il doit bien y avoir moyen de faire quelque chose avec FOR. En gérant le nombre de fois où tu as déjà utiliser telle ou telle scène.
[EDIT] J’ai trouvé cette fonction: produit des nombres entiers entre 1 et upper. A voir elle peut d’implémenter avec une table ou une boucle.
Je crois que l'intensité lumineuse de deennoo on l'a tous xD
Le tap twice j'ai eu du mal aussi. Mais en fait il faut vraiment taper fort le cube sur la table et non pas juste le doigt sur le cube... Pas terrible. Je l'ai implementé pour ma part pour ouvrir les volets a mi hauteur (je n'ai pas de moteur a % j'ai du faire un calcul)
Pour l'alert peut etre qu'il s'agit d'une alarme activé sur mihome pour toi... Je ne sais pas.
Je te met ce que j'ai fais pour le cube. C'est simple je crois que j'avais trouvé ca ici aussi.
Ce que je fais pour les volets t'aidera surement pour ce que tu veux faire avec le flip90.
Pour l'aleatoire c'est interressant d'apprendre ca. J'en ai pas besoin mais des que j'ai le temps je me pencherai dessus. Il doit bien y avoir moyen de faire quelque chose avec FOR. En gérant le nombre de fois où tu as déjà utiliser telle ou telle scène.
[EDIT] J’ai trouvé cette fonction:
Code : Tout sélectionner
math.random(upper)Code : Tout sélectionner
if dc['Xiaomi cube']=='tap_twice' then
if od['Volet baie']=='Open' then
info(script .. 'Volet: Fermeture a mi hauteur')
switchOn('Volet baie')
commandArray['Volet baie']='On AFTER 12'
elseif od['Volet baie']=='Closed' then
info(script .. 'Volet: Ouverture a mi hauteur')
switchOff('Volet baie')
commandArray['Volet baie']='Off AFTER 14'
end
elseif dc['Xiaomi cube']=='flip90' then
switch('Lumiere')
info(script .. 'Lumiere: '..od['Lumiere'])
elseif dc['Xiaomi cube']=='flip180' then
if lastSeen('Volet baie') < 15 then
if od['Volet baie']=='Closed' then
switchOn('Volet baie')
elseif od['Volet baie']=='Open' then
switchOff('Volet baie')
end
else
switch('Volet baie')
info(script .. 'Volet: '..od['Volet baie'])
end
elseif dc['Xiaomi cube']=='free_fall' then
elseif dc['Xiaomi cube']=='move' then
elseif dc['Xiaomi cube']=='shake_air' then
info(script .. 'Lumiere OFF')
switchOff('Bouton 1')
switchOff('Bouton 2')
commandArray['Lumiere']='Off AFTER 20'
switchOnFor('Xiaomi RGB Gateway', '30')
--switchOff('Television')
elseif dc['Xiaomi cube']=='swing' then
elseif dc['Xiaomi cube']=='clock_wise' then
elseif dc['Xiaomi cube']=='anti_clock_wise' then
elseif dc['Xiaomi cube']=='alert' then
endRpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Re: Question cube
Bonjour,
Le 'alert' est renvoyé dés que le cube bouge et que ce n'est pas un des autres mouvements possibles.
Vous mettez le cube dans un sac, le sac bouge, vous recevez une alarme.
Le 'alert' est renvoyé dés que le cube bouge et que ce n'est pas un des autres mouvements possibles.
Vous mettez le cube dans un sac, le sac bouge, vous recevez une alarme.
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: Question cube
Merci neutrino. Mais j’ai l’impression que des alert s’active même quand je n’en touche pas au cube.Neutrino a écrit :Bonjour,
Le 'alert' est renvoyé dés que le cube bouge et que ce n'est pas un des autres mouvements possibles.
Vous mettez le cube dans un sac, le sac bouge, vous recevez une alarme.
Des fois je n’ai pas d’autre action autour d’alerte.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
-
johnnybravo
- Messages : 63
- Inscription : 04 mai 2017, 14:15
Re: Question cube
cool, en partant de la je viens de tomber sur:landaisbenj a écrit :[EDIT] J’ai trouvé cette fonction:produit des nombres entiers entre 1 et upper. A voir elle peut d’implémenter avec une table ou une boucle.Code : Tout sélectionner
math.random(upper)
http://lua-users.org/wiki/MathLibraryTutorial
Section: math.random , math.randomseed
Pour tester, j'ai rapidement pondu cela, fonction trouvée en me promenant de lien en lien
Code : Tout sélectionner
commandArray = {}
function randomFloat(lower, greater)
return lower + math.random() * (greater - lower);
end
if devicechanged['TestSwitch2'] then
print("some random number between 0 and 1, both excluded: "..math.random())
print("an integer between 10 and 50: both included"..math.random(10,50))
print("a number between 0 and 100, both excluded: ".. randomFloat(0,100))
end
return commandArray-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: Question cube
Du coup sa fonctionne ou pas?? 
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
-
johnnybravo
- Messages : 63
- Inscription : 04 mai 2017, 14:15
Re: Question cube
ça oui
, je regarderai le reste ce weekend
Entre temps il semblerait que je maitrise le tap_twice sans détruire ni la table du salon (en verre..) ni le cube lui-même
Entre temps il semblerait que je maitrise le tap_twice sans détruire ni la table du salon (en verre..) ni le cube lui-même
-
johnnybravo
- Messages : 63
- Inscription : 04 mai 2017, 14:15
Re: Question cube
Et hop, situation actuelle: j'ai créé un simple fichier texte "hex.txt" dans le répertoire domoticz, avec les valeurs hex (sans le #) prises dans la première réponse la : https://stackoverflow.com/questions/100 ... -to-humans
Une valeur par ligne, donc
00ffff
f0ffff
f5f5dc
000000
0000ff
a52a2a
etc
43 lignes en tout pour l'instant, ce que j'utilise dans le code lua.
Je n'ai pas nettoyé les valeurs: à priori certaines couleurs ne sont pas possibles avec milight et je ne suis même pas sur que le rendu par milight corresponde à ce que cela devrait être (i.e. darkgrey: "#a9a9a9" à priori impossible, darksalmon: "#e9967a" est-il vraiment un darksalmon quand rendu par milight)
Code actuel dans l'interface lua - il semblerait que ceci soit la façon la plus rapide de récupérer la valeur sur la ligne x dans un fichier.
Ça fonctionne
mais..
- la couleur est obtenue en 2 étapes, souvent visible (d'abord couleur puis brightness ?) - est-il possible de changer cela ?
- le tout n'est pas bien rapide
2017-11-19 10:48:26.130 User: Admin initiated a switch command (37/TestSwitch2/Off)
2017-11-19 10:48:26.134 (GenericDummyHardware) Light/Switch (TestSwitch2)
2017-11-19 10:48:26.239 LUA: random is 1 and value is 00ffff
2017-11-19 10:48:26.239 EventSystem: Fetching url...
2017-11-19 10:48:26.240 EventSystem: Script event triggered: zz - Read file3
2017-11-19 10:48:26.878 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:27.384 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:28.833 User: Admin initiated a switch command (37/TestSwitch2/On)
2017-11-19 10:48:28.837 (GenericDummyHardware) Light/Switch (TestSwitch2)
2017-11-19 10:48:28.941 LUA: random is 19 and value is 9400d3
2017-11-19 10:48:28.942 EventSystem: Fetching url...
2017-11-19 10:48:28.942 EventSystem: Script event triggered: zz - Read file3
2017-11-19 10:48:29.573 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:30.078 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:31.339 User: Admin initiated a switch command (37/TestSwitch2/Off)
2017-11-19 10:48:31.343 (GenericDummyHardware) Light/Switch (TestSwitch2)
2017-11-19 10:48:31.449 LUA: random is 21 and value is ffd700
2017-11-19 10:48:31.450 EventSystem: Fetching url...
2017-11-19 10:48:31.450 EventSystem: Script event triggered: zz - Read file3
2017-11-19 10:48:32.089 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:32.595 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
Une valeur par ligne, donc
00ffff
f0ffff
f5f5dc
000000
0000ff
a52a2a
etc
43 lignes en tout pour l'instant, ce que j'utilise dans le code lua.
Je n'ai pas nettoyé les valeurs: à priori certaines couleurs ne sont pas possibles avec milight et je ne suis même pas sur que le rendu par milight corresponde à ce que cela devrait être (i.e. darkgrey: "#a9a9a9" à priori impossible, darksalmon: "#e9967a" est-il vraiment un darksalmon quand rendu par milight)
Code actuel dans l'interface lua - il semblerait que ceci soit la façon la plus rapide de récupérer la valeur sur la ligne x dans un fichier.
Code : Tout sélectionner
commandArray = {}
if devicechanged['TestSwitch2'] then
RandomLine=math.random(1,43)
local filename = 'hex.txt'
local n=0
for l in io.lines(filename) do
n=n+1
if n==RandomLine then
print("random is "..RandomLine.." and value is "..l)
commandArray['OpenURL']='127.0.0.1:7373/json.htm?type=command¶m=setcolbrightnessvalue&idx=7&hex='..l..'&brightness=40&iswhite=false'
break
end
end
end
return commandArray- la couleur est obtenue en 2 étapes, souvent visible (d'abord couleur puis brightness ?) - est-il possible de changer cela ?
- le tout n'est pas bien rapide
2017-11-19 10:48:26.130 User: Admin initiated a switch command (37/TestSwitch2/Off)
2017-11-19 10:48:26.134 (GenericDummyHardware) Light/Switch (TestSwitch2)
2017-11-19 10:48:26.239 LUA: random is 1 and value is 00ffff
2017-11-19 10:48:26.239 EventSystem: Fetching url...
2017-11-19 10:48:26.240 EventSystem: Script event triggered: zz - Read file3
2017-11-19 10:48:26.878 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:27.384 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:28.833 User: Admin initiated a switch command (37/TestSwitch2/On)
2017-11-19 10:48:28.837 (GenericDummyHardware) Light/Switch (TestSwitch2)
2017-11-19 10:48:28.941 LUA: random is 19 and value is 9400d3
2017-11-19 10:48:28.942 EventSystem: Fetching url...
2017-11-19 10:48:28.942 EventSystem: Script event triggered: zz - Read file3
2017-11-19 10:48:29.573 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:30.078 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:31.339 User: Admin initiated a switch command (37/TestSwitch2/Off)
2017-11-19 10:48:31.343 (GenericDummyHardware) Light/Switch (TestSwitch2)
2017-11-19 10:48:31.449 LUA: random is 21 and value is ffd700
2017-11-19 10:48:31.450 EventSystem: Fetching url...
2017-11-19 10:48:31.450 EventSystem: Script event triggered: zz - Read file3
2017-11-19 10:48:32.089 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
2017-11-19 10:48:32.595 (MiLight Gateway) Lighting Limitless/Applamp (ML - Couch)
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: Question cube
Trop bien.
C'est marrant effectivement tu met qu'un dixième a sortir la commande mais 6 à l'envoyer.
Je ne pense pas que tu puisse séparer la couleur et l'intensité. Pour ca il faut regarder les trames du RFLINK tu as une trame par action..
Pour la commande en elle même tu l'effectue dans la boucle, mais tu t'en a pas d’intérêt. Je ne sais pas si tu peux gagner du temps, mais essaye de la mettre en fin de script.
Pour la boucle tu dois avoir un moyen pour aller directement a n au lieu de boucler sur le fichier? Genre la commande SED sur linux...
En tout cas c'est pas mal que ça fonctionne.
C'est marrant effectivement tu met qu'un dixième a sortir la commande mais 6 à l'envoyer.
Je ne pense pas que tu puisse séparer la couleur et l'intensité. Pour ca il faut regarder les trames du RFLINK tu as une trame par action..
Essaie en deux commandes séparer peut être. En essayant l'une avant l'autre et l'inverse pour voir ce qui est plus harmonieux.10;MiLightv1;F746;01;34BC;BRIGHT; => Milight v1 protocol;address;button/unit number;color & brightness; Set brightness
10;MiLightv1;F746;01;34BC;COLOR; => Milight v1 protocol;address;button/unit number;color & brightness; Set color
Pour la commande en elle même tu l'effectue dans la boucle, mais tu t'en a pas d’intérêt. Je ne sais pas si tu peux gagner du temps, mais essaye de la mettre en fin de script.
Pour la boucle tu dois avoir un moyen pour aller directement a n au lieu de boucler sur le fichier? Genre la commande SED sur linux...
En tout cas c'est pas mal que ça fonctionne.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway