KLF200 - Ajout lumières et lames

Hello @lunarok ,

Merci pour tout le travail sur ce plugin.

J’ai ajouté le support des lumières et lames dans la lib pyvlx.
Un merge est en cours de revue : https://github.com/Julius2342/pyvlx/pull/31

Est-ce possible de prévoir l’ajout de ces deux types dans ton plugin s’il te plaît?

J’ai déjà fait les modifications sur ton plugin en local pour tester que ça fonctionne.
Dit moi si tu veux que je te les envoie en MP.

Merci

Oui je mettrais a jour dans la mesure du possible (j’ai essayer les on/off mais apparemment marche pas)

Les ‹ blade › ce sont les bso ?

Bonjour,

L’auteur de pyvlx a fait le merge avec mes modifications il y a 2 jours.

On peut les considérer les blades comme des BSO mais elles ont un type à part entière pour le klf200 (BLADE_OPENER = 0x0740).
Dans pyvlx, elles foont parties de la classe OpeningDevice.

Pour la partie On/Off, ce n’est pas moi qui l’ai implémenté, du coup, je n’ai pas pu tester.

Dimitri

PS: Désolé, avec la migration, les notifications se sont retrouvées désactivées.

Pour les Blade, je les ai ajouté dans la liste des Opening dans le plugin, donc ca devrait passer.
Le ON/OFF a voir si le PR a améliorer les choses, le seul user a en avoir, c’était pas une réussite avant

Merci.
Possible d’ajouter les lumières aussi s’il te plaît?

C’est plus long mais je regarde.
Par contre, y a pas de statut pour les lampes ?

J’ai mis à jour sur le market, si la lib est diffusé via pip, une relance des dépendances et tu devrais avoir tes blade déjà.
Pour les lampes, tu peux me confirmer si leur type (visible dans les logs) est bien LighteningDevice

Merci ! Je viens de mettre à jour la lib (via pip) et ton plugin.
Tout continue de fonctionner (même les lumières) sans problème.

Voici ce que j’ai dans la log:

[2020-03-10 21:02:09][DEBUG] : Result {"devices": [{"type": "Awning", "id": 0, "name": "Store_face"}, {"type": "Blade", "id": 1, "name": "Lames"}, {"type": "Light", "id": 2, "name": "Lumiere_droite"}, {"type": "Awning", "id": 3, "name": "Store_gauche"}, {"type": "Awning", "id": 4, "name": "Store_droit"}, {"type": "Light", "id": 5, "name": "Lumiere_gauche"}, {"type": "RollerShutter", "id": 6, "name": "Velux_chambre"}, {"type": "RollerShutter", "id": 7, "name": "Velux_bureau"}, {"type": "RollerShutter", "id": 8, "name": "Velux_sejour_bas_droite"}, {"type": "RollerShutter", "id": 9, "name": "Velux_sejour_haut_droite"}, {"type": "RollerShutter", "id": 10, "name": "Velux_sejour_bas_gauche"}, {"type": "RollerShutter", "id": 11, "name": "Velux_sejour_haut_gauche"}], "result": "ok"}

J’ai ajouter un type lumière dans le plugin.
Si tu peux essayer (ça devrait donner l’intensité, le slider, on et off)

Je viens de tester.
Les commandes on/off fonctionnent mais pas la commande « niveau ».

[2020-03-15 13:53:03][DEBUG] : Action /set/2/100
[2020-03-15 13:53:03][DEBUG] : Send http://localhost:9123/set/2/100
[2020-03-15 13:53:03][DEBUG] : Result {"result": "fail", "message": "'Light' object has no attribute 'set_position'", "reason": "exception during execution"}
[2020-03-15 13:53:07][DEBUG] : Action /lighton/2
[2020-03-15 13:53:07][DEBUG] : Send http://localhost:9123/lighton/2
[2020-03-15 13:53:12][DEBUG] : Result {"result": "ok", "device": 2, "intensity": "UNKNOWN"}
[2020-03-15 13:53:14][DEBUG] : Action /lightoff/2
[2020-03-15 13:53:14][DEBUG] : Send http://localhost:9123/lightoff/2
[2020-03-15 13:53:18][DEBUG] : Result {"result": "ok", "device": 2, "intensity": "UNKNOWN"}

J’ai du réinstaller tous les équipements à cause d’une erreur SQL et je me rends compte que les blades ne fonctionnent pas.
Je pense que tous les équipements étaient restés configuré avec mes devs.

[2020-03-15 17:20:10][DEBUG] : Action /on/1
[2020-03-15 17:20:10][DEBUG] : Send http://localhost:9123/on/1
[2020-03-15 17:20:10][DEBUG] : Result {"result": "fail", "reason": "node or position not provided"}
[2020-03-15 17:20:16][DEBUG] : Action /off/1
[2020-03-15 17:20:16][DEBUG] : Send http://localhost:9123/off/1
[2020-03-15 17:20:16][DEBUG] : Result {"result": "fail", "reason": "node or position not provided"}

Pour moi, les blades devraient avoir exactement la configuration que les velux.

On ne récupère pas l’état des lumières mais je pense que cela est plus un problème côté lib pyvlx.
Je vais regarder ce point.

[2020-03-15 17:28:36][DEBUG] : Action /lighton/5
[2020-03-15 17:28:37][DEBUG] : Send http://localhost:9123/lighton/5
[2020-03-15 17:28:41][DEBUG] : Result {"result": "ok", "device": 5, "intensity": "UNKNOWN"}
[2020-03-15 17:28:44][DEBUG] : Action /lightoff/5
[2020-03-15 17:28:45][DEBUG] : Send http://localhost:9123/lightoff/5
[2020-03-15 17:28:49][DEBUG] : Result {"result": "ok", "device": 5, "intensity": "UNKNOWN"}

J’ai corrigé la commande set luminosité et la reconnaissance des blades.
Il faut supprimer les devices et rescanner.
Pour la luminosité j’en ai profiter pour le remettre dans le bon sens (sinon c’était éteint = 100, allumer = 0)
Et oui la luminosité je pense que c’est ce qu’il faut faire pour la récupérer mais aucune confirmation.

J’ai supprimé les 3 équipements mais maintenant, j’ai une erreur « 500 : Internal Server Error » lorsque je fais un scan.

[Mon Mar 16 10:22:00.421879 2020] [:error] [pid 2323] [client 192.168.2.97:59564] PHP Fatal error:  Uncaught Error: Using $this when not in object context in /var/www/html/plugins/klf200/core/class/klf200.class.php:161
Stack trace:
#0 /var/www/html/plugins/klf200/core/ajax/klf200.ajax.php(28): klf200::scanDevices()
#1 {main}
thrown in /var/www/html/plugins/klf200/core/class/klf200.class.php on line 161, referer: http://jeedom.maison/index.php?v=d&m=klf200&p=klf200

Effectivement, oubli de coller sur cette ligne, c’est corrigé

Merci Lunarok.
Un dernier petit problème. Il n’y a pas de méthode is_on pour les lumières.

[2020-03-16 14:41:51][DEBUG] : Send http://localhost:9123/status/2
[2020-03-16 14:41:51][DEBUG] : Result {"message": "'Light' object has no attribute 'is_on'", "result": "fail", "reason": "exception during execution"}

Désolé, je viens d’en trouver un autre. :frowning:
Surement un problème de copier/coller.

[2020-03-16 16:31:10][DEBUG] : Send http://localhost:9123/position/1
[2020-03-16 16:31:10][DEBUG] : Result {"message": "'Blade' object has no attribute 'intensity'", "result": "fail", "reason": "exception during execution"}
[2020-03-16 16:31:10][DEBUG] : Update Lames at %

Celui là c’est bon, j’ai trouvé, c’est corrigé (mais j’ai pas encore envoyé au market, j’attend de corriger l’autre)

C’est bon j’ai le deuxième aussi, j’ai poussé la correction.
Et aussi le bouton de lancement des dépendances, quand on le clique quand elles sont ok il forcera la réinstall des modules python, donc mise à jour de pyvlx

Je viens de mettre à jour.
J’ai ces 2 erreurs.

[2020-03-17 10:45:49][DEBUG] : Send http://localhost:9123/devices
[2020-03-17 10:45:49][DEBUG] : Result {"result": "ok", "devices": [{"position": 0, "name": "Store_face", "id": 0, "type": "Awning"}, {"position": 53, "name": "Lames", "id": 1, "type": "Blade"}, {"name": "Lumiere_droite", "id": 2, "type": "Light"}, {"position": 0, "name": "Store_gauche", "id": 3, "type": "Awning"}, {"position": 0, "name": "Store_droit", "id": 4, "type": "Awning"}, {"name": "Lumiere_gauche", "id": 5, "type": "Light"}, {"position": 99, "name": "Velux_Valentin", "id": 6, "type": "RollerShutter"}, {"position": 0, "name": "Velux_bureau", "id": 7, "type": "RollerShutter"}, {"position": 0, "name": "Velux_sejour_bas_droite", "id": 8, "type": "RollerShutter"}, {"position": 0, "name": "Velux_sejour_haut_droite", "id": 9, "type": "RollerShutter"}, {"position": 0, "name": "Velux_sejour_bas_gauche", "id": 10, "type": "RollerShutter"}, {"position": 0, "name": "Velux_sejour_haut_gauche", "id": 11, "type": "RollerShutter"}]}
[2020-03-17 10:45:49][DEBUG] : Create ID : Lames
[2020-03-17 10:45:49][DEBUG] : Create ID : Lumiere_droite
[2020-03-17 10:45:50][DEBUG] : Create ID : Lumiere_gauche
[2020-03-17 10:45:57][DEBUG] : Send http://localhost:9123/position/1
[2020-03-17 10:45:57][DEBUG] : Result {"result": "fail", "reason": "exception during execution", "message": "int() argument must be a string, a bytes-like object or a number, not 'Position'"}
[2020-03-17 10:45:57][DEBUG] : Update Lames at %
[2020-03-17 10:46:04][DEBUG] : Send http://localhost:9123/intensity/2
[2020-03-17 10:46:04][DEBUG] : Result {"result": "fail", "reason": "exception during execution", "message": "'Light' object has no attribute 'position'"}
[2020-03-17 10:46:04][DEBUG] : Update Lumiere_droite at %

Hello @lunarok
As-tu eu un peu de temps pour regarder aux dernières erreurs stp?
Merci