Depuis MAJ Zwavejs homekit passe les lumières à 100% avant d’atteindre une autre valeur

Bonjour à tous,

Cela fait quelques mois que j’ai migré de openzwave à Zwavejs.
Je dois dire que cela a été très bénéfique car depuis le réseau est parfaitement stable alors qu’avant j’avais très souvent des commandes non transmises.

Par contre je ne peux pas expliqué pourquoi mais depuis, quand j’allume une lumière via homekit sur un appareil apple, celle-ci passe systématiquement par 100% avant d’atteindre une valeur intermédiaire.

Toutes mes lumières sont des Fibaro dimmer2.
Cela fonctionnait normalement avec openzwave. A savoir, quand je demandais la luminosité à 50%, la lumière allait directement à 50% sans passer par l’état de 100%.

Je suis sur raspberry pi4B
Clé Zwave aeotec gen7 (je viens de migrer de gen5 à gen5+ à gen7)
Raspberry à jour
Jeedom à jour
Plugins à jour

Si quelqu’un à une idée du problème (ou plutôt de la solution…) je suis preneur!

Merci de m’avoir lu et merci d’avance de votre aide.

Hello,

je pense que zwave met 100% quand il allume par défaut… mais tu peux passer le log homebridge en débug, relancer le démon, attendre un peu puis vider le log homebridge-daemon.

ensuite tu allumes ta lumière et tu regardes ce que dit le log, c’est en francais et assez explicite normalement, tu peux m’envoyer ce log.

1 « J'aime »

Merci de ton retour.

Voilà les log


4995|[12/5/2023, 10:23:04 AM] [Homebridge_Jazz] [INFO] [[Modification Cache Jeedom: Lumière du Salon>Puissance(POWER) de 1.9 vers 1.8 dans {"id":"6752","logicalId":"49-1-Power","generic_type":"POWER","eqType":"zwavejs","name":"Puissance","order":"2","type":"info","subType":"numeric","eqLogic_id":"421","unite":"W","isVisible":1,"currentValue":1.9,"configuration":{"maxValue":2500,"minValue":0,"phpType":"double"},"display":{"invertBinary":0}}
4996|[12/5/2023, 10:23:04 AM] [Homebridge_Jazz] [INFO] [Commande envoyée à HomeKit] Cause de modif: "Puissance" (6752) Envoi valeur: 1 dans Consumption
4997|[12/5/2023, 10:23:04 AM] [Homebridge_Jazz] [INFO] [Commande envoyée à HomeKit] Cause de modif: "Puissance" (6752) Envoi valeur: 0.4 dans Total Consumption

Donc homebridge reçoit bien l’état 1 avant de passer la valeur à 0.4.
Mais comment faire pour qu’il passe directement à 0.4 ? Car si je fais la même chose directement dans jeedom, je n’ai pas cet état 100% avant

heuuu c’est pas ce dont tu me parles, ici c’est la consommation electrique

Pardon… :innocent:
Voilà les bons


4982|[12/5/2023, 10:22:56 AM] [Homebridge_Jazz] [INFO] [Commande d'Homekit] Nom:On(00000025-0000-1000-8000-0026BB765291):false->true 					|||characteristic:{"_events":{},"_eventsCount":4,"iid":18,"value":false,"status":null,"statusCode":0,"subscriptions":1,"displayName":"On","UUID":"00000025-0000-1000-8000-0026BB765291","props":{"format":"bool","perms":["ev","pr","pw"],"needsBinding":true}}
4983|[12/5/2023, 10:22:56 AM] [Homebridge_Jazz] [INFO] [Commande d'Homekit] Nom:Brightness(00000008-0000-1000-8000-0026BB765291):0->50 					|||characteristic:{"_events":{},"_eventsCount":4,"iid":19,"value":0,"status":null,"statusCode":0,"subscriptions":1,"displayName":"Brightness","UUID":"00000008-0000-1000-8000-0026BB765291","props":{"format":"int","perms":["ev","pr","pw"],"unit":"percentage","minValue":0,"maxValue":100,"minStep":1,"needsBinding":true}}
4984|[12/5/2023, 10:22:56 AM] [Homebridge_Jazz] [INFO] [Commande envoyée à Jeedom] cmdId:6749 action:turnOn value: null generic:LIGHT_ON response:[]
4985|[12/5/2023, 10:22:57 AM] [Homebridge_Jazz] [INFO] [Commande T envoyée à Jeedom] cmdId:6748 action:setValueBright value: 50 response:[]
4986|[12/5/2023, 10:22:58 AM] [Homebridge_Jazz] [INFO] [Maj reçue de Jeedom] commande:6751 value:50
4987|[12/5/2023, 10:22:58 AM] [Homebridge_Jazz] [INFO] [[Modification Cache Jeedom: Lumière du Salon>Etat(LIGHT_STATE) de 0 vers 50 dans {"id":"6751","logicalId":"38-1-currentValue","generic_type":"LIGHT_STATE","eqType":"zwavejs","name":"Etat","order":"7","type":"info","subType":"numeric","eqLogic_id":"421","unite":"%","isVisible":0,"currentValue":0,"configuration":{"maxValue":99,"minValue":0,"phpType":"double"},"display":{"invertBinary":0}}
4988|[12/5/2023, 10:22:58 AM] [Homebridge_Jazz] [INFO] [Commande envoyée à HomeKit] Cause de modif: "Etat" (6751) Envoi valeur: true dans On
4989|[12/5/2023, 10:22:58 AM] [Homebridge_Jazz] [INFO] [Commande envoyée à HomeKit] Cause de modif: "Etat" (6751) Envoi valeur: 51 dans Brightness
4990|[12/5/2023, 10:23:00 AM] [Homebridge_Jazz] [INFO] [Maj reçue de Jeedom] commande:6752 value:1.9

Donc là, on dirait que l’info est directement transmise à 50%

Par contre, quand je regarde les logs de zwavejs en mode debug, pour la même action de demande de lumière à 50% depuis homekit j’ai ça:


3505|[2023-12-05 10:57:11][DEBUG] : [refreshIfNeeded] 38/1/targetValue 99
3506|[2023-12-05 10:57:14][DEBUG] : [refreshIfNeeded] 38/1/targetValue 50

Donc la commande est correctement transmise depuis homebridge, mais pas dans zwavejs.
Ce qui est étonnant, c’est que cela ne réagit pas comme ça quand je fais la même demande directement dans zwavejs. Il atteint directement la valeur 50

homekit envoi d’office un ON avant d’envoyer la luminosité, je pense que c’est ce ON qui fait ton 99 (qui est équivalent à 100% en zwave).

je pense que tu peux reproduire en allumant la lampe puis en envoyant 50%.

Oui effectivement.
Depuis homekit:
Quand la lumière est éteinte, une demande de valeur 50% la fait passer d’abord par 100%.
Quand la lumière est allumée à 10%, une demande de valeur 50% est atteinte directement sans passage à 100%

Du coup, y a t-il quelque chose à faire pour éviter ça ?

Normalement c’est au plugin zwave de gérer ça… mais j’ai mis en place il y a quelque temps un contournement pour ceux qui ont le problème.

tu fais un scénario qui contient un bloc code.

dans ce bloc code tu mets ça :

$eq=eqLogic::byId('1234');
$eq->setConfiguration('ignoreOnCommandOnBrightnessChange',1);
$eq->save(true);

1234 étant l’id de ton eqLogic lumière. tu exécutes le scénario puis tu relances le démon homebridge et ça devrait passer, il va ignorer le ON avant d’envoyer une luminosité.

ensuite tu peux supprimer le scénario.

Merci de ton aide @nebz
J’ai compris le principe, mais pas complètement,
Car à la place de « 1234 » dans le code, j’ai mis l’ID de la commande « On » de la lumière. Mais cela ne fonctionne pas. Cela ne dois pas être le bon ID du coup.
Ou est ce que je trouve l’ID de l’eqLogic lumière ?

De l’équipement pas de la commande, dans le bouton d’information en haut à droite dans l’equipement

Merci,
J’ai essayé avec l’ID unique et l’ID Logique, mais ça ne fonctionne pas.

Je sais pas si j’ai bien compris la procédure.
J’ai un scenario sans déclancheur.
Je crée un bloc code avec le code que tu m’as fourni en remplaçant l’ID.
J’exécute le scenario
je relance le demon de homebridge.

Est-ce bon ?

Maintenant que j’y pense, il me semble que j’avais modifié les lumières pour que la commande « on » fonctionne

Il me semble avoir noté manuellement le « TargetValue » à « 99 » pour avoir la commande « On »
Est-ce qu’il peut y avoir un lien ave le problème ?

oui et c’est l’id unique, montre moi ce que tu as dans le bouton informations → configuration

oui ca met le niveau à 99 quand tu fais ON, mais je sais pas si zwave t’offre une autre possibilité

Merci de ton aide.

donc on voit bien ignoreOnCommandOnBrightnessChange. retire l’équipement de homebridge en décochant, relance le démon, recoche le et redémarre le démon.

Un grand Merci @nebz pour ton aide!
C’était bien ça. Maintenant ça fonction correctement.

Je vais maintenant faire ça avec toutes mes lumières et ça sera bon!

c’est malheureusement un contournement, mais ça fonctionne, peut-etre que plus tard j’ajouterai un joli bouton qui permet simplement de le faire via l’interface. mais tu es la deuxième personne à me demander seulement :wink:

1 « J'aime »

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