Aller au contenu

Module Virtuel Pour Philips Hue


Zorgonaute84

Messages recommandés

Bonjour à  tous,

 

En ces jours tristes de V4 bugué et de plugin Hue qui déconne, je vous propose (a ceux qui ont encore une box fonctionnel) aujourd'hui mon module virtuel pour piloter une lampe philips hue.

 

 

Présentation du module :

 

L'interface :

 

post-2183-0-51041300-1420753683_thumb.jpg

 

Le bouton ON, allume la lampe en blanc et luminosité max

Le bouton OFF, éteint la lampe

Le slider de luminosité gère la luminosité, éteint la lampe a 0, et permet de la rallumer avec les mêmes paramètres (hormis la luminosité) qu'a son extinction.

Le slider saturation gère ... la saturation

Les icones de couleurs allumes la lampe, luminosité au max, saturation au max avec la couleur du bouton.

Le Slider variance toujours fixé au milieu, permet de faire varier la couleur. Après chaque mise a jour il se refixe automatiquement au milieu. Par défaut l'amplitude du Slider est de 10'000 (sur 65535)

Le Mainloop permet de mettre à  jour l'icône en fonction de l'état de l'ampoule (meme si la modification a été faite en dehors du HC2)

 

 

 

 

1ère étape : Créer un compte newdeveloper sur son bridge

 

Connectez vous à  vos Bridge Hue depuis un navigateur internet via l'adresse suivante : http://<IPduBridgeHUE>/debug/clip.html

 

Dans URL vous tapez : /api

Dans body : {"devicetype":"test user","username":"newdeveloper"}

Appuyez sur le bouton d'association de votre bridge HUE puis vous cliquez sur POST

 

Voila, le compte newdeveloper est créé !!!

 

PS : Cette étape n'est à  faire que la premiere ampoule. Pour les suivantes, passez directement à  l'étape 2.

 

 

2ème étape : Ajouter le module virtuel

 

Hue.vfib

 

3ème étape : Paramétrer le module

 

- Renseigner l'adresse IP de votre bridge dans le champ "Adresse IP" du module

- Tapez 80 dans le champ "Port TCP"

- Dans le code de chaque boutons renseigner l'ID de la lampe a contrôler.

- Ajouter les icones suivantes :

 

post-2183-0-53514700-1420752804_thumb.pngpost-2183-0-14239600-1420752803_thumb.pngpost-2183-0-37593000-1420752808_thumb.pngpost-2183-0-84873900-1420752810_thumb.pngpost-2183-0-94135600-1420752806_thumb.pngpost-2183-0-76309800-1420752801_thumb.pngpost-2183-0-54158600-1420752812_thumb.pngpost-2183-0-38862100-1420752799_thumb.pngpost-2183-0-55272000-1420752798_thumb.pngpost-2183-0-11026400-1420752814_thumb.pngpost-2183-0-43533800-1420752809_thumb.pngpost-2183-0-56642400-1420752800_thumb.png

 

Les icones de couleurs sont a ajoutés pour chaque couleur, la blanche pour le bouton ON, la sombre pour le bouton Off, l'icone avec les engrenages pour les sliders et l'icone d'erreur avec la croix est a ajouter mais sans l'associer a un bouton.

 

- Dans le main loop il faut également ajouter le numéro de chacune de ces icones :

 

post-2183-0-36555100-1420753208_thumb.jpg

 

Et voila, Enjoy !!!!

 

 

Personnalisation du module :

 

Vous pouvez personnaliser le module sur certains critères :

 

- La couleur prédéfinie des 8 boutons (variable en début de code de chaque bouton)

- L'amplitude du slider de Variance (par défaut amplitude a 10'000, de - 5'000 a + 5'000)

 

Un peu touchy, vous pouvez également personnaliser les limites de "bascule" dans l'affichage des icones entre chaque couleur du mainloop :

 

post-2183-0-28977200-1420753562_thumb.jpg

 

J'ai mis une condition sur la saturation pour certaines couleurs qui virent au blanc une fois déssaturées. Par défaut j'ai mis 125 à  toute les couleurs sauf au vert qui reste vert meme déssaturé complètement. Ces valeurs méritent d'être améliorés. Surtout quand on voit la différence de couleur entre un lightstrip et une ampoule classique.

 

 

 

Remerciement a Leon du forum Fibaro dont je me suis inspiré pour le code du mainloop (http://forum.fibaro.com/printview.php?t=3635&start=0&sid=9cac8f29955ead11536902261289d7e0)

 

 

J'ajouterai dans la prochaine version du module le lancement de comportements comme le clignotement, l'allumage ou l'extinction en transition "longue"...

  • Upvote 7
Lien vers le commentaire
Partager sur d’autres sites

Je l'ai testé dans tous les sens avant de le publier et il était OK, mais avec une seul lampe. La je viens d'ajouter autant de virtual device que j'ai de lampe et j'ai un petit bug. Pas genant d'un point de vue fonctionnel mais c'est chiant. Le mainloop s'emmêle les pinceaux et mets a jour les sliders de toutes les lampes.

 

Exemple :

La hue 1 a le slider luminosité a 100

La Hue 2 a le slider luminosité a 50

 

Si on affiche le module de la Hue 1 on voit le slider s'afficher un coup a 100 et un coup a 50, idem avec l'autre Hue.

 

Je ne comprends pas d'ou vient le soucis. J'ai essayé de donner des noms uniques aux sliders, mais rien n'y fait... J'ai lu a gauche a droite que le mainloop pouvait etre capricieux et que certains mettaient le code dans un bouton et appeler ce bouton depuis le mainloop. Pensez vous que cela pourrais résoudre le problème ? Je vais me coucher, j'essairai plus tard...

 

Bonne nuit

Lien vers le commentaire
Partager sur d’autres sites

Cool merci pour le plugin!!

 

Pour ton problème je fais comme tu dis dans ton dernier post.

 

C'est a dire code dans le bouton et appel du bouton dans le main loop. tu peux voir mon VD check internet dans le forum.

 

à‡a m'a évité de taper plusieurs fois le même code et donc plus facile pour le debuggage/maintenance!!  ;)

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

J'ai essayé de remplacer le mainloop des modules virtuels par un code qui appel un bouton "rafraîchir" mais l'erreur reste entière.

 

Deuxième tentative que je ferai ce soir, au lieu d'avoir un mainloop de mise a jour par virtual device en créer un autre dédié a la mise a jour de tous les autres (Un anneau pour les gouverner tous en gros).

Lien vers le commentaire
Partager sur d’autres sites

Ah merci pour ton module, je ne le connaissais pas. Je vais m'en servir pour la partie scénario que je souhaite améliorer.

 

Concernant le bug des sliders, je ne trouve aucune solution. Par contre, je pense qu'il s'agit d'un bug de la box, car les sliders se mélangent que sur l'interface Web. Aucun soucis sur les applications mobile.

Donc je pense que je vais laisser le module ainsi alors et m'en contenter (j'utilise a 95% que les applications iPhone et iPad), le navigateur me serre que pour les tests et la programmation.

 

Par contre j'ai un soucis, encore liée a la box je pense. Mes mainloop des Hue arrêtent de s'éxécuter. J'ai d'autres mainloop dans d'autres devices qui fonctionnent impec, mais ceux des Hue s'arrêtent au bout d'un certains temps (1-2 heures environs). Je dois aller dans le device et le sauvegarder pour qu'il se relancent. Sinon hormis le mainloop le reste est toujours fonctionnel.

Lien vers le commentaire
Partager sur d’autres sites

  • 7 mois après...
  • 1 mois après...
  • 1 mois après...

Bonsoir,

 

Ce module marche super bien par contre je n'arrive pas à  mettre d'icône principal et quand j'appuie sur un bouton la bonne icône s'affiche très bien mais que quelque seconde puis retour à  l'icône du cube filaire de base

 

Une idée du problème

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Avez vous bien mis àjour le numéro de vos icônes àjour dans le main loop ? Si vous avez le cube c'est que vous n'avez pas non plus charger l'icône avec les rouages sur le bouton rafraîchir.

Envoyé de mon iPhone en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

  • 7 mois après...

Bonjour, surement j'arrive un peu tard mais j'avais ce problème.

"cela fonctionne lorsque je viens de faire un save pendant une heure puis on dirait que la boucle principale ne tourne plus et plus d'affichage (a moins que je resave)"

 

j'ai trouvé avec l'historique des données (dans Debug) pourquoi !!!

 

parfois à  la demande de statut de paramètres les hue ne répondent pas :

 

par exemple pour : 
response ,status, errorCode = hueCon:GET('/api/'..hueuser..'/lights/'..huelightid);

 

status prend la valeur "nil" et la boucle plante ne pouvant opérer sur cette valeur.

 

donc si on met :

 

if (status == nil)

then status =0

end

 

juste après la demande, cela protège le fonctionnement de la boucle principale.

 

et maintenant c'est tout bon

 

j'espere que ça peut servir à  quelqu'un 

 

Bonne journée ;-) 

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour a tous,

 

je n'arrive pas a créer sur le pont Hue (nouveau model) mon compte "newdeveloper" ??

 

[

{
"error": {
"type": 6,
"address": "/username",
"description": "parameter, username, not available"
}
}
]
 
je ne sais pas programmer en ULA et j'aimerai programmer mes Hue pour quelles clignotes en rouge quand l'alarme d'intrusion se déclenche.
pensez vous que cela est possible ? 
j'ai essayer de passer par le plugin Hue de Fibaro, mais je ne sais pas pourquoi il est impossible de l'inclure dans une scene... <_<
 
merci de m'aider
bonne journée  
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Hello @Ludovic,

Philips à  bloqué l'utilisation de l'utilisateur "newdevelopper" comme expliqué sur cette page

http://www.developers.meethue.com/documentation/getting-started

 

Du coup pour que cela fonctionne il faut écrire dans le body le code suivant :

{"devicetype":"my_hue_app#newdevelopper"}

 

tu vas obtenir un nom d'utilisateur interminable mais pas le choix. qqch dans le genre "1028d66426293e821ecfd9ef1a0731df"

 

remplace dans le module virtuel tous les "newdevelopper" par cela et le tour es joué.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...