KLF200 - Ajout lumières et lames

Celui du blade devait déjà être réglé, là je viens de faire celui du light

Merci pour la dernière version.
Je n’ai pas pu tester les blades, par contre j’ai pu faire les lumières et voici les erreurs que j’ai.

[2020-03-25 21:20:35][DEBUG] : Action /lightset/2
[2020-03-25 21:20:35][DEBUG] : Send http://localhost:9123/lightset/2
[2020-03-25 21:20:35][DEBUG] : Result 404: Not Found
[2020-03-25 21:20:43][DEBUG] : Action /lightset/2
[2020-03-25 21:20:43][DEBUG] : Send http://localhost:9123/lightset/2
[2020-03-25 21:20:43][DEBUG] : Result 404: Not Found
[2020-03-25 21:20:51][DEBUG] : Action /lighton/2
[2020-03-25 21:20:51][DEBUG] : Send http://localhost:9123/lighton/2
[2020-03-25 21:20:56][DEBUG] : Result {"device": 2, "intensity": "UNKNOWN", "result": "ok"}
[2020-03-25 21:21:00][DEBUG] : Send http://localhost:9123/intensity/2
[2020-03-25 21:21:00][DEBUG] : Result {"message": "name 'get_intensity' is not defined", "reason": "exception during execution", "result": "fail"}
[2020-03-25 21:21:00][DEBUG] : Update Lumière droite at %
[2020-03-25 21:21:06][DEBUG] : Action /lightoff/2
[2020-03-25 21:21:06][DEBUG] : Send http://localhost:9123/lightoff/2
[2020-03-25 21:21:11][DEBUG] : Result {"device": 2, "intensity": "UNKNOWN", "result": "ok"}

Pour le lightset, c’est corrigé dans la version qui arrive
Par contre pour récupérer l’intensité, tu sais comment l’avoir dans la lib pyvlx ?

C’est censé remonter dans l’attribut intensity mais il y a un problème dans le plugin pyvlx.
Il y a encore quelques petites erreurs avec le slider pour les lumières que je me suis permis de corriger.

pi@jeedom:/var/www/html/plugins/klf200/resources $ diff klf200d.py klf200d.py.orig
6c6
< from pyvlx import Position, PyVLX, Intensity
---
> from pyvlx import Position, PyVLX
167c167
< async def get_intensity(request):
---
> async def get_position(request):
227,229d226
<
< def get_intensity(device):
<     return re.sub("\D", "", str(device.intensity))

En l’état, ça fonctionne mais il n’y a pas de remonté d’état.
Je vous fais un retour dès que j’ai trouvé.

Je viens de trouver le problème dans pyvlx.
Une demande de merge est en cours auprès de l’auteur.

Par contre, les valeurs retournées sont inversées:

  • 100 = éteint
  • 0 = allumé

Je ne sais pas si c’est facilement gérable avec le slider (qui semble ne pas garder la valeur).

Quand j’ai implémenté les lumières dans pyvlx, j’ai pratiquement copié/collé la classe opening.
Ma question va peut être paraitre bête mais pourquoi ne pas réutiliser aussi le même squelette dans ton plugin ?

Je mets en PJ le JSON que j’avais utilisé au tout départ pour tester.
lightening.txt (2,4 Ko)

Oui j’avais vu le coup de « 100% éteint », comme les ouvrants de base fonctionnent en % fermés
Pour les ouvrants, j’ai laissé car beaucoup avaient déjà leurs commandes, j’ai rajouté après les % ouvert pour etre compliant avec les assistants vocaux (vu qu’on ne peut pas faire d’inversion via jeedom sur les numériques)

Du coup pour la commande envoyée sur lumière, je faisais déjà la conversion. Mais pas sur la réception, là je l’ai ajouté.

Merci pour l’explication. C’est plus clair. :+1:

Est-ce que tu as vu mon post du 28 mars pour le problème de variation que j’ai corrigé ?
Ca corrige le problème lié à ce message d’erreur lorsqu’on utilise le slider.

[2020-04-10 08:15:24][DEBUG] : Result {"result": "fail", "reason": "node or position not provided"}

Je viens de pousser la correction, et avec une mise à jour des dépendances sur mise à jour du plugin pour récupérer la version nécessaire de pyvlx

Merci pour le dernier update, le slider fonctionne.

Par contre, le paramètre statut n’est pas mis à jour.
Pourtant, les bonnes valeurs sont remontées d’après la log.

[2020-04-11 09:30:24][DEBUG] : Action /lighton/2
[2020-04-11 09:30:24][DEBUG] : Send http://localhost:9123/lighton/2
[2020-04-11 09:30:28][DEBUG] : Result {"result": "ok", "device": 2, "intensity": "100 %"}
[2020-04-11 09:30:31][DEBUG] : Action /lightset/2/36
[2020-04-11 09:30:31][DEBUG] : Send http://localhost:9123/lightset/2/36
[2020-04-11 09:30:31][DEBUG] : Result {"result": "ok", "device": 2, "intensity": "0 %"}
[2020-04-11 09:30:37][DEBUG] : Action /lightoff/2
[2020-04-11 09:30:37][DEBUG] : Send http://localhost:9123/lightoff/2
[2020-04-11 09:30:39][DEBUG] : Result {"result": "ok", "device": 2, "intensity": "64 %"}
[2020-04-11 09:30:50][DEBUG] : Send http://localhost:9123/intensity/2
[2020-04-11 09:30:50][DEBUG] : Result {"result": "ok", "device": 2, "intensity": 100}
[2020-04-11 09:30:50][DEBUG] : Update Lumière droite at 100%

Pour pyvlx, l’auteur n’a toujours pas pousser la dernière version.

Du coup, déjà là quand il t’as dit 100%, ta lampe est éteinte en réalité, c’est bien ca on est d’accord ?

Tu peux me vérifier sur ton équipement Lumière droite, la commande statut, via le bouton paramètre avancé, quel est son logicalId ?

Bonjour,
Je ne sais pas si c’est le bon sujet mais j’ai une petite questions justement au sujet des éclairage.
J’ai un store banne Somfy commander en IO par une télécommande Situo 5 qui permet la commande ouverture/fermeture du store mais également l’éclairage des bandeau led integré dans les bras du store.
Aprés avoir lu les différents sujet, il a aucun doute pour commander l’ouverture/fermeture du store avec la passerelle KLF-200 et le plugin de Lunarok (qui, au passage, a fait un super boulot)
Ma question est donc de savoir si on peux commander l’éclairage (qui est donc en protocole IO) indépendamment de l’ouverture/fermeture du store avec le plugin ?

C’est justement ce que fait @Dimitri plus haut, c’est des lumières IO qui sont connectés à son KLF200

Merci Pour cette confirmation comme quoi j’étais bien sur le bon sujet que je vais donc suivre assidument.

Bonjour,

J’ai des détecteurs Somfy Sunis et Thermis IO. Il y a t’il une possibilité de les ajouter au KLF200 ? Idem pour les keygo ?

J’ai du mal à saisir si ces appareils doivent nécessairement être ajoutés au KLF200 pour que le plugin puissent y accéder ? Si oui, il semble que le KLF200 n’arrive pas à s’y connecter > il ne serait finalement pas compatible avec tous les dispositifs IO ?

Bonjour @Lunarok, j’ai donc acheté le module KLF200 et le plugin.
L’intégration du store banne a été laborieuse mais j’y suis arrivé (j’ai du inverser les commandes car lorsque je demandai, par l’intermédiaire d’Alexa, d’ouvrir le store, celui-ci ce fermait et inversement, de même pour les boutons du widget ou j’ai inverser les noms fermer et ouvrir pour qu’il corresponde a l’action demandée).
Par contre j’ai un soucis pour les éclairages du store. J 'ai pu les intégrer au KLF 200 (Image 430) mais quand je lance un scan a partir du plugin il ne les détecte pas (Image 431)
As tu une solution ou m’indiquer une manip que j’aurais loupé ?
Merci

Idem ici concernant les bandeaux led.

J’avais ouvert un sujet plus exhaustif ici : Problème détection bandeau LED pergola

Je suis aussi intéressé par une solution ^^

Bonjour @lunarok,

Il y a un petit bug sur la commande « Niveau Luminosité ».
Elle fonctionne de manière inversée :

  • 0% = allumé
  • 100% = éteint

J’ai modifié une condition dans klf200.class.php et ça fonctionne.

#if ($this->getLogicalId() == 'position_sliderOpen' || $this->getLogicalId() == 'lightset') {
#       $value = 100 - $value;
#}
if ($this->getLogicalId() == 'lightset') {
    $value = $value;
}
if ($this->getLogicalId() == 'position_sliderOpen') {
    $value = 100 - $value;
}

Ok je corrige, du coup je modifie juste la ligne 344 en
if ($this->getLogicalId() == 'position_sliderOpen') {