Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'hc2'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Bienvenue
    • Nouveau ? Présentez-vous
    • Le bistrot
    • Mon installation domotique
    • Annonces et suggestions
  • La Home Center et ses périphériques
    • La Home Center pour les nuls
    • HC 2 & Lite
    • HC 3
    • Modules Fibaro
    • Modules Z-wave
    • Périphériques et matériels autres
    • Plugins
    • Quick App
    • Multimédia (audio, vidéo ...)
    • Chauffage et Energie
    • Actionneurs & Ouvrants (Portail, volets, piscines, ...)
    • Eclairage
    • Applications Smartphones et Tablettes
  • Autres solutions domotiques
    • Box / Logiciel
    • Modules Nice (433 & 866 MHz)
    • Modules Zigbee
    • GCE Electronics
    • Modules Bluetooth Low Energy
  • Objets connectés
    • Les Assistants Vocaux
    • Netatmo
    • Philips Hue
    • DIY (Do It Yoursel)
  • Sécurité
    • Alarmes
    • Caméras
    • Portiers
    • Serrures
  • Informatique / Réseau
    • Tutoriels
    • Matériels Réseaux
    • Matériels Informatique
    • NAS
    • Virtualisation
  • Les bonnes affaires
    • Sites internet
    • Petites annonces

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Jabber


Skype


Ville :


Intéret :


Version

127 résultats trouvés

  1. Google Calendar vers HC2/HCL (dernière mise a jour : 23/02/15) Bien que d'autres solutions permettant de piloter sa box depuis un agenda Google existent déjà (je pense bien entendu aux formidables travaux de Kriek), je n’en ai pas trouvé qui réponde parfaitement à mes besoins. Je vous propose donc de partager ce à quoi je suis arrivé... Le besoin : Le but étant de « programmer » l’ouverture/fermeture de mon portail à date et heure fixe, de lancer une machine à laver a telle heure, de gérer une variable indiquant si je suis en congé ou pas, etc. (voilà ça va pas péter plus loin que ça), j’ai besoin de : quelque chose de simple à utiliser qui me permet en ajoutant un événement dans un calendrier Google de déclencher une scène ou un bouton sur ma box, quelque chose de simple à configurer, et surtout sans script LUA : en fait j’ai une HC2 mais je dois également piloter une HC Lite et je veux donc une solution unique (v1.2) pour certains besoin "urgents" ou il est souvent plus rapide de s'envoyer un mail que d'ajouter une entrée dans le calendrier, avoir la possibilité de traiter les mêmes commandes mais envoyées par mail cette fois ci. La commande sera traitée dans la foulée de la récéption du message, il n'y a pas de notion de scheduling dans ce cas. La solution envisagée : Avec la contrainte de la HC Lite, il me faut trouver une solution d’héberger « le script » ailleurs. Pas possible de l’embarquer sur la box et d’être autonome. En même temps, vu que je veux utiliser Google Calendar (pour des raison de facilité d’accès et de gestion), autant héberger mon script sur Google Drive. Afin d’en faciliter l’utilisation et dans le but de partager tout ce bordel, je suis passé par une spreadsheet Google qui embarque mon script. En effet, je trouve ça plus « simple » de modifier le texte d’une cellule plutôt que de toucher a des lignes de code. Ceci dit, faudra quand même se retrousser un poil les manches pour installer le tout… Installation : 1) Tout d’abord il faut récupérer la spreadsheet Google dont le lien de partage est le suivant : https://docs.google.com/spreadsheets/d/1JdygLOXaGJdJ9WL4t_UUHejao6vfYurjc_D7PybdWro/edit?usp=sharing Copiez la dans votre Google Drive en faisant Fichier > Créer une copie... depuis la spreadsheet (v2.0) Depuis la v2, les données ont été séparées sur 3 onglets différents : Configuration : Toutes les données de configuration ont été regroupées ici Commandes : Permet de définir les différentes commandes mises à disposition Data : il s'agit des données interne à la spreadsheet, il n'y a rien a toucher ici. 2) Modifiez le contenu de la premiere feuille afin de définir les différents paramètres de connexion a votre Home Center (qu’elle soit Lite ou 2) et l’ID du calendrier Google qui sera utilisé pour gérer l’activité de votre box. Donc si vous n’avez pas de calendrier dédié, c’est le moment de le créer… (v1.2) Sélectionnez la version du firmware que vous avez 3.x ou 4.x. (v1.2) Vous avez la possibilité de spécifier quel label Gmail est a surveiller (cf. Gestion des mails ci dessous) ainsi que les caractères qui permettrons d'identifier le contenu utile du mail de votre signature de mail (dans le cas ou vous en utilisez une) (v2.0) Vous avez maintenant la possibilité d'activé ou pas la prise en compte des événement du calendrier et/ou des emails (v2.0) Dans le cas des traitements de emails, il y a la possibilité de demander un accusé de réception de la commande. En gros vous envoyez un email contenant la commande a executer et on vous répond si l'action a été traitée avec succès ou pas. 3) Dans la partie « Définition des commandes » il s’agit de définir les différentes ordres qui seront reconus : ID : il s’agit de l’identifiant de la commande. A vous de le choisir. C’est cet identifiant que vous allez utiliser par la suite dans votre calendrier Google Description : bon je passe sur la description de ce champs... Action : Différentes action sont gérées par le script : gestion de scenes, d’interrupteurs, de variateurs, de volets roulants ou de modules virtuels. En fonction de ce que vous sélectionnez, les 3 autres paramètres du tableau auront une signification bien précise. Une note dans chaque cellule est ajouté automatiquement afin de vous guider dans la saisie de la définition de votre commande Module ID : En fonction du type d’action il faudra renseigner l’ID du module ou de la scene correspondante Paramètre 1 et 2 : dépendent aux aussi du type d’action sélectionné (Start/stop pour une scene, on/off pour un inter, % de variation pour un dimmer, etc.) 4) Basculez dans le script associé via le menu Outils>Editeur de scripts… 5) Vous allez devoir activer les API Google nécessaires via le menu Ressources>Services avancés de Google… Dans la fenêtre qui s’ouvre, activez Calendar API (si ce n’est pas déjà fait), puis activez le aussi dans la Google Developpers Console (vous avez un lien dans cette même fenêtre qui vous y conduit) 6) Ajoutez un déclencheur sur votre script afin d’executer chaque minute la fonction Gcal2HC : - Depuis l'editeur de script, menu Ressources > Déclencheurs du projet actuel - Dans la nouvelle fenêtre qui vous indique qu'aucun déclencheur n'est actuellement configuré, cliquez sur le lien pour en ajouter un - Configurez votre déclencheur en sélectionnant la fonction Gcal2HC et l'événement En fonction du temps/Minuteur/Chaque minute 7) Maintenant que tout est activé et qu’une commande a été configurée, revenez dans votre spreadsheet 8) Allez dans le menu Gcal2HC tools>Tester une commande. (v2.0) Une nouvelle fenêtre listant les commandes disponibles va s'ouvrir. En cliquant sur le bouton de la commande vous pouvez tester directement cette dernière. Un certain nombre d’autorisations vont vous être demandé… 9) (v2.0) Même si vous n'avez pas encore créé d'événement ou envoyé un email, passez sur les autres menus Gcal2HC tools>Relever les événements et Gcal2HC tools>Relever les emails afin de valider les autorisations d'accès nécessaires Bon à partir de là , si vous n'utilisez pas la fonctionnalité de gestion par email vous pouvez passer au paragraphe Utilisation sinon configurez votre compte gmail comme indiqué ci-dessous … (v1.2) Configuration Gmail : Le principe de cette fonctionnalité est simple : au lieu de saisir une commande dans la description d'un événement calendrier, on envoi tout simplement un email contenant cette description. Sur réception de l'email, la commande est analysée (comme pour les événement du calendrier) et exécutée dans la foulée. Afin de rendre ce processus simple, on ne va traiter que les messages reçus sur le compte Gmail et qui ont le label qui a été initialisé dans la partie déclarative de la spreadsheet. Les labels imbriqués sont supportés, il suffit de les séparer par un '/'. Exemple : Domotique/ToDo Je vous laisse le soin de créer une règle dans votre compte Gmail afin de "tagger" automatiquement les message qui vont bien avec le bon label (par exemple une règle basé sur l'expediteur, le destinataire et l'objet du message.) C'est le contenu du message (le body) qui doit contenir la chaine texte correspondant à la commande a executer. Dans le cas (et c'est souvent le cas sur mobile) ou vous avez une signature qui s'ajoute automatiquement a votre message, vous pouvez spécifier les caractères qui permettrons de délimiter la partie utile du message de votre signature (par exemple --) Attention : Dès lors que le message est traité il est automatiquement déplacé dans la corbeille. (v2.0) Si vous envoyez la commande HELP par email, on vous répond avec la liste des commandes disponibles. C'est ppratique lorsqu'on a beaucoup de commandes et qu'on ne se souvient plus de l'ID des commandes... Utilisation : 3 types d’utilisations sont possibles : 1) La première, que vous connaissez déjà , consiste à déclencher l’action directement depuis la spreadsheet (cf. étapes 7 et 8 de l’installation). Ceci permet de mettre au point une commande sans avoir à la programmer dans son calendrier et attendre que tout se déclenche. 2) Déclenchement programmé depuis votre calendrier. Pour cela il suffit de créer un événement à une heure précise (sans durée, donc heure de début = heure de fin). Vous mettez le titre que vous désirez (pour que ce soit parlant pour vous) et ajoutez dans le champs Description l’ID de la commande à executer. Voilà c’est tout, toutes les minutes le script va tourner et dès qu’un événement arrive à échéance, la commande associée sera exécutée. 3) (v1.2) Déclenchement suite à la réception d'un email Voici quelques screenshots : Remarques : 1) J’utilise l’API http pour piloter la box, donc ça n’a rien a voir avec la solution de Kriek qui est bien plus puissante et propre ! Mais bon, avec la HC Lite, je ne vois pas comment faire autrement. Peut être avec l’arrivée de la v4 (si elle arrive un jour…). Du coup obligé d'exposer la box sur le net, ça ne me plait pas trop non plus, mais bon ... 2) Je ne traite pas les événements sur la journée mais que des événement à des instant précis 3) Je ne traite pour l’instant qu’une seule commande par événement 4) Autre limitation : si pendant une certaine période la communication avec la Home Center est coupée, les événements de cette période sont tout simplement perdus… 5) Bien entendu, il ne faut pas modifier la spreadsheet ca il y a des références à des cellules en dur dans le code (houuuuu que c’est pas beauuuuu ça aussi…) 6) Dernier point, ça fait juste quelques jours que j’ai ça en place, et je n’ai pas encore tout migré de mon ancien système vers la HC2. Donc si vous rencontrez des bugs et autres bizarreries… c’est normal Historique : 09/11/2014 - v1.0 : version initiale 31/12/2014 - v1.2 : correction bug su l'utilisation du SWITCH préparation pour la sortie du la v4.x ajout du traitement des commandes envoyées par mails 04/01/2015 - v1.3 : ajout support API pour Notification, Mise a jour des variables globales et Armer les devices 23/02/2015 - v2.0 : refactoring de la spreadsheet et du code ajout de l'accusé de réception de la commande par email ajout de l'aide par email
  2. Ce topic a pour objectif d'inventorier les numéros de série et date d'achat des box Home Center 2 et Home Center Lite de Fibaro, afin de situer l'âge de nos box, notamment pour ceux qui l'ont acheté d'occasion. De plus, si nous obtenons suffisamment d'information, cela pourrait permettre d'établir une courbe de tendance des ventes. Règle du jeu : - donner le type de box (HC2 / HCL / HC3 (quoi on peut rêver )) - donner le numéro de série arrondi à la centaine la plus proche (afin de conserver l'anonymat) - donner la date d'achat de la box neuve (le mois et l'année suffisent) Je commence : HC2 : 15100 : 11/2013
  3. Barelle

    Quick App - HC2 Devices

    Quick App HC2 Devices Contexte Vous avez une HC2 (ou HCL) qui ronronne paisiblement et vous venez d’acquérir une HC3. Vous hésitez sur la stratégie de migration : Le big-bang par Fibaro : tous les dispositifs z-wave seront connectés à la HC3 et vous aurez perdu les scènes et les VD ; Commencer par convertir les VD en QA (en fait, il s’agit pour bien faire les choses d’un redesign complet), puis migrer les dispositifs (devices) z-wave soit par exclusion puis inclusion sur la HC3, soit par le big-bang Fibaro, mais en ayant déjà préparé les nouveaux QA et scènes. Ce QA s’adresse donc à ceux qui ont fait ce second choix. Mais les autres aussi peuvent l’essayer… Note : n’en possédant pas, je n’ai pas testé ce QA avec une HCL, mais, en toute logique, cela devrait fonctionner. Fonction Ce QA permet de voir sur la HC3, un ensemble de devices (dispositifs) physiques de la HC2. En effet, développer scènes et QA sur une HC3 sans device et parfois un peu gênant. Paramétrage lors de l’installation Il est nécessaire de créer pour le QA les variables suivantes : HC2IP : l’adresse IP de la HC2. HC2userPass : <codeutilisateur>:<mot de passe> de la HC2, cet utilisateur devra avoir les droits de modifications sur les devices à voir sur la HC2. Note : après une connexion réussie à la HC2, le QA effacera la variable HC2UserPass et créera la variable HC2Authorization (soit HC2userPass en base 64). Optionnellement : La variable refreshPeriod permet de modifier la période (en secondes) d’interrogation de la HC2 (par défaut 60 secondes), ce qui parait suffisant pour un emploi en développement, une période trop courte pourra se traduire par une consommation CPU plus conséquente. Une variable iconId permet d’affecter une icône au QA HC2Devices. Comme vous le savez bien, il y a sur la HC2 un tas de devices que nous considérons sans intérêt (device master, second relais inutilisé, etc.) le QA ne prend pas en compte que les devices physiques (donc pas les VD) qui en plus : Sont enabled. Sont visibles. Ne sont pas des masters. Qui sont d’un type pris en charge (cf. la table HC2Types pour en avoir la liste), seuls certains ont été testés. Qui sont affectés à une pièce. Qui n’ont pas été explicitement exclus par ajout de leur id dans la table HC2IdExcluded en tête de programme. Interface utilisateur Le device de la HC2 en cours. Affiche le device de la HC2 précédant. Ajoute le device de la HC2 en cours sur la HC3 (child). Supprime le device de la HC2 en cours sur la HC3 (child). Affiche le device de la HC2 suivant. Affiche dans la fenêtre de log le device en cours. Affiche dans la fenêtre de log les devices présentes sur la HC3. Affiche dans la fenêtre de log les devices non présentes dur la HC3. Affiche dans la fenêtre de log tous les devices de la HC2 connus du QA. Ajout/suppression sur la HC3 (d’un child reflet d’un device de la HC2) On le sélectionne par son nom et son id à l’aide des boutons (2) et (5), puis par le bouton (3). Pour la suppression, on utilisera le bouton (4). Lors de l’ajout le child sera affecté à une pièce du même nom que celui de la HC2, si elle existe dans la HC3, ou dans une pièce du même nom qui sera créée dans la section de nom "Fibaro HC2". Synchronisations HC2/HC3 et HC3/HC2 Les changements de valeur des principales propriétés (properties) des devices de la HC2 sont reportés sur les childs de la HC3), lors de chaque rafraîchissement.. Les ordres donnés à partir des devices de la HC3 sont transmis à la HC2 (pour les types implémentés). Le retour d'état sera affiché lors du prochain rafraîchissement (60 secondes par défaut). Limites Tous les types de devices n’ont pas été testés. Il n’est pas possible de récupérer par le QA les icônes de la HC2. L’utilisateur n’a pas accès à la modification des variables crées par le QA (en version 5.050.13), mais il peut les supprimer ou les modifier par l’API du swagger. Le manque de robustesse de la HC3 qui permet ainsi de tester de manière approfondie le mode de récupération… Des redémarrages aléatoires du QA, sans cause identifiée, heureusement sans impact sur son fonctionnement. La sagesse de Fibaro qui a su conserver une réserve d'améliorations considérable pour les possibilités de personnalisation de l'interface. Les bugs que vous ne manquerez pas de découvrir. Téléchargement HC2_Devices.fqa
  4. aurelien31

    Aide création Virutal Device Flipr

    Bonjour à tous, J'aurai besoin d'aide pour créer un virtual device Flipr sur Fibaro HC2. Pourriez vous m'aidez ? Je souhaiterai faire ça : $ Proposé par @kevin39 mais n'a jamais donné de suite. J'ai trouvé les fichier qui permette de récupérer les Api de Flipr : https://flipr.freshdesk.com/fr/support/solutions/articles/36000062890-guide-du-développeur-apis-flipr J'ai réussi à créer le code HTML sur postman : GET /modules/1A4360/survey/last HTTP/1.1 Host: apis.goflipr.com Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYXVyZWxpZW4uY3JlbWF6eUBnbWFpbC5jb20iLCJzdWIiOiJhdXJlbGllbi5jcmVtYXp5QGdtYWlsLmNvbSIsIm5iZiI6MTY1NDI2MDg4NSwiZXhwIjoxNjc3NTg4ODg1LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0LyIsImF1ZCI6IkFueSJ9.sk2y6sMrS6_BkOM3zil548jdKyY5PoIB88Lmf7ge82Q Cookie: ARRAffinity=038c5b6de232f0f1a4a0f95d4bd62f39612acb99002094b5738c6e534da7d779; ARRAffinitySameSite=038c5b6de232f0f1a4a0f95d4bd62f39612acb99002094b5738c6e534da7d779 Mais je ne sais pas comment le mettre en forme pour l'avoir sur la HC2. Pourriez vous m'aider ? Merci par avance Aurélien
  5. Bon, l'Ecodevice RT2 étant arrivé, il fallait un petit VD pour les premières récupération de données. Donc un merci aux autres auteurs de VD pour la V1 (MoicPhil en premier), et voici une version adaptée avec récupération de différentes données. 25-03-2017 : Ici la V1.00, pas encore 100% fonctionnel, du fait de bug dans l'API GCE, cela devrait être en grande partie corrigé la semaine prochaine. Au fur et à mesure qu'ils corrigeront, je mettrai à jour. Si vous avez des idées, ne pas hésitez. 29-03-2017 : Version 1.1. Corrections JSON faite par GCE (Merci Maxime pour la vitesse !), firmware 2.00.29 beta 3. 07-04-2017 : Version 1.2. Fait pour la version stable 2.00.29. Prends en compte les évolutions json que j'avais demandé à Maxime chez GCE, nickels ! Le VD : Les téléchargements : EcoDevice_RT V1.0.vfib EcoDevice_RT V1.1.vfib EcoDevice_RT V1.2.vfib La version en triphasé avec solaire(Merci à Flacon !!) : EcoDevice_RT.vfib
  6. mprinfo

    HC2 & HCL - 4.630 - Stable - 05/05/2022

    HC2 & HCL - 4.630 - Stable - 05/05/2022 Liste des modifications logicielles Version 4.630 Important notice: All devices previously added to the system that received support need to be reconfigured. New improvements: - Support for https protocol. - Support for MCO MH-S31x & MH-S22x ZW700 series. - Support for MCO MH3901-Z version 2.1. - Support for Qubino 3-Phase Smart Meter. - Support for Heiman Gas Sensor (HS1CG) version 1.1 & 1.2. - Support for Donexon radiator thermostat. - Support for other Z-Wave devices supported by Home Center 3. - System stability improvements. Resolved issues: - Z-Wave service stops responding after updating to 4.620 and using previously added thermostat. - Few instances of Thermostat & Heating Zone plugin results in system crash. - In some cases, Home Center Lite gateway stops responding after some time. - Losing master-slave synchronization after some time in gateway connection mode. - Master gateway does not detect "central scene" actions on devices added to connected gateways. - Connected slave gateway need manual synchronization to restore its connection. - Incorrect default values of FIBARO Heat Controller configuration parameters. - Sending setProtection action to external sensor of FIBARO Heat Controller result in system crash. - Issues with thermostat controlled by Alexa voice assistant. - Issue with taking a camera snapshot and sending to e-mail. - Sending empty notification if this notification was previously removed. - No possibility to use custom icons uploaded in one of the previous firmware versions. - Tedee lock plugin stops responding after some time and needs rebooting the gateway. - Cannot manually set a date later than 2021-12-31. - No pin for setting location via remote access. - Other minor fixes
  7. MAM78

    HomeMode Manager (type Geofence)

    HomeMode Manager (type GeoFence) 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 ? 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) : Utiliser des d'iPhones et activer la localisation Avoir une AppleTV 4+ ou un iPad (iOS 10+) qui reste à la maison (branché) ou un HomePod pour faire hub HomeKit. (à jour !) Avoir configuré Homebridge pour que vos Module et Virtual Device soient visible dans l'application Maison de votre iPhone 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 : Télécharger et installer le Virtual Device ci-dessous (dans sa dernière version) Télécharger les icônes ci-dessous ou fabrique les votres 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 : 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) : Dans un docker sous un NAS Synology (il en existe plusieurs) : https://github.com/marcoraddatz/homebridge-docker (la solution que j'utilise) https://github.com/oznu/docker-homebridge/wiki/Homebridge-on-Synology (pas testé) https://github.com/ilcato/homebridge-Fibaro-HC2 (pas testé) ... Dans Raspberry PI : https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi (pas testé) https://techarea.fr/installation-homebridge-sur-raspberry-pi/ (pas testé) https://www.journaldulapin.com/2018/02/06/dyson-homebridge-homekit/ (pas testé) ... Sur Mac OS : https://github.com/nfarina/homebridge/wiki/Install-Homebridge-on-macOS (pas testé) ... Sous windows 10 : https://github.com/nfarina/homebridge/wiki/Install-HomeBridge-on-Windows-10-(new) (pas testé) 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 : 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 : 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 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 Dernière version du VD : VD : HomeMode_Manager V2.0.vfib.json Icônes :
  8. SONOS Remote V1.0.1 RC pour Fibaro HC2 Télécommande avec retour d’informations pour diffuseur SONOS, prise en charge du TTS (Text-to-Speech) et lecture de stream depuis vos scènes et périphériques virtuels. - Les fonctions : Play, Pause, Stop, Prev, Next, Seek, Volume, Mute, Loudness, Accès direct aux 5 premières radios de “Mes radiosâ€. - Les informations : Zone, Etat du diffuseur, Position, Titre ou Nom de la radio, Artiste, Album, Volume, Loudness, dernière commande émise. Installation : A partir de la version 1.0.0 beta: 1. Télécharger puis importer le vd. 2. Renseigner l’adresse IP du diffuseur SONOS (le coordinateur) dans le vd ainsi que le port 1400 3. Pour utiliser la fonction TTS VoiceRSS il faut une API Key, pour l'enregistrement (gratuit) c'est ici http://www.voicerss.org/registration.aspx 4. Renseigner la variable voiceRssApiKey avec la clé, choisir un niveau de qualité sonore pour la generation avec voiceRssSoundQuality: low, medium, high UserParams = { -- Voice RSS API Key (Free Registration: http://www.voicerss.org/registration.aspx) voiceRssApiKey = "000000000000000000000000000", -- Sound quality: low, medium, high voiceRssSoundQuality = "medium" } 5. Enregistrer les modifications, c'est bon... Utilisation : TTS : Pour utiliser le TTS depuis une scène ou un périphérique virtuel il faut juste exécuter le code LUA suivant avec les bons paramètres. -- 408 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 408, 28 -- Create TTS params object local params = { -- TTS Message message = "La température extérieure actuelle est de 21,2°C", duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 10 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Les options de l'objet params: - message: le message tts - language: la source du flux (http ou local, local est attribué par défaut) - duration: durée du tts. (en secondes ou "auto") - volume: le volume utilisé pour la lecture du tts si différent du volume en cours d'utilisation Le programme en cours de diffusion au moment de la demande reprendra après la diffusion complète du TTS. Reprise de la radio, de la piste à l’endroit précis avant arrêt, reprise de l’état du diffuseur : Volume, Mute, Play, Stop. STREAM: Pour utiliser la lecture de Stream depuis une scène ou un périphérique virtuel il faut exécuter le code LUA suivant avec les bons paramètres. -- 408 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 408, 28 -- Create STREAM params object local params = { -- stream: the file / uri stream = "//s3.amazonaws.com/smartapp-media/sonos/bell1.mp3", -- source: "local" or "http", "local" is setted by default source = "http", -- duration: play duration in seconds (option) or "auto" duration = 8, -- volume: the volume for playing the stream volume = 10 } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { stream = params }) _f:call(sid, "pressButton", bid) Les options de l'objet params: - stream: le chemin du flux - source: la source du flux (http ou local, local est attribué par défaut) - duration: durée du stream. (en secondes ou "auto") - volume: le volume utilisé pour la lecture du flux si différent du volume en cours d'utilisation Quelques exemples: Annoncer la température dans une scène : --[[ %% properties %% globals --]] -- 408 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 811, 28 -- Create TTS params object local ValeurTemp = fibaro:getValue(61, "value") local degre = string.gsub(ValeurTemp, '[,]' , ' degret ') local degre = string.gsub(degre, '[.]' , ' degret ') local degre = string.gsub(degre, '[-]' , ' moins ') local notification = "Il fait " .. degre .. " dans le salon " fibaro:debug(notification) local params = { -- TTS Message message = notification, duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 23 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Annoncer la valeur d'une variable : --[[ %% properties %% globals --]] local sid, bid = 813, 28 -- Create TTS params object local couleur = fibaro:getGlobalValue("le nom de ta variable") local notification = ("La couleur de demain sera "..couleur.." Bonne journée") fibaro:debug(notification) local params = { -- TTS Message message = notification, duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 23 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Annoncer la date du jour, la température extérieure et la météo : -- 239 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 239, 28 local cond = fibaro:getValue(3, "WeatherConditionConverted"); local tempext = fibaro:getValue(33, "value"); -- température extérieure fibaro:debug ("Température extérieure : "..tempext) local degre = string.gsub(tempext, '[,]' , ' degré ') local degre = string.gsub(degre, '[.]' , ' degré ') local degre = string.gsub(degre, '[-]' , ' moins ') local currentDate = os.date("*t") local jourL = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"} local jour = jourL[currentDate.wday] fibaro:debug ("Jour : "..jour) local moisL = {"janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre"} local mois = moisL[currentDate.month] fibaro:debug ("Mois : "..mois) local condfr =""; if( cond == "clear" ) then condfr = "clair"; end if( cond == "cloudy" ) then condfr = "nuageux"; end if( cond == "rain" ) then condfr = "pluvieux"; end if( cond == "snow" ) then condfr = "neigeux"; end if( cond == "storm" ) then condfr = "tempete"; end if( cond == "fog" ) then condfr = "brouillard"; end fibaro:debug ("Conditions météorologiques : "..condfr) fibaro:debug ("Création du TTS") -- Create TTS params object local params = { -- TTS Message message = "Bonjour a vous. Nous sommes le "..jour .." "..currentDate.day .." "..mois .. ". Il est ".. currentDate.hour .." heure et ".. currentDate.min .." minutes. ".. "Le thermomètre extérieur est a "..degre .. ", et le temps est "..condfr ..". ", duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 40 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Notes de versions: Version 1.0.1 Rc - Correction: régression introduite avec la V4.080 impactant la création automatique de la variable globale Version 1.0.0 beta ATTENTION: Le passage d'une version antérieure à la v1.0.0 pour la v1.0.0 ou supérieure nécessite la réécriture des commandes TTS pour fonctionner avec le nouveau module. L'ancien module reste cependant fonctionnel et peut cohabiter logiquement avec la nouvelle version. En cas de passage définitif en V1.0.0 ou supérieure toutes les variables globales déclarées précédemment en V0.0.7 ou V0.0.8 peuvent être supprimées. - Amélioration : Configuration automatique, pas de déclaration de variables globales - Amélioration : Support natif de multiples instances du périphérique virtuel - Amélioration : Faible latence lors du déclenchement des commandes - Amélioration : Révision et amélioration du code / Refactoring - Ajout: Le TTS utilise le service Voice RSS (avec une API Key (enregistrement gratuit)) ou ResponsiveVoice API. Options: durée, volume, auto resume - Ajout: Lancement de Stream (http / local) depuis scéne / vd. Options: durée, volume, auto resume Version 0.0.8 - Amélioration : La lecture d'un TTS en mode Auto Stop est maintenant stable - Amélioration : La lecture d'un TTS avec une durée définie est maintenant stable - L'image principale du vd réapparaît maintenant automatiquement après l'appui sur un bouton (Labomatik & JM13, merci ) - Correction d'un bug avec l'analyse xml de BrowseDirectChildren - Attention: Pour utiliser les raccourcis "boutons radios favorites" vous devez ajouter au moins deux radios depuis l'application SONOS "Desktop/IOS etc..." Version 0.0.7 - Amélioration notable de la stabilité, le vd est plus réactif. - Patch line 892: attempt to index local 'value' (a function value) - Patch line 1256: attempt to concatenate a nil value - Préparation au support de nouvelles fonctionnalités Fichier Zip : SONOS_Remote_v1.0.1.vfib SONOS_Remote_v1.0.0.vfib
  9. MAM78

    Philips HUE Manager

    Philips HUE Manager Préambule : Vous trouverez ci-dessous le nouveau Virtual Device visant piloter des groupes d'ampules Philips HUE.. Le projet exploite l'API mise à disposition par Philips à l'adresse suivante : https://developers.meethue.com/philips-hue-api Cette API permet notamment de : Récupérer des information sur votre système HUE Manager (récupérer les infos et paramétrer) vos ampoules unitairement ou toutes ampoules d'un groupe Pour le moment, je me suis focaliser sur le paramétrage d'un groupe d'ampoules. A l'origine de projet, je cherchais une solution pour allumer un groupe d'ampoules à l'extérieur de mon domicile pour confirmer visuellement un scénario. Le Projet : Le but du projet consiste à (pour le moment) : pouvoir allumer/éteindre un groupe d'ampoules Philips Hue permettre programmer une durée d'allumage des ampoules (ex. durée 20 secondes) de pouvoir prédéfinir des paramétrages selon : la couleur la brillance la saturation des effets (clignotement, couleurs de l'arc en ciel) des séquences de couleurs (ex. Bleu, Blanc, Rouge) rendre accessibles ces paramétrages via l'interface utilisateur smartphone, tablette, navigateur, ... mais également depuis vos Scènes (notamment GEA) et autres Virtual Devices Quelques exemples de déclanchements d'un sénario. armement / desarement de l'alarme, visuel lors du déclenchement de l'alarme, en complément de la sirène ou lors d'alarmes silentieuses. déclanchement lors d'une détection d'une présence de nuit autour de la maison. Mise en lumière des extérieurs pour déclencher l'enregistrement vidéo de meilleur qualité pour une durée donnée. Et pour plus tard : Faire la même chose pour piloter unitairement des ampoules. Vos idées/suggestions sont le bienvenues Pré-requis : Disposer d'ampoule Philips HUE Avoir regroupé les ampoules dans un groupe Avoir installé et configuré le plugin Philips HUE Installation : Télécharger et installer le Virtual Device ci-dessous (pour la dernière version) Configuration : Du Virtual Device : Dans l'onglet Avancé de VD importé, il convient de : De nommer votre VD (ex. : Hue Manager) à votre convenance De désigner la pièce ou sont situées votre groupe d'ampoules Ne pas oublier de sauvegarder Cf. image ci-dessous : Charger la liste des icônes ci-dessous : Charger le package d'icônes suivant : Liste icones Hue Manager.zip Depuis l'onglet Générale importé les icônes ci-dessous en cliquant sur le bouton Changer l'icône Attention il est préférable de bien respecter l'ordre des icônes (selon le numéro d'ordre des noms de fichiers). Ce sera plus simple pour configurer vos scénarios Après avoir chargé, toutes les icônes, modifiez chacun des boutons afin de les faire correspondre avec l'icône correspondante. Pour les 5 boutons correspondants aux fonctions de gestion du timer, vous pouvez ajouter l'icône totalement transparente (sans image. fichier : HUE Color 0.png). Elle évite de voir l'image par défaut lors des sur ces boutons. Vous devriez avoir cela, dans votre page d'icônes : Ne pas oublier de sauvegarder Configurer le bouton btUpdate (celui avec la fusée) : C'est ce bouton qui s'occupe de piloter vos ampoules : Renseigner les variables indiquées ci-dessous : local Hue_Light_VD_Id = ID d'un des Devices de type Ampoule HUE créé par le plugin Philips HUE local Hue_Port = port réseau pour accéder à l'API de gestion du système Philips HUE local hueTimerSetingsIcons = correspond au même n° d'icônes que celui que vous avez renseigné pour les boutons de gestion du timer (HUE Color 0) local hueOfftIcon = Correspond à l'icône de couleur grise avec le marqueur Off rouge (HUE Color 1.png) local hueFirstIcon = Correspond à l'icônes de couleur blanche (HUE Color 2.png) local modetrace = permet de renseigner les différentes étape d'exécution du traitement dans le Dégogueur local modetrace = permet de renseigner des trace sur le contenu de certaine variable lors de l'exécution du traitement dans le Dégogueur afin d'aider à trouver la source d'un bogue. Ne pas oublier de sauvegarder Configurer du main loop du VD : Renseigner la variable indiquée ci-dessous : (elle permet de gérer l'état on/off des ampoules gérées par le VD) -------------------- -- Users variables -------------------- -- Enter the identifier of a Philips HUE Device that correspond -- to one of the bulbs of the bulb group that you wish to manage local Hue_Light_VD_Id = 334 Configurer les scénario : Pour chacun des bouton, il est possible de modifier les paramétrage des : Id = Numéro de scénario. Qui doit correspondre au contenu de la variable HueModeId présente dans le bouton correspondant Descri = Description du Scénario (affiché à l'exécution sur le label correspondant) hue = Couleur de l'ampoule (0=Eteinte, 1 à 65535) sat = Saturation de la couleur bri = Brillance de la couleur ct = chaleur de la couleur si blanc (Blanc froid à Blanc chaud) (non utilisé pour le moment, en attente de dégogue) effect = effect sur l'allumage de l'ampoule (none=sans effet, blink=Clignotant, colorloop=Couleurs de l'arc en ciel, scene=une scène disponible et configurable depuis votre application Philips HUE) effectId = id de la scène que vous pouvez trouver par le biais de mon VD HUE InfoTools disponible ici : timer = durée en minutes et secondes durant laquelle les ampoules vont restées allumées, puis s'éteindre automatiquement icon = n° d'ID de l'icônes qui s'affichera lors de l'activation du scénario Vous pouvez ajouter autant de bouton que vous le souhaitez en respectant les principes ci-dessus. Si vous cherchez une liste de toutes les icônes disponible pour agrémenter vos boutons. Vous les trouvez toute ici : https://apps.timwhitlock.info/emoji/tables/unicode#block-3-transport-and-map-symbols Utilisation du VD : Vous pouvez tout simplement cliquer sur un des boutons de de scénario pour le lancer, il s'arrêtera lorsque vous cliquerez le bouton Off. Le timer est optionnel. Avant de cliquer un bouton d'un scénario, vous pouvez paramétrer le Timer en utilisant les boutons haut et bas (minutes et secondes). Ce qui aura pour effet de définir une durée d'exécution de celui-ci. Vous pouvez également relancer le dernier scénario en cliquant sur le bouton On Durant l'exécution d'un scénario, vous avez la possibilité d'en lancer un autre. Cela arrêtera le précédent. Vous pouvez évidement commander le VD depuis une scène ou un autre VD en simulant un clic sur le bouton correspondant au scenario voulu. Préalablement à la simulation du clic sur le bouton correspondant au scenario voulu, vous pouvez également renseigner le Label lblTimer avec une durée (au format mm:ss) pour définir une durée d'exécution de celui-ci Vous pouvez utiliser GEA pour lancer un scénario tout en utilisant le timer. Exemple : % properties 243 ui.lblEtat.value GEA.add({{"Label", 243, "lblEtat", "Alarme"}, {"Time", "Sunset-15", "Sunrise+5"}}, -1, "Détection présence devant porte garage", {{"Label", 326, "lblTimer", "01:00"}, {"VirtualDevice", 326, 11}, {"VirtualDevice", 243, 4}}, "Détection devant porte garage, activation lumières terrasse") -- Si la valeur du label "lblEtat" du VirtualDevice numéro 243 est = à "Alarme" et qu'il fait nuit -- Assigne la valeur "01:00" au label lblTimer du VD 326 -- Appui sur le bouton 10 du VD 326 pour lancer l'allumage des ampoules HUE sur la terrasse -- Appui sur le bouton 4 du VD 243 pour désactiver l'alarme du détecteur de mouvements Explications sur les différents bouton du VD Versions : V1.0 : du 18/02/2018 -> Intialisation du projet V1.1 : du 19/02/2018 -> Ajustement des couleurs V1.2 : du 19/02/2018 -> Simplification de la gestion des icônes. Plus de nécessité de renseigner les icônes dans les boutons de gestion du Timer Tout se fait dans le bouton btUpdate. Possibilité d'ajouter de nouvelles icônes ultérieurement sans qu'elles obligatoirement chargées dans un ordre séquentiel. V1.3 : du 19/02/2018 -> Correction d'un bug sur le scenario des couleurs de l'arc en ciel (colorloop). V1.4 : du 24/02/2018 -> Ajout d'une nouvelle fonction qui permet de lancer les scènes disponibles et configurables depuis votre application Philips HUE. Cette fonction est disponible via les variables de configuration des scénarios suivantes : effect = effect sur l'allumage de l'ampoule (none=sans effet, blink=Clignotant, colorloop=Couleurs de l'arc en ciel, scene=une scène disponible et configurable depuis votre application Philips HUE) effectId = id de la scène que vous pouvez trouver par le biais de mon VD HUE InfoTools Modification de la configuration pour accéder à vos ampoules. Il suffit de renseigner la variable Hue_Light_VD_Id = 264 -- ID d'un des Devices de type Ampoule HUE créé par le plugin Philips HUE Plus nécessaire de connaitre votre username de votre système HUE, il est automatiquement retrouvé via les propriétés du plugin Philips HUE configuré ci-dessus. Idem pour l'identifiant du groupe d'ampoule. Mise à jour automatique du VD selon l'état On/Off de l'ampoule configurée selon la variable Hue_Light_VD_Id Evolutions à venir : Pouvoir piloter une seule ampoule A voir selon vos suggestions Dernière version du VD : HUE_Manager.vfib-1.4.json
  10. Version 1.3.2.0 (03-05-2017) - Multi (Fr/En) Compatible : Windows Vista, Win7 32/64 bits, Windows 8.xx Mac OSX 10.8.x avec Virtual machine "Parallels Desktop" et Windows 7 64 bits. Mac OSX 10.9.x avec XP virtual machine / VirtualBox. Compatible HC2 V3.x / HC2 V4.x / HCLite V4.x Cette application a été réalisée dans le but d’aider la communauté gravitant autour du système Home Center 2 Fibaro, de l’installateur à l’utilisateur final en passant par le développeur souhaitant faire évoluer l’écosystème du HC2. Le HC2 Toolkit est basé pour une grande partie sur le SDK .Net qui est mon premier projet en rapport avec l’écosystème Fibaro. Dès l’origine l’application a été prévue pour être multilingue et se limite pour l’instant à l’anglais qui est la langue première du projet afin d’être accessible au plus grand nombre, au français c’est un minimum et je l’espère bientôt au Polonais. Grâce au Toolkit, il est possible de mieux comprendre comment fonctionne l’API du HC2 et d’obtenir rapidement des informations difficilement accessibles depuis l’interface web sur les périphériques enregistrés, les scènes, les périphériques virtuels, les utilisateurs etc. Des possibilités de sauvegardes avancées sont aussi disponibles et seront complétées au fil des mises à jour. Il est déjà possible d’exporter l’intégralité des scènes d’un seul click même les scènes « BLOC », d’exporter tous les codes LUA à la demande : scènes, périphériques virtuels. L’import et l’export des périphériques virtuels sont aussi supportés. Une exportation spécialement développée à des fins d’analyse et de comparaison des périphériques est disponible. La plupart des données brutes de l’API peuvent être chargées et enregistrées soit au format JSON soit au format XML pour l’étude et le développement. Certaines actions sont implantées comme lancer une scène, activer ou désactiver un « binary switch », le « ping » à distance ou en local du HC2, la vérification de l’accessibilité du serveur du HC2, la découverte automatique sur le réseau. Le Toolkit possède un éditeur LUA intégré ou tous les espaces de nom Fibaro sont documentés et les méthodes accessibles en écrivant le code (proposition de code automatique). Un système de « snippets » est aussi disponible et propose des extraits de code (aide à la programmation), de simples instructions conditionnelles, boucles à des fonctions avancées. La liste des fonctionnalités est non exhaustive et en constante évolution, la road map est déjà bien remplie ! Je compléterais cette note lorsque j’aurais un peu plus de temps devant moi. Version 1.3.2.0 - HCToolkit_1.3.2.0.zip - Ajout du support du Polonais (Un grand Merci à REMS du blog Domotique-Home.fr) - Ajout de l'accès aux manuels et guides par clic droit sur un périphérique (Motion Sensor, Door/Window Sensor, Smoke Sensor, Wall Plug, d'autres modules à venir...) - Correction de bugs et améliorations - Correction : Types manquants - Correction : Traductions - Amélioration : Mise à jour des dépendances Version 1.3.1.6 beta - Nouveau: Le code LUA (scènes) peut-être édité puis poussé vers le contrôleur (Publish/Reload) - Nouveau: Création de pièces en lot (plusieurs en 1 X avec un même nom prédéfini), Edition (nom, section), Suppression, Exportation, Importation - Nouveau: Création de scènes en lot, Edition (nom, pièce, section, etc.), Suppression, Exportation, Importation - Nouveau: Création de section en lot, Edition (nom), Suppression, Exportation, Importation - Amélioration : Périphérique: Edition du nom, de la section, de la pièce, Suppression - Amélioration : Périphériques virtuels: Edition (nom, pièce), Exportation, Importation - Amélioration : Amélioration significative du traitement des données - Correction : Bogue mineur de l'installeur - Correction : Traductions - Correction : Types manquants - Correction : Bogues mineurs Version 1.2.0.3 - Correctif: Téléchargement des icônes des appareils (devices) : l'option "all" ne permet pas le téléchargement et il faut sélectionner à la main - Correctif: Au lancement on obtient l'interface en anglais bien que "French" soit présélectionné - On re-sélectionne French et c'est bon... jusqu'au redémarrage suivant - Correctif: Problème cosmétique dans la fenêtre "Paramètres de l'application" au niveau du "temps en secondes" Version 1.2.0.1 Ajout : Il est maintenant possible de « filtrer » l’enregistrement des icônes par type et / ou basetype depuis le « Menu Données » / « Appareils » / « Télécharger Toutes les Icônes » Amélioration : Nouvelle convention de nommage pour l’enregistrement des icônes. Exemple : 18-IconID[1012]-DeviceID[31]-Pioneer VSX-2021.png Amélioration : Affiche des noms de pièces dans la vue « Appareils » Correction : Mauvais chemin utilisé par l’application pour la commande «Périphériques virtuels » / « Sauvegarder tous les périphériques » Correction : Problème avec l’aperçu d’impression dans l’éditeur LUA Correction : Affichage du modèle de paramètres (régression HC2 V4.05X et >) Correction : Affichage des icônes « Appareils » et « Pièces » (régression HC2 V4.063 et >) Amélioration : Mise à jour des dépendances (librairies utilisées par le projet) Attention : Le Frameworks .NET 4.5.2 de Microsoft doit être installé (https://www.microsoft.com/fr-FR/download/details.aspx?id=42642). Notez que .NET Framework 4.5 n'est pas pris en charge sur Windows XP. Version 1.1.0.6 - Ajout: Nouvelle boîte de dialogue pour afficher les associations d'un périphérique. - Ajout: Nouvelle boîte de dialogue pour afficher les paramètres d'un périphérique. - Ajout: Onglet "Plugins" - Ajout: Affichage de la propriété "Configured" dans le tableau des périphériques. - Amélioration: Info-bulles pour le type et le basetype interne pour les périphériques et les plugins. - Amélioration: Affichage d'informations sur les interfaces utilisées dans les propriétés et les actions. - Amélioration: La boîte de dialogue "Template (Modèle de périphériques)" à été retravaillé. - Correction: Les descriptions dans la boîte de dialogue "Template (Modèle de périphériques)" n'utilisait la langue sélectionnée dans l'interface - Correction: Interfaces manquantes. - Correction: Propriété "Configured" toujours vide dans le rapport de configuration. - Correction: Propriétés manquantes (batteryLevel, configured, parentID, nodeID) suite à la version V1.1.0.0 - Correction: Traductions - Correction: Bogues mineurs Version 1.1.0.0 Beta - Support de la V4 du HC2 (reste compatible avec l'ancienne V3) - Amélioration: Détection automatique de la version de l'API. - Amélioration: Performance de la communication réseau. - Amélioration: Nouveau mécanisme d'exportation de données, plus rapide et plus lisible. - Amélioration: Sauvegardez du "crashdump" dans le dossier "documents utilisateur" pour éviter l' exception "UnauthorizedAccess". - Nouveau: Exportation des variables globales au format XML, une par une ou toutes à la fois dans le menu "Variables globales". - Nouveau: Enregistrer toutes les icônes, menu "Pièces", "Scènes", "périphériques". - Nouveau: Ajout de la commande 'UpdateMeshNetwork' dans le menu périphérique. Peut aider les utilisateurs du HClite - Nouveau: Affichage du nombre de plugins / NÅ“ud de plugins - Nouveau: indentation automatique du code dans l'Éditeur LUA. - Nouveau: option Afficher / Masquer les numéros de lignes dans l'éditeur LUA. - Nouveau: Possibilité de changer la taille de la police dans l'éditeur LUA. - Nouveau: Possibilité de changer la famille de police dans l'éditeur LUA. - Correction: Traductions manquantes. - Correction: Bogues mineurs. Un fil sur le Toolkit est consultable aussi sur le forum officiel ici http://goo.gl/pKA35K
  11. Bonjour à tous, Je suis dans le regret de constater que ma HC2 plante de manière assez régulière et sans raison, ni même signes avant-coureurs. Alors que mes scripts sont automatiquement désactivés lorsqu'ils ne sont pas utiles, je constate avec stupéfaction que ma HC2 était beaucoup plus stable lorsque j'avais un script qui tournait chaque seconde 24/24h (qui renvoyait les commandes d'extinction d'éclairage). Très souvent en déplacement, j'aimerais pouvoir redémarrer la HC2 à distance. Voire même, idéalement, qu'elle puisse se redémarrer automatiquement (Elle-même ? Ou via un Syno ?). En effet, encore il y a quelques minutes, j'ai dû appeler quelqu’un pour lui demander d'arrêter/redémarrer la HC2 qui était plantée (sans erreur particulière). Ce n'est pas des plus pratiques... Seulement voilà, toutes les solutions exploitées semblent désormais périmées ! Ma box était plantée et aucun lien n'a été capable de lui forcer un redémarrage, pourtant le lien suivant était bien prometteur ! Comment gérez-vous cela de votre côté ? J'ai bien vu que de nombreux utilisateurs avaient une scène qui vérifiait régulièrement la consommation de la RAM et prévoyaient un reboot lorsque la RAM utilisée était trop importante. Mais n'avez-vous pas également une solution de reboot en cas de plantage complet à partager ? Merci par avance :-)
  12. Nespresso Manager Préambule : Vous trouverez ci-dessous le nouveau Virtual Device qui permet de suivre la consommation de café sur une machine Nespresso (en distinguant la taille des cafés réalisés). A l'origine de projet : Je cherchais une solution pour identifier au moment du réveil qui est la personne entre moi et mon épouse qui vient de se lever (sachant que nous nous levons pas forcement au même moment). Avec pour objectif de réaliser des scenarios personnalisés en fonction de la personnes qui vient de se lever (ex: envoyer un message vocal Sonos personnalisé annonçant la météo). Ne disposant pas de caméra avec reconnaissance de visage, je me suis demandé quoi utiliser d'autre. J'ai donc recherché qu'elle est l'action que nous réalisons tous les 2 chaque matin au réveil et qui est spécifique a chacun de nous 2. En faite, c'est un café. Mon épouse se fait un café long et moins un café court. Je sais c'est très spécifique, mais bon ça le fait quand même. Pour ce faire, j'utilise un Wall Plug et je mesure la durée et la consommation électrique pour déterminer la taille du café fait. J'ai essayé de faire ces mesures avec GEA, mais la variation du nombre de Watt est trop inconstante et la durée de traitement est trop courte (café court > 30sec. cf. Cycle GEA de 30sec.) Dun coup, j'ai décidé de créer une VD et une scène de management de ma machine Nespresso. Le Projet : Le but du projet consiste à : Identifier l'heure des premiers cafés réalisés chaque jour selon les 3 programmes (Court, Moyen, Long) disponibles sur ma machine Nespresso Comptabilisé le nombre de cafés réalisés selon les 3 programmes D'identifier l'horaire et le type de café réalisée Vos idées/suggestions sont le bienvenues Pré-requis : Disposer d'une machine à café (Nespresso ou autre type avec le même principe de fonctionnement) Disposer d'un Wall Plug qui mesure la consommation électrique (ex: FGWPE-102) Installation : Télécharger, installer et configurer le Virtual Device ci-dessous (pour la dernière version) Télécharger, créer et configurer la Scène ci-dessous (pour la dernière version) Configuration : Du Virtual Device : Dans l'onglet Avancé de VD importé, il convient de : De nommer votre VD (ex. : Nespresso) à votre convenance De désigner la pièce ou se situe votre machine à café. Ne pas oublier de sauvegarder Cf. image ci-dessous : Charger les icônes ci-dessous : On Off Modifier l'icône de votre VD, en associant celle représentant l'état "Off" Modifier l'icône du bouton "❌ Réinitialisation" votre VD, en associant celle représentant l'état "Off" Ne pas oublier de sauvegarder De la scène associé au VD : Dans l'onglet Avancé de la scène importée, il convient de : Créer votre scène Nommer votre scène (ex. : Nespresso) à votre convenance. De désigner la pièce ou se situe votre machine à café. Paramétrer à un le Max. running instances Paramétrer à "Automatic" Run scene Charger et modifier l'icône de votre scene, en associant celle représentant l'état "Off" Ne pas oublier de sauvegarder Cf. image ci-dessous : Configurer les variables de votre scène : Cf. image ci-dessous : Ne pas oublier de sauvegarder Principe d'analyse des données : La détermination de la longueur du café se fait à partir de l'identification des différentes la phase de réalisation du café. Voir schéma ci-dessous : Phase 1 : Préchauffage de la machine (optionnelle). Elle ne s'exécute pas si vous venez de faire un café. Phase 2 : Réalisation du café (le café coule). C'est celle-ci qui nous intéresse et plus particulièrement sa durée Phase 3 : Nouvelle phase de préchauffage dont le but, je suppose est d'anticiper la réalisation d'un prochain café. Cette phase doit être ignorée. Pour identifier le début (TO) la phase 2, il convient déjà de savoir s'il y a eu une phase 1 de préchauffage. S'il y eu une phase de préchauffage : Il convient de l'ignorer en identifiant la fin de préchauffage. Soit une consommation inférieure à 2 watts (voir variable Nespresso_WP_MinPowerEndPhase) Puis identifier l'instant du premier pic de température (TO dans le schéma) qui suite et qui est supérieur à un seuil de consommation à 700 watts (voir variable Nespresso_WP_MinPowerCafeCycle) S'il n'y pas eu une phase de préchauffage : Identifier l'instant du premier pic de température (TO dans le schéma) qui est supérieur à un seuil de consommation à 700 watts (voir variable Nespresso_WP_MinPowerCafeCycle) Pour identifier la fin (T(fin)) de la phase 2, il convient D'identifier une consommation inférieure à 2 watts (voir variable Nespresso_WP_MinPowerEndPhase) De repérer l'instant du dernier pic avec un seuil de consommation supérieur à 700 watts (voir variable Nespresso_WP_MinPowerCafeCycle) Enfin , pour déterminer la durée de réalisation du café, cela correspond à l'écart en seconde entre T(fin) et T0. CQFD De GEA version V6.06 (à partir de) : Pour lancer mes scénarios, j'utilise GEA en interceptant les changements de valeurs les labels du VD. Envoi de messages vocaux annonçant la Météo en préfixant l'annonce par un bonjour en citant la personne qui vient de se lever (selon la taille du café qu'elle vient de se faire). Une seule fois (si le label est non vide). Remise à zero à 4h du matin des valeurs contenues dans les 3 premières valeurs du VD (horaire des premiers cafés) pour que la matin les messages vocaux fonctionnent à nouveau. (optionnel) Pour gérer automatiquement l'extinction et de l'allumage du Wall Plug de la machine Nespresso afin d'économiser l'électricité (0,3 watts en permanence !) Pour configurer GEA, il convient de : Mettre l'en-tête de GEA ajouter les lignes suivantes, en modifiant le numéro afin de le faire correspondre à votre VD chargé précédemment : (350 dans mon cas) %% properties 350 ui.lblCafeShort.value 350 ui.lblCafeMedium.value 350 ui.lblCafeLong.value Si utilisation de l'option de gestion automatique du Wall Plug : Ajouter également dans la section %% Properties l'ID de votre détecteur de mouvement situé dans votre cuisine. (89 dans mon cas) %% properties 89 Déclarer votre détecteur de mouvement situé dans votre cuisine dans le tableau "local id = {" (MOUVEMENT_CUISINE = 89 dans mon cas) local id = { MOUVEMENT_CUISINE = 89, ... Ajouter à vos linge GEA les lignes suivantes : GEA.add({ {"Label",id["VD_Nespresso"], "lblCafeShort", ""}, {"Label",id["VD_Nespresso"], "lblLastTypeCafe", "Court"}, {"Weather!", "Temperature" ,""}, {"WeatherLocal!",""} }, -1, "", { {"Inverse"}, {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Bonjour Michel, nous sommes le #datefull# il fait dehors {tempexttts} et le temps est #value[4]#", 30} }, "Nespresso : Café court") GEA.add({ {"Label",id["VD_Nespresso"], "lblCafeMedium", ""}, {"Label",id["VD_Nespresso"], "lblLastTypeCafe", "Moyen"}, {"Weather!", "Temperature" ,""}, {"WeatherLocal!",""} }, -1, "", { {"Inverse"}, {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Bonjour Michel, nous sommes le #datefull# il fait dehors {tempexttts} et le temps est #value[4]#", 30} }, "Nespresso : Café moyen") GEA.add({ {"Label",id["VD_Nespresso"], "lblCafeLong", ""}, {"Label",id["VD_Nespresso"], "lblLastTypeCafe", "Long"}, {"Weather!", "Temperature" ,""}, {"WeatherLocal!",""} }, -1, "", { {"Inverse"}, {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Bonjour Gaby, nous sommes le #datefull# il fait dehors {tempexttts} et le temps est #value[4]#", 30} }, "Nespresso : Café long") GEA.add({"Time", "04:00"}, 30,"", { {"Label",id["VD_Nespresso"], "lblCafeShort", ""}, {"Label",id["VD_Nespresso"], "lblCafeMedium", ""}, {"Label",id["VD_Nespresso"], "lblCafeLong", ""} },"Nespresso : Réinitialisation des infos du VD") -- WP Nespresso Marche/Arrêt ------------------------------------------------ -- Si la détecteur Cuisine est activé on allume le WP de la machine Nespresso GEA.add({{id["WP_Nespresso"]}, {id["MOUVEMENT_CUISINE"]}}, -1 , "", {{"Inverse"}, {"turnOn", id["WP_Nespresso"]}}, "Mise en marche du Wall Plug Nespresso") -- Eteindre le WP de la machine Nespresso si pas de mouvement dans la cuisine de plus de 5 mn. GEA.add({{id["MOUVEMENT_CUISINE"]}, {id["WP_Nespresso"]}}, 5*60, "", {{"Inverse"}, {"turnOff", id["WP_Nespresso"]}, {"Repeat"}}, "Extinction du Wall Plug Nespresso") Si utilisation de l'option de gestion automatique du Wall Plug : Modifier les lignes GEA de gestion du Wall Plug et remplacer MOUVEMENT_CUISINE par le nom que vous aurez donné à votre détecteur de mouvement situé dans la cuisine. Utilisation du VD : Explications sur les différentes informations et actions disponibles sur le VD Versions : V1.0 : du 18/03/2018 -> Intialisation du projet V1.1 : du 20/03/2018 -> Changer de méthode d’analyse pour traiter la phase de préchauffage qui est variables. Je suis parti sur un chargement complet des données en mémoire puis une ’analyse des données pour déterminer les différentes phase pour pouvoir isoler celle qui correspond à la partie ou le café coule réellement (la partie qui permet de déterminer sa longueur). Evolutions à venir : Optimisation du code pour gérer les phases de préchauffage de l'eau: Fait A voir selon vos suggestions Dernière version du VD : VD Nespresso V1.00.vfib.json Dernière version de la scène : Scene Nespresso v1.10.lua
  13. MAM78

    Notification Stop

    Notification Stop Préambule : Je sais pas si comme moi, il vous arrive d'en avoir marre de recevoir des notifications (Mail, Push, Vocale) en provenance de votre HC2. Comme par exemple (en provenance de GEA, dans mon cas) : Vous travaillez dans votre garage et vous laissez la porte de votre garage volontairement ouverte, mais comme vous avez mis en place un système de notification vocale et push pour vous signaler que la porte vient d'être ouverte, fermée, ouverte depuis 20 min., ... là votre WAF vous dit qu'elle en a marre de recevoir ces notifications régulièrement. Vous vous dites mince, je vais devoir intervenir dans mon code de la HC2 pour suspendre ces notifications. Mais comme vous comptiez bosser tranquillement dans votre garage, ce n'est pas le moment de faire du code Vous avez une pile d'un de vos détecteurs dans la maison qui vient de tomber en rade de batterie et toute la journée au boulot vous recevez des Push et des mails vous rappelant que personne n'a changer vos piles en votre absence. J'ai donc décidé d'ajouter en externe à GEA (dans mon cas) des conditions de suspension de certaines notifications. Le Projet : Créer un VD sans aucune prétention permettant de conditionner les notifications principales que je déclenche depuis GEA. Pour chacune de mes catégories de notifications, je gère 4 états : On = Notification activée en permanence Tmp = Notification suspendue pour une durée que vous déterminerez dans GEA Day = Notification suspendue pour la journée entière Off = Notification arrêtée jusqu'à la prochaine activation faite manuellement via le VD. Pré-requis : aucun si ce n'est que d'installer/configurer le VD et l'adapter à vos besoins et addapter vos codes pour intégrer la prise en compte des conditions que vous aurez définies. Installation : Télécharger et installer le Virtual Device ci-dessous (dans sa dernière version) Télécharger l'icône ci-dessous ou fabrique la votre Associez l'icône au VD et à chacun des boutons du VD, ce sera plus jolie Configuration : Du Virtual Device : Dans l'onglet Avancé de VD importé, il convient par notification à contrôler de : Ajouter un label qui va contenir l'état de la configuration de votre notification Recommencer l'opération pour chacune de vos notifications que vous souhaitez contrôler/configurer. Ne pas oublier de sauvegarder régulièrement votre nouveau VD De vos codes générateurs des notifications : Adapter leur code pour prendre en compte les conditions (On, Tmp, Day, Off). Ne pas oublier de mettre en place le systèmes qui va repasser à On les labels une fois à l'achèvement de la durée que vous aurez déterminée pour les états Tmp et Day. Dans mon cas j'utilise GEA pour ça. Utilisation du VD : Utiliser le premier bouton pour sélectionner la notification que vous souhaitez modifier. A chaque clic la sélection passe à la ligne suivante. Puis utiliser l'un des 4 autres boutons pour modifier l'état. Donner l'accès au VD à votre WAF pour son autonomie et pour vous votre tranquillité Versions : V1.0 : du 19/04/2018 -> Intialisation du projet V2.0 : du 20/11/2018 -> Simplification du VD avec une ligne de boutons qui permet de gérer l'ensemble les lignes (Labels) Evolutions à venir : Fournir quelques exemples de Lignes GEA utilisant et mettant à jour le VD Notification Setup A voir selon vos suggestions Dernière version du VD : VD : Notification_Stop.vfib V2.0.json Icône :
  14. ADN182

    Jeedom To HC2

    Bonjour, Petit Tuto pour vous aider à faire commniquer les modules de votre Jeedom avec votre HC2. Je voudrais remercier tout d'abord les personnes sans qui cela ne serait jamais arrivé @Lazer @Steven @sebcbien et toute la communauté... But : Le but de ce Tuto est d'interconnecter les devices Jeedom vers la HC2 et uniquement dans ce sens ! (pour l'instant) Mon besoin initiale est d'interconnecter ma centrale d'alarme disposant de capteurs RF (Porte, Mouvement) avec ma HC2 ne faisant pas de RF... Pour que la gestion de l'alarme soit faite par une seule et même interface. Et pour bénificier des capteurs RF (moins couteux et déja présent) afin de les utiliser dans des scénarios de vie. Après avoir lu le post de @sebcbien sur Jeedom je me suis dit : j'ai trouvé une solution pouvant répondre à mon besoin j'ai donc fait l'acquisition d'un module RFXCom 433Mhz et Raspberry. Mon but n'est pas de remplacé ma HC2 mais de lui rajouter la "Techno" RF sans avoir à "gérer" deux box. Et pourquoi pas utiliser les avantages de Jeedom par la suite... Concept : Jeedom va envoyer pour chaque modification de module (capteur pour ma part), un appel (GET) à l'API Fibaro pour mettre à jour un label d'un Virtual Device. Cette modification appelera une Scène qui se chargera de convertir les valeurs données par Jeedom en valeur exploitable pour la HC2 et mettra à jour le device concerné. Alors pourquoi un Device et une Scène pour modifier les propriétées d'un device ? Parce que Jeedom a ma connaissance ne fait pas de requête de type PUT. Celle-ci permette de mettre à jour les propriétées d'un device de notre HC2. De ce fait obligé de "feinté" grace à l'astuce de @Steven (Voir Post Ici) Capteur Fenètre ===> RFXCom ====> Jeedom =========> VD Update HC2 ======> Scène Update HC2 ==========> Modification Value Fake Device RF USB API HTTP LUA LUA (API) Pré-Requies : Il faut nommer les modules dans Jeedom à l'identique dans la HC2 et les mêttre dans la même pièce. C'est ce qui va permettre d'avoir une seul et unique requêtes et de pouvoir se dispenser de connaitre l'ID HC2. Sommaire : Création d'un Fake Device Création d'un Virtual Device Création d'une Scène Mise en place de l'intéraction dans Jeedom 1. Création d'une Fake Device J'utilise ici la procédure de @Lazer (Voir Post ici) En voici les grandes lignes : on inclue un module (du type qu'on souhaite (consommation, température, détecteur, etc)) on le reset (via appui long sur le bouton, selon la méthode décrite dans la doc) sans l'exclure de la HC2 il passe en noeud mort en décoche la case 'marquer comme mort' => le module ne sera plus jamais mort, même si il n'existe plus en peut l'utiliser à vie pour updater ses propriétés via l'API Puis on recommande la procédure décrite ci-dessus autant de fois qu'on souhaite, afin d'avoir une infinité de modules, qui remplacent parfaitement les plugins. Je n'ai aucun mérite juste fait un copier coller de ton post Merci a Lui ! 2. Création d'un Virtual Device Création d'un VD : Nom : Updater Label : Update.Device ID Label : UD Noter l'ID de votre Virtual Device il nous servira pour la suite, on prendra pour exemple : 333) 3. Création d'une Scène Création d'une Scène en Lua : Nom : Updater Ajouter le code ci-dessous en y modifiant l'ID de votre VD dans les "properties" de la Scène. - OLD - Scène Utilisant l'ID du device. - New - Scène utilisant le Nom des devices Merci @Steven, @sebcbien, @Lazer pour ces parties Test : Vous pouvez d'ors est déjà tester si ce que l'on vient de créer fonctionne. Il suffit tout simplement de rentré l'url suivante dans votre Navigateur en prenant soin de la modifier et compléter au préalable avec vos informations. http://<user>:<password>@<IP_DE_MA_HC2>/api/callAction?deviceID=333&name=setProperty&arg1=ui.UD.value&arg2={idFakeModuleHC2:1} http://<user>:<password>@<IP_DE_MA_HC2>/api/callAction?deviceID=333&name=setProperty&arg1=ui.UD.value&arg2=[Garage][Porte Celier][Alerte]:1 Vous devriez donc voir la porte s'ouvrir si c'est un capteur de porte. 4. Mise en place de l'intéraction dans Jeedom Concernant la partir Jeedom rien de plus simple il suffit que dans chaque device (section commande du device) de placer l'url ci-dessous, en spécifiant l'ID du Fake device HC2 associé : http://<user>:<password>@<IP_DE_MA_HC2>/api/callAction?deviceID=333&name=setProperty&arg1=ui.UD.value&arg2={idFakeModuleHC2:#value#} http://<user>:<password>@<IP_DE_MA_HC2>/api/callAction?deviceID=333&name=setProperty&arg1=ui.UD.value&arg2=#humanname#:#value# Petite astuce si vous avez un mot de passe contenant un @ il suffit de le remplacer par le caractère suivant : %40. En considérant que l'utilisateur est : user que le mot de passe de celui-ci est p@ssword cela donne l'url ci-dessous : http://user:p%40ssword@<IP_DE_MA_HC2>/api/callAction?deviceID=333&name=setProperty&arg1=ui.UD.value&arg2=#humanname#:#value# Dans Votre Equipement aller dans la section "Commandes" Puis dans la section avancée du module d'Alerte (petit rouage sur la droite) Insérer la requête dans la ligne Push Merci @sebcbien pour cette partie
  15. manuc0

    Télécharger pack d'icônes

    Bonjour Est il possible de télécharger de multiples icônes (scènes, virtuels, devices) en une opération ? Si oui comment faire Merci
  16. ericl78

    SOS réponse HC2 extrêmement lente

    Bonsoir Voilà, depuis trois heures de temps, ma hc2 répond très lentement. Je lui donne un ordre par un module zwave ou je clique sur l'interface web pour allumer une lampe, le temps de réponse est au minimum de 30 à 45 secondes. J'ai rebouté ma hc2, regardé la ram utilisée : 30%, la cpu < 10% et toujours la même chose. Je n'ai absolument rien modifié en paramétrage. J'ai 60 modules zwaves configuré sur ma HC2 mais depuis trois années de service, jamais eu ce type de problème. Avez vous déjà rencontré cela ? Merci d'avance si vous avez une idée
  17. sebhavana

    Sauvegarde / Redondance HC2

    Bonjour à tous, Je cherche une solution pour une bascule relativement rapide en cas de panne, ou crash définitif de ma HC2 qui pilote une grosse partie de mon habitation. J'ai parcourus le forum, j'y ai trouvé plusieurs solutions dont la fameuse copie du dossier "backup" d'une clé recovery vers l'autre. Mais ces éléments de réponse datent un peu, depuis je suis en v4.58 et il y a la solution de "sauvegarde locale" et de "sauvegarde cloud" qui sont apparues. Si j'ai bien compris (corrigez moi si je me trompe) : - la sauvegarde locale ne peut être restaurée que sur le HC2 sur laquelle elle a été effectuée en raison du numéro de série qui lui est attachée. - la sauvegarde cloud permettrai le transfert de la totalité de la config (scènes, VD,...) sur une nouvelle HC2 sous réserve qu'elle soit sur le même Fibaro ID, et dans la même version bien entendu que la sauvegarde. Quelle solution s'approche le plus du "mirroring" selon vous au jour d'aujourd'hui ? La solution de "Passerelle" proposée par fibaro ne propose qu'une "extension" de la HC2#1 "master" avec la HC2#2 ? En aucun cas une recopie à l'identique ? Comment deux HC2 peuvent-elles "cohabiter" avec la même config ? Le chargement de la sauvegarde "cloud" de la HC2#1 sur la HC2#2 entraîne-t-elle une désactivation de la HC2#1 ? Merci par avance pour vos avis et conseils ;-) Seb
  18. Bonjour à tous, depuis quelques temps et petit à petit je tente de domotiser la gestion de ma piscine grâce à la HC2 de fibaro. malheureusement le chemin est semé d'embuche... j'en suis à l'étape de gestion de la désinfection et du niveau de PH du bassin. l'été dernier j'ai tenté une solution simple que je vais tenté de vous décrire ci-dessous (mais je vous le dis tout de suite à ça ne fonctionne pas) : 1) partie physique : - une chambre de mesure en parallèle du système de pompe avec un capteur de température (DS18B20), une sonde PH et une sonde REDOX. - un module FGBS001 de fibaro connecté au capteur de température DS18B20 - un adaptateur Adaptateur pH/ORP 1130 (https://www.gotronic.fr/art-adaptateur-ph-orp-1130-12112.htm) connecté à la sonde PH - un adaptateur Adaptateur pH/ORP 1130 (https://www.gotronic.fr/art-adaptateur-ph-orp-1130-12112.htm) connecté à la sonde REDOX - un module FGRGB-101 configuré en capteur 0-10V sur 4 entrées. 2 entrées sont connectées aux adaptateurs PH/ORP 1130. - un module FGS-222 connecté (sur chaque sortie) à 2 pompes doseuses (circuit de dosage du PH- et circuit de dosage du chlore) - un module FGS-222 connecté à la pompe de filtration 2) partie logiciel : j'ai développé plusieurs petits programmes sous forme de scène qui gère les fonctions suivantes : - Fonctionnement de la filtration liée à la température du bassin. 4 cycles par jour; temps de filtration = température /2 / 4 - Mesure des niveaux de PH et de REDOX du bassin. Mesure du voltage en entrée du FGRGB-101 puis transformation à l'aide des formules adéquates en valeur de PH et de REDOX (affichées dans des modules labels) - Gestion de la désinfection du bassin : + la première fonction traite du niveau de REDOX dans le bassin. je simule un comportement de régulateur PI pour commander une injection de chlore liquide à chaque cycle de filtration en fonction de la mesure de REDOX du bassin. + la seconde fonction traite du niveau de PH dans le bassin. je simule un comportement de régulateur PI pour commander une injection de PH moins à chaque cycle (en différé du chlore pour ne pas perturber les éléments chimiques) en fonction du niveau de PH du bassin. ça ne vous aura pas échappé que je ne gère pas l'injection de PH+ mais dans ma région c'est quasi inutile. alors me direz-vous pourquoi ça ne fonctionne pas??? tout simplement parce que le module FGRGB-101 possède une résolution catastrophique de 0,1V. ce n'est pas suffisant pour capter efficacement les variations des sondes (plus exactement les niveaux de potentiel en sortie des adaptateur PH/ORP 1130). Pour vous donner une idée, on capte la variation de PH avec une résolution de 0,4PH et le redox avec 70mV. il faudrait à minima 0,1PH et 10mV pour une réelle efficacité. Donc j'en suis arrivé à la conclusion qu'il me faut remplacer le module FGRGB-101 par un élément plus efficace et capable de remonter les mesures au HC2. je me suis tourné vers arduino (plus exactement un Arduino MEGA 2560 R3 et un shield wifi RN171). La résolution de lecture des entrées analogiques est bien meilleure et parfaitement adaptée à mon besoin. c'est maintenant que les choses se compliquent! j'essaye de pousser une requete HTTP du module arduino vers un module virtuel dans le HC2 pour transférer les mesures des 2 sondes. malheureusement, je n'y arrive pas. dans un premier temps, je tente une requette test qui modifie l'état d'une lampe dans un module fibaro. du coté de l'arduino cela semble fonctionner sans problème mais côté HC2 ça ne fonctionne pas. je vous mets ci-dessous le code pour la requette que je tente de construire dans l'arduino : if (wifly.open(server, 80)) { Serial.println(F("Making HTTP Request to HC2...")); // Make a HTTP GET Request to HC2: wifly.print(F("POST /api/callAction?deviceID=39&name=turnOn")); wifly.println(F(" HTTP/1.1")); wifly.println(F("Host: 192.168.1.20")); wifly.println(F("Authorization: Basic XXXXXXXXXXXX")); // Authorization: Basic test:test wifly.println(F("Content-Type: text/html")); wifly.println(F("Connection: close")); wifly.println(); Serial.println(F("HTTP Request Send to HC2")); /*wifly.stop (); */ } else { Serial.println(F("Connection Failed.")); } (nota : j'ai volontairement modifié le login et mdp en base 64 par "XXXXXXXXXXXX". bien évidemment, j'utilise mon login et mdp correctement transcodé en base 64 pour la vraie requette) si ce sujet trouve une solution, cela donnera peut-être quelques idées à certain heureux possesseur d'une piscine... en tout cas merci d'avance de votre aide
  19. DoR.Technique

    HC2 Synology Photo

    Bonsoir, Bon! je trouve tout pour enregistrer en vidéo depuis ma HC2 et mon Syno, mais ...... je voudrais faire des photos Je voudrais prendre une photo de bonne qualité, a chaque fois que ma porte s'ouvre (détecté par la HC2), et que cette photo soit stockée sur le NAS. Pour info, j'ai installé le VD "Synology Surveillance Station v4.4" qui fonctionne a merveille pour prendre des vidéos. Bravo. Comment modifier le VD pour qu'il prenne des photos, stockées sur le Nas ? Merci
  20. cboubou

    Module Virtuel "smartvmc"

    Bonjour la communauté, Je vous propose aujourd'hui mon module virtuel "SmartVMC". Ce dernier me permet de piloter de manière automatique ma VMC en fonction de la qualité de l'air de ma maison : On allume la VMC si le taux moyen d'humidité relative est supérieur à 60% OU si la concentration moyenne de CO2 est supérieure à 1000 ppm. Le traitement s'arrêtera si le taux moyen d'humidité relative est inférieur ou égal à 55% ET si la concentration moyenne de CO2 est inférieure ou égale à 900 ppm. Le but étant de ne pas allumer/éteindre la VMC dès que l'on atteint la limite de 60% ou de 1000 ppm. Les données sur la qualité de l'air (humidité relative et concentration de CO2) sont extraites de ma Netatmo par le biais du plugin idoine disponible dans la V4. Ma configuration matérielle est la suivante : VMC simple flux, hygroréglable, Aldès, MicroWatt. Home Center 2 en version v4.033. WallPlug Fibaro pour piloter la VMC. Station Netatmo avec modules additionnels. Le module virtuel se présente de la sorte : Un visuel des moyennes d'humidité relative et de concentration de CO2. Un bouton permettant d'analyser à l'instant "t" l'air de la maison. Un visuel de l'état actuel de la VMC. Un bouton de marche forcée de la VMC. Un bouton d'arrêt complet de la VMC. Un bouton pour basculer la VMC en mode automatique. La date de la dernière analyse de l'air. Les 4 états différents de la VMC sont les suivants : Marche Forcée Arrêt Complet Auto (En cours...) Auto (Pause) Il est nécessaire de créer 2 variables globales : Une première variable globale "VMC" est utilisée afin de savoir si la VMC est : en marche automatique, en pause, en marche forcée ou arrêtée (Auto, Pause, Forcée, Arrêtée). Une seconde variable globale "RecyclAir" est utilisée afin de savoir si la VMC est déjà en train d'assainir l'air, par le biais de ce traitement (Oui, Non). J'ai commenté le code afin d'en faciliter la compréhension. NB : Il peut être envisageable pour les personnes possédant une VMC à 2 vitesses que le mode "Auto (En cours...)" corresponde à la grande vitesse et que le mode "Auto (Pause)" corresponde à la petite vitesse. Voici les icônes (2 variantes) : Orange => Marche Forcée Rouge => Arrêt Complet Vert => Auto (En cours...) Bleu => Auto (Pause) Les originaux qui m'ont servi de base sont ici : http://www.domotique...zibase/?p=25155 Vous trouverez également de magnifiques icônes pour la Netatmo ici (merci Stef). ChangeLog => v1.0 : Création du module. v1.1 : Ajout du push lors du passage "En cours" <=> "Pause". Modification des conditions du passage au mode "Auto". Ajout d'un contrôle sur l'état du plugin Netatmo pour mode "Auto". SmartVMC.vfib
  21. Bonjour, Je galère toujours énormément pour créer un accès vers la BROADLINK RM MINI 3. J'aimerais pouvoir créer un module virtuel ou quelque chose me permettant de demander à ce périphérique InfraRouge d'envoyer un signal par le biais de la Home Center 2. J'ai regardé un peu partout, notamment sur les sujets de SebCbien concernant : " Mon test Jeedom" mais rien à faire... je ne vois toujours pas comment créer ce VD ... que dois-je écrire ? comment réussir la "programmation" ? Un petit coup de main ne serait pas de refus. Voici les liens que j'ai consultés ... https://www.domotique-fibaro.fr/topic/8330-mon-test-jeedom/?page=8#comment-128135 https://www.domotique-fibaro.fr/topic/8330-mon-test-jeedom/?page=9#comment-128160 https://www.domotique-fibaro.fr/topic/8330-mon-test-jeedom/?page=9#comment-128166 https://www.domotique-fibaro.fr/topic/8330-mon-test-jeedom/?page=14#comment-128978 https://www.domotique-fibaro.fr/topic/8330-mon-test-jeedom/?page=25#comment-132529 Si cela se trouve j'ai déjà la réponse sous les yeux... mais je ne la vois pas ^^ Socorro !!! LOL Merci à tous pour votre aide Aurélien
  22. Scène pour afficher l'utilisation des variables globales Références croisées (xref) Lorsque les développements prennent une certaine ampleur, et en absence d'atelier de développement logiciel, il est utile de de pouvoir rapidement identifier quel morceau de code utilise telle variable (globale dans le cas de la HC2). Ce sujet avait déjà été abordé il y a maintenant quelque temps : Je vous en propose une nouvelle version qui permet : D'obtenir pour chaque variable globale les scènes et VD qui en font usage ; Pour chaque scène et pour chaque VD d'avoir la liste des variables globales utilisées (c'est cela qui est nouveau). Voici un exemple des résultats affichés dans le fenêtre de debug : La scène est un peu longue lors de son exécution, je suis preneur d'idées d'algorithmes plus optimisés. Le code de la scène : --[[ This scene is used to list all the global variables and where they are used. It's a kind of xref. -- 07/02/2017: creation -- 24/10/2019: add scene and virtual devices --]] local startTime = os.time(); local globalVariables = api.get("/globalVariables"); -- Get all globals variables local scenes = api.get("/scenes?type=com.fibaro.luaScene&isLua=true"); -- all the scenes local devices = api.get("/devices?type=virtual_device"); -- and all the virtual devices since for others types there is no lua code function round(num, numDecimalPlaces) return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num)); end -- round function progressBar(progressPct, length) if length ~= nil or length == 0 then length = 20; end progressPct = math.abs(progressPct); progressPct = math.min(progressPct, length); return ' [' .. string.rep("*", progressPct) .. string.rep("_", length - progressPct) .. '] '; end -- progressBar fibaro:debug('<font color="Gold">Analyzing lua code for ' .. #globalVariables .. ' global variables, ' .. #scenes .. ' scenes, ' .. #devices .. ' virtual devices, this may take a while.</font>'); -- Where each global variable is used local txt = '<BR><font color="yellow">'.. string.rep('=', 80) .. '<BR>Globals variables ' .. os.date("%d/%m/%y %X") .. '</font><BR>'; local cnt = 0; for _, glob in pairs(globalVariables) do -- For each global variable txt = txt .. '<BR><font color="Orange">Global variable "' .. glob.name .. '":</font>'; cnt = cnt + 1; local used = false; for _, s in pairs(scenes) do -- For each scene local scene = api.get("/scenes/" .. s.id); if scene.triggers.globals ~= nil then for _, g in pairs(scene.triggers.globals) do -- We look each trigger if (g ~= nil) and (g == glob.name) then txt = txt .. '<BR><font color="lightgreen">&nbsp&nbsp&nbsp- trigger in scene "' .. scene.name .. '" (id:' .. scene.id .. ')</font>'; used = true; end end end -- Lua code inspection if (scene.lua ~= nil) and (string.find(scene.lua, glob.name) ~= nil) then txt = txt .. '<BR><font color="Chartreuse">&nbsp&nbsp&nbsp- used in scene "' .. scene.name .. '" (id:' .. scene.id .. ')</font>'; used = true; end end -- for _, s in pairs(scenes) for _,device in pairs(devices) do -- For each virtual device if (device.properties.mainLoop ~= nil) and (string.find(device.properties.mainLoop, glob.name) ~= nil) then -- look in mainloop txt = txt .. '<BR><font color="DeepSkyBlue">&nbsp&nbsp&nbsp- used in VD "' .. device.name .. '" mainloop</font>'; used = true; end local rows = device.properties.rows; -- look in buttons for _, row in pairs(rows) do if (row.type ~= nil) and (row.type == "button") and (row.elements ~= nil) then for _,element in pairs(row.elements) do if (element.lua ~= nil) and (element.lua == true) then if (element.msg ~= nil) and (string.find(element.msg, glob.name) ~= nil) then txt = txt .. '<BR><font color="LightSkyBlue">&nbsp&nbsp&nbsp- used in "' .. element.name .. '" btn (id: ' .. element.id .. ') of "' .. device.name .. '" VD (' .. device.id .. ')</font>'; used = true; end end end end end end -- for _,d in pairs(devices) if not used then txt = txt .. "<font color='Magenta'> unused</font>"; end local progress = round((cnt / #globalVariables) * 100) if (progress % 5) == 0 then fibaro:debug('<font color="gray">working,' .. progressBar(progress/5, 20) .. tostring(progress) .. '% done in ' .. (os.time()-startTime) .. ' secondes.</font>'); end end txt = txt .. '<BR><font color="gray">Total memory in use by Lua (version '.._VERSION..'): ' .. string.format("%.2f", collectgarbage("count")) .. ' KB</font>'; txt = txt .. '<BR><font color="gray">Time for global variables: ' .. (os.time()-startTime) .. ' secondes.</font><BR>'; -- Global variables used by scenes local sceneTime = os.time(); txt = txt .. '<BR><font color="yellow">'.. string.rep('=', 80) .. '<BR>Global variables used by scene ' .. os.date("%d/%m/%y %X") .. '</font><BR>'; for _, s in pairs(scenes) do -- For each scene txt = txt .. '<BR><font color="lightgreen">Scene "' .. s.name .. '" (id:'.. s.id .. '):</font>'; local used = false; local scene = api.get("/scenes/" .. s.id); if scene.triggers.globals ~= nil then for _, g in pairs(scene.triggers.globals) do -- We look each trigger for _, glob in pairs(globalVariables) do -- For each global variable if (g == glob.name) then txt = txt .. '<BR><font color="Orange">&nbsp&nbsp&nbsp- global "' .. glob.name .. ' used as a trigger"</font>'; used = true; end end -- for _, glob end end -- Lua code inspection if (scene.lua ~= nil) then for _, glob in pairs(globalVariables) do -- For each global variable if (string.find(scene.lua, glob.name) ~= nil) then txt = txt .. '<BR><font color="Coral">&nbsp&nbsp&nbsp- global "' .. glob.name .. '" used</font>'; used = true; end end -- for _, glob end if not used then txt = txt .. "<font color='Magenta'> no global variable used</font>"; end end -- for _, s in pairs(scenes) txt = txt .. '<BR><font color="gray">Total memory in use by Lua (version '.._VERSION..'): ' .. string.format("%.2f", collectgarbage("count")) .. ' KB</font>'; txt = txt .. '<BR><font color="gray">Time for scenes: ' .. (os.time()-sceneTime) .. ' secondes.</font><BR>'; -- Global variables used by virtual devices local deviceTime = os.time(); txt = txt .. '<BR><font color="yellow">'.. string.rep('=', 80) .. '<BR>Global variables used by virtual devices ' .. os.date("%d/%m/%y %X") .. '</font><BR>'; for _,device in pairs(devices) do -- For each virtual device txt = txt .. '<BR><font color="DeepSkyBlue">Virtual device "' .. device.name .. '" (id:'.. device.id .. '):</font>'; local used = false; if (device.properties.mainLoop ~= nil) then -- look in mainloop for _, glob in pairs(globalVariables) do -- For each global variable if (string.find(device.properties.mainLoop, glob.name) ~= nil) then txt = txt .. '<BR><font color="Orange">&nbsp&nbsp&nbsp- global "' .. glob.name .. '" used in mainloop</font>'; used = true; end end end local rows = device.properties.rows; -- look in buttons for _, row in pairs(rows) do if (row.type ~= nil) and (row.type == "button") and (row.elements ~= nil) then for _,element in pairs(row.elements) do for _, glob in pairs(globalVariables) do -- For each global variable if (element.lua ~= nil) and (element.lua == true) then if (element.msg ~= nil) and (string.find(element.msg, glob.name) ~= nil) then txt = txt .. '<BR><font color="Coral">&nbsp&nbsp&nbsp- global "' .. glob.name .. '" used in btn "' .. element.name .. '" (id:' .. element.id .. ')</font>'; used = true; end end end end end end if not used then txt = txt .. "<font color='Magenta'> no global variable used</font>"; end end -- for _,device txt = txt .. '<BR><font color="gray">Total memory in use by Lua (version '.._VERSION..'): ' .. string.format("%.2f", collectgarbage("count")) .. ' KB</font>'; txt = txt .. '<BR><font color="gray">Time for virtual devices: ' .. (os.time()-deviceTime) .. ' secondes.</font>'; txt = txt .. '<BR><font color="gray">Total elapsed time: ' .. (os.time()-startTime) .. ' secondes.</font><BR>'; fibaro:debug(txt); Je vous propose l'icône que j'utilise et suis preneur d'une qui serait plus "artistique". A l'approche des frimas, je ne puis que conclure par un... Chaleureusement.
  23. MAM78

    Intercom Manager

    Intercom Manager Préambule : N'ayant rien trouvé sur le site sur l'intégration de l'Intercom Fibaro, j'ai pris l'initiative de créer un Intercom Manager dont l'objectif consiste à : Regrouper dans une seule scène la détection de l'ensemble des événements et actions pouvant ayant pour origine : l'intercom lui-même l'application Intercom Fibaro pour smartphone (iOS et Androïd) le plugin Intercom disponible pour nos Box Home Center le site internet dédié à l'Intercom l'application développée par @Krikroff pour l'Intercom Déclencher des scenarios en fonction des événements et actions Disposer d'un Virtual Device pour visualiser les informations liées aux événements et actions Le Projet : Création d'une scène dédiée : à la détection de l'ensemble des événements et actions à l'exécution des scénarios conditionnés selon les événements et actions à la mise à jour d'un Virtual Device pour visualiser les informations liées aux événements et actions à tracer dans sa log les informations collectées et traitées Création d'un Virtual Device pour : visualiser les informations liées aux événements et actions éventuellement servir de source de données à GEA afin exécuter des scénarios complémentaires en les combinant aux autres données et conditions disponibles sous GEA. Pré-requis : disposer d'un Intercom Fibaro installer le plugin Intercom Fibaro Installation : Télécharger et installer le Virtual Device ci-dessous (dans sa dernière version) Télécharger et installer la Scène ci-dessous (dans sa dernière version) Télécharger l'icône ci-dessous ou fabriquer la votre Configuration : De la scène : 1) Modifier les variables utilisateurs ci-dessous : 2) Associer au VD l'icône ci-dessous ou la votre 3) Programmer la scène avec un Run Scene = Automatic avec un Max. running instances = 10 4) Modifier éventuellement les variables contenant les Smileys & textes qui sont remontés dans les labels du Virtual Device -- 464 is Device ID of the Intercom Plugin local Intercom_Device_ID = 464 -- 468 is the number of the Intercom Manager Virtual Device local VD_ID = 468 -- List of users (email and name) local UsersList = { {email= "xxxx.yyyy@zzzz.com", name = "Xxxx"}, {email= "aaaa.bbbb@cccc.com", name = "Aaaa"} } -- Number of seconds of the recording local NbRecordSec = 30 -- Debug mode local debug = false Du Virtual Device : 1) Personnaliser éventuellement les labels (Smileys & désignation) 2) Associer au VD l'icône ci-dessous ou la votre Programmer des scénarios dans la Scène : 1) Dans les parties réservées à cet effet : --[[ -- insert your code to execute --]] Programmer des scénarios dans GEA (optionnel) : 1) En utilisant les labels du VD comme déclencheur et/ou en les intégrant dans vos options GEA, comme par exemple : Détection de mouvement par l'intercom. Exemple lancer l'enregistrement de toutes les caméras y compris l'intercom sur Surveillance Station Détection de l'appui sur le bouton de sonnerie. Exemple faire sonner ma Sonos au cas ou mon téléphone est en mode avion ou mute. Déclenchement d'une action suite à la saisie d'un code valide. Exemple faire clignoter mes lampes extérieur Philipps Hue en vert Déclenchement d'une action suite à la saisie d'un code en erreur. Exemple faire clignoter mes lampes extérieur Philipps Hue en rouge et lancer l'enregistrement de toutes les caméras Détection d'une activation par bluetooth. Pour identifier l'arrivée ou le départ d'un membre de la famille. 2) Vloici quelques exemples que j'ai intégrés dans mon GEA : -- Déclaration des changements de valeurs des labals du VD Intercom Manager dans la partie %% properties 468 ui.lblLastPinError.value 468 ui.lblOpenRelay1.value 468 ui.lblMove.value -- Contrôle de la saisie des codes PIN sur l'Intercom ------------------------------------------------------- -- Eclairage de la terrasse pendant 15 secondes en rouge clignotant si erreur de saisie du code PIN GEA.add({{"!Label", id["VD_INTERCOM_MANAGER"], "lblLastPinError", ""}, {"Trigger", "lblLastPinError"}}, -1, "", {{"Label", id["VD_HUE_MANAGER_TERRASSE"], "lblTimer", "00:15"}, {"VirtualDevice", id["VD_HUE_MANAGER_TERRASSE"], 25}}, "Erreur saisie code Intercom, activation lumières terrasse en rouge clignotant") -- Eclairage de la terrasse pendant 15 secondes en vert clignotant si bonne de saisie du code PIN GEA.add({{"Label", id["VD_INTERCOM_MANAGER"], "lblOpenRelay1", "#r#Ouvert"}, {"Trigger", "lblOpenRelay1"}}, -1, "", {{"Label", id["VD_HUE_MANAGER_TERRASSE"], "lblTimer", "00:15"}, {"VirtualDevice", id["VD_HUE_MANAGER_TERRASSE"], 24}}, "Bonne saisie code Intercom, activation lumières terrasse en vert clignotant") -- Activation sur mon Synology (Serveillance Station) de l'enregistrement du flux vidéo de l'intercom ---------------------------------------- -- si détection devant la porte le portail GEA.add({{"Label", id["VD_INTERCOM_MANAGER"], "lblMove", "#r#Alerte"} ,{"Label", id["VD_CAM_GLOBAL"], "lblPresence", "#r#Absence"} ,{"Or", {"Label", id["VD_CAM_EXT_PORTAIL"], "lblCamState", "#r#Marche"}, {"Label", id["VD_CAM_EXT_PORTAIL"], "lblCamState", "#r#Partiel"} } ,{"Or", {"Label", id["VD_CAM_EXT_PORTAIL"], "lblCamRecord", "#r#Arrêt"}, {"Label", id["VD_CAM_EXT_PORTAIL"], "lblCamRecord", "#r#Partiel"} } }, -1, "Mouvement devant la caméra du portail le #date# à #time# enregistrement caméra", {{"VirtualDevice", id["VD_CAM_GLOBAL"], 10}, {"VirtualDevice", id["VD_CAM_GLOBAL"], 13} }, "Mouvement devant la caméra du portail le #date# à #time# enregistrement caméra") Pour la partie clignotement des lumières de la terrasse, j'utilise mon mes VD Philipps Hue Manager Pour la partie enregistrement du flux vidéo de l'intercom sur mon NAS Synology, j'utilise mon VD Surveillance Station Manager qui elle-même utilise mon VD HomeMode (GeoFence) Si vous souhaitez également les utiliser, vous les trouverez mes VD dans ma signature de Post. Sinon à vous d'adapter ces scénarios. Attention la fonction "Trigger" que j'utilise est une version améliorée de celle de base de GEA afin de bien vérifier quel est le label qui a provoqué le déclenchement de GEA. Vous trouverez ci-dessous le code correspondant à intégrer dans votre partie function config() de GEA. J'ai pas vérifié si dans la dernière version de GEA cette demande de correction avait été prise en compte. Je vous laisse regarder. 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 } Versions : V1.0 : du 16/10/2019 -> Intialisation du projet Evolutions à venir : Fournir quelques exemples de Lignes GEA utilisant le VD comme source de déclenchement des options A voir selon vos suggestions Dernière version du VD : VD : V1.0 : Intercom_Manager.vfib V1.0.json Scène : V1.0 : Intercom Manager V1.0.lua Icône :
  24. "" Recovery en image depuis la version 4.503 en 6 minutes et 10 minutes avec la récupération de la sauvegarde On peut restaurer un fichier de sauvegarde sans avoir a faire un recovery pour le recovery cliquer sur recover Cliquer sur YES On clic sur le drapeau francais Login : admin Password : admin Il ne vous reste plus qu'a restaurer votre sauvergarde
  25. mipa

    Plus d'accès à ma HC2

    Bonjour à tous, Je n'arrive plus à me connecter à ma HC2.... Pas de changement (ajout ou modification) de l'installation depuis plusieurs semaine, les scénarios fonctionnait parfaitement. Du jour au lendemain, plus de scénarios qui fonctionne, plus d'accès depuis nos téléphone, et plus d'accès depuis le ID cloud Les 3 leds sont allumés sur ma box, quand j'utilise le finder il trouve la box mais ne parviens pas à la connecter Sur le id cloud il ne voit pas ma box (comme si elle n'était pas connecté) Je précise que j'ai changé de fournisseur internet en début de mois de juin (mais cela à parfaitement fonctionné jusqu'au 20 juin) Tous mes autres objets connectés fonctionnement parfaitement. J'ai trouvé plusieurs sujet identiques sur le forum, mais il semblerait que dans ces sujets seulement deux leds était allumés. Des idées ?
×