Aller au contenu

Contrôler les réglages d’objets connectés (Hues-Sonos) depuis HC2


Messages recommandés

Posté(e) (modifié)

Bonjour à tous,

 

Une nouvelle idée me vient en tête...

Pour les réveils de mon domicile, j’ai créé une scène qui simule une aube d’une durée paramétrable et qui démarre ensuite en fondu l’enceinte Sonos de la pièce en question.

Rien de particulier, une scène comme beaucoup d’entre-vous ont je pense!

 

Seulement, avec tout ce que certains savent faire désormais et les connaissances acquises, n’est-il pas possible que les paramètres de réveil soient directement envoyés à nos objets connectés?

Je m’explique, j’utilise des Philips Hue et des Sonos. Ces deux systèmes proposent déjà un système de réveil, contrôlable et paramétrable directement depuis leurs applications.

Mais ces informations sont bien stockées au sein de ces appareils. Est-il envisageable d’avoir le contrôle de cela via notre HC2?

 

Ainsi, ces réveils seraient indépendants de la HC2 après avoir été configurés. Notre box pourrait même planter (ce qui devient rare, je le conçois) mais les réveils fonctionneraient.

 

 

Je ne prétends pas que ça soit simple à mettre en place, mais qu’en pensez-vous? Bonne/Mauvaise idée? Possible/Impossible?

 

À bientôt! :-)

Modifié par J3R3M
Posté(e)

Bonjour,

 

Tout est possible, pourquoi pas, mais pour pouvoir récupérer ces infos,il faut que l'objet connecté les présente au niveau de l'API. Si elles n'en font pas partie, ce n'est donc pas possible.

En gros tout dépend de l'API.

Super coincidence, je me tatais ce matin pour faire un reveil à la minie pour éviter ce chez buzzer.

Je fais donc un petit HS, qu'as tu mis en place ?

Posté(e) (modifié)

Bonjour @pepite,

 

Je suis bien d'accord et c'est pour cette raison que cela sort complètement de mes compétences.

J'aurai tendance à penser que l'application utilise une sorte d'API pour l'envoi de ces informations... Mais, encore une fois, c'est totalement en dehors de mes compétences.

 

De mon côté, moi qui prend beaucoup de plaisir à faire mes propres scripts, j'ai fait une scène basique en fonction de mes capacités.

La voici simplifiée, si ça peut être utile :

 

-- Code Pièce
local PIECE = "CHAMBRE";

if fibaro:getSourceTrigger() == 'autostart' then fibaro:abort(); end

-- On reforme les tableaux
local table_pieces = json.decode(fibaro:getGlobalValue("T_INFOS_PIECES"));
local minuteries = json.decode(fibaro:getGlobalValue("HOME_MINUTERIES"));
local INFOS = table_pieces[PIECE];

-- Variables de réglage
local temps_aube = minuteries.aube;
local vd_hue = INFOS.HueGroup[1];
local vd_sonos = INFOS.SonosId;
local bouton_sonos = 18; -- soit Playlist 5
local volume = 25; -- %
local fsonos = 30; -- secondes

local function SonosZero(id)
  fibaro:debug("--> Début Sonos 0%");
  fibaro:call(id, "setSlider", "10", "0");
  fibaro:debug("Le volume de la SONOS de "..PIECE.." est à 0%");
  fibaro:debug("--> Fin Sonos 0%");
end

local function fade_hue(id, fade)
  fibaro:debug("----> Début Fade IN Hues");
  fibaro:call(id, "pressButton", "7");
  for i=1, 100 do
    fibaro:call(id, "setSlider", "10", i);
    if i == 25 or i == 50 or i == 75 or i == 100 then
      fibaro:debug("[FADE-IN-HUES] Actuellement à "..i.."%");
    end
    fibaro:sleep(fade/100*60*1000);
  end
  fibaro:debug("----> Fin Fade IN Hues");
end
  
local function fade_sonos(id, fade, vol)
  fibaro:debug("------> Début Fade IN Sonos");
  for i=1, vol do
    fibaro:call(id, "setSlider", "10", i);
    if math.floor(vol/2) == i then fibaro:debug("[FADE-IN-SONOS] Actuellement à 50%"); end
    fibaro:sleep(math.floor(fade/vol*1000));
  end
  fibaro:debug("------> Fin Fade IN Sonos");
end

local function MiseUpdate(valeur)
  if valeur == 0 then
    table_pieces[PIECE].Dodo = tonumber(valeur);
    fibaro:debug("[MISE] Mode DODO désactivé");
  end
  table_pieces[PIECE].Mise = tonumber(valeur);
  fibaro:setGlobal('T_INFOS_PIECES',json.encode(table_pieces));
  fibaro:debug("[MISE] Mise updaté sur la valeur "..valeur);
end

local function reveil()
  -- Mise ON
  MiseUpdate(1);
  -- Follow SONOS OFF
  fibaro:call(247, "pressButton", 2);
  -- Toutes les SONOS à 0%
  SonosZero(vd_sonos);
  -- Fade Hue
  fade_hue(vd_hue, temps_aube);
  -- Start programme
  fibaro:call(242, "pressButton", bouton_sonos); fibaro:sleep(500);
  -- Fade Sonos
  fade_sonos(vd_sonos, fsonos, volume);
  -- Mise OFF
  MiseUpdate(0);
  -- DODO OFF
  fibaro:call(310, "pressButton", 2);
end

reveil();

 

Pour chaque pièce, la variable MISE à 1 empêche les changements d'état automatiques des éclairages (extinction automatique/nouveau mouvement).

Si Follow Sonos = 0, le volume des enceintes n'est plus géré automatiquement en fonction de la présence de quelqu'un dans une pièce.

 

Modifié par J3R3M
Posté(e)

Ça marche parfaitement depuis plusieurs mois pour moi!

Je pensais qu'une telle scène était forcément déjà disponible depuis un petit moment!

Si ça peut être utile, je pourrai prendre quelques instants pour modifier cette scène et la rendre facilement utilisable pour tous les utilisateurs de lampes (Hues ou non) + Sonos.

De mon côté, j'ai effectivement fini par stocker toutes les informations nécessaires pour le fonctionnement de mes pièces dans une seule variable globale.

Ainsi, toutes mes scènes de pièces sont identiques. Seule la valeur de la variable PIECE au début du script change, permettant ainsi à chaque script de s'adapter à la pièce en question.

À l'occasion, il faudrait peut être aussi je prenne quelques minutes pour expliquer comment j'ai exploité la HC2 de mon côté dans le forum approprié, pour aider à la compréhension lors de mes demandes de support et éventuellement donner des idées et obtenir des idées d'amélioration! :-)

Posté(e)

Oui, il existe déjà des scènes partagées pour les réveils paramétrables. Mais il est toujours intéressant de voir différents points de vue.

 

Tu as donc une scène par pièce pour tes reveils.

Un partage de scène fonctionnelle rend toujours service à la communauté.

×
×
  • Créer...