Le package Vera vous permet de connecter la box domotique Z-Wave Vera dans Constellation. L’état des différents périphériques est publié en tant que StateObjects et des MessageCallbacks vous permettent de déclencher des scènes ou piloter les équipements.

image

Le code source est disponible sur : https://github.com/myconstellation/constellation-packages/tree/master/Vera

Installation

Depuis le “Online Package Repository” de votre Console Constellation, déployez le package Vera :

image

Une fois le package télécharger votre repository local, sélectionnez la sentinelle sur laquelle déployer le package.

Pour finir, sur la page de Settings, vous devez obligatoirement définir l’adresse IP (ou DNS) de votre Vera :

image

Vous pouvez également déployer ce package manuellement dans la configuration de votre Constellation :

Détails du package

Les Settings

Nom Type Détail Description
VeraHost String Obligatoire L’IP ou le DNS de votre box domotique Vera

Les StateObjects

Vous retrouverez autant de StateObjects que périphérique Z-Wave enregistré sur votre Vera :

Nom Type Description
Vera_<< SerialNumber >> VeraNet.VeraDevice Représente l’état de la Vera (modèle, S/N, version, etc..)
<< Nom de la scène >> VeraNet.Scene Représente l’état d’une scène
<< Nom du device >> VeraNet.TemperatureSensor Représente l’état d’un capteur de température
<< Nom du device >> VeraNet.HumiditySensor Représente l’état d’un capteur d’humidité
<< Nom du device >> VeraNet.WindowCovering Représente l’état d’un volet
<< Nom du device >> VeraNet.DimmableLight Représente l’état d’un Switch Dimmable
<< Nom du device >> VeraNet.Switch Représente l’état d’un Switch
<< Nom du device >> VeraNet.PowerMeter Représente l’état d’un capteur d’énergie
<< Nom du device >> VeraNet.SecuritySensor Représente l’état d’un capteur de sécurité

image

Les MessageCallbacks

Le package expose 3 MessageCallbacks :

Nom Réponse (saga) Description
RunScene Boolean Déclenche une scène sur la Vera
SetDimmableLevel Boolean Définit le niveau (0-100%) d’un device “Dimmable”
SetSwitchState Boolean Définit le statuts (On/Off) d’un device “Switch”
SetWindowCoveringAction Boolean Définit l’ordre (montée, décente ou arrêt) d’un volet (WindowsCovering)

image

Quelques exemples

  • Afficher l’état et contrôler chaque lampe et volet sur un Dashboard HTML
  • Gérer les volets automatiquement en fonction de la luminosité avec un package C#
  • Piloter des lampes Hue en suivant un schéma depuis un interrupteur Fibaro grâce à un package C#
  • Piloter sa domotique Z-Wave depuis un montre Samsung Gear S2
  • Synchroniser la lampe du bureau avec la session Windows
Vera : la domotique Z-Wave dans Constellation
Editer la page sur GitHub
Étiqueté avec :            

Sur le forum :

  1. Il ne manque plus que SetHeatTemperature pour les vannes thermostatiques et thermostats ! J’installe ce week-end :wink: Merci pour tous ces beaux plug-ins

  2. Oui en effet, je n’ai pas implémenté ce type de device ! Le code est sur GitHub n’hésites pas à l’enrichir :slightly_smiling_face:

  3. Salut Sébastien,

    Sauf erreur de ma part il manque aussi les « Light sensor » dans les stateObjects du package.

    Je les ajouterai au GitHub dès que possible :).

  4. Bonjour,

    J’ai installé constellation ce wk afin de l’implémenter dans mon système Graylog-Elasticsearch-kibana. Ce qui devrait me faciliter la vie :slightly_smiling_face:

    Premier test du package Vera et petit souci dès le démarrage. Il check bien mes scène présentent sur ma vera puis crash du package :slightly_frowning_face:

    [Constellation/Vera] 15:22:11 : Critical Error : System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
      at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x0001e] in <9790d962aaad40deb63d33029ba0d2f6>:0 
      at VeraNet.Objects.Devices.SecuritySensor.InitializeProperties (System.Collections.Generic.Dictionary`2[TKey,TValue] values) [0x00027] in <2a0311cea49a47c097e9912bb2b2b860>:0 
      at VeraNet.VeraController.LoadVeraObjects[TObject] (System.Collections.Generic.Dictionary`2[TKey,TValue] jsonValues, System.String jsonKey, System.Collections.ObjectModel.ObservableCollection`1[T] listToLoad, System.Func`2[T,TResult] createObje
    ct) [0x00075] in <2a0311cea49a47c097e9912bb2b2b860>:0 
      at VeraNet.VeraController.RequestVera () [0x000c1] in <2a0311cea49a47c097e9912bb2b2b860>:0 
      at VeraNet.VeraController.WaitForFullRequest () [0x00016] in <2a0311cea49a47c097e9912bb2b2b860>:0 
      at Vera.Program.OnStart () [0x000c2] in <fb722b0f7a16445b9020e82276e597ba>:0 
      at Constellation.Package.PackageHost.Start (System.Type packageType, System.String constellationUri, System.String sentinelName, System.String packageName, System.String accessKey) [0x0028b] in <4950b72700184416909a1567032a3f29>:0
    

    J’imagine qu’il y a un souci avec un de mes périphériques mais de là a faire crasher le package, je pige pas.

    Un petit coup de pouce ?!

    Merci

  5. Hum visiblement un device de type “security sensor” qui ne comporte pas une propriété attendue !

    Le code est sur github : https://github.com/myconstellation/constellation-packages/tree/master/Vera

    Si tu as un Visual Studio, le plus simple serait de lancer le package en mode debug pour voir la propriété qui lui manque pour proposer une solution.

    Autrement si tu m’ouvre temporairement un accès à ta Vera pour tester le package en debug depuis chez moi connecté sur ta vera je pourrais fournir le correctif qui va bien.

    A+

  6. jose says:

    Bonjour,
    nouveau sur le forum et sur constellation, savez-vous s’il est possible de récupérer (en c#) le mode d’une box vera lite (mode : à la maison, la nuit, en voyage…). Je ne trouve pas cette info à travers les StateObjects.
    Merci.

  7. Bonjour José,

    Écrite en 2012, ma libraire VeraNet ne supportait pas (encore) le “House Mode” (à l’époque en version 1.5 cette fonctionnalité n’existait pas).

    J’ai donc regardé ce WE les docs et retrouvé toutes les informations sur cette page : http://wiki.micasaverde.com/index.php/House_Modes#Get_.E2.80.9CMode.E2.80.9D_variable_value

    En fait le mode est contenu dans le JSON de résultant du “lu_sdata” qu’utilise la librairie pour récupérer les infos de la Vera. J’ai donc pu en 2 lignes de code le rajouter au modèle.

    Seulement en cas de changement de mode, la requête partielle (full=0) en long-pooling utilisée par ma librairie ne comporte pas cette information ! Autrement dit impossible de savoir via le système actuel si le mode change !

    J’ai donc creusé le fonctionnement de l’interface UI7. A la fin de chaque requête de status chargée également en “long-pooling”, elle demande la variable “mode_change_time” pour connaitre l’heure du prochain changement de mode (30 secondes de délai avant un armement).

    Dans le cas de ma lib, j’ai gardé ce même principe en interrogeant directement la variable “mode” après chaque requête “sdata”. En cas de changement de mode, un événement nommé HouseModeChanged est levé. Bien entendu une méthode “SetHouseMode” permet de changer le mode courant de la Vera.

    De ce fait j’ai mis à jour le package Vera en version 1.7 pour exploiter cette nouvelle lib.

    A l’heure où j’écris ces lignes le serveur de build a déjà publié la mise à jour sur le store, il suiffit de mettre à jour le package depuis la console Constellation :
    image

    Dans le StateObject représentant la Vera, vous trouverez une nouvelle propriété “HouseMode” représentant le mode courant :
    image

    Les modes sont décrits dans Constellation : 0-None, 1-Home, 2-Away, etc…
    image

    Aussi un nouveau MessageCallback nommé “SetHouseMode” permet de changer de mode vos applicatifs connectés à votre Constellation :

    Bien à vous,

    Sébastien

  8. jose says:

    Bonjour Sébastien,
    merci beaucoup pour cette réponse et cette adaptation du code très rapides.
    Bonne journée.

  9. jose says:

    Bonjour,
    afin de commander des luminaires, je dispose de modules Fibaro (prise commutateur Z-wave) gérés par la box Véra. Grace au package Véra pour Constellation, les luminaires sont commandés via une application Cordova en consommant le StateObject de type VeraNet.Switch. Cependant, ce SO ne permet pas de savoir si l’objet est réellement connecté. Par exemple, si le module Fibaro est débranché, le SO renvoi le dernier status connu. Dans l’application propriétaire de Véra, le module apparait aussi connecté, mais une alarme indique que le module est déconnecté. Existe-t-il un moyen via constellation de récupérer cette information de déconnexion ? Peut-on récupérer les alarmes de Véra par exemple ?
    Merci.

Continuez la discussion sur le forum Constellation

Participants