Bugs : Implémentation température de couleur

Bonsoir,

Il me semble que l’absence d’un intval() pour convertir la chaîne de caractères en entier dans fonction discover de la classe gsh_ColorSetting.class.php du plugin GSH empêche l’affichage du bouton « Couleur » sur l’application Google Home.

Avant :

$return['attributes']['colorTemperatureRange'] = array(
  'temperatureMinK' => $cmd->getConfiguration('minValue'),
  'temperatureMaxK' => $cmd->getConfiguration('maxValue')
);

Après :

$return['attributes']['colorTemperatureRange'] = array(
  'temperatureMinK' => intval($cmd->getConfiguration('minValue')),
  'temperatureMaxK' => intval($cmd->getConfiguration('maxValue'))
);

En essayant avec et sans il me semble que, en l’absence de la conversion en entier, le bouton « Couleur » ne s’affiche pas. Il serait pertinent de corriger ce léger soucis.

Bonne soirée,
Alexis :slightly_smiling_face:

1 « J'aime »

Bonjour,
Comme mon premier message n’était pas parfaitement clair, je tiens à préciser le problème.

  1. Lorsque j’ajoute le intval dans le code du plugin, la page de contrôle de mes lampes est comme la photo ci-dessous :
  2. Sans le intval, le bouton « Couleur » disparaît :

Il me semble que ça n’est pas la seule erreur de typage que j’ai repéré dans cette classe du plugin mais les autres semblent parfaitement être gérées par Google Home. Visiblement, Google Home n’accepte pas les erreurs de typage dans ces deux attributs spécifiques et n’affiche pas le bouton en conséquence.

De plus, il me semble avoir vu des sujets sur ce forum (que je ne retrouve plus) qui expliquaient qu’il était impossible d’afficher le bouton Couleur sans configurer un type Couleur RGB sur la lampe. Cela me semblait bizarre, et je pense que le problème que je signale en est la cause.


J’en profite pour signaler un autre problème. J’ai remarqué que le plugin Deconz allumait la lampe au changement de la température de couleur. Serait-il possible de rajouter des lignes de code de la fonction exec comme ci-dessous pour informer Google Home de ce fonctionnement ?

À la base j’ai essayé de mettre les lignes ci-dessous mais il semble que le statut OnOff de la lampe n’est pas assez rapidement modifié après le changement de température ducoup ça ne fonctionne pas.

$return = array('status' => 'SUCCESS');
$value = cmd::byId($_infos['customData']['OnOff_cmdGetState'])->execCmd();
$return['on'] = boolval($value);

La ligne de code ci-dessous fonctionne mieux mais pour les plugins qui n’allument pas la lampe au changement de la température de couleur ça peut être problématique…

$return = array('status' => 'SUCCESS');
$return['on'] = true;

Je pense que vous serez plus expérimenté que moi pour trouver une solution ! :+1:

Merci d’avance pour votre aide,
Cordialement,
Alexis :grinning:

1 « J'aime »

Bonjour,
Merci pour le retour la correction sera disponible dans la beta de demain.
Pour la partie lampe allumé/eteinte j’ai juste rajouté un sleep 1s puis un check de l’état je peux pas mettre plus long malheureusement et c’est la seule solution possible.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.