Aller au contenu

Virtual Device Alarme Somfy


fdp2

Messages recommandés

Ce module virtuel permet de contrôler une alarme Somfy Protexiom via son interface web.

A ce jour la solution permet de :

  • Connaître l'état de l'alarme (etat des zones, et alerte)

  • Récupérer les éventuels défaut de l'alarme (défaut pile, liaison radio, porte ouverte, sabotage)

  • Piloter l'alarme (choix des zones à  activer ou arrêt total.

Protexiom 001

 

L'alarme protexiom permettant de contrôler des volet roulants RTS, un second device est livré, afin de permettre le control de vos volets somfy (attention, il s'agit d'une commande centralisée. N'ayant pas de volets somfy, je l'utilise pour piloter mon store banne RTS).

 

Protexiom 002

 
Sur le même principe que les volets roulants, un troisième device permet de piloter un lumière RTS via la centrale d'alarme SOMFY.
 

Ce device virtuel est plug&play : Il créera lors de son installation les variables globales nécessaires à  son fonctionnement. (grâce à  un bout de code très très largement inspiré d'un dev de @Krikroff que je remercie au passage:-)

Les variables globales créées peuvent êtres utilisée dans des scènes afin d'agir sur les événements de l'alarme.

 

Attention : Le device virtuel n'a pas été adapté pour la V4 du firmware HC2. Si vous être en V4, vous devrez créer manuellement les variables.

 

Les limites de la solution

(On commence par les choses qui fachent :D )

 

Versions d'alarme compatible

 

Pour une même version de l'alarme (Protexiom 600), il existe différentes versions de materiel et de firmware. Somfy ne permet pas de faire des mises à  jour de firmware.

Somfy ne propose pas d'API, le device virtuel execute donc les pages webs comme on le ferait via un browser. Selon les versions de firmware, certaines pages sont différentes

La solution supporte actuellement 4 version différente, aussi bien dans la gamme protexiom que protexial. Si la votre n'est pas compatible, tenez moi informé afin de voir s'il est possible de l'intégrer.

Session unique

 

L'ouverture d'une session sur l'alarme est lente, et log une entrée dans son journal d’événement. Afin de ne pas surcharger l'alarme, et d'avoir un plugin réactif, la session est maintenue ouverte par le plugin. L'alarme ne permet qu'une seule session active à  la fois. Cela signifie que lorsque le device virtuel est connecté, vous ne pouvez pas vous connecter à  l'alarme (par exemple pour consulter sont journal d’événement ou la paramétrer.

Pour contourner ce problème, ou bouton VD OFF est présent sur le device virtuel. Lorsqu'il est activé, le device virtuel interromp sa connexion avec l'alarme et libère la session. Il n'est donc plus opérationel, mais vous laisse la possibilité de vous connecter à  l'alarme. Dans ces conditions, le module volets roulant est également inopérant. L'appuis sur VD ON permet de relancer la connexion

Protexiom 003

 

Timout session

 

La session de l'alarme a une durée de vie limitée. Même avec des interrogation régulière, la session est interrompue au bout du timout.

L'interface d'amin de votre alarme permet de régler ce timeout. Je vous conseil de le régler au maximum (soit 99 minutes). Lors du timout, le device virtuel gérera automatiquement la reconnexion.

Ce fonctionnement sera donc totalement transparent, si ce n'est l’apparition des logs de connexion dans le journal d’événement de l'alarme.

 

Stabilité du serveur web de l'alarme

 

Le serveur web de l'alarme somfy n'est pas conçu pour être utilisé de cette façon. Il est donc parfois instable.

  • Il arrive que l'alarme génère un fichier XML vide pour le retour d'état. Dans ce cas, le module virtuel ferme puis ouvre une nouvelle session. Cela suffit à  corriger l'erreur de façon automatique

  • Il arrive que le serveur web de l'alarme ne réponde plus correcte. Dans ce cas la seule solution est de débrancher la centrale téléphonique de l'alarme pour réinitialiser le serveur WEB. Cette action n'a pas de conséquence car l'alarme fonctionne sur pile. Elle est toujours opérationnelle durant le reboot, seul la fonction « serveur web » utilise l'alimentation secteur. Le device virtuel contient une méthode reboot (décrite plus loin) qui permet de prendre en charge le « reboot » lorsque l'alarme ne répond pas.

Malgré ces défaut, j'ai tester le module virtuel avec une interrogation de l'alarme toutes les 3 secondes pendant plusieurs jours, cela fonctionne parfaitement et à  l'usage ces défaut restent imperceptibles.

 

La disponibilité du développeur

 

Comme la pluspart d'entre vous, je suis passionné par la domotique, j'aimerai avoir beaucoup plus de temps a y consacré. Je souhaite que ce developpement puisse profité au plus grand nombre. En cas de difficulté, j'essayerai de vous aider du mieux possible, mais ma productivité, et le temps que j'arrive à  consacrer à  mes propres projets... il va falloir vous armer de beaucoup de patience...

 

Installation / Paramétrage

 

Paramétrage de l'alarme (Timeout)

 

Il est conseillé d'augmenter le timout de l'alarme a sa valeur maximum.

Connecter vous à  l'alarme en mode Administrateur puis dans les réglages de l'interface, régler le délais d'expiration de la session.

 

Protexiom 005

 
 
Installation / paramétrage du device virtuel
 
 

Importer le device virtuel, puis dans l'onglet avancé indiquez l'adresse IP et le port de l'alarme sur le réseau local.

Protexiom 007

 

Il est ensuite nécessaire de paramétrer les variables suivantes dans le main loop :

  -- Password for Somfy user
  SomfyPwd = "1234"
  • SomfyPwd = Le mot de passe utilisateur (important, pas le mot de passe administrateur ou installateur)

  -- Authentication Card
  SomfyAuthCard = {}
  SomfyAuthCard.A1 = "1234"; SomfyAuthCard.A2 = "1234"; SomfyAuthCard.A3 = "1234"; SomfyAuthCard.A4 = "1234"; SomfyAuthCard.A5 = "1234"
  SomfyAuthCard.B1 = "1234"; SomfyAuthCard.B2 = "1234"; SomfyAuthCard.B3 = "1234"; SomfyAuthCard.B4 = "1234"; SomfyAuthCard.B5 = "1234"
  SomfyAuthCard.C1 = "1234"; SomfyAuthCard.C2 = "1234"; SomfyAuthCard.C3 = "1234"; SomfyAuthCard.C4 = "1234"; SomfyAuthCard.C5 = "1234"
  SomfyAuthCard.D1 = "1234"; SomfyAuthCard.D2 = "1234"; SomfyAuthCard.D3 = "1234"; SomfyAuthCard.D4 = "1234"; SomfyAuthCard.D5 = "1234"
  SomfyAuthCard.E1 = "1234"; SomfyAuthCard.E2 = "1234"; SomfyAuthCard.E3 = "1234"; SomfyAuthCard.E4 = "1234"; SomfyAuthCard.E5 = "1234"
  SomfyAuthCard.F1 = "1234"; SomfyAuthCard.F2 = "1234"; SomfyAuthCard.F3 = "1234"; SomfyAuthCard.F4 = "1234"; SomfyAuthCard.F5 = "1234"
  • Renseigner dans chaque variable A1, A2... le code correspondant de cotre carte d'authentification.

  -- Polling ninterval (in sec)
  SomfyPollingTime = 0
  • Renseigner dans SomfyPolling time la durée en seconde que vous souhaitez entre 2 interrogation de l'état de l'alarme.

  -- HC2  admin credential for variable creation
  Hc2Login = "admin"
  Hc2Passwd = "XXXXXXXX"
  • Renseigner ici les identifiants admin de votre HC2. Il sont necessaire à  la création des variables globales au premier lancement.

  -- IconID
  IconAlarmTriggered = 1031
  IconAlarmStoped = 1032
  IconAlarmOn = 1033
  • Renseigner ici les ID des icones que vous souhaitez utiliser.

 

Une fois le paramétrage terminé, il suffit de sauvegarder, puis d'aller consulter le debug du mail loop.

Si tout s'est bien passé, la log devrait ressembler à  ça :

Protexiom 006

 

 

Si votre HC2 est dans une version > 3.590, il est nécessaire de créer manuellement les variables suivantes dans le panneau de variable:

  • ProtexiomVDOn = "OFF"
  • ProtexiomOnOff = "000"
  • ProtexiomTriggered = "0"
  • ProtexiomDefault = "0000"
  • ProtexiomToken = ""
  • ProtexiomHwVers = ""

 

A ce stade, le module est prêt à  fonctionner. Le warning indique que le device virtuel est arreté. Il suffit désormais d'appuer sur le bouton VD ON pour que le module initialise la connexion avec l'alarme.

La connexion mettra quelques dizaines de secondes à  s'établir (+ le délais de polling) puis le message suivant indique une connexion correcte.

Protexiom 008

 

Importer également le module volet roulants si vous souhaitez l'utiliser.

Sur ce module, on renseigne également l'adresse IP et le port de l'alarme. Par contre pas de paramètres à  modifier dans le main loop.

 

Redemarrage du serveur web en cas d'instabilité

 

Sur des alarme récentes, il est possible que le serveur web soit plus stable et ne nécessite pas de redémarrage. Dans ce cas, rien de plus à  faire.

Si le device virtuel ne se met plus à  jour et que des trace de reboot apparaissent dans son mail loop, il sera alors nécessaire :

  • De contrôler l'alimentation de la centrale téléphonique via un wall plug, micromodule switch ou autre solution

  • Compléter dans le main loop la fonction reboot (ligne 879) afin quelle désactive, puis réactive l'alimentation de la centrale.

 

Utilisation dans des scenes

Un certain nombre de variables sont créées par le module, afin de gérer la session, et stocker l'état de l'alarme.

Les variables suivantes sont utilisable afin de déclencher des scènes sur changement d'état de l'alarme :

ProtexiomAlarmOnOff Les 3 digits représentent la valeur des trois zones :

  • 000 = Alarme désactivée

  • 100 = Zone A activée

  • 111 = Zones ABC activées

  • …

ProtexiomAlarmTriggered

  • OK = Pas d'alarme

  • NOK_INT = Alarme intrusion

  • D'autres valeurs sont possible par exemple si vous avez des détecteurs d'incendie.

ProtexiomDefault : Chaque digit représente un défaut. 0 = pas de défaut, 1 = un défaut. Les digits correspondent dans l'ordre à  :

  • Piles faibles

  • Porte ouverte

  • Sabotage (autoprotection des capteurs)

  • Problème de communication avec un capteur

Troubleshootings :

 

Si le device virtuel ne fonctionne pas, et que vous obteniez dans la log du main loop l'erreur ci_dessous (avec hardware version <> 1, 2, 3, ou 4)

 

Screen Shot 02-25-15 at 05.47 AM.PNG

 

C'est probablement que vous avez des valeurs éronnés dans certaines variables.

Utilisez la procédure décrite ici pour rétablir la situation.

 

 

  • Upvote 8
Lien vers le commentaire
Partager sur d’autres sites

Edit du 12/03/2015 :

Ayant vendu ma fibaro HC2, je ne pourrais plus maintenir / faire évoluer de device virtuel.

A Ce jour il est stable en V3.X. Il est également stable en V4.35, à  condition que les variables aient été convenablement créées manuellement.

Si dans le future un développeur souhaite reprendre le support, je suis pret à  lui transférer toutes les informations necessaire

 

Version 1.0.0 :

ProtexiomControler.zip

 

Version 1.1.2

ProtexiomControlerV1.1.2.zip

  • Nouvelle gestion de la version HW (parametres centralisé + log d'erreur)
  • Ajout d'une 4eme version d'alarme (Merci Tanguyj)
  • meilleur gestion des erreur (retour des message somfy)
  • Ajout d'une fonction d'effacement des défauts
  • Ajout etat du signal GSM et camera (sans variable globale pour l'instant)
  • Renommage des variables globales ci-dessous pour compatibilité avec création manuelle V4
    •       ProtexiomAlarmOnOff     =>  ProtexiomOnOff
    •       ProtexiomAlarmTriggered =>  ProtexiomTriggered

      ATTENTION : Ceux qui utilisaient déja le module devront remplacer les variables si elles sont utilisées dans des scènes.
      Ceux qui sont en V4 devront égallement les recréer manuellement.

 

Version 1.1.4

ProtexiomControlerV1.1.4.zip

  • Correction URL pour les HwVersion 2 et 3
  • Correction syntaxe lua non supportée en LU 5.2
  • Correction de bug mineurs

 

 

Et comme c'est la tendance chez Fibaro de faire réver les gens longtemps à  l'avance, sur des evolutions qui arriveront peut être dans tres tres longtemps... je vais me risquer à  une petite roadmap! ;-)

 

  • Création d'un plugin ? (Ou là , y a un peu de boulot...)
  • Récupération du journal des evennements protexiom
  • Récupération de l'état des capteurs
    • Possibilité de connaitre en temps réel l'état des capteurs d'ouverture de porte
    • Pour les autres capteur, uniquement l'état des piles, et s'ils ont déclenché l'alarme.
  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

@Fredo, oui, c'est vraiment dommage. La grande question c'est Est-ce qu'il y a autant de version que d'alarme sur le marché, ou est-ce que cette solution couvre une grosse partie du parc? Absolument aucune idée.

 

@Carfnann pourra nous apporter une partie de la réponse ^_^

Lien vers le commentaire
Partager sur d’autres sites

Création du module avec succès partiel...

 

je précise que je suis en beta 4.017 :)

 

les variables n'ont pas été crée donc je les ai créé à  la main, mais 2 variables sont trop longues.

[DEBUG] 11:14:45: Info: SomfyProtexiom succesfully loaded
[DEBUG] 11:14:45: Error: Unable to create variable ProtexiomAlarmOnOff
[DEBUG] 11:14:45: Error: Unable to create variable ProtexiomAlarmTriggered
[DEBUG] 11:14:45: Info: Variables check finished
[DEBUG] 11:14:45: Info: VirtualAlarm succesfully loaded

 

 

je vais vois pour retoucher le code pour reduire la taille.

tu n'as pas eu de soucis?

Lien vers le commentaire
Partager sur d’autres sites

Tu veux dire que le nom des variables est trop long ? Pas eu de soucis, mais je suis toujours en 3.590... Un peux frilleux avec les beta béta.

 

Aucune variable ne s'est créée chez toi, ou uniquement les 2 trop longue ?

 

Les variables concernées sont bien les 2 suivantes ?

  • ProtexiomAlarmOnOff
  • ProtexiomAlarmTriggered

Je peux retoucher aussi le code adin de mettre à  jour le device virtuel. Attention pour tes tests : Ces vraiables sont aussi utilisée dans les boutons (pour mise à  jour immédiate des status).

 

Concentre tes tests sur le main loop. Si la connexion et la remontée des status fonctionne, c'est tout bon. Le reste, c'est du nougat. ;)

Lien vers le commentaire
Partager sur d’autres sites

j'ai donc crée les variables manuellement.

il y a 2 variables trop longues : 

ProtexiomAlarmOnOff       =>  ProtexiomAlarmOnOf  
ProtexiomAlarmTriggered   =>  ProtexiomAlarmTrig
 
j'ai donc modifié tous les bout de codes pour les modifier.
Tout fonctionne au poil!
je fais plus de test ce WE
 
 
je te propose déjà  en tant que membre du mois, car (pour avoir fait pas mal de recherche) il y a un gros besoin autour des alarmes Somfy!
 
 
Super boulot, ma femme est déjà  impressionné et contente!  :lol:
 
:60:  :60:  :60:  :60:  :60:  :60:  :60:
Lien vers le commentaire
Partager sur d’autres sites

@Carfman,

 

Excellente nouvelle! content que cela fonctionne et en plus sur une protexial! Tiens moi au courant de tes tests, je modifierais mes variables pour les rendre compatible, et je publirai une nouvelle version du plugin.

 

Je te remercie pour ton enthousiasme, et j'espère effectivement que cette solution rendra service à  du monde.

 

J'ai travaillé sur cette solution avec mon frère, pour VERA initialement, mais j'ai pris le virage fibaro! :60:

Mon frère a créé un plugin VERA, mis à  dispo de la communauté, mais qui ne sera plus maintenu puisqu'il switch sur jeedom... Peut être un plugin Jeedom à  venir! :rolleyes:

Lien vers le commentaire
Partager sur d’autres sites

Excellent, merci beaucoup... Jusqu'à  présent, j'utilisais un script déporté sur un raspberry ...

 

J'ai une protexial de moins d'un an, voici les info pour un 4ème HwVersion: 

 

LoginUrl = "/fr/login.htm"

AuthPattern = "<b>(..)</b>"

WelcomeUrl ="/fr/welcome.htm"

LoginErrorUrl = "/fr/error.htm"

ActionsParam.Url = "/fr/u_pilotage.htm"

request_body = "login=u&password="..self.UserPwd.."&key="..self.AuthCard[AuthKey].."&btn_login=Connexion"

LogoutUrl = "/logout.htm"
Lien vers le commentaire
Partager sur d’autres sites

Merci @tanguyj! Avec un travail mâché comme ça, je vais integrer ta version.

As tu déjàtesté le plugin avec ces valeurs?

Ton alarme dispose-t elle d'une interface mobile? En dehors de la HwVersion 1 toute en disposent.

J'ai essayé de privilégier l'accès via l'interface mobile afin que la solution soit le plus light possible.

Tes url ressemble plutôt àcelle de l'interface desktop. Tu vérifier?

Envoyé de mon SM-G900F en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Yes, parfaitement fonctionnel ... merci encore ! :60:

Aucune idée pour l'interface via mobile : j'ai testé les urls en ajoutant le m_ ou depuis un smartphone, mais pas de version mobile pour l'instant ...  une idée pour la trouver ?

 

J'ai poussé l'intégration de la protexial avec deux modules somfy reliés à  l'IPBX (en modifiant la sortie en libre de potentiel of course ..):

* Volet down : mise en route de l'alarme, envoi des notifs sur nos mobiles, ferme les volets accessibles totalement, ceux non accessibles partiellement en fonction de la luminosité

* Volet up : arrêt alarme, envoi des notifs sur nos mobiles, ouvre les volets en fonction de la luminosité

* Eclairage on : intrusion, actions immédiates associées :)

 

PS : Je sais que c'est pas encore noà«l, mais je suis preneur d'une intégration de la liste des capteurs, (mes compétences sont largement dépassées par les tiennes .. )

 

 

 

post-327-0-12670400-1410687051_thumb.jpg

Lien vers le commentaire
Partager sur d’autres sites

@Trankilze4

Tu dois autoriser les utilisateurs concernés au nouveau device dans le panneau des utilisateurs.

Ensuite tout fonctionne parfaitement sous Android. Sous iphone j'ai constaté que les device virtuels n'apparaissent pas s'ils sont associés àun piece qui ne contient pas un vrai device zwave.

Affecte l'alarme a une pièce contenent des device zwave pour tester

Envoyé de mon SM-G900F en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

@Tanguyj,

 

Je n'ai pas actuellement acces à  une version avec interface mobile, mais de mémoire, il y a un lien sur la page d'accueil.

Fait egallement l'essai d'accéder via ton mobile, tu pourrais petre redirigé automatiquement.

Si pas d'interface mobile, j'utiliserai l'interface desktop, mais ça me parrait etonnant qu'elle ait été retirée sur une version récente...

 

Ton intégration "materielle" est interessante. J'y ai songé durant une période, mais je ne savais pas comment modifier la sortie en "libre de potentielle". Comment as-tu fait ? (je suis plus à  l'aise avec un clavier qu'avec un fer à  souder... :D

Ta solution te permet egallement d'envisager une intégration avec le panneau d'alarme (Armer ton device en même temps que l'alarme, desactiver l'alarme si tu desarme via le panneau d'alarme, vision du déclenchement dans l'alarme pannel...

 

Je note ta demande concernant l'état des capteurs. Je ne fais aucune promesse sur le délais, mais c'est toujours plus motivant de travailler si l'on sait que cela servira à  d'autres. D'ans l'absolut le plus compliqué est fait avec la gestion de l'authentification. Récupérer le status des devices ne doit pas être si compliqué que ça, mais il faudrait créer des device "enfant" comme pour les volets.

 

J'ai cette évolution dans un coin de la tête, mais elle ne sera pas prioritaire. D'abord parce que j'ai quelques projets perso avant l'hiver, mais surtout parce que j'aimerai tenter la création d'un plugin d'abord. Cela eviterai de refaire tous les devs. J'ai peu étudier encore la doc des plugins, mais l'idée serait d'eviter les variagles globales pour dialoguer entre le module alarme, et les "modules fils" et integrer si possible les evennements à  la log d'evnnement, ainsi qu'une intrgation au panneau d'alarme s'il est possible de typer les devices...

La doc des plugin n'est pas encore tres locaces sur ces points (surtout l'intégration aux panneaux existants), et tout ne sera peut être pas possible. Dans tous les cas, j'attendrais une version finale de la V4 car je ne souhaite pas passer une béta sur mon unique BOX.

 

Bref, les encouragements sont importants, les idées ne manquent pas... mais le temps si! Dans tout les cas, les évolutions à  venir seront postées sur ce fonrum... stay tunned... :D

Lien vers le commentaire
Partager sur d’autres sites

@Trankilze4 :

Peux-tu me confirmer quelle est la valeur de ta variable globale ProtexiomHwVersion lorsque ton alarme est connectée ?

Dans l'absolu, le device fonctionne sur 3 versions de protexiom (bientôt 4) mais la version 3 n'a jamais été testée. Je suis dans l'attente d'un retour positif sur cette version.

Lien vers le commentaire
Partager sur d’autres sites

@fdp2: yes, je comprends tout à  fait,  la liste des capteurs attendra .. c'est juste un nice to have :)

 

Version mobile : ko depuis iPhone, et je ne vois pas de lien depuis la page d'accueil ...

version HW : 1060v0.1/2

bootloader : 2929v2.7

firmware 2627v9.5/0

 

Pour l'intégration matérielle : tu as deviné, il faut dessouder les 2 relais sur la platine, car le 220 est amené directement sur la sortie du relais et impossible de couper la piste sans endommager le reste. Sinon, tu peux toujours utiliser 2 relais 220 AC en sortie (entre 15 et 20 € pièce, mais ca fait double relais, double chauffe ...)

Lien vers le commentaire
Partager sur d’autres sites

@Trankilze4 :

Peux-tu me confirmer quelle est la valeur de ta variable globale ProtexiomHwVersion lorsque ton alarme est connectée ?

Dans l'absolu, le device fonctionne sur 3 versions de protexiom (bientôt 4) mais la version 3 n'a jamais été testée. Je suis dans l'attente d'un retour positif sur cette version.

 

@fdp2

la valeur est : 2

Lien vers le commentaire
Partager sur d’autres sites

@tanguyj,

 

Voici un screenshot avec le lien (pas tres visible) en bas à  gauche.

Peut-être que le site mobile a été retiré au profit de leurs application. Dans ce cas, j'utiliserai les URL de la version desktop, cela ne fait de réelle différence.

 

somfy mobile

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...