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

125 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. Gestionnaire d'Evénements Automatique (GEA) – version 6.13 Version précédente (BROUILLON en cours de rédaction) Remerciements (commençons par le plus important) : @pepite et @tibahut pour leurs contributions, motivation, idées, ... Nos pauvres bêta testeurs : @ADN182, @Puni, @basklj, @sonnyboy, @Gandalf, @drboss (et tout ceux que j'oublie ... désolé) @fredokl pour son don qui me permettra d’offrir de la bonne bière à pepite (je le promet) But : Ce script a pour but de contrôler, à intervalle régulier, l'état de votre environnement pendant une durée déterminée afin de vous avertir d'éventuel soucis et si nécessaire d'effectuer automatiquement certaines actions. Exemple : Etre informé si la porte du garage est restée ouverte plus de 10 minutes Recevoir une notification et allumer le radiateur s'il fait trop froid depuis 30 minutes Eteindre automatiquement la lumière des WC si cette dernière est allumée plus de 5 minutes Eteindre le frigo et recevoir une notification si ce dernier consomme trop d'électricité ou pas assez Installation : Première installation Créer un scénario en mode LUA Insérer le script ci-joint (gea_6_00.lua)) Adapter les dernières lignes à vos besoins (en dessous de la ligne "CONFIGURATION GENERAL") Passage de GEA 5.x à GEA 6.x Copier le nouveau script dans un nouveau scénario LUA Copier vos anciennes lignes de paramétrage dans la fonction "config()" Copier vos lignes GEA.add(…) dans la fonction "setEvents()" Désactiver votre ancien GEA Mise à jour de GEA 6.x à GEA 6.x Ouvrir la nouvelle version et copié de la ligne "if (not GEA) then " jusqu'à la fin Ouvrir votre version et remplacer de la même ligne "if (not GEA) then" jusqu'à la fin. Configuration : Définir l'intervalle de contrôle en secondes GEA.checkEvery = <nb secondes> (30 par défaut) Exemple : GEA.checkEvery = 30 Indique la liste des portables par défaut devant recevoir une notification {70, 71} GEA.portables = {<id portable> [, <id portable>][, ...] Exemple : GEA.portables = {70, 71} Bascule en mode de débogage pour obtenir plus de traces GEA.debug = true | false (false par défaut) Exemple : GEA.debug = true Permet un débogage fort de GEA, chaque erreur provoque l'arrêt de GEA si cette option est à false (anciennement GEA.catchError) GEA.secureAction = true | false (true par défaut) Exemple : GEA.secureAction = false -- va afficher les erreurs et stopper GEA GEA utilise 3 variables globales. Il est conseillé de laisser leurs noms par défaut mais si vous souhaiter les modifier, voici les paramètres à adapter GEA se charge de leur création, ne les créer par manuellement svp. GEA.globalvariables = "GEA_Tasks" GEA.pluginsvariables = "GEA_Plugins" GEA.historyvariable = "GEA_History" Nouveautés : Détection automatique de la langue Création automatique des variables globales nécessaires au fonctionnement de GEA Plus de contrôle (vérification des ID, des actions, …) Plus de 30 nouvelles conditions/actions * Durée à 0 autorisée et exploitée : GEA.add(true, 0, "Démarrage de GEA à #time# le #date#") permet de lancer l'action au démarrage de GEA Dans les actions, l'id peut être multiple GEA.add(true, 30, "", {"TurnOn", {100, 101, 102}}) Allumera donc les 3 modules Dans les actions, les variables globales peuvent être multiple GEA.add(true, 30, "", {"Global", {"VG1", "VG2"}, "Texte"}) VG1 et VG2 prendront donc "Texte" comme valeur Sous-commande acceptée : GEA.add( {"Global", "Test1", {"Global", "Test2"}}, 30, "Variable identique si Test1 = Test2" ) GEA.add( true, 30, "On copie la valeur dans une variable globale la valeur du module 101", {"Global", "Test", {"Value", 101}} ) Pour les développeurs, simplicité d'ajout de nouvelle condition/action Paramètre supplémentaire pour afficher votre message dans la console au lieu du message par défaut GEA.add(condition, durée, message, actions, "<A afficher dans la console>") Scénario Plugin. Moyennant quelques petites lignes de code, vos scénarios peuvent devenir compatibles avec GEA. Structure : Pour reprendre la structure du code de Tibahut, nous avons décidé de modifier légèrement la structure de GEA. Une fonction "config()" doit / contient vos paramètres de GEA Une fonction "setEvents()" contient vos lignes GEA.add Cette modification vous demande donc de modifier votre ancienne version de GEA afin de s'adapter à cette structure. Modifications Réécriture complète du code (diminution de plus de 30% du nombre de ligne) GEA.add(…, 30, """", {{""Time"", ""12:00"", ""12:00""}}) devient GEA.add({..., {""Time"", ""12:00"", ""12:00""}}, 30 , """") les conditions Time, Days, Dates, DST, NODST passe au début dans les conditions et non plus dans les actions comme auparavant. Cette modification est automatique vous n'avez pas besoin de modifier votre code. La gestion des regex a été modifiée, si vous souhaité utilisé un regex, il vous faudra le préfixé par "#r#" Exemple, si la météo est rain ou cloudy GEA.add({"Weather", "#r#rain|cloudy"}, 30, "Pas beau") Lors de déclenchements immédiat, GEA va maintenant vérifier l'ID de TOUTES les conditions pour savoir s'il doit traiter ou non la donnée (anciennement seule la 1ère condition était contrôlée) Détection automatique de la version V4+ ou V3 Le nom des modules n’apparaît plus dans la console pour éviter les soucis de performance de la v4, utilisé #name# dans le message pour l'obtenir si besoin GEA.add(73, -1, "Le module #name# dans la pièce #room# vient de s'allumer") #value[1]# ..#value[9]# n'ont plus de limite (9 maximum sur l'ancienne version) Utilisation du setTimeout au lieu d'un sleep pour le fonctionnement de GEA La fonction userCode() a été modifiée pour correspondre au code de Tibahut soit scindée en config() et setEvents() Possibilité d'utilisé {"Dates", …} avec un format de date par langue Exemple : {"Dates", "10/31/2017"} Voir GEA.traduction[<lang>].input_date_format ou de préciser directement son propre format dans setEvents() en mettant GEA.trad.input_date_format = "mm/dd/yyy" {"Days",…} Prend dorénavant les autres langues que l'anglais et le français. Voir GEA.trad.week_short, GEA.trad.weekend et GEA.trad.weekdays Modifications des options Modifié {"TurnOn"[, <id>][, <durée>]} Allume un module puis l'éteint automatiquement après la durée, il peut aussi etre une condition Modifié {"TurnOff"[, <id>][, <durée>]} Eteint un module puis l'allume automatiquement après la durée, il peut aussi estre une condition Modifié {"Time", <debut>[, <fin>]} Si l'heure de fin n'est pas renseignée, on prend la même heure que celle de début Modifié {"Dates", <debut>[, <fin>]} Si la date de fin n'est pas renseignée, on prend la même date que celle de début Modifé {"Weather"[, <propriété>], <value>} Possibilité de préciser une autre propriété (Wind, Temperature, Pressure, Humidity, …) Modifié {"Inverse"[, <no condition>]} Permet de spécifier le numéro de la condition a inverser (1ère par défaut) Ajouté {"Switch"[, <id>]} Allume ou éteint un module selon son état Ajouté {"Value2"[, <id>], <valeur>} Idem à {"Value", …} mais pour la valeur2 (stores vénitiens) Ajouté {"setArmed"[, <id>]} Arme un module Ajouté {"setDisarmed"[, <id>]} Désarme un module Ajouté {"Killscenario", <id>} Tue un scénario selon son identifiant Ajouté {"PictureToEmail", <id cam>, <email>} Envoi l'image de la caméra à une adresse e-mail Ajouté {"ApiPut", <url>, <properties>} Effectue un put Ajouté {"ApiPost", <url>, <properties>} Effectue un post Ajouté {"ApiGet", <url>} Effectue un get de l'url Ajouté {"Sleep", <secondes>, <action>} Effectue une action dans X secondes {"Sleep", 2, {"TurnOn", 73}} utilise setTimeout Ajouté {"EnableScenario", <id>} Active le scénario ou savoir si le scénario est activé Ajouté {"DisableScenario", <id>} Désactive le scénario ou savoir si le scénario est désactivé Ajouté {"SetRunConfigScenario, <id>, <runconfig>} Permet de connaitre/changer le mode d'exécution d'un scénario Ajouté {"CountScenes", <id>} Retourne le nombre de scènes en cours d'exécution Ajouté {"DebugMessage", <id>, <elementid>, <message>, <type>} Ecrit dans la console de l'objet précisé Ajouté {"Popup", <titre>, <message>} Ajoute une popup dans le gestionnaire de notification Ajouté {"Filters", <"lights"|"blind">, <action>} Effectue l'action sur tout les modules de type light ou blind (turnon, turnoff, close, open, …) Ajouté {"CentralSceneEvent", <id>, <key>, <attribute>} Retourne vrai si le CentralSceneEvent déclencheur correspond à ces critères Ajouté {"Frequency", <jour>, <frequence>} Exemple, tous les dimanches ou un dimanche sur 2 {"Frequency", "Sunday", 2} Ajouté {"RebootHC2"} Redémarre la box Ajouté {"ShutDownHC2"} Eteint la box Ajouté {"Depend", <taksid>} Dépend d'une autre tâche, ne sera exécuté que si la "taskid" a préalablement été exécutée Ajouté {"VariableCache", <nom variable>, <valeur>} Permet de stocker une valeur et de la récupérer plus tard (uniquement dans la scène principale) Ajouté {"Info", <propriété>} Retourne la propriété contenu dans /settings/info Ajouté {"Hue", <propriété>, <valeur>} Permet de piloter une ampoule Philips Hue Ajouté {"ThermostatLevel", <id>, <valeur>} Modifie la valeur de votre thermostat Ajouté {"ThermostatTime", <id>, <valeur>} Modifie la durée de votre thermostat Ajouté {"Ask", <portable>, <message>, <scenario>} Affiche une notification demandant l'exécution d'un scénario Ajouté {"Doorlock", <id>, <valeur>} Permet de sécurisé ou non une serrure électronique Ajouté {"Or", <condition1>, <condition2>[,…] Permet de faire un OU sur plusieurs conditions Ajouté Ajouté Ajouté Ajouté Ajouté Ajouté Ajouté Ajouté Ajouté {"Xor", <condition1>, <condition2>[,…] {"RoomLights", <nom pièce>, "turnOn"|"turnOff"} {"SectionLights", <nom sect>, "turnOn"|"turnOff"} {"OnOff", <id>, "ON|OFF"} {"SonosMP3", id_vd, id_button, filepath [, volume]} {"SonosTTS", id_vd, id_button, message [, volume]} {"JSONDecodeFromGlobal", <VG>, <propriété>} {"JSONDecodeFromLabel", <id>, <label>, <propriété>} {"Monthly", <propriété>} {"Polling", <id parent>} Permet de faire un OU exclusif sur plusieurs conditions Allume ou éteint une pièce entière selon son nom Allume ou éteint une section entière selon son nom Identique à "turnOn" mais retourne "ON" ou "OFF" Voir le VD de Krikroff Voir le VD de Krikroff Décode un Variable globale et retourne la valeur de la propriété Décode un Label et retourne la valeur de la propriété Une fois par mois Poll un device Supprimé {"Groupe", <id groupe>} Supprimé Supprimé {"IF", …} Supprimé Attention Ajouté Ajouté Ajouté Ajouté Ajouté Ajouté Ajouté Ajouté {"Global", "", ""} {"LedBrightness", <luminosité>} {"DeviceState", <id module>} {"NeighborList", <id module>} {"LastWorkingRoute", <id module>} {"CheckVG", <nom vg>} {"CheckLabel", <id vd>, <nom label>} {"Protection", <id module>, <type>, <On|Off>} {"MultiAlarm", <id vd>, <label>} Devient définitivement "true" (sans les guillemets) Modifie la luminosité des LED de la HC2 Retoure l'étant d'un module Retourne la liste des modules voisins Retourne la liste de la route empruntée Vérifie l'existence d'un variable globale Vérifie l'existence d'un label Modifie la protection (local, rf) d'un module Vérifie l'alarme 1 .. 4 Vous trouverez ci-joint un fichier syntaxe_GEAV6.lua (écrit par @pepite) qui regroupe toutes les commandes et leurs utilisations. Télécharger le et garder le sous la main, c'est votre bible GEA. Le wiki est en cours de modification ce qui va prendre beaucoup de temps GEA Wiki Historique : v.6.01 - 15 décembre 2017 fix : vd GEA Alarm fix : Dead - remplacement de wakeUpDeadDevce par wakeUpAllDevices fix : {"Time": "Sunset+10>08:00"} fix : Option "Portable" is missing fix : multiple dates provoquant un table missing fix : correction du Or et XOr en mode instantané fix : fichier syntaxe_GEAV6.lua (ci-joint) add : {"Deads"} pour réveillé tous les noeux morts v.6.02 20 décembre 2017 fix : vd GEA Alarm -- double push fix : "Sleep" en conjonction avec un Plugin mod : getMessage pour les plugins et arguments de scénario (traitement des variables #time#, #value#, ...) v.6.03 29 décembre 2017 add : #datefull# dans les messages pour obtenir "dimanche 23 décembre 2017" fix : Correction du code pour {"Weather"} add : {"WeatherLocal"} ... identique à {"Weather"} mais retourne les conditions météos selon votre langue v.6.04 7 janvier 2018 add : Roomlights ... {"RoomLights", <nom de la pièce>, "turnOn"|"turnOff"} add : Sectionlights ... {"SectionLights", <nom de la séction>, "turnOn"|"turnOff"} mod : correct Weather, erreur ajoutée en V6.03 mod : #datefull# erreur sur le dimanche mod : correction déclenchement instantané qui stop la mauvaise tache mod : correction déclenchement instantané avec plusieurs conditions add : Slider mod : Close 100 = tout fermé, 0 tout ouvert mod : Open et Close peuvent recevoir plusieurs ids {"Open", {id1, id2}, valeur} mod : optimisation des déclenchements immédiats (1ère passe) v.6.05 29 janvier 2018 add : #trigger# in message add : {"OnOff", <id>, "ON|OFF"} identique à turnOn mais retourne ON ou OFF add : {"SonosMP3", id_vd, id_button, filepath [, volume]} -->voir VD de Krikroff --> Merci @MAM78 add : {"SonosTTS", id_vd, id_button, message [, volume]} --> voir VD de Krikroff --> Merci @MAM78 add : {"JSONDecodeFromGlobal", <nom VG>, <propriété à vérifier>} add : {"JSONDecodeFromLabel", <id VD>, <label>, <propriété à vérifier>} add : {"TempExt"} -- température exterieure selon les conditions métérologique add : {"TempExtTTS"} -- température exterieure selon les conditions métérologique au format (X degrer X) mod : amélioration du translate mod : clarifier le message des actions dans le debug mod : optimisation #2 diminution accès aux variables globales mod : optimisation consommation mémoire mod : suppression bavardage intempestif au mode immédiat mod : correction décalage durée d'execution mod : correction du "Time" qui pouvait ne pas se comporter correctement mod : fonctionnement de l'optimisation mod : bug fix v.6.06 ajouté le 7 février 2018 mod : Correction bug introduit un 6.05 avec "Function" add : Possibilité d'ignoré le déclenchement d'une option en mode immédiat en mettant son nom entre parenthèse exemple : {"Global+", "Test", 100} --> {"(Global+)", "Test", 100} add : {"Monthly", <propriété>} --> Une fois par mois. Propiétés possibles : <nombre> 1-31 : Tous les X du mois "begin" : Tous les 1er du mois "end" : Tous les derniers jours du mois <day> "Monday", "Tuesday", ... : Tous les 1er lundi, mardi, ... du mois Voir le fichier de syntaxe pour plus d'info. v.6.07 ajouté le 22 mars 2018 mod : correction slider {"Slider", <id_mv>, <Label>, <valeur>} mod : ajout de GEA.getMessageDecorator(msg) pour permettre à l'utilisateur d'ajouter facilement ces propres gsub() mod : ajout GEA.trad.locale mod : correction usage de la variable globale mod : correction lors de multiple {"Portable", <id portable>} mod : ajout Popup with scenario ID add : {"Polling", <id module>} v.6.10 ajouté le 31 octobre 2018 mod : correction du #name# pour les "Or" et "XOr" mod : usage d'un cache pour les noms de modules et de pièces mod : contrôle des variables globales (API not found) mod : contrôle des label (API not found) add : {"LedBrightness", <luminosité>} add : {"DeviceState", <id module>} add : {"NeighborList", <id module>} add : {"LastWorkingRoute", <id module>} add : {"CheckVG", <nom vg>} add : {"CheckLabel", <id vd>, <nom vg>} v.6.11 ajouté le 13 novembre 2018 mod : correction d'un bug dans checklabel add : {"Protection", <id>, <type_protection>, <On|Off>} by @971jmd add : {"MultiAlarm", <id vd>, <label>} by @drboss v.6.12 ajouté le 11 juin 2020 Correction création variables globales (firmeware 4.55) Correction bug sur incrémentation d'une propriété Ajout contrôle des valeurs négatives Isolation des triggers sur les labels Correction des dates sans année Réintégration de la variable SuspendreGEA La durée peut maintenant être contenu dans une VG ex : GEA.add(..., 30, "", ...) ou GEA.add(..., "MaVG", "", ...) Ajout NotStarted pour retrocompatibilité avec la version 5.x VirtualDevice choix du numéro du bouton ou de son id ou de son nom Possibilité de remplacer l'ID par le nom du module {"Value", "Plafonnier", 30} au lieu de {"Value", 150, 30} le nom du module peut être agrémenté du nom de la pièce en ajoutant <nom module>@<nom pièces> ... Plafonnier@Chambre parents Posibilité de remplacer l'ID d'un scénario par son nom {"CountScenes", "GEA 6.12"} au lieu de {"CountScenes", 37} Exemple complet : {"VD", "Notification center", "Pushbullet"} Appuie sur le bouton dont le libellé est "Pushbullet" du module virtuel "Notification center". v.6.13 ajouté le 30 juin 2020 Correction de bugs Possibilité d'avoir une sous-option en 1ère ou 2ème place d'une option (très très clair comme message ;-) donc un exemple) {"Dates", {"Global", "VacOn"}, {"Global", "VacOff"}} --- avant, il n'était possible que de mettre le {"Global", "VacOff"} NE POUVANT GARANTIR A 100% LA VERSION 6.13, JE LAISSE DISPONIBLE LA 6.11 GEA 6.11.lua syntaxe_GEAV6_11.lua GEA 6.13.lua
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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.
  16. 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 :
  17. "" 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
  18. 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 ?
  19. 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
  20. Krikroff

    HC2 & HCL - 4.532 - BETA - 28/02/2019

    Liste des modifications de la version beta 4.532: New improvements: - Added possibility of setting brightness and colour of the LED ring in scenes for FIBARO Walli series. - Optimized handling of Z-Wave logs to improve the devices communication with the gateway. - Added slats orientation status displaying in the event panel for FIBARO Roller Shutters. - Added information about Z-Wave parameters configuration status in the device advanced settings tab. - Added popup recommending to refresh the device settings page in case of not updated Z-Wave parameters model. - Added indicator informing about unsaved Z-Wave parameter. - Added support for FIBARO Walli Dimmer. - Added support for five Leviton devices: Plug-In Outlet DZPA1-2BW, Plug-In Dimmer DZPD3-2BW, Dimmer DZ6HD-1BZ, Dimmer DZ1KD-1BZ, Switch DZ15S-1BZ. Resolved issues: - No possibility to perform the calibration of FIBARO Roller Shutter 3 module. - No scene controller after adding the device in Security mode. - Incorrect operation of external sensors connected to the FIBARO Smart Implant. - Error while adding IP Camera from the device configuration. - Incorrect approximation of the power measured by the device. - Other minor fixes.
  21. Liste des modifications logicielles 4.540 Version 4.540 New New improvements: - Optimized handling of Z-Wave logs to improve the devices communication with the gateway. - Optimized handling of FLiRS devices (eg. FIBARO Heat Controller) to improve communication with the gateway. - Added possibility of setting brightness and colour of the LED ring in scenes for FIBARO Walli series. - Added slats orientation status displaying in the event panel for FIBARO Roller Shutters. - Added possibility of grouping the FIBARO Roller Shutters. - Added information about Z-Wave parameters configuration status in the device advanced settings tab. - Added popup recommending to refresh the device settings page in case of not updated Z-Wave parameters model. - Added indicator informing about unsaved Z-Wave parameter. - Added possibility of assigning each room to one of the categories. - Added notification about existing two users with the same login. - Added support for FIBARO Walli series. - Added support for FIBARO Smart Implant. - Added support for five Leviton devices: Plug-In Outlet DZPA1-2BW, Plug-In Dimmer DZPD3-2BW, Dimmer DZ6HD-1BZ, Dimmer DZ1KD-1BZ, Switch DZ15S-1BZ. - Added support for Oomi by Fantem MultiSensor. - Added support for Jasco ZW6302B Portable Smart Multi Sensor. - Added support for Remotec ZXT-600AU. Resolved issues: - Weather is not updating. - Unwanted IP address blocking by the external integrations. - Possibility to change the e-mail address owned by the admin to the one already used by a regular user. - Possibility to enter in the wizard the e-mail address containing uppercase letters. - Login to the user account if the admin and user logins are identical. - User receives notifications recommending a change of the PIN code owned by the admin. - Notification recommending to change the default PIN code does not contain the user login. - No possibility to perform the calibration of FIBARO Roller Shutter 3 module. - No scene controller after adding the device in Security mode. - Incorrect operation of external sensors connected to the FIBARO Smart Implant. - Error while adding IP Camera from the device configuration. - Incorrect approximation of the power measured by the device. - FIBARO RGBW Controller device category cannot be edited. - Possibility to set the action for holding the button when the FIBARO Roller Shutter 3 works with a bistable button. - No status after editing the location settings when restarting the gateway. - No possibility to update the FIBARO Heat Controller without the external temperature sensor. - External temperature sensor status is not displayed when the sensor is not paired. - Unwanted notifications about devices status change. - Incorrect time after performing the Recovery procedure. - Other minor fixes. Version 4.540 Old (version retirer par fibaro) New improvements: - Optimized handling of Z-Wave logs to improve the devices communication with the gateway. - Optimized handling of FLiRS devices (eg. FIBARO Heat Controller) to improve communication with the gateway. - Added possibility of setting brightness and colour of the LED ring in scenes for FIBARO Walli series. - Added slats orientation status displaying in the event panel for FIBARO Roller Shutters. - Added possibility of grouping the FIBARO Roller Shutters. - Added information about Z-Wave parameters configuration status in the device advanced settings tab. - Added popup recommending to refresh the device settings page in case of not updated Z-Wave parameters model. - Added indicator informing about unsaved Z-Wave parameter. - Added possibility of assigning each room to one of the categories. - Added notification about existing two users with the same login. - Added support for FIBARO Walli series. - Added support for FIBARO Smart Implant. - Added support for five Leviton devices: Plug-In Outlet DZPA1-2BW, Plug-In Dimmer DZPD3-2BW, Dimmer DZ6HD-1BZ, Dimmer DZ1KD-1BZ, Switch DZ15S-1BZ. - Added support for Oomi by Fantem MultiSensor. - Added support for Jasco ZW6302B Portable Smart Multi Sensor. - Added support for Remotec ZXT-600AU. Resolved issues: - Weather is not updating. - Unwanted IP address blocking by the external integrations. - Possibility to change the e-mail address owned by the admin to the one already used by a regular user. - Possibility to enter in the wizard the e-mail address containing uppercase letters. - Login to the user account if the admin and user logins are identical. - User receives notifications recommending a change of the PIN code owned by the admin. - Notification recommending to change the default PIN code does not contain the user login. - No possibility to perform the calibration of FIBARO Roller Shutter 3 module. - No scene controller after adding the device in Security mode. - Incorrect operation of external sensors connected to the FIBARO Smart Implant. - Error while adding IP Camera from the device configuration. - Incorrect approximation of the power measured by the device. - FIBARO RGBW Controller device category cannot be edited. - Possibility to set the action for holding the button when the FIBARO Roller Shutter 3 works with a bistable button. - No status after editing the location settings when restarting the gateway. - No possibility to update the FIBARO Heat Controller without the external temperature sensor. - External temperature sensor status is not displayed when the sensor is not paired. - Unwanted notifications about devices status change. - Incorrect time after performing the Recovery procedure. - Other minor fixes.
  22. Bonsoir, Si comme moi vous souhaitez piloter votre TV Sony mais que le Plugin Sony développé par Fibaro ne fonctionne pas, , voici une scéne et un VD qui permettont de piloter la TV via notre HC2. Pour commencer : _ Créer une variable globale en la nommant : cmd_sony_tv _ Créer une scène en LUA et copier ce code : --[[ %% autostart %% properties %% globals --]] local ip = 'xxx.xxx.x.xx' local port = '80' local xAuthPSK = '1111' local irCode = json.decode([[ [ {"name":"Num1","value":"AAAAAQAAAAEAAAAAAw=="}, {"name":"Num2","value":"AAAAAQAAAAEAAAABAw=="}, {"name":"Num3","value":"AAAAAQAAAAEAAAACAw=="}, {"name":"Num4","value":"AAAAAQAAAAEAAAADAw=="}, {"name":"Num5","value":"AAAAAQAAAAEAAAAEAw=="}, {"name":"Num6","value":"AAAAAQAAAAEAAAAFAw=="}, {"name":"Num7","value":"AAAAAQAAAAEAAAAGAw=="}, {"name":"Num8","value":"AAAAAQAAAAEAAAAHAw=="}, {"name":"Num9","value":"AAAAAQAAAAEAAAAIAw=="}, {"name":"Num0","value":"AAAAAQAAAAEAAAAJAw=="}, {"name":"Num11","value":"AAAAAQAAAAEAAAAKAw=="}, {"name":"Num12","value":"AAAAAQAAAAEAAAALAw=="}, {"name":"Enter","value":"AAAAAQAAAAEAAAALAw=="}, {"name":"GGuide","value":"AAAAAQAAAAEAAAAOAw=="}, {"name":"ChannelUp","value":"AAAAAQAAAAEAAAAQAw=="}, {"name":"ChannelDown","value":"AAAAAQAAAAEAAAARAw=="}, {"name":"VolumeUp","value":"AAAAAQAAAAEAAAASAw=="}, {"name":"VolumeDown","value":"AAAAAQAAAAEAAAATAw=="}, {"name":"Mute","value":"AAAAAQAAAAEAAAAUAw=="}, {"name":"TvPower","value":"AAAAAQAAAAEAAAAVAw=="}, {"name":"Audio","value":"AAAAAQAAAAEAAAAXAw=="}, {"name":"MediaAudioTrack","value":"AAAAAQAAAAEAAAAXAw=="}, {"name":"Tv","value":"AAAAAQAAAAEAAAAkAw=="}, {"name":"Input","value":"AAAAAQAAAAEAAAAlAw=="}, {"name":"TvInput","value":"AAAAAQAAAAEAAAAlAw=="}, {"name":"TvAntennaCable","value":"AAAAAQAAAAEAAAAqAw=="}, {"name":"WakeUp","value":"AAAAAQAAAAEAAAAuAw=="}, {"name":"PowerOff","value":"AAAAAQAAAAEAAAAvAw=="}, {"name":"Sleep","value":"AAAAAQAAAAEAAAAvAw=="}, {"name":"Right","value":"AAAAAQAAAAEAAAAzAw=="}, {"name":"Left","value":"AAAAAQAAAAEAAAA0Aw=="}, {"name":"SleepTimer","value":"AAAAAQAAAAEAAAA2Aw=="}, {"name":"Analog2","value":"AAAAAQAAAAEAAAA4Aw=="}, {"name":"TvAnalog","value":"AAAAAQAAAAEAAAA4Aw=="}, {"name":"Display","value":"AAAAAQAAAAEAAAA6Aw=="}, {"name":"Jump","value":"AAAAAQAAAAEAAAA7Aw=="}, {"name":"PicOff","value":"AAAAAQAAAAEAAAA+Aw=="}, {"name":"PictureOff","value":"AAAAAQAAAAEAAAA+Aw=="}, {"name":"Teletext","value":"AAAAAQAAAAEAAAA\/Aw=="}, {"name":"Video1","value":"AAAAAQAAAAEAAABAAw=="}, {"name":"Video2","value":"AAAAAQAAAAEAAABBAw=="}, {"name":"AnalogRgb1","value":"AAAAAQAAAAEAAABDAw=="}, {"name":"Home","value":"AAAAAQAAAAEAAABgAw=="}, {"name":"Exit","value":"AAAAAQAAAAEAAABjAw=="}, {"name":"PictureMode","value":"AAAAAQAAAAEAAABkAw=="}, {"name":"Confirm","value":"AAAAAQAAAAEAAABlAw=="}, {"name":"Up","value":"AAAAAQAAAAEAAAB0Aw=="}, {"name":"Down","value":"AAAAAQAAAAEAAAB1Aw=="}, {"name":"ClosedCaption","value":"AAAAAgAAAKQAAAAQAw=="}, {"name":"Component1","value":"AAAAAgAAAKQAAAA2Aw=="}, {"name":"Component2","value":"AAAAAgAAAKQAAAA3Aw=="}, {"name":"Wide","value":"AAAAAgAAAKQAAAA9Aw=="}, {"name":"EPG","value":"AAAAAgAAAKQAAABbAw=="}, {"name":"PAP","value":"AAAAAgAAAKQAAAB3Aw=="}, {"name":"TenKey","value":"AAAAAgAAAJcAAAAMAw=="}, {"name":"BSCS","value":"AAAAAgAAAJcAAAAQAw=="}, {"name":"Ddata","value":"AAAAAgAAAJcAAAAVAw=="}, {"name":"Stop","value":"AAAAAgAAAJcAAAAYAw=="}, {"name":"Pause","value":"AAAAAgAAAJcAAAAZAw=="}, {"name":"Play","value":"AAAAAgAAAJcAAAAaAw=="}, {"name":"Rewind","value":"AAAAAgAAAJcAAAAbAw=="}, {"name":"Forward","value":"AAAAAgAAAJcAAAAcAw=="}, {"name":"DOT","value":"AAAAAgAAAJcAAAAdAw=="}, {"name":"Rec","value":"AAAAAgAAAJcAAAAgAw=="}, {"name":"Return","value":"AAAAAgAAAJcAAAAjAw=="}, {"name":"Blue","value":"AAAAAgAAAJcAAAAkAw=="}, {"name":"Red","value":"AAAAAgAAAJcAAAAlAw=="}, {"name":"Green","value":"AAAAAgAAAJcAAAAmAw=="}, {"name":"Yellow","value":"AAAAAgAAAJcAAAAnAw=="}, {"name":"SubTitle","value":"AAAAAgAAAJcAAAAoAw=="}, {"name":"CS","value":"AAAAAgAAAJcAAAArAw=="}, {"name":"BS","value":"AAAAAgAAAJcAAAAsAw=="}, {"name":"Digital","value":"AAAAAgAAAJcAAAAyAw=="}, {"name":"Options","value":"AAAAAgAAAJcAAAA2Aw=="}, {"name":"Media","value":"AAAAAgAAAJcAAAA4Aw=="}, {"name":"Prev","value":"AAAAAgAAAJcAAAA8Aw=="}, {"name":"Next","value":"AAAAAgAAAJcAAAA9Aw=="}, {"name":"DpadCenter","value":"AAAAAgAAAJcAAABKAw=="}, {"name":"CursorUp","value":"AAAAAgAAAJcAAABPAw=="}, {"name":"CursorDown","value":"AAAAAgAAAJcAAABQAw=="}, {"name":"CursorLeft","value":"AAAAAgAAAJcAAABNAw=="}, {"name":"CursorRight","value":"AAAAAgAAAJcAAABOAw=="}, {"name":"ShopRemoteControlForcedDynamic","value":"AAAAAgAAAJcAAABqAw=="}, {"name":"FlashPlus","value":"AAAAAgAAAJcAAAB4Aw=="}, {"name":"FlashMinus","value":"AAAAAgAAAJcAAAB5Aw=="}, {"name":"AudioQualityMode","value":"AAAAAgAAAJcAAAB7Aw=="}, {"name":"DemoMode","value":"AAAAAgAAAJcAAAB8Aw=="}, {"name":"Analog","value":"AAAAAgAAAHcAAAANAw=="}, {"name":"Mode3D","value":"AAAAAgAAAHcAAABNAw=="}, {"name":"DigitalToggle","value":"AAAAAgAAAHcAAABSAw=="}, {"name":"DemoSurround","value":"AAAAAgAAAHcAAAB7Aw=="}, {"name":"*AD","value":"AAAAAgAAABoAAAA7Aw=="}, {"name":"AudioMixUp","value":"AAAAAgAAABoAAAA8Aw=="}, {"name":"AudioMixDown","value":"AAAAAgAAABoAAAA9Aw=="}, {"name":"PhotoFrame","value":"AAAAAgAAABoAAABVAw=="}, {"name":"Tv_Radio","value":"AAAAAgAAABoAAABXAw=="}, {"name":"SyncMenu","value":"AAAAAgAAABoAAABYAw=="}, {"name":"Hdmi1","value":"AAAAAgAAABoAAABaAw=="}, {"name":"Hdmi2","value":"AAAAAgAAABoAAABbAw=="}, {"name":"Hdmi3","value":"AAAAAgAAABoAAABcAw=="}, {"name":"Hdmi4","value":"AAAAAgAAABoAAABdAw=="}, {"name":"TopMenu","value":"AAAAAgAAABoAAABgAw=="}, {"name":"PopUpMenu","value":"AAAAAgAAABoAAABhAw=="}, {"name":"OneTouchTimeRec","value":"AAAAAgAAABoAAABkAw=="}, {"name":"OneTouchView","value":"AAAAAgAAABoAAABlAw=="}, {"name":"DUX","value":"AAAAAgAAABoAAABzAw=="}, {"name":"FootballMode","value":"AAAAAgAAABoAAAB2Aw=="}, {"name":"iManual","value":"AAAAAgAAABoAAAB7Aw=="}, {"name":"Netflix","value":"AAAAAgAAABoAAAB8Aw=="}, {"name":"Assists","value":"AAAAAgAAAMQAAAA7Aw=="}, {"name":"ActionMenu","value":"AAAAAgAAAMQAAABLAw=="}, {"name":"Help","value":"AAAAAgAAAMQAAABNAw=="}, {"name":"TvSatellite","value":"AAAAAgAAAMQAAABOAw=="}, {"name":"WirelessSubwoofer","value":"AAAAAgAAAMQAAAB+Aw=="} ] ]]) function printIrCode() for i in pairs(irCode) do print(irCode[i].name) end end function irCodeLookup(irName) for i in pairs(irCode) do if (irCode[i].name == irName) then return irCode[i].value end end end -- Escape string to make suitable for embedding in HTML. function htmlize(s) s = s:gsub('&', '&') s = s:gsub('<', '<') s = s:gsub('>', '>') return s end --Helper for priniting nested table function deep_print(tbl) if (type(tbl) == "table") then for i, v in pairs(tbl) do if type(v) == "table" then deep_print(v) else print(i, v) end end else print(htmlize(tbl)); end end local successCallback = function(resp) print('At ' .. os.date() .. ' - status = ' .. resp.status) deep_print(resp.data) end local errorCallback = function(err) print('error = ' .. err) end function sendIrCode(name) local value = irCodeLookup(name) if (value == nil) then print('IR Code not found') return end local httpClient = net.HTTPClient(); httpClient:request('http://'..ip..':'..port..'/sony/IRCC', { success = successCallback, error = errorCallback, options = { method = 'POST', headers = { ['Content-Type'] = 'text/xml; charset=UTF-8', ['X-Auth-PSK'] = xAuthPSK, ['User-Agent'] = 'HC2/537.36 (KHTML, like Gecko)', ['SOAPACTION'] = '"urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"' }, data = [[<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:X_SendIRCC xmlns:u="urn:schemas-sony-com:service:IRCC:1"><IRCCCode>]]..value..[[</IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>]] } }); end local value = fibaro:getGlobalValue("cmd_sony_tv"); if (string.len(value) > 0) then print(''..value) sendIrCode(value) end _ Renseigner l'adresse IP de votre TV dans la scène. _ Importer le VD : Telecommande_Sony_TV.vfib _ Noter l"ID de la scène créée et renseigner l'id pour chaque bouton du VD dans la ligne : fibaro:startScene(4); Il est possible d'ajouter des boutons supplémentaires (se référer aux commandes qui se trouvent au début de la scène). J'ai mis les fonctions principales dont je me sers le plus souvent donc libre à vous de personnaliser votre télécommande en fonction de vos besoin. Je tiens à remercier @Krikroff pour son aide et sa dispo Toujours prêt à rendre service notre Jc.
  23. Bonjour, Sans être nouveau ici, je suis un peu désemparé dans le paramétrage des Groupes d'association sur ma HC2. Je ne trouve pas de tuto correspondant a la HC2 actuelle. Je pense avoir compris le principe des groupes, mais pas comment le paramétrer sur la HC2. A quoi servent les groupes1,2,3 ? A quoi servent les colonnes M & S. Simples et multi canal, mais pourquoi, comment ??? Je souhaite allumer "Lampe Gauche"(27) et "Lampe Buffet"(23) en allumant "Lampe Milieu". J'ai testé différentes options, sans trop comprendre, et ça pas marche. Que faire. (Je ne veux pas passer par une scène, je veux comprendre !!! ) Merci de votre aide.
  24. mipa

    Perte de mes modules à distance

    Bonjour, Je suis actuellement en déplacement et je ne vois plus mes modules sur ma HC2, je ne pense pas avoir fais des fausse manip (mais comme je débute en domotique, je préfère le dire....). J'ai essayer de me reconnecter à plusieurs reprises ces dernières 24h, mais rien n'y fais. Impossible de retrouver mes modules installer. Tout à disparu, sauf la disposition des pièces. Est ce que vous savez si on à une sauvegarde de l'installation à quelques part ? ou une idée ? de ce que je pourrais faire ? Merci d'avance
  25. Présentation Le mode passerelle (ou gateway) permet de cascader les box Fibaro Home Center 2 et Lite. Cette fonctionnalité peut être utile dans les cas suivants : installation de modules distants qui ne sont pas à porté du réseau sans-fil Z-Wave (cabanon au fond du jardin, dépendance, cave, résidence secondaire, ...) le nombre maximal de 230 modules gérés par une seule box est dépassé Pour communiquer, les box utilisent alors le réseau IP, que ce soit sur le réseau local ou via Internet (une configuration du modem/routeur sera alors nécessaire afin d'ouvrir les ports nécessaires) Remarque : chaque box reste contrôleur Z-Wave principal des modules qu'elle gère, par conséquent les 2 box doivent être opérationnelles et doivent pouvoir communiquer par le réseau IP afin de conserver l'accès aux modules de la box partenaire. Ceci n'est donc pas une utilisation du mode contrôleur Z-Wave secondaire normalisé dans le protocole Z-Wave. Pré-requis : Seule la box HC2 peut être utilisée en maitre, tandis que les HC2 et HCL peuvent être utilisées en esclave. Les 2 box doivent fonctionner avec le même niveau de firmware. Cet article présente l'utilisation de 2 box HC2 en mode passerelle, bien qu'il soit plus courant d'utiliser une Home Center 2 en maitre, et une Home Center Lite en esclave. En effet, les fonctionnalités avancées de la HC2 (script LUA notamment) pourront alors permettre de piloter la box secondaire HCL, même si celle-ci ne propose pas nativement le langage LUA. Importation Tout d'abord, sur la HC2 secondaire, quelques modules sont inclus, dans cet exemple nous avons une multiprise GreeWave Powernode, un détecteur de Fumée Fibaro, un module virtuel, un Wall Plug Fibaro, et un détecteur d'ouverture Aeotec : A01-HC2secondary.png Sur la HC2 qui sera utilisée comme passerelle maître, naviguer dans le menu "Configuration" puis "Connexions à la Passerelle" : B01-Gatewaypanel.png Cliquer sur le bouton "Ajouter passerelle distante". Dans la fenêtre qui apparait, le système scanne automatiquement le réseau local et découvre la (ou les) box disponible : B02-Gatewaypanel.png Il suffit de la sélectionner puis de cliquer sur le bouton "Ajouter des passerelles" : B03-Gatewaypanel.png Une nouvelle fenêtre demande alors de saisir les identifiants de connexions du compte "admin", ainsi qu'une description permettant d'identifier la box dans l'interface : B04-Gatewaypanel.png La passerelle secondaire est correctement reconnue : B05-Gatewaypanel.png Cliquer sur le bouton "Importation". Dans la fenêtre qui apparait, on peut conserver le choix "Basic" qui importera automatiquement tous les modules gérés sur la passerelle secondaire : B06-Gatewaypanel.png Ou choisir l'option "Avancé", qui permet alors de sélectionner manuellement tout ou partie des modules à importer : B07-Gatewaypanel.png Note : les modules cachés ou désactivés (fonctionnalités disponibles depuis la v4) dans l'interface de la box secondaire ne sont pas éligibles à l'importation. Après un clic sur le bouton "Sauver", le système importe les modules, étape qui prend quelques secondes : B08-Gatewaypanel.png Dans l'interface Web de la box maitre, les modules importés apparaissent alors dans la section "Non assigné" à coté des modules gérés localement. Les modules importés sont différentiés par un encadrement jaune autour de chacun d'eux : C01-HC2primary.png A noter que les icônes personnalisées sur la box secondaire ne sont pas importées sur la box maitre. Il sera alors nécessaire de les importer manuellement, puis de les affecter à chaque module. Utilisation Ces modules sont dorénavant pleinement utilisables avec les 2 box, une action via l'une ou l'autre interface agit alors immédiatement sur l'autre interface, ainsi que sur le module lui-même bien entendu. Pour chaque module, la box maitre leur affecte un nouvel ID afin de les différentier des modules existants. Les modules importés apparaissent dans les panneaux de consommation d'énergie et de température. En cas de nÅ“ud morts (module débranché, problème de transmission Z-Wave, etc) les modules apparaissent en nÅ“uds morts sur les 2 box : C02-DeadDevice.png Les modules importés sont utilisables dans des scènes, comme dans cet exemple de scène en mode bloc où le détecteur de fumée importé (donc géré par la box secondaire) peut déclencher une sirène locale (donc gérée par la box maitre) : C03-Scene.png Dans un script en langage LUA, après avoir obtenu l'ID des modules importés, on peut utiliser les commandes habituelles pour les actionner, comme dans cet exemple pour allumer/éteindre un Wall Plug : fibaro:call(355, "turnOn") fibaro:call(355, "turnOff") . De même, les modules sont pilotables via l'API HTTP disponible sur la box maitre : http://192.168.1.1/api/callAction?deviceID=355&name=turnOn http://192.168.1.1/api/callAction?deviceID=355&name=turnOff . Perte de communication En cas de perte de connexion réseau IP entre les 2 box, le panneau de configuration des passerelles signale le problème par une croix rouge : D01-LostConnection.png Cette information est également disponible au travers de l'API HTTP à l'adresse suivante : http://192.168.1.1/api/remoteGateways Qui renvoie un JSON indiquant le statut de la connexion true ou false. Cette information peut alors être gérée par un script LUA afin d'agir en conséquence (notification, etc...) : [ { "id": 1, "name": "HC2-012345", "ip": "192.168.1.2", "description": "HC2 Secondaire", "connected": true } ] [ { "id": 1, "name": "HC2-012345", "ip": "192.168.1.2", "description": "HC2 Secondaire", "connected": false }] . Pour terminer, sur la box secondaire, le panneau de passerelle dispose d'un onglet "Liste des modules partagés" permettant de visualiser les modules exportés : D02-HC2secondary.png
×