Plugin Somfy Home Alarm - script à convertir en plugin

Salut à tous, j’ai un système d’alarme directement relié à ma box Tahoma.

Pas de problème pour activer les différents modes (nuit/total/désactivé) : opération réalisée par le biais de scénarios Tahoma puis création de virtuels Jeedom.

Cependant, j’aimerai upgrader mon système d’alarme sans passer par la case Somfy bien trop onéreuse à mon gout.

L’idée serai de partir sur des capteurs et détecteurs Xiaomi et création de scénarii permettant de faire sonner l’arme.
Mais impossible de faire sonner l’alarme via Jeedom ou application officielle Tahoma.

Le mode intrusion est uniquement disponible via l’application Somfy Protect.

Des possesseurs de Tahoma + Somfy Protect ont-ils une parade ?

Bonjour,
As tu essayé la commande Panic?

Le mode intrusion n’est pas dispo dans Jeedom et pas possible de créer un scénario avec déclenchement du mode intrusion via le soft Somfy Tahoma

Je me réponds à moi même.
J’ai trouvé une solution via le Plugin Somfy Home Alarme, un grand merci au créateur !

1 « J'aime »

Bonjour à tous,
depuis la mise a jour du 10 juillet, mon plugin Somfy Home Alarm ne fonctionne plus. Je ne peux plus faire le refresh:

[2021-07-12 06:08:03.528][ERROR] : Error in the websocket connection: Connection to remote host was lost.
[2021-07-12 06:08:03.530][ERROR] : error from callback <bound method SomfyWebsocketClient._on_close of <somfy.client.SomfyWebsocketClient object at 0x75f70d10>>: _on_close() takes 2 positional arguments but 4 were given

Bonjour,

la beta est entrée dans une nouvelle phase de développement avec pas mal de changements, en partie décrits ici.

Pour des bugs spécifiques à la beta, merci de les reporter dans le post pour la beta, ou de créer un nouveau post avec le tag #plugin-somfyhomealarm. Ce sera plus simple à suivre et mieux organiser que de tout reporter ici.

Pour ton problème @yozart, je regarde dans le journée, cela dit ça ne devrait pas gêner le refresh des infos. C’est une erreur qui apparaît lorsque l’application perd la connexion à Somfy. Peux-tu développer un peu plus ce que tu faisais avant que tu ne peux plus faire maintenant (dans le post dédié à la beta ou un nouveau post stp :relaxed:).

Salut, je suis intéressé pour suivre les développement et éventuellement les testés mais je ne parviens pas à voir la page de ton lien, elle semble privé?
Merci pour le dévellopement en tout cas, ça semble prometteur!

Je confirme, lien inaccessible. je crée un nouveau post : Version Beta - retours

Bonjour, j’ai effectué la mise à jour de la béta. Tous mes équipements sont reconnus sur jeedom et même l’alarme de mes parents que je pilote via l’application somfy !
J’ai une question : est ce possible de récupérer l’état des ouvertures/ fermetures des intellitags? Actuellement j’ai des détecteurs d’ouvertures xiaomi sur les portes et fenêtres, cela me permettrait de les enlever.
Est ce possible ou c’est trop compliqué a faire?
Merci d’avance de votre réponse et merci pour votre travail Liniaal.

Bonjour @Fafa81, malheureusement pas possible, Somfy ne retourne pas l’info… De même pour les détecteurs de mouvements, pas d’info renvoyées par Somfy. C’est un peu dommage, la seule info, c’est l’état de l’alarme :expressionless:

1 « J'aime »

ah mince, pas grave merci quand même du retour. Cela, ne m’étonne pas de somfy. En tout cas super plugin merci Liniaal

Bonjour, j’utilise ce plugin depuis quelques temps et il est super. Je base la plupart de mes senarios sur le status de l’alarme.
Merci beaucoup.

J’ai remarqué aujourd’hui que lorsque j’utilise le badge pour déverrouiller, le status de l’alarme ne se met pas à jour, du moins pas en temps réel. Je ne sais pas au bout de combien de temps cela se met à jour mais c’est au delà de la minute sinon je ne l’aurais pas remarqué, la lumière aurait dû s’allumer).

Il faudra que je confirme avec d’autres tests, jusque là j’utilise principalement l’application et je n’ai jamais eu ce cas. Ce que je vois sur jeedom c’est qu’avec l’application le status change instantanément alors qu’avec le badge il faut que je force un refresh.

Est ce que vous aussi vous l’avez constaté ?

1 « J'aime »

Bonjour @Liniaal

En fait le probleme n’est pas uniquement le badge, toute action qui n’est pas faite via l’application utilisant les mêmes identifiants que le plugin n’est pas rafraichie : badges, boitier a code, application des autres membres de la famille.

Pour palier à ça j’ai tenté de faire un scénario toutes les minutes qui lance la fonction « refresh » de l’alarme. Ca fonctionne, pendant quelques heures, ensuite le demon ne fonctionne plus. J’ai mis du temps à comprendre (merci les logs en debug), Jeedom n’arrivait plus a ouvrir la session avec somfy :

[ERROR] : WebSocket connection Error(missing_token) Missing access token parameter.

[DEBUG] : Réponse création nouveau token: {"message":"error.too_many_failed_attempts","data":[],"uid":"61b7301854xxx"}
[DEBUG] : Nouveau token: error.too_many_failed_attempts

Apres plusieurs tentatives, pour refaire marcher le démon j’ai finalement dû changer mon mot de passe via l’application.

Retour a la case départ, mes scénarios ne s’enclenchent que si j’utilise l’alarme depuis mon application.
L’application est bien a jour sur mon smartphone si un autre équipement fait une action, pas Jeedom. Le refresh existant ouvre et ferme une session avec les serveurs Somfy a chaque utilisation, si on le fait trop souvent ça fini par verrouiller le compte.

Je me demande si une fonction « refresh » modifiée pourrait résoudre le soucis de lock de compte. En gardant le socket ouvert pendant par exemple 1h (ou plus) pour ne pas faire trop de tentatives de connexions mais qui permettrait de garder le refresh (via un get ou equivalent?) même peut être plus souvent que 1 min. Mes compétences sont malheureusement trop limitées dans ce domaine pour espérer le faire moi même.

Toute aide serait la bienvenue
Merci

Bon j’ai du mal a comprendre mais apres une réinstall totale forcée de Jeedom (avec le backup du jour) je n’ai plus de problème de mise a jour du plugin que ce soit avec un badge ou une appli qui utilise un compte différent. Je ne sais pas l’expliquer mais ça marche, a voir ce que ça donne dans le temps.

Édit :

Je continue mon monologue.

En fait je croyais que c’était résolu. En réalité, je ne sais pas pourquoi ça a marché un moment donné lors de tests mais le plugin ne se met pas à jour à partir du moment je ne suis pas sur mon application.

J’imagine que pour résoudre le problème le plus simple pour le moment serait de faire un widget accessible depuis l’extérieur via n’importe lequel de nos smartphones (a bien sécuriser…) et utiliser ce widget plutôt que l’application Somfy. Les badges ne seraient plus vraiment utile dans ce cas-là.

Si quelqu’un a une autre idée ça m’intéresse.
Entre les pb de cloud Somfy (« problème de communication avec votre équipement ») et le rafraîchissement aléatoire du plugin dans Jeedom l’intérêt de l’installation diminue fortement…

Bonjour à tous,

J’utilise le plugin depuis peu et je suis dans l’impasse sur un scenario.

La commande [alarme] id62 ne me retourne l’information « 1 » que sur l’alarme silencieuse.

Avez vous ce problème ?

Merci

Bonjour Leeroy82,

Je suis exactement dans le même cas que toi.
J’ai ouvert un autre post mais pas de réponse (Somfy Home Alarme detection du changement d'état d'alarme décallé).
J’ai remarqué que de manière aléatoire le status de l’alarme est instantanémeent détecté mais que parfois il ne l’est pas.
C’est lors de l’execution du cron30 et de la mise à jour du status que mes scénarios peuvent alors se déclencher.
Un de mes scénarios est d’allumer une lumière lorsque j’arrive à la maison (désactivation alarme), et la voir s’allumer 20 minutes après mon arrivé et quelque peu déroutant…

J’ai donc tenté plusieurs choses comme toi. J’ai modifié le plugin afin de pouvoir activer un CRON15 pensant que c’était une sorte de connexion qui se perdait avec le temps expliquant le caractère aléatoire du comportement.
Mais j’ai fini par comprendre que ça n’y changeait rien.
En effet, parfois même 2 mn après un refresh, l’informaiton de changement d’état n’est pas détecté par le plugin.
Pour moi c’est comme si par moment l’information n’arrivait pas à JEEDOM.
Le faite de faire un refresh n’est donc qu’un palliatif. puisque le refresh permet de faire comprendre à JEEDOM que le status à changé et donc d’exécuter nos scénarios.

J’ai donc mis en place un dernier palliatif qui à lui aussi ses liimtes.
J’ai mis en place le plugin blea pour detecter la présence de mon badge. lorsque le badge passe en présence, je lance alors le refresh pour raccourcir la détection du status de l’alarme dans le cas ou l’information n’arrive pas en temps réel.
Le problème c’est que BLEA déconseil les refresh en dessous de 20s. Donc potentiellement ma lumière peut mettre 20s à s’allumer. Je suis plus efficace avec l’interrupteur…

Il serait super que @Liniaal puisse essayer de comprendre pourquoi le changement d’état n’est pas systématiquement détecté par le plugin.

Je viens de continuer d’améliorer mon palliatif car il avait encore des limites.
En effet, si mon badge somfy était détecté avant que mon alarme ne soit désactivé, le refresh du status de l’alarme ne permettait pas d’activer mon scénario et donc d’alumer la lumière.

Je viens donc de créer un scénario un peu plus complexe qui va être capable de tester plusieurs voir l’état de la lampe et de l’alarme afin de faire le refresh du statut au bon moment et si nécessaire. Ainsi j’évite de faire trop des refresh inutile et bloquer mon compte somfy et surtout, je suis en mesure de lancer le refresh juste après la désactivation de l’alarme !

Affaire à suivre.
Si ça intéresse du monde, je pourrais vous détailler mon scénario.

Merci pour ton retour @parko1402 Je me sens un peu moins seul.
Pour palier au problème dans 90% des cas je n’utilise plus l’application somfy ou mon badge mais le dashbord Jeedom avec le compte associé de ma compagne.

Pour résumer, en considérant que le cloud somfy fonctionne - ce qui n’est malheureusement pas toujours le cas :

  • si elle utilise son app ou son badge Jeedom se met à jour
  • J’utilise Jeedom donc son compte donc tout est à jour (via l’interface web sur mon mobile - avec un vpn si je capte pas le wifi car mon Jeedom n’est pas accessible en publique, d’ailleurs je recommande wireguard c’est vraiment simple surtout avec une freebox delta)

Dans le cas ou le cloud Somfy plante, je ne me prends plus la tête, j’utilise mon badge et j’attends que Somfy daigne résoudre leur problème. Dans ce cas, l’alarme en local prend en compte le bon status mais je n’ai aucun retour ni dans l’application Somfy, ni dans Jeedom.

Pas parfait mais pour l’instant ça me suffit.

Bonjour,
J’ai les badges détectés par l’intermédiaire de BLEA.
Si ça peut aider certains, pour connaitre l’état de l’alarme dans le Cloud, j’ai rajouté ce scénario qui fonctionne parfaitement avec comme déclencheurs les états des différents badges.


Bonne journée

En fait je suis intéressé par ton scénario :slight_smile: