Export des devices zigbee vers ash/gsh

Bonjour,
un grand merci @loic qui a déjà corrigé le soucis sur le type de valeur renvoyé quand on modifiait la luminosité via ash/gsh « invalid literal for int() with base 10: »

En prime je constate également la correction pour le changement de température de blanc qui ne fonctionnait pas avant. Sauf que via Alexa, la température est inversée ! Lorsque mon ampoule Ikea est au max du blanc froid (250), Alexa indique un « Blanc chaud » et si je choisis le « Blanc froid », l’ampoule passe sur 454, mais Alexa remet « Blanc lumière du jour ».

Par contre via Google Home, bien que les commandes de température soient définies et remontées, je n’ai pas la possibilité de la modifier :

 {
        "id": "205",
        "type": "action.devices.types.LIGHT",
        "roomHint": "RDC",
        "name": {
            "name": "[RDC][Séjour]",
            "nicknames": [
                "Séjour",
                "Séjour RDC"
            ]
        },
        "traits": [
            "action.devices.traits.Brightness",
            "action.devices.traits.ColorSetting",
            "action.devices.traits.OnOff"
        ],
        "willReportState": false,
        "customData": {
            "Brightness_cmdGetBrightness": "2411",
            "Brightness_cmdSetSlider": "2412",
            "ColorSetting_cmdSetTempColor": "2414",
            "ColorSetting_cmdGetTempColor": "2413",
            "OnOff_cmdGetState": "2407",
            "OnOff_cmdSetOn": "2408",
            "OnOff_cmdSetOff": "2409",
            "local_execution::apikey": "XXXXXXXXXXXXXXXXXXXXXXX"
        },
        "attributes": {
            "colorTemperatureRange": {
                "temperatureMinK": "250",
                "temperatureMaxK": "454"
            }
        },
        "otherDeviceIds": [
            {
                "deviceId": "205"
            }
        ]
    }

Peut-être un soucis dans la liste des « traits » remontés ?

Bonjour,
Je pense savoir si ya pas de commande couleur je met pas de model color (rgb) c’est peut etre ca qui le gene. Faudra voir avec la beta de demain du plugin gsb (bien refaire une decouverte). Après si ca marche ou pas par contre tu aura aussi le choix de couleur possible (google ne sait pas faire que du color temp sans choix de couleur…)

Ok je testerai demain et te ferai un retour.
Concernant l’inversion des températures, c’est déconnant ou générique ?

C’est un desaccord entre alexa et les fabricant de module zigbee… Je vais voir pour ajouter un bouton pour dire a jeedom d’inverser.

1 « J'aime »

Voila demain yaura des boutons pour inverser mais pas sur que ca marche… Alexa marche sur une echelle de 1000 à 10000 donc compliqué pour l’inversion on verra bien

J’ai regardé dans la doc dev Google : Actions on Google Smart Home  |  Google Developers

c’est un peu contradictoire le coup de devoir définir le colorModel sur rgb ou hsv bien que dans l’exemple sur la temp only, il n’y soit pas :

{
  "colorTemperatureRange": {
    "temperatureMinK": 2000,
    "temperatureMaxK": 9000
  }
}

Par contre on est pas sur la même échelle de valeurs !
Du coup on se retrouve également avec une inversion des valeurs de chaud/froid.
Peut-être là le soucis d’interprétation côté Google qui ne reconnait pas le range ??

Effectivement je n’ai pas a mettre le colorModel en faite vu que j’en ai pas et que j’ai temp color donc je comprend pas pourquoi ca marche pas… Pour les borne ya pas de min/max chez google donc oui ca va etre inversé (je corrigerais ca pas de soucis) mais ca explique pas pourquoi ca marche pas. Ou alors c’est comme d’habitude google n’a pas implementé sur l’app le cas de color temp sans color…

OK donc je teste demain ash et gsh en bêta ?

Non j’ai supprimé ma modification qui n’a pas lieu d’etre pour moi c’est juste que google a pas prévu le cas d’une lampe no color avec température de couleur dans l’interface.

D’accord, et concernant l’inversion des températures, tu l’as implémenté du coup ?

Sur Alexa oui

Je ne vois pas de nouvelle version bêta du plugin Alexa, la dernière est la 10/04 :slightly_frowning_face:

J’ai oublié d’envoyer le code. Ca sera bon demain

Bonjour Loic,
j’ai testé l’inversion sur Alexa, pour la commande, l’état ou les 2.
C’est pas beaucoup mieux. L’inversion de la commande fait qu’on se retrouve avec le max à chaque preset, donc 454.
L’inversion de l’état apporte une légère cohérence mais il faudrait que l’inversion de commande soit utilisable.
J’ai testé également de remonter une ampoule sous gsh en modifiant le type générique en « Couleur », là on a bien le panel qui s’affiche dans GH, mais le moindre changement fait qu’on se retrouve avec le min, donc 250 (ou le max en Kelvin).

Après j’ai retrouvé dans le topic béta zigbee, quelques messages parlant du sujet :

Plus généralement, il faudrait peut-être que ash/gsh intègrent la conversion vers le format de l’API cible (Alexa ou GH) en fonction de l’unité de la commande état (Kelvin, CTM voir %CCT pour les ampoules Xiaomi/Philips), qu’en penses-tu ?

Bonjour,
Pour la conversion c’est deja le cas il prend le min/max de la commande qu’il convertie par rapport au min/max de ash/gsh. Comme dit dans le topic le soucis c’est que chaque ampoule a son propre min/Max pour 90% des intégration je n’ai pas le matériel je fais donc confiance a vos remontés. Si vous me dite le min/max c’est ca je le met immédiatement dans la configuration mais sans retour je ne peux pas le deviner donc il est forcement pas bon.

Pour l’inversion il faudra retestert demain j’avais un soucis dans mon code.

Pour information je suis en vacances 3 semaines la je risque donc d’etre bcp moins reactif aux demande

D’accord, je ferai d’autres tests demain.
Encore merci pour tout le travail et bonnes vacances à toi !

Bonjour Loic, si tu passes par ici, j’ai pas vu de màj beta sur ash (ton merge a du rester coincé :slight_smile: )

Hello,
j’ai refait des tests avec ash bêta du 20/04 :
L’inversion de commande ne fonctionne toujours pas. Si je demande à Alexa un blanc chaud, la lampe met 250 (ou moins) et inversement un blanc lumière du jour ou plus pousse 454 ou plus.

L’état (inversé) change dans le bon sens, mais les valeurs semblent décalées :
Le blanc froid serait ~3500K, le blanc lumière du jour ~2700K et blanc ~2200K…

Quelles sont les valeurs en Kelvin que Alexa attribue pour ses réglages ?

Les ampoules Ikea « TRADFRI bulb E27 WS opal 980lm » et « TRADFRI bulb E27 WS opal 1000lm » vont de 250 à 454 soit en inversant 2200K à 4000K

Bonjour,
Voici le calcul fait coté plugin :

if($_device->getOptions('ColorTemperatureController::invertSetColorTemp')){
	$value = 9900 - $value;
}
$value = ((($_directive['payload']['colorTemperatureInKelvin'] - 2200)/7000)*$cmd->getConfiguration('maxValue',100))+$cmd->getConfiguration('minValue',0);

En gros je m’aligne sur le min/max et je rajoute l’offset car on par pas de 0

Hello,

Autant le if je comprends que c’est pour inverser la valeur de commande en ayant une value en kelvin ok, en partant du max alexa (9900 pour 10000 - 100 ?)
Par contre l’autre ligne pour moi renvoie une valeur qui correspondrait au CTM ? Donc pour la conversion de l’état ?
Les fonctions mathématiques sont pas trop ma tasse de thé… mais je comprends pas comment tu as déterminé le 7000 ?? Ça doit fonctionner si on règle la temp de 0 à 100 avec un offset ou non, mais avec des valeurs en CTM qui doivent s’inverser pour le min/max… ça n’a pas de sens de rajouter le min value sachant qu’il correspond au max en kelvin.