Open anthouny opened 2 years ago
Bonjour, Je ne suis pas sur que Homebridge gère les équipements type véhicule ! @NebzHB : tu confirmes ?
Sinon il est prévu que le plugin soit compatible avec Jeemate et Jeedom Connect (dev en cours)
Effectivement, mais je pense que l'on pourrait faire remonter au minimum l'action verrouiller et déverrouiller comme ci c'était une serrure connectée ?
Le plugin Ford le fait comme ça
Non en effet mais il est possible de créer des équipements composés comme une ampoule pour les phares, une serrure, une fenêtre électrique, une batterie pour la recharge, etc (sauf pour par exemple le remplissage de diesel... ) mais y'a moyen de contourner :-) (pour autant qu'il y ait des états)
En effet, c'est une excellente idée !
@anthouny : tu dois donc pouvoir le faire nativement depuis le plugin Homebridge en affectant le bon générique sur les commandes ! Ex pour le vérrouillage, déverrouillage :
Puis relancer le démon Homebridge et ca devrait fonctionner ! Attention toutefois au délai BMW (l'action peut mettre jusqu'à 2min) et donc voir comment cela réagi.
Je verrai ensuite comment intégrer nativement cela, sans que cela ne gène Jeemate et Jeedom Connect ;)
Je vais retenter demain car j'avais essayé (sauf pour l'état de la serrure) mais ça n'apparaissait pas dans homekit même après avoir redémarré le demon
Il faut bien les 3 pour que cela soit pris en compte ;) Tiens moi au courant !
Par contre, en parcourant la doc Homebridge, je vois que l'état doit être à 0 ou 1. Ce n'est pas le cas de mon plugin. Il va donc falloir que tu passes par un virtuel :
Là tu m'as perdu avec le virtuel :(
en fait mon plugin récupère l'état du verrouillage qui peut être : -locked -unlocked -secured
Mais Homebridge a besoin d'avoir un binaire, 0 ou 1. IL faut donc créer un virtuel avec une commande info état qui va cherché ma commande info état verrouillage et la transforme en 0 ou 1. J'essaie de te montrer ca demain !
J'attends ton tuto si tu peux :)
Je viens de faire le test et ca fonctionne ;) Il faut que tu crées un virtuel et dans celui-ci 2 commandes actions et 1 commande info :
Dans la commande info tu rentres :
#[Garage][BMW i3][Verrouillage]# == 'Unlocked'?0:1
En choisissant bien sur ton équipement correspondant à ta voiture ;)
Juste pour expliquer cette formule : si la valeur de ta commande Verrouillage de ton véhicule est 'unlocked' il transforme et 0 sinon il transforme en 1 !
Il te reste ensuite à appliquer les génériques sur ce virtuel comme expliqué plus haut et ca devrait fonctionner dans Home ;)
J'ai bien rajouter l'état de la serrure et c'est bien apparu dans HomeKit.
Je peux juste déverrouiller, mais comme tu le disais, il reste en "déverrouillage en cours" car il n'a pas de retour d'état.
J'ai regardé pour le virtuel, mais j'ai rien pigé.
en fait Home attend en retour d'état en 0 ou 1 et il reçoit un texte c'est pour ca !
Pour le virtuel, il suffit d'utiliser le plugin du même nom et de "recopier" les commandes de ton véhicule sur l'équipement virtuel créé ! Puis d'appliquer la formule que je cite !
Nos messages se sont croisés, j'ai fait comme toi, ça déverrouille bien, mais ça reste en déverrouillage
Même au bout de qq sec qd le statut de la commande est passée à EXECUTED ?
Oui ça reste comme ça plusieurs minute et repasse en "verrouillé" mais si véhicule déverrouillé. Où je vois si executed?
Il faut que tu passes les logs du plugin en debug, tu lances un déverrouillage et tu postes les logs ici 😜
dans homebridge ou virtuel ?
Dans Jeedom/Analyse/Logs et tu vas sur myBMW, tu vas avoir tous les logs du plugin
[2022-05-03 20:26:46]DEBUG : | Result getToken OK at time 1651602406 and expires in : 3599 s [2022-05-03 20:26:47]DEBUG : | Result getRemoteServiceStatus() : [200 - OK] - {"eventStatus":"PENDING"} [2022-05-03 20:26:52]DEBUG : | Result getRemoteServiceStatus() : [200 - OK] - {"eventStatus":"PENDING"} [2022-05-03 20:26:57]DEBUG : | Result getRemoteServiceStatus() : [200 - OK] - {"eventStatus":"PENDING"} [2022-05-03 20:27:03]DEBUG : | Result getRemoteServiceStatus() : [200 - OK] - {"eventStatus":"EXECUTED"} [2022-05-03 20:27:08]DEBUG : └─End of car event doorUnlock : [200 - OK
] - eventId : 023041fc-50f8-4e3b-96f6-28903b5d7800 - creationTime : 2022-05-03T18:26:46.748433Z`
Ok donc l’action a bien été réalisée. Il faudrait maintenant s’assurer que la formule fonctionne. il faut que tu ailles sur ta commande « Verrouillage » de ton virtuel et que tu cliques sur tester ! Test à faire qd ton véhicule affiche bien verrouillé sur le plugin myBMW et tu dois avoir 1 Puis qd le plugin affiche déverrouillé, tu dois avoir 0.
j'ai 1 dans les 2 cas
Ok donc le souci vient de la ! est ce que tu peux tester la commande Verrouillage de ton véhicule (pas le virtuel) qd celui-ci est déverrouillé ? Il se peut que tu ais UNLOCKED en majuscule !
unlocked pas en majuscule
Même pas le U ?
Ok dans ce cas modifie la formule de ton virtuel :
#[Garage][BMW i3][Verrouillage]# == 'unlocked'?0:1
Et reteste ! Tu devrais avoir 0 !
C'était bien "Unlocked" avec un U maj
et j'ai toujours 1 dans les deux cas
Tu peux me montrer les commandes de ton virtuel ?
Tu peux agrandir pour la formule ?
Remets le U en majuscule du coup ! Il y était avant ?
C'est bon c'était ça, ça fonctionne, mais il y a un mais, je suis obligé de rafraichir manuellement sur le plugin pour qu'il récupère le bon état
Je m'explique mieux, quand sur le plugin mybmw je clique sur déverrouiller, le plugin se rafraichi, mais pas assez longtemps pour récupérer le bon état, je suis donc obliger le forcer le rafraichissement pour qu'il récupére l'état que ce soit sur le plugin ou sur HomeKit (car une fois récupéré sur le plugin il le met à jour de suite sur HomeKit)
Cool ! Oui c'est le souci ! Homekit a un délai d'attente du retour d'état qui est inférieur au temps mis par BMW pour valider l'action. Et malheureusement la dessus je ne peux pas faire grand chose. On va regarder avec @NebzHB pour intégrer nativement le plugin à Homebridge. On se tient au jus ! Je laisse le case ouvert en attendant !
mais toi ça fonctionne sans rafraichir ?
Tu peux pas forcer un rafraichissement auto de ton plugin mybmw 20/30 sec après l'action demandée ?
En effet, je vais l'intégrer le refresh auto dans la prochaine version. En attendant, tu peux le faire toi-même. Dans les commandes Verrouiller et Déverrouiller de ton véhicule, tu vas sur configuration (roue crantée à côté de tester), sur l'onglet configuration, tu peux ajouter une action à exécuter après la commande. Choisis l'action rafraichir. Et ca devrait marcher ;) (à vérifier dans les logs que l'action se lance bien) Et ca devrait régler ton pb
pas moyen d'y ajouter un délai ?
Si ! Tu ajoutes au même endroit et juste avant une commande avec un
sleep(20)
Pour un délai de 20s
Non il faut que tu cliques sur le + pour ajouter une seconde ligne. Tu mets le sleep sur la première et le rafraîchir sur la seconde
Je regarde ça demain et je te dis
salut, j'ai l'impression que le rafraichissement du plugin ne fonctionne pas super bien, je sais pas si c'est le cas ou si c'est juste une impression.
Et penses-tu que homekit/homebridge pourrait récupérer l'état du véhicule quand celui-ci est déverrouillé par la clé de manière classique ?
Hello, Il faut bien distinguer 2 choses :
L'info qui est importante est la date de la dernière communication avec le véhicule (tout en bas du widget). Si celle-ci n'a pas bougé entre 2 refresh via cron, c'est que la voiture n'a pas communiqué avec le serveur BMW dans ce laps de temps
Et pour info, le plugin sera automatiquement intégré dans Jeemate dans la prochaine beta du plugin ;) A suivre aussi l'intégration dans Jeedom Connect.
Bonjour, ce n'est pas une "issues" mais je ne sais pas où le mettre autrement.
Est-ce possible de rendre le plugin compatible homebridge ?