Aller au contenu

HomeMode Manager (type Geofence)


Messages recommandés

Posté(e) (modifié)

HomeMode Manager

(type GeoFence)
 

image.thumb.png.717de6811dcdd1e373c503c9ea147525.png

 

 

Préambule :

 

Si comme moi vous recherchez une solution pour savoir si des membres de votre habitation sont présents ou s'ils sont tous partis afin de exécuter des scénarios, comme par exemple :

  • Lorsqu'un membres de la famille arrive à la maison :
    • Désactiver les caméras de votre domicile afin de préserver l'intimité des membres de la famille
    • Suggérer l'arrêt de l'alarme (par notification push action)
    • Allumer les lumières extérieurs la nuit
    • Ouvrir les volets ou le portail
    • ...
  • Lorsque tous les membres de la famille ont quitté la maison :
    • Activer les caméras de votre domicile
    • Vérifier que l'alarme à bien été activée sinon suggérer la mise en marche de l'alarme (par notification push action)
    • Simuler une présence la nuit (par suggestion push ou automatique)
    • Eteindre toutes les lumières
    • Fermer les volets ou le portail lorsque vous rentrez chez vous
    • ...

Je sais c'est une fonctionnalité de l'Application Fibaro, mais il semblerait qu'elle fonctionne de façon aléatoire et qu'elle consomme un max de la batterie.

 

J'ai donc fait quelques recherches, notamment sur le Forum officiel de Fibaro, mais les solutions (App pour Smartphone de type GeoFence avec utilisation de IFTT, Détection de la connexion sur le réseau wifi, ...) proposées me donnaient pas vraiment satisfaction. J'ai donc cherché une solution native sur les iPhones (oui j'avoue, nous mangeons des pommes dans notre petite famille). ;)

 

L'iPhone permet au travers de l'application Maison (Home) la possibilité de crée des automatisations quand notamment :

  • Quelqu'un arrive à un lieu (ex. la maison)
  • Quelqu'un quite un lieu (ex. la maison)

Et utiliser ces automatisations pout agir sur les boutons d'un Virtual Device de nos HC2 et donc de modifier un label et/ou une variable globale qui pourront être utilisés dans nos différents scénarios.

 

Attention, il faut évidement au préalable avoir installé et configuré Homebridge pour que vos Virtual Device soient visibles dans l'application Maison.

 

Mais vous pouvez également utiliser ce VD avec toutes autres solutions pour détecter la presence ou absence des membre du domicile comme celles citées précédemment :

  • App Fibaro permettant d'obtenir le localisation et au travers d'une scène d'intercepter cette position
  • App pour Smartphone (iOS ou Androïd) de type GeoFence avec utilisation de IFTT pour dialoguer avec la HC et agir sur le VD
  • Scène de détection de la connexion ou non des smartphones sur le réseau wifi de la maison et agir sur le FD
  • ...)

 

L'intérêt de ce VD est qu'il, est entièrement automatisé. Il suffit de nommer les utilisateurs à suivre dans les labels et le tour est joué. Magique, non ? :74:

 

Le Projet :

 

Création d'un VD permettant de changer le mode soit présence ou absence selon 2 boutons soit pour :

  • Un seul membre du domicile
  • L'ensemble des membres du domicile (tous d'un coup)

Cela peut être notamment utile lorsque par exemple :

  • un téléphone n'a plus de batterie et que tous les membres ont quitté le domicile
  • activation du mode vacance
  • activation de l'alarme
  • ...

 

Les résultats sont sont stocké dans :

  • Les labels correspondant à chacun des membres
  • Une variable globale (option facultative) de votre choix (que j'ai nommée HomeMode) qui va contenir :
    • Par membre sont état :
      • Présent = true  (en valeur booléenne)
      • Absent = false  (en valeur booléenne)
    • Pour l'ensemble des membres du domicile l'état :
  • Présente = true  (en valeur booléenne)
  • Absente = false  (en valeur booléenne)

Nota Les valeurs true et false peuvent être modifiées par autre chose, idem pour le nom de la variable globale HomeMode. Voir point 5 dans la partie Configuration.

 

Vous pouvez donc utiliser pour vos scènes et VD, soit le contenu des labels soit le contenu des entrées dans la variable globale.

 

Pré-requis :

 

Si vous utilisez la localisation avec l'application Maison (Home) :

  1. Utiliser des d'iPhones et activer la localisation
  2. Avoir une AppleTV 4+ ou un iPad (iOS 10+) qui reste à la maison (branché) ou un HomePod pour faire hub HomeKit. (à jour !)
  3. Avoir configuré Homebridge pour que vos Module et Virtual Device soient visible dans l'application Maison de votre iPhone
  4. Configurer les automatisations sur votre iPhone
 
Si vous utilisez une autre solution de localisation :
  • Rien de particulier, si ce n'est de mettre en place cette solution ;)
 

Installation :

  1. Télécharger et installer le Virtual Device ci-dessous (dans sa dernière version)
  2. Télécharger les icônes ci-dessous ou fabrique les votres
  3. Associez les icônes à chacun des boutons du VD en fonction de l'état, ce sera plus jolie ;)

 

Configuration :

 

Du Virtual Device :

 

1) Renseigner dans chacun des boutons vos ID de vos icônes, selon les variables suivante :

  • local Icon_Family_Present = 1235  -- Icon ID when one member of the family is present
  • local Icon_Family_Away    = 1236  -- Icon ID when all members of the family are away

2) Renseigner dans chacun des labels le nom des membres du domicile.

Nota Le premier label et boutons associés correspondent à l'ensemble des membres du domicile et ne doit pas être changé de place.

Ce seront ces noms qui sont utiliser dans la Variable Globale (si vous utilisez l'option)

3) Pouvez changer les emoji des boutons. Mais il est souhaitable de le mettre en cohérence avec ceux des variable Label de configuration (voit point 5) 

4) Vous pouvez ajouter ou supprimer des membres :

  • En cas d'ajouts, il convient de conserver la même structure et :
    • Ajouter un Label et renseigner le nom du membre
    • Ajouter une ligne de 2 bouton immédiatement après la nouvelle ligne Label et :
      • dans chacun des bouton copier le code présent dans une bouton existant (tout les codes de boutons sont identiques)
      • Associer les icônes aux 2 nouveau bouton
  • En cas de suppression, il convient de
    • supprimer les lignes label et bouton (sauf celles prévue pour l'ensemble des membres du domicile, la famille)

    Nota : Si vous utilisez la variable globale. Sont contenu est réactualisé lors de chaque appui sur un bouton (les anciens membres sont supprimer automatiquement) en fonction des membres configurés dans le VD.

 

5) Facultatif Presque tout est configurable dans ce VD, vous avez la possibilité de modifier les variables suivantes :74:

  • local lbl_UserStateValue_Present = "X Présent" -- Label value (if Present)
  • local lbl_UserStateValue_Away    = "Y Absent"  -- Label value (if Away)
  • local lbl_FamilyStateValue_Present = "X Présente" -- Label value (if Present)
  • local lbl_FamilyStateValue_Away    = "Y Absente"  -- Label value (if Away)
  • local Use_The_VG_HomeMode = true    -- Indicates if you want to use the Global Variable
  • local VG_HomeMode = "HomeMode"      -- Global Variable containing the homemode state
  • local VG_StateValue_Present = true  -- VG value (if Present)
  • local VG_StateValue_Away    = false -- VG value (if Away)
  • local debug = false -- Indicate the debug mode state (true ou false)

 

De vos codes (Scènes ou VD)

 

Adapter ou créer vos codes pour prendre en compte soit le contenu du label lblState ou les entrées présentes dans la variable globale pour lancer vos scénarios.

 

La variable Global a une structure JSON et doit être décodé par la commande : json.decode(). Elle convient ceci (dans mon exemple) : {"Florian":false,"Famille":true,"Gaby":false,"Michel":true}

 

En ce qui me concerne j'utilise GEA pour tester les changement d'état et j'utilise le contenu des labels pour lancer des actions. Exemple de conditions ci-dessous avec l'utilisation de mon VD Surveillance Station Manager (voir ma signature) :

-- Gestion de l'arrivée au domicile d'un membres et le départ de tous les membres -------------------------------------------------------
--    Activation du mode Home Mode dans Surveillance Station Synology
--    Mise en marche (activation) des caméras si plus membres du domicile présents
--    Arrêt des caméras (désactivation) si l'un de membres est présent au domicile
GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblFamilyPresence", "#r#Présente"}
        ,{"Trigger", "lblFamilyPresence"}
        ,{"Or", {"Label", id["VD_CAM_GLOBAL"], "lblCamState", "#r#Marche"}, {"Label", id["VD_CAM_GLOBAL"], "lblCamState", "#r#Partiel"}}}
        ,-1, "Un membre de la famille vient d'arriver à la maison, Arrêt des caméras"
        ,{"VirtualDevice", id["VD_CAM_GLOBAL"], 5}
        ,"Arrivée d'un membre de la famille de la maison, Arrêt des caméras")

GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblFamilyPresence", "#r#Absente"}
        ,{"Trigger", "lblFamilyPresence"}
        ,{"Or", {"Label", id["VD_CAM_GLOBAL"], "lblCamState", "#r#Arrêt"}, {"Label", id["VD_CAM_GLOBAL"], "lblCamState", "#r#Partiel"}}}
        ,-1, "Tous les membres de la famille ont quitté la maison, Mise en marche des caméras"
        ,{"VirtualDevice", id["VD_CAM_GLOBAL"], 5}
        ,"Tous les membres de la famille ont quitté la maison, Mise en marche des caméras")
                                      
GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblFamilyPresence", "#r#Présente"}
        ,{"Trigger", "lblFamilyPresence"}
        ,{"Label", id["VD_CAM_GLOBAL"], "lblPresence", "#r#Absence"}}
        ,-1, "Un membre de la famille vient d'arriver à la maison, Activation du mode présence"
        ,{{"VirtualDevice", id["VD_CAM_GLOBAL"], 4}}
        ,"Arrivée d'un membre de la famille de la maison, Activation du mode présence")

GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblFamilyPresence", "#r#Absente"}
        ,{"Trigger", "lblFamilyPresence"}
        ,{"Label", id["VD_CAM_GLOBAL"], "lblPresence", "#r#Présence"}}
        ,-1, "Tous les membres de la famille ont quitté la maison, Activation du mode absence"
        ,{{"VirtualDevice", id["VD_CAM_GLOBAL"], 4}}
        ,"Tous les membres de la famille ont quitté la maison, Activation du mode absence")

GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblToto", "#r#Présent"}
        ,{"Trigger", "lblToto"}
		,{"Open!", id["VOLET_SALON"], 100}}
        ,-1, ""
        ,{{"Ask", {id["PHONE_ID_Toto"]}, "Toto arrive à la maison. Ouverture des volets ?", 37}
        },"Toto vient d'arriver à la maison")  

GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblToto", "#r#Absent"}
        ,{"Trigger", "lblToto"}
		,{"Open!", id["VOLET_SALON"], 0}}
        ,-1, ""
        ,{{"Ask", {id["PHONE_ID_Toto"]}, "Toto quitte la maison. Fermeture des volets ?", 110}
        },"Toto vient de quitter la maison")

GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblTata", "#r#Présent"}
        ,{"Trigger", "lblTata"}}
        ,-1, "Tata arrive de la maison"
        ,{"Push", {id["PHONE_ID_Toto"]}}
        ,"Gaby vient d'arriver de la maison")

GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblTata", "#r#Absent"}
        ,{"Trigger", "lblTata"}}
        ,-1, "Tata quitte la maison"
        ,{"Push", {id["PHONE_ID_Toto"]}}
        ,"Tata vient de quitter de la maison")

Nota : la condition "TriggerPropertyName" n'est pas une fonction de base de GEA 6.11. Il convient de l'ajouter dans la liste des fonctions renseignées dans la partie : function config()

  GEA.options.trigger = { name = "Trigger",
                      getValue=function(value)
                        if (not value)then
                          if (GEA.source.type == "autostart") then
                            return "autostart"
                          elseif (GEA.source.type == "global") then
                            return "Global["..GEA.source.name.."]"
                          elseif (GEA.source.type == "property") then
                            return "Property[" ..GEA.source.deviceID .."]"
                          elseif (GEA.source.type == "event") then
                            return "Event["..GEA.source.event.data.deviceId.."]"
                          end
                        elseif (value) then
                          if (GEA.source.type == "property") then
                            return GEA.source.propertyName:gsub("ui.", ""):gsub(".value", "") == value
                          end
                        end
                        return "other"
                      end
                    }

Ajouter l'ID du VD et ses labels associés dans l'entête de GEA dans la section properties, cf exemple ci-dessous "999 ui.lblFamilyPresence.value", remplacer 999 par l'ID du VD :

--[[
%% autostart
%% properties

999 ui.lblFamilyPresence.value

999 ui.lblToto.value

999 ui.lblTata.value

%% globals
%% events
--]]

 

Quelques exemples de solutions de détection de vos entrées et sorties de maison :

 

1) Sur vos iPhones avec la fonction intégrée de géolocalisation et l'utilisation de l'application domotique "Maison (home)" d'Apple

 

Elle nécessites l'installation de Homebridge (voir les tutos ci-dessous, il y a de nombreuses solutions, j'en ai testé qu'une, la première) :

 

 

  • Tuto présent sur le forum :

 

 

Configuration des réglages de vos iPhones :

  • Réglage > Confidentialité >Service de localisation > Maison

  • Réglage > Confidentialité >Service de localisation > Services systèmes > Partager ma position

  • Réglage > Confidentialité >Service de localisation > Services systèmes > Homekit

  • Réglage > Ton utilisateur en haut > iCloud > Partager ma position coché et à partir de : « Cet appareil »

  • Réglage > Ton utilisateur en haut > Partage familial > Partage de position > Partager ma position coché et à partir de : « Cet appareil »

 

L'automatisation dans l'application Maison (Home) de votre iPhone :

 

  • Voir images ci-dessous, elles parlent d'elles-même :

 

image1.thumb.png.81b9c11ab67ab9e66dc3360a6586aa4c.pngimage2.thumb.png.7e14ce856da0fc19bfcb09e85f3e66a0.pngimage3.thumb.png.5834112970608a04defa15f90324cce2.png

 

2) Application Synology DS CAM disponible sur iOS et Android

 

Elle intègre une solution Geofence permettant  de connaitre les entrées et sorties de la maison.

 

Cette info est exploitable directement sur votre NAS et elle peut être interceptée avec une règle d'action qui va envoyer en local (sans passer par le Cloud/Internet) une requête sur votre HC2 via une commande de type :

 

http://<HC2 ip address>/api/callAction?deviceID=XXX&name=pressButton&arg1=2 

 

Voilà une solution compatible pour les 2 mondes iOS et Android ;) sans faire circuler sur internet vos mots de passe (comme par exemple avec IFTTT).

 

Utilisation du VD :

  1. Utiliser de la première série de bouton pour agir d'un coup pour tous les membres du domicile (Famille)
  • le premier bouton pour activer le mode Présence
  • Utiliser le deuxième bouton pour activer le mode Absence
  1. Utiliser boutons suivants pour agir sur un membre du domicile (Famille) en particulier 
  • le premier bouton pour activer le mode Présence
  • Utiliser le deuxième bouton pour activer le mode Absence

 

Versions :

  • V1.0 : du 15/01/2019 -> Initialisation du projet
  • V2.0 : du 18/01/2019 -> Ajout de la fonctionnalité pour gérer individuellement chacun membres au domicile ou l'ensemble d'un coup

 

Roadmap - Evolutions à venir :

  • Gérer des localisations différentiées (Travail, Ecole, ...)
  • Fournir quelques exemples de Lignes GEA
  • A voir selon vos suggestions :huh:

 

Dernière version du VD :

 

VD : HomeMode_Manager V2.0.vfib.json

 

Icônes : 

 

542868050_HomeModeHome.png.930329d9c2d9fd56145e91b6a2467696.png2106279729_HomeModeAway.png.05796e8c593d62661bc641391b987e80.png

 

 

Modifié par MAM78
  • Like 3
Posté(e)
Il y a 5 heures, MAM78 a dit :

Avoir configuré Homebridge pour que vos Module et Virtual Device soient visible dans l'application Maison de votre iPhone

il existe un tuto là-dessus ?

Posté(e)

Ça avance bien, j’ai trouvé la solution pour identifier individuellement la présence ou l’absence de chacun des membres de la maison. Une v1.1 en approche ;)

 

A suivre...

Posté(e) (modifié)

Voici l'image du nouveau VD avec la gestion de plusieurs membres de la famille présent ou non au domicile.

 

image.thumb.png.5537971ea96fc9a30fde7df71b3d4bae.png

 

Le premier label permet d'indiquer si aucun membre n'est présent au domicile ou s'il y en a au moins 1.

 

Il est possible d'ajouter autant de membre que l'on veux.

 

La variable globale a été adaptée en conséquence pour pouvoir tester la présence/absence de chacun des membres de la famille et l'ensemble des membres

 

Cette variable globale configurable et facultative, dans ce cas il faut tester le contenu des labels pour vos scènes et VD.

 

Du coup ce VD peut être piloté par n'importe quel moyen (Présence de smartphone sur le réseau wifi, les fonction de localisation dans l'application Fibaro, Applications tiers Geofence, Application Maison (Home) d'iOS, ...) par un simple clic sur l'un des boutons

 

Il est également très simple de l'adapter pour réaliser d'autres localisations dans d'autres zones que celle du domicile comme par exemple le travail, une habitation secondaire, l'école des enfants, ...

 

Je vais encore faire une petite adaptation pour pouvoir d'un coup indiquer que l'ensemble des membres de la famille sont présent/absent du domicile. Cela peut être utile notamment lorsque par exemple :

  • un téléphone n'a plus de batterie et que tous les membres ont quitté le domicile
  • activation du mode vacance
  • activation de l'alarme
  • ...

Dès que ce sera fait je ferais une livraison de la V2 du VD ;)

 

 

 

 

Modifié par MAM78
  • Like 1
Posté(e)

C'est fini la V2 du HomeMode Manager est livrée. Voir en début de post.

 

Il convient de bien relire le Tuto que j'ai bien fait évoluer ;)

 

Cette nouvelle version se veut :

  • plus ouverte et non plus spécifiquement au mode iOS (il y a un certain sectarisme ici. Certains n'aiment pas les pommes ;) )
  • plus automatisée
  • plus configurable selon vos préférences et vos usages

 

Amusez-vous et merci d'avance pour vos retours (bugs ?, suggestions, ...)

Posté(e)

super tuto @MAM78, j'essaie ca dès mon retour, comme moi aussi j'ai des pommes...  

merci pour le boulot, et je te fais un retour dès que c'est installé, d'ici une quinzaine de jours

Posté(e)

D’autant que rien n’a empêche de l’utiliser depuis n’importe quelle solution de détection. Voir même plusieurs.

Posté(e)

Bonjour

 

Je suis ravis SAV Netatmo lol

 

je post ceci concernant HomeKit et Présence pur ceux qui n’ont plus le code HomeKit de Netatmo :

 

Ali-Asgar (Netatmo) 

11 janv. 12:27 CET 

Cher Philippe,

Merci pour votre retour,
Mon collègue ma fait suivre votre demande,

J'ai effectué une mise à jours de votre caméra vers la version 145.
Une fois que vous voyez que la mise à jours est effectuée (depuis le file d'actualité de l'application) :

Veuillez réinitialiser la caméra :

Pour réinitialiser la caméra à l’état d’usine, il faut utiliser un QR-CODE spécifique (rouge, que je peux vous délivrer si vous m'envoyer une photo de votre numéro de série (par mesure de sécurité)).

Ce Qr-code est à présenter devant la caméra. Faite attention à : La luminosité, la distance (cf pj), et bien placer le code devant la lentille de la caméra. Activer la détection en collant le code contre la lentille et en le reculant petit à petit. Une fois détectée, les LED clignoteront rapidement 5 fois à deux reprises et commenceront à clignoter continuellement 1 à 2 minutes plus tard.

Lorsque vous utiliserez ce QR-code, ceci va supprimer :
* Les vidéos présentent sur la carte sd (pensez à sauvegarder vos vidéos avant d'effectuer cette manip),
* Les informations Homekit (qui vous permettra par la suite de réinstaller la caméra sur Homekit) 
* Les informations réseaux.

Normalement, la caméra doit continuer à clignoter.
Vous pouvez maintenant installer la caméra comme une nouvelle caméra.

En attente de votre retour,
Je vous souhaite une agréable journée.
Cordialement,

Ali

Posté(e)

@q.philippe pourrais-tu m'explique pourquoi tu post ce sujet ici. est-ce qu'il y a une fonctionnalité de la caméra présence qui permettrait de s'intégrer avec mon VD ?

 

Je suppose que l'application Maison (Home) permet d'identifier les personnes lorsqu'elles arrivent à la maison et donc d'appuyer sur l'un bouton correspondant (via homebridge) de mon VD mais quid pour les départs de la maison.

Posté(e)

Pour identifier votre arrivée et départ de la maison vous pouvez également utiliser l'application Synology DS CAM disponible sur iOS et Android pour sa solution Surveillance Station.

 

Elle permet de connaitre les entrées et sorties de la maison.

 

Cette info est exploitable directement sur votre NAS et elle peut être interceptée avec une règle d'action qui va envoyer en local (sans passer par le Cloud/Internet) une requête sur votre HC2 via une commande de type :

 

http://<HC2 ip address>/api/callAction?deviceID=XXX&name=pressButton&arg1=2 

 

Voilà une solution compatible pour les 2 mondes iOS et Android ;) sans faire circuler sur internet vos mots de passe (comme par exemple avec IFTTT).

Posté(e) (modifié)

Bonjour @MAM78

 

Super tuto :60:

Je suppose que sans le hub Homekit il est impossible de faire des règles d'automatisation ?

Le 16/01/2019 à 01:39, MAM78 a dit :

Avoir une AppleTV 4+ ou un iPad (iOS 10+) qui reste à la maison (branché) ou un HomePod pour faire hub HomeKit. (à jour !) 

 

J’aime les pommes mais il y a un moment cela coute cher ...  :D

Modifié par Puni
Posté(e)

Si tu veux le faire du Homekit pilotable depuis l'extérieur de ton domicile, il te faut un Hub HomeKit.

 

Sinon comme indiqué, tu peux toujours utiliser le VD mais il te faudra un autre moyen d'agir dessus (IFTTT, Application tiers sur ton téléphone qui est en mesure d'envoyer une commande http/https via l'API Fibaro).

  • 1 an après...
Posté(e)

Bonjour @MAM78

 

Tout d'abord merci pour ce VD ainsi que pour le TUTO.

 

Toutefois je n'arrive pas a comprendre l'interaction entre GEA et ton module.

 

Via mon téléphone android est tasker j'arrive à modifier l'état TOTO présent ou absent.

Mon idée est de faire comme toi via GEA récupérer l'état de la variable "HomeMode" est activer ou pas des actions.

Quand je regards ma variable HomeMode j'ai juste ceci {  est ce normal ?

 

Peux tu m'expliquer comment tu fais.

 

Merci par avance.

 

Posté(e) (modifié)

Comme indiqué la variable "HomeMode" est facultative. Et c'est une structure tableau, cf exemple ci-dessous :

{"TATA":true,"TOTO":true,"TITI":true,"TUTU":true,"Famille":true}

Elle devrait être renseignée, dès lors que tu auras actionné les différents boutons du VD que tu auras créés.
 

En l'occurence, elle n'est pas utilisée dans mes exemples GEA. Seuls les Labels sont utilisés pour déterminer les états.

Mais rien n'empêche de l'utiliser mais en testant l'élément de la structure de la variable globale. Je ne me souvient plus comment faire cela dans GEA. Question à poser dans la section GEA du forum. 

 

Si tu veux utiliser tout comme moi les labels, je pense que tu devrais bien relire le TUTO.

Modifié par MAM78
×
×
  • Créer...