Aller au contenu

J3R3M

Membres confirmés
  • Compteur de contenus

    593
  • Inscription

  • Dernière visite

  • Jours gagnés

    8

Tout ce qui a été posté par J3R3M

  1. J'ai passé ces dix dernières heures à faire des essais et... Et bien non, je n'arrive pas à déclencher l'appui sur le bouton 1 de mon VD 163. Par contre, j'ai eu l'occasion de constater que la connexion se faisait bien avec user/password. Mon problème vient donc uniquement de la commande linux. Le problème étant plus précis, pouvez-vous, s'il-vous-plaît, me dire quelle ligne utilisez-vous pour appuyer sur le bouton d'un VD depuis votre plateforme linux, type Rasperry Pi ? Pour rappel, voici le type de lien que je cherche à déclencher depuis un script hébergé sur linux (Conteneur Docker sur Synology) :
  2. Alors, en théorie, c'est la même commande que sur un linux classique. Donc ma question pourrait être, quelles lignes de commandes utilisez-vous sur vos périphériques linux pour agir sur la HC2 en POST ?
  3. En ce qui concerne la communicaton de Docker vers la HC2... Je viens d'essayer toutes ces possibilités de cette page pour essayer d'appuyer sur le bouton d'un VD depuis Docker. L'utilisateur en question a bien entendu les droits sur ce VD et j'ai essayé l'URL d'accès à l'API à de nombreuses reprises. Via un navigateur, ça fonctionne sans problème... Le problème vient de la requête en elle-même, puisque je n'arrive pas non plus à m'envoyer de sms via API. Mais, mince alors, je n'ai aucun message d'erreur dans le terminal, mais rien ne se passe, je ne comprends pas du tout
  4. En supprimant la clé, il n'y a pas de bug, mais ça m'oblige à détourner le problème via un code comme celui-ci : local liste_pieces = {"ENTREE","WC","SDB","SEJOUR","CUISINE","CHAMBRE"}; PIECE = "ENTREE"; function piece_actu(piece) for i=1, #liste_pieces do if liste_pieces[i] == piece then return i end end end local key = piece_actu(PIECE); local detect = pieces[key].detect; local reglages = pieces[key].reglages; et... Ou il y a encore un moyen simple de détourner la chose ?
  5. Alors, avec ce code d'insertion : table.insert(pieces, "ENTREE", {...}); J'obtiens l'erreur [DEBUG] 20:06:32: line 21: bad argument #2 to 'insert' (number expected, got string) Avec ceux-ci : table.insert(pieces, ["ENTREE"], {...}}); table.insert(pieces, ["ENTREE"] = {...}}); J'obtiens [DEBUG] 20:10:55: line 21: unexpected symbol near '[' Et avec celui-ci : table.insert(pieces, "ENTREE" = {}); J'obtiens [DEBUG] 20:14:46: line 21: ')' expected near '=' La première mise en forme semble la plus correcte. Mais visiblement LUA n'accepte pas d'avoir autre chose qu'un chiffre comme clé ?
  6. Merci beaucoup des réponses et de vos intérêts pour ma demande Je vais essayer de mettre en pratique cela et reviens très vite demander quelque chose d'un peu plus poussé, si je n'arrive pas à m'en dépatouiller
  7. J3R3M

    Philips HUE InfoTools

    Pour moi, l'utilisation du Plugin ne permettait que doubler l'espace pris par une ampoule dans Home Center. D'autant que la récupération de l'ID est assez simple, je trouve.
  8. À chaque début de scène de pièce, je déclare une variable PIECE. Ainsi, avec cette seule variable déclarée, le script se débrouille pour retrouver toutes les autres variables nécessaires, présentes à ce jour dans les autres tables. Voici donc la structure de mes scènes en très simplifiée et tapée rapidement avec quelques explications pour aider à la compréhension : PIECE = "CUISINE"; lum_mini = 5; local liste_pieces = {"ENTREE","WC","SDB","SEJOUR","CUISINE","CHAMBRE"}; local ID_REGLAGES = { ["ENTREE"] = 168, ["WC"] = 202, ["SDB"] = 206, ["SEJOUR"] = 205, ["CUISINE"] = 203, ["CHAMBRE"] = 204 }; local PIECE_ACTIVE = { ["ENTREE"] = 1, ["WC"] = 2, ["SDB"] = 3, ["SEJOUR"] = 4, ["CUISINE"] = 5, ["CHAMBRE"] = 6 }; local ID_DETECTEUR = { ["ENTREE"] = nil, ["WC"] = 184, ["SDB"] = 220, ["SEJOUR"] = nil, ["CUISINE"] = 5, ["CHAMBRE"] = 37 }; local ID_SONOS = { ["ENTREE"] = nil, ["WC"] = 184, ["SDB"] = 220, ["SEJOUR"] = nil, ["CUISINE"] = 5, ["CHAMBRE"] = 37 }; -- Si je veux démarrer l'enceinte de la pièce -- Dans les faits, j'ai aussi une table avec les valeurs possibles de volume, mini et maxi en fonction du moment de la journée fibaro:call(ID_SONOS[PIECE], "pressButton", "Play'); -- Je mets à jour la variable globale PIECE_ACTIVE et la variable PIECE_PRECEDENTE -- Celle-ci est gérée par les boutons d'un VD / 1 par pièce -- Cette VG me sert, entre autres, à déterminer si l'acheminement d'une pièce à une autre est correct -- Ex : Si tout le monde est couché et qu'il y a un mouvement dans la cuisine, il y a une intrusion -- Car nous sommes encore incapables de nous téléporter setGlobal(PIECE_PRECEDENTE, PIECE); fibaro:call(ID_VD, "pressButton", PIECE_ACTIVE[PIECE]); -- On allume la lumière ? if tonumber(fibaro:getValue(ID_DETECTEUR[PIECE] + 2, "value")) > lum_mini then fibaro:abort(); end -- Besoin de lumière, on allume -- J'ai un VD par pièce qui centralise quoi allumer dans la pièce en fonction des modules -- Qu'ils soient HUE ou DIM. Donc par exemple, 1 = ON, 2 = OFF, 3 = FADE OUT -- Bon j'ai aussi une gestion du moment de la journée, mais on fait au plus simple fibaro:call(ID_REGLAGES[PIECE], "pressButton", 1); -- Fonction que j'ai eue envie de développer -- Je l'ai appelée TRACKING -- S'il n'y a qu'une personne au domicile, lorsqu'on rentre dans une pièce, ça éteint les autres pièces if fibaro:getValue("HOME_TRACKING") == "1" then for i = 1, #liste_pieces do if liste_pieces[i] ~= PIECE then fibaro:call(ID_REGLAGES[liste_pieces[i]] , "pressButton", "2"); end end end Je voulais donc pouvoir stocker dans une seule table toutes les informations des pièces, à la manière de mon premier post : local pieces = {}; table.insert(pieces, ["ENTREE"] = { id=1, nom="ENTREE",reglages=168,detect=nil,sonos=136}); table.insert(pieces, ["WC"] = { id=2, nom="WC",reglages=202,detect=184,sonos=nil}); table.insert(pieces, ["SDB"] = { id=3, nom="SDB",reglages=206,detect=220,sonos=137}); table.insert(pieces, ["SEJOUR"] = { id=4, nom="SEJOUR",reglages=205,detect=nil,sonos=134}); table.insert(pieces, ["CUISINE"] = {id=5, nom="CUISINE",reglages=203,detect=5,sonos=135}); table.insert(pieces, ["CHAMBRE"] = {id=6, nom="CHAMBRE",reglages=204,detect=37,sonos=138}); Mais si je dois tout boucler à plusieurs reprises, ça ne serait pas aider la charge CPU je pense ? Pour le moment, je me suis contenté de stocker toutes mes tables dans des Variables Globales. Ainsi, en cas de changement dans une de celles-ci, je le fais via une scène prête à l'emploi, plutôt que de devoir éditer chaque scène. Mais ça m'a fait créé un paquet de Variables Globales pour le coup !
  9. J'ai fini par trouver mon bonheur en ce qui concerne la première problématique grâce à ce sujet. Je vais bientôt pouvoir me repencher sur l'accès via Docker !
  10. Ah mais j'adorerai ! Mais je n'ai absolument rien fait, j'en suis malheureusement incapable, c'est bien au-dessus des mes capacités... Je suis meilleur pour donner des idées d'amélioration ! Haha Edit : Aaaaah je comprends pourquoi tu as cru que j'avais su le faire ! C'est mon système Sonos qui est couplé avec Deezer, pas le VD
  11. Oui, en effet, je suis aussi tombé dessus, mais je n'ai pas réussi à comprendre l'utilisation du script. Et surtout, j'ai couplé mon système avec Deezer, ce qui m'intéressait plutôt moyennement du coup, je dois l'avouer D'où ma demande pour envoyer directement les Favoris Sonos depuis le VD, afin d'être compatible avec tout le monde
  12. Je me permets à mon tour de quémander une petite chose concernant ce super VD En suivant le fil d'actualité, j'ai vu qu'il était possible de lancer une liste de lecture Sonos avec le script publié par @drboss, encore partagé ci-dessus. Attention, la solution est très limitée à l'heure actuelle. Dans un premier temps, les IDs des Playlists correspond aux IDs autoincrémentés par Sonos lors de la création de celles-ci. C'est-à-dire qu'il ne faut absolument pas se fier à l'ordre dans lequel elles sont affichées (ordre alphabétique), mais vraiment essayer... De plus, l'appel via ce script rajoute les morceaux à la playlist en les plaçant en premier, cela ne remplace pas la playlist. Ce qui signifie que plusieurs clics ou plusieurs boutons comme celui-ci vous créeront une énorme playlist, jusqu'à que Sonos n'en accepte plus davantage. Une solution serait de pouvoir rajouter une purge de la playlist avant de rajouter les morceaux (Remplacer la playlist). Mais comment ? Est-il envisageable que les boutons 1 à 5 lancent les 5 premiers favoris Sonos (au lieu des 5 premières stations radios) ? Ainsi, il serait possible de mélanger toutes les sources possibles (services musicaux, stations de radio), sans avoir à effectuer de modification en fonction de ce que l'on souhaite. Edit : Un petit plus serait aussi la possibilité d'activer/désactiver la lecture aléatoire et la boucle des playlists. Merci Père Noël
  13. Pour information, après de longues recherches, voici l'adresse IP qui vous permettra de récupérer les informations sur vos enceintes ! Il ne s'agit plus de : http://SONOS_IP:1400/status/upnp Mais de : http://SONOS_IP:1400/status/zp Ce qui vous permettra d'obtenir ce genre d'affichage :
  14. J3R3M

    VD Sonos TTS Remote

    @OJC Merci de ta réponse ! Est-il possible d'expliquer simplement/brièvement l'utilité ou la nécessité de sonos-http-api ? J'avoue que, malheureusement, cela est un peu flou actuellement pour moi. Les produits SONOS n'auraient actuellement pas d'API et ce serveur permettrait de l'émuler ? C'est normal de privilégier les projets professionnels ! La domotique et sa programmation font parti des loisirs, donc ce n'est pas prioritaire. Dans tous les cas, bon courage dans ces projets !
  15. Merci de ta réponse ! J'étais bien tombé sur cette page de tuto, mais je n'arrivais pas y voir plus clair. Cela signifie donc qu'à chaque fois qu'un tableau est réinséré dans une variable, ça oblige l'utilisation d'une nouvelle couche de boucle for k,v in pairs ensuite ? Si j'ai bien compris, dans mon cas, il faudrait que tout le code qui nécessite les variables d'une pièce soit à l'intérieur d'une double boucle ? Si tel est le cas, je trouve l'optimisation complexe tout en alourdissant les scènes de ces boucles
  16. Si cela peut être intéressant, voici ce que stockent chaque variable : liste_pieces / nom - Là, promis, y'a aucun piège ID_REGLAGES / reglages - ID d'un VD dans lequel sont stockées des infos/du code en rapport avec la pièce PIECE_ACTIVE / id - ID d'un VD m'affichant la valeur de la variable globale "PIECE_ACTIVE". Un bouton par pièce sur ce VD. ID_DETECTEUR / detect - Là non plus, aucun piège. ID du principal détecteur de mouvement de la pièce sonos - ID du VD Sonos correspondant à la pièce
  17. Bonsoir à tous, Je me tourne une fois de plus vers vous pour quémander votre grande sagesse et surtout quelques bribes de vos grandes connaissances. Je cherche à simplifier/optimiser mes scènes de pièce. Depuis mes premiers posts, j'ai considérablement évolué dans l'apprentissage du LUA, mais là, je suis au point mort... À l'origine, à chaque début de ces scènes, j'avais déclaré plusieurs variables de table que j'exploitais ensuite. local liste_pieces = {"ENTREE","WC","SDB","SEJOUR","CUISINE","CHAMBRE"}; local ID_REGLAGES = { ["ENTREE"] = 168, ["WC"] = 202, ["SDB"] = 206, ["SEJOUR"] = 205, ["CUISINE"] = 203, ["CHAMBRE"] = 204 }; local PIECE_ACTIVE = { ["ENTREE"] = 1, ["WC"] = 2, ["SDB"] = 3, ["SEJOUR"] = 4, ["CUISINE"] = 5, ["CHAMBRE"] = 6 }; local ID_DETECTEUR = { ["ENTREE"] = nil, ["WC"] = 184, ["SDB"] = 220, ["SEJOUR"] = nil, ["CUISINE"] = 5, ["CHAMBRE"] = 37 }; Et je cherche maintenant à tout regrouper dans une seule et même variable (afin de la stocker ensuite dans une Variable Globale). J'ai bien vu que c'était possible et après plusieurs heures d'essais et de lecture de la documentation officielle LUA + d'autres sites, je suis contraint d'admettre mon échec. J'ai essayé de créer ma nouvelle variable de cette manière : local pieces = {}; table.insert(pieces, ["ENTREE"] = { id=1, nom="ENTREE",reglages=168,detect=nil,sonos=136}); table.insert(pieces, ["WC"] = { id=2, nom="WC",reglages=202,detect=184,sonos=nil}); table.insert(pieces, ["SDB"] = { id=3, nom="SDB",reglages=206,detect=220,sonos=137}); table.insert(pieces, ["SEJOUR"] = { id=4, nom="SEJOUR",reglages=205,detect=nil,sonos=134}); table.insert(pieces, ["CUISINE"] = {id=5, nom="CUISINE",reglages=203,detect=5,sonos=135}); table.insert(pieces, ["CHAMBRE"] = {id=6, nom="CHAMBRE",reglages=204,detect=37,sonos=138}); Mais j'ai une erreur dès la déclaration de celle-ci. La déclaration fonctionne correctement si je supprimer mes indexs. Cependant, dans ce cas, les indexs auto-incrémentés ne m'arrangent pas... Comment puis-je espérer atteindre mon but, s'il-vous-plaît ? Petite cerise sur le gâteau, comment exploiter cette nouvelle table ? J'ai bien découvert les boucles for k,v in pairs(Table) do, mais un petit exemple d'application me ferait le plus grand bien Merci d'avance
  18. J3R3M

    VD Sonos TTS Remote

    @OJC, as-tu avancé comme tu le souhaitais sur ce super projet ?
  19. Cette télécommande paraît bien solide. Le plastique est de bonne qualité et est bien épais, on peut difficilement le casser (sauf volontairement) je pense. La télécommande est, à ce jour, plus tombée par terre que le nombre de fois où je l'ai utilisée et elle fonctionne parfaitement. Au niveau du temps de réponse, il est, de mon point de vue, très bon ! Aucun point négatif à relever pour le moment, si ce n'est la difficulté à se souvenir quel bouton déclenche quoi...
  20. Pour information, inclusion fin Novembre avec très peu de clics. Moins de 3 par semaine ! Je n'ai pas encore pris le temps de faire des scènes pour...
  21. Désolé, je ne comprends pas. Ce qui signifie que le VD de MAM78 n’est pas Plug & Play puisqu’il n’utilise pas de variable globale ?
  22. J3R3M

    Philips HUE InfoTools

    Bonjour MAM78. Est-il obligatoire d'utiliser le Plugin Hue en complément de ce VD ? Concrètement, j'aimerais simplement pouvoir récupérer les informations suivantes via des scènes : - Etat de l'ampoule (ON/OFF) - Bright - Sat - Hue - CT
  23. J'ai tellement d'ampoules Hue que la gestion d'une variable globale par ampoule me semble compliquée. Peut être est-il possible de combiner les deux méthodes en récupérant le labelEtat de @Talwayseb via une méthode similaire à celle de @MAM78 ? Désolé si c'est stupide, je me place seulement du côté utilisateur et ne connais pas les limites et contraintes du LUA + HC2.
  24. Oui, j'avais bien vu que c'était facultatif sur ton VD et c'est très bien ! Et si @Talwayseb s'en inspire pour son VD, ça va également forcément être utile à certains ! D'ailleurs, à propos de ton VD, j'ai pensé à quelques "améliorations", mais c'est peut être beaucoup plus complexe, voire impossible à mettre en place... Mais n'est-il pas possible de simplement avoir un bouton "Strobe" qui ferait clignoter n'importe quel état actuel de la lampe ? À cela rajouter éventuellement une barre de réglage pour la vitesse de clignotement... Ça éviterait de doubler tous les boutons de couleurs !
  25. En ce qui me concerne, toutes les ampoules de mon domicile sont en Hue Color (alors oui, je n'ai plus qu'un bras effectivement). Donc, pour chaque pièce, j'utilise une scène qui est déclenchée lorsque le(s) capteur(s) PIR de cette pièce sont déclenchés et cette scène déclenche alors l'allumage des Hue nécessaires. J'ai ensuite une autre scène qui, elle, sert de tempo pour toutes les pièces. Et cette scène prend également en compte le fait que je souhaite parfois avoir une ambiance lumineuse spécifique et, dans ce cas, n'éteindra pas la lumière malgré la temporisation prévue. Peut être que je me suis compliqué la vie, mais ça m'a l'air actuellement le plus souple. Mais une gestion de tempo intégrée dans le VD et facultative pourrait certainement être utile à de nombreuses personnes Par contre, ce qui m'intéresserait personnellement, c'est de pouvoir récupérer l'état d'une ampoule dans une scène (ne serait-ce qu'allumée ou éteinte)
×
×
  • Créer...