Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'Virtual Device'.



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
    • Annonces et suggestions
    • Nouveau ? Présentez-vous
    • Le bistrot
    • Mon installation domotique
    • Autres Solutions Domotiques
  • La HC2 et ses périphériques
    • La Home Center pour les nuls
    • Home Center 2 & Lite
    • Modules Fibaro
    • Modules Z-wave
    • Périphériques et matériels autres
    • Plugins
    • Alarme & Vidéo-surveillance
    • Multimédia
    • Chauffage et Energie
    • Actionneurs & Ouvrants (Portail, volets...)
    • Eclairage
    • Applications Smartphones et Tablettes
    • English Section
  • Les objets connectés
    • Les Assistants Vocaux
  • Fibaro's Awards
    • Membre du mois
    • Jeux concours & Cadeaux
  • 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

9 résultats trouvés

  1. Bonjour, Je possède un détecteur de fumée et de monoxyde de carbone de la marque NEST, et ne trouvant pas de Virtual device pour récupérer les informations depuis ma HC2, je me suis lancé dans le développment de mon propre VD et du scnénario associé. Je le mets à disposition si cela intéresse d'autres personnes détenteurs de ce modèle. Scene lua: sc_NestSmokeAndCo_V1.0.0.lua Device Virtuel : VD_NestSmokeAndCO.vfib PREREQUIS ETAPE1 : Créer un client OAuth Se connecter à https://console.developers.nest.com/products, et créer un nouveau client OAuth ETAPE 2 : Renseigner les informations : - Nom - Description - Catégories (2 à sélectionner, celles que vous souhaitez) - Nombre d’utilisateurs - Support URL : https://nest.com/ ETAPE 3: Définissez les permissions (dans notre cas permissions liées au détecteur de fumée): Entrer une description et valider : ETAPE 4 Cliquer sur créer ETAPE 5 Recopier l’ « authorization url » ETAPE 6 Entrer l’url dans votre navigateur et cliquer sur [Allow] Noter le code obtenu ETAPE 7 Il va falloir maintenant avec toutes ces informations, récupérer notre Token qui nous permettra d’interroger l’API. Et oui ce n’est pas encore fini ! Le Token est obtenu en interrogeant l’URL suivante (https://api.home.nest.com/oauth2/access_token) via une requête POST. Moi, j’utilise Postman pour générer des requêtes POST : Noter alors le Token obtenu (qui sera à remplacer dans le code du la scene LUA sous la variable AUTHORIZATION_CODE) Notons que sa validité est de 315360000 secondes, soit 10 ans, ce qui devrait nous laisser tranquille pour quelques temps ;-) ETAPE 8 Récupérons maintenant l’id de notre device afin de se repérer plus facilement dans le json lorsque nous interrogerons l’API depuis notre scene LUA. Dans Postman, j’exécute la requête GET sur https://developer-api.nest.com/ en définissant dans les entêtes du header : - Authorization : Bearer [Valeur du token obtenu à l’étape précédente] (exemple « Bearer c-TYHIx02kjjYghfgu521887l) - Content-Type : application/json Dans la réponse json, sous l’élément [Smoke_co_alarms], noter l’Id du détecteur de fumée (NEST_DEVICE_ID dans le code lua de la scene) Voilà, nous avons tous les éléments pour paramétrer le code de notre scene : - AUTHORIZATION_CODE - NEST_DEVICE_ID INSTALLATION Il ne vous reste plus qu'à installer la scene en remplaçant les variables suivantes avec le code et l'id du device: Indiquer l'ID du VD et les différents ID des icônes avec vos propres ID (cf. en fin de post la liste des icones à importer) Indiquer l'adresse IP de votre Home Center dans le champ IP adress du VD: Importer les icônes ci dessous :
  2. Virtual Device Position du soleil V1 : Au programme d'ici deux semaines sur le Blog domotique-info.fr. - Azimut et Hauteur solaire, - Radiation directe (Ensoleillement), - Radiation diffuse (Ensoleillement), - Radiation totale théorique, - Nébulosité en Octa - Potentiel radiation pondéré de la nébulosité - Indicateur en Lux Au programme du fork (Plus tard) - Détection d'angles battants - Déclenchement de scénarios pour réduire la température l'été. - Déclenchement de scénarios liés àl'éclairement extérieur. Au programme du fork Production Photovoltaïque (Plus tard) - Simulation de production PV - Alarme de sous-production Post G+
  3. Voici un module virtuel tout simple composé de 2 boutons, permettant de naviguer entre les pièces et les modules virtuels, afin de lister les ID de chaque bouton et slider. Ces ID sont utilisés pour "cliquer" virtuellement sur les boutons depuis du code LUA (VD, Scène, API, etc) : fibaro:call(id_vd, "pressButton", "id_bouton") fibaro:call(id_vd, "setSlider", "id_slider", "value") Rappel du tutoriel de @mprinfo sur la méthode d'identification manuelle des ID des boutons : Module Virtuel - Numérotation Des Boutons Ce module virtuel permet donc d'automatiser le comptage. Importer le fichier vfib ci-joint, rien à paramétrer, utiliser directement. Téléchargement : VD_Buttons_ID.vfib Icône (merci @fredokl) :
  4. vanbellel

    Virtual device dans les scenes

    Bonjour, je n'arrive pas à voir les devices virtuels dans les scenes..... quelqu'un peut il m'aider ? merci
  5. Je vous propose ce tuto pour créer un Virtual Device HCL afin de contrôler un thermostat Netatmo. C'est très utile dans l'optique d'un tableau de bord unifié, regroupant tous les objets connectés au niveau de la box domotique. C'est pratique aussi lorsqu'il s'agit de créer des scènes intégrant des informations provenant du thermostat (température mesurée, température de consigne de la chaudière, mode de chauffage...). Il existe bien un plugin Netatmo sur HCL mais je n'ai jamais pu le faire marcher, du moins pour le thermostat (ça marche peut-être pour la station meteo Netatmo). Par ailleurs, du fait des limitations de la HCL en termes de programmation (pas de LUA comme la HC2), il a fallu développer un web service HTTP (et non HTTPS) jouant le rôle d'intermédiaire entre le virtual device et le thermostat. En marge de ce tuto, je propose donc aussi un web service pour piloter le thermostat Netatmo. Principe L'objectif est donc de "fabriquer" un virtual device HCL pour le thermostat Netatmo permettant de: Récupérer la température mesurée Définir une température de consigne Définir le temps de validité de la température de consigne Switcher entre les modes : manual, program, away Voilààquoi cela ressemble visuellement Prérequis - Savoir créer un virtual device HCL. Ce tuto est très bien pour ça. - Quelques connaissances Linux pourraient être utiles pour l'installation du software, la copie et la modification de fichiers... - Quelques connaissances http et web services pourraient aider àcomprendre le principe de fonctionnement (optionnel) Matériel - Une HCL - Un thermostat Netatmo - un PC ou un Raspberry Pi (ou équivalent) qui jouera le rôle de serveur hébergeant le web service Pour ceux qui voudraient installer le software sur un Linux autre que celui du Raspberry (Raspbian), il faudrait s'informer sur la manière de rajouter un service (deamon) qui pourrait être différente de celle présentée ici. Logiciel Le code (Python) du web service que je fais tourner sur Raspberry Pi et que j'ai appelé "restatmo" est disponible dans Github sur ce lien. Un descriptif d'installation et de configuration y est décrit ici. Il s'agit d'une première version avec surement quelques bugs. Voici quelques caractéristiques du logiciel: - Pour ceux qui connaissent un peu les web services, voici un aperçu de l'interface http de "restatmo": GET /tempSP : récuperer la température de consigne courante POST /tempSP/valeur_entiere : définir une nouvelle température de consigne (durée par défaut : 15mn). Cette requête permet aussi de définir les modes away et program POST /tempDur/duration : définir la durée de validité de la température de consigne courante GET /tempMeas : récupérer la température mesurée par le thermostat - Pour la mise àjour du "slider" de la température mesurée, j'ai prévu un second service (tempupdate.py) se trouvant dans le même répertoire "restatmo". Lorsqu'il est lancé sur la machine passerelle (raspi ou autre), ce service met àjour la température mesurée du virtual device àintervalles réguliers. Des paramètres d'identification de la HCL et l'intervalle de mise àjour sont des données requises par ce service et sont paramétrables dans ce fichier tempupdate.py. Cette manière de mettre àjour la température est la seule que j'ai trouvée. En effet, les requêtes HTTP d'un virtual device sur HCL ne permettent pas d'aller chercher des valeurs. Le virtual device il faut d'abord définir le "host" et le "port" du Virtual Device qui sont respectivement l'adresse IP de machine sur laquelle tourne le service "restatmo" et le port de ce même service (par défaut 5000) Ce virtual device est composé de 3 sliders et de 3 boutons: 1) Slider 1 : la température mesurée par netatmo Il n'y rien àconfigurer au niveau de la chaine de caractères àenvoyer par ce slider. En effet, il est mis àjour automatiquement par le service "tempupdate" décrit précédemment. 2) Slider 2 : la température de consigne Chaine àenvoyer: POST /tempSP/_sliderValue_ HTTP/1.10x0D0x0AHost:192.168.0.28:5000 0x0D0x0AAuthorization: Basic xxxxxxxxxxxxxxxxxxx 0x0D0x0A0x0D0x0A NB: _sliderValue_ est la valeur indiquée par le slider en question (très pratique comme variable) xxxxxxxxxx: "user:password" en base 64 (voir tuto de création de Virtual Device) 3) Slider 3 : la durée de validité de la température de consigne Chaine àenvoyer: POST /tempDur/_sliderValue_ HTTP/1.10x0D0x0AHost:192.168.0.28:5000 0x0D0x0AAuthorization: Basic xxxxxxxxxxxxxxxxxxx 0x0D0x0A0x0D0x0A 4) Bouton1 : mode program Chaine àenvoyer: POST /tempSP/0 HTTP/1.10x0D0x0AHost:192.168.0.28:5000 0x0D0x0AAuthorization: Basic xxxxxxxxxxxxxxxxxxx 0x0D0x0A0x0D0x0A 5) Bouton2 : mode manual (ce n'est rien d'autre qu'une température de consigne à20°) Chaine àenvoyer: POST /tempSP/20 HTTP/1.10x0D0x0AHost:192.168.0.28:5000 0x0D0x0AAuthorization: Basic xxxxxxxxxxxxxxxxxxx 0x0D0x0A0x0D0x0A 6) Bouton3 : mode away POST /tempSP/101 HTTP/1.10x0D0x0AHost:192.168.0.28:5000 0x0D0x0AAuthorization: Basic xxxxxxxxxxxxxxxxxxx 0x0D0x0A0x0D0x0A enfin, pensez àtélécharger l'icone (ci-joint) àassocier au virtual device. La suite je n'ai peut-être pas suffisamment détaillé ce tuto, notamment concernant la partie paramétrage et installation du service web. N'hésitez pas àme solliciter si vous êtes intéressés ou si vous avez des questions. Vous pouvez aussi jeter un coup d'oeil sur mon autre tuto dont le but est de piloter l'alarme HCL/HC2 avec une passerelle NFC. A++
  6. Pour la HCL, j'avais en son temps fait un tuto pour afficher une icône dans un virtual device une icône en fonction de la valeur d'une variable globale, et de pouvoir modifier sa valeur (également depuis son smartphone), quelle se mette à jour lors d'un restart de la box, etc pour une HCL En passant sous HC2, j'avais gardé le même principe, et pour chaque VD (et donc chaque variable), la main loop tournait en continu pour vérifier que l'icône correspond bien à la valeur de la variable. Ce n'est vraiment pas optimal. Je vais vous expliquer ici la solution que j'ai mise en place pour que la charge sur la box soit moins importante. Merci à Steven, i-magin et mprinfo qui m'ont aidé pour débugger Création des variables Je prendrai dans mon exemple 2 variables globales : Auth_PS3 avec 2 valeurs possibles : "Autorisé" et "Interdit" Auth_TV avec 2 valeurs possibles : "Autorisé" et "Interdit" (mais les valeurs pourraient être différentes que pour la 1° variable, ou avoir plus que 2 valeurs) Modules virtuels Chaque variable a son module virtuel. Il a pour objectif d'afficher une icône différente en fonction de la valeur de la variable. Pour facilement les retrouver, j'ai créé une section "Section Virtuelle" et dedans une pièce "Variables". Chaque VD a le nom suivant : "Var_xxxx" où xxxx est le nom de la variable globale. Dans notre exemple : "Var_Auth_PS3" et "Var_Auth_TV". L'icône par défaut du VD est et doit rester l'horrible cube bleu (facile ainsi de repérer si la VD est à jour) J'ai créé les boutons suivants : Bouton 1 : Autorisé / Interdit Il permet simplement de faire le switch de la valeur de la variable. C'est le bouton par défaut du VD. Il n'y a pas d'icône associée. -- nom de la variable à modifier local variable = "Auth_PS3" if fibaro:getGlobal(variable) == "Interdit" then fibaro:call(fibaro:getSelfId(), "pressButton", "3") else fibaro:call(fibaro:getSelfId(), "pressButton", "4") end Label : Statut afficher en texte la valeur de la variable Bouton3 : Autorisé c'est le bouton qui est appelé pour mettre la variable à "Autorisé" Il contient l'icône qu'on veut voir affichée (comme ça on ne doit pas chercher son ID) fibaro:setGlobal('Auth_PS3', 'Autorisé') fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Statut.value", 'Autorisé') Bouton4 : Interdit c'est le bouton qui est appelé pour mettre la variable à "Interdit" Il contient l'icône qu'on veut voir affichée (comme ça on ne doit pas chercher son ID) fibaro:setGlobal('Auth_PS3', 'Interdit') fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Statut.value", 'Interdit') N.B. l'ID de ce bouton ne peut pas être appelée par le bouton Switch, mais seulement son numéro QUI CHANGE si vous changez l'ordre. C'est débile, mais c'est comme ça … Utilisation On clique sur le bouton principal, et il switch la valeur de la variable On peut utiliser Google Calendar pour lui dire d'appuyer directement sur le bouton "Autorisé" ou "Interdit" Vous devez modifier les scènes qui modifiaient directement la variable, en la faisant appuyer sur le bouton de la VD qui modifie la variable et met à jour l'icône de la VD (car il n'y a plus le mainloop qui contrôle en continu la valeur de la variable) Limitations et solution : Lors du redémarage de la box, ou Lors de la sauvegarde du VD (parce que vous avez fait une petite modif, ou …) L'icône qui est affichée pour le VD, est l'icône par défaut du VD. Le cube bleu, pas cool … Donc pour pallier à ce problème, j'ai créé un VD supplémentaire "Var_Update" Dont voici le code : un GRAND merci à mprinfo qui m'a beaucoup aider pour faire qqch de plus sympa et générique ---------------------------------- -- User Settings ---------------------------------- -- la Table doit avoir la structure suivante : -- 1/ nom de la variable globale entre " -- 2/ ID du VD qui affiche la valeur de la VG -- 3/ n° du premier bouton qui doit être appuyé -- (qui correspond à la première valeur de la variable) -- 4/ n° du dernier bouton qui doit être appuyé -- (qui correspond à la dernière valeur de la variable -- on suppose que tous les boutons se suivent de 1 en 1) -- 5/ valeurs possibles de la variable entre " -- (elles doivent être listées dans l'ordre des boutons de la VD) local Table = {"Auth_PS3", 23, 3, 4, "Autorisé", "Interdit", "Auth_TV", 289, 3, 4, "Autorisé", "Interdit", "Auth_VMCEtage", 290, 3, 4, "Autorisé", "Interdit", "Auth_TerrPar", 291, 3, 4, "Autorisé", "Interdit", "Auth_LumHallNuit", 362, 3, 4, "Autorisé", "Interdit", "ECS", 292, 3, 4, "Oui", "Non", "DayPart", 130, 3, 4, "After SunRise", "After SunSet", "Noel", 363, 3, 4, "Oui", "Non", "Saison", 133, 3, 6, "Printemps", "Eté", "Automne", "Hiver", "Chauffage", 351, 3, 5, "0", "1", "2", "Vacances", 293, 3, 4, "Oui", "Non" } ---------------------------------- -- DO not change bellow this line ---------------------------------- local i = 1 while Table[i] ~= nil do local VG_Nom = tostring(Table[i]) fibaro:debug("----------------------------") fibaro:debug("Nom de la variable Globale = " ..VG_Nom) local VD_id = tostring(Table[i+1]) local Btn_Deb = tonumber(Table[i+2]) local Btn_Fin = tonumber(Table[i+3]) local NbrVal = (Btn_Fin - Btn_Deb) + 1 --Nbr de valeur possibles de la variable fibaro:debug('NbrVal = ' ..NbrVal) i = i + 4 local VG_Val = fibaro:getGlobalValue(VG_Nom) fibaro:debug('Valeur de la variable Globale = ' ..VG_Val) for j = 1,NbrVal do if VG_Val == Table[i+j-1] then fibaro:debug(VG_Nom.. ' = ' ..VG_Val) fibaro:debug("Il faut appuyer sur le bouton : " ..Btn_Deb.. " de la VD_id " ..VD_id) fibaro:call(VD_id, "pressButton", Btn_Deb) end Btn_Deb = Btn_Deb + 1 end -- for i = i + NbrVal end -- while Pour retrouver l'ID du VD, vous avez plusieurs solutions : Le toolkit de Krikroff l'API : http://<IP Box>:<Port Box>/api/virtualDevices vous exportez le VD, et dans l'URL vous voyez ?id=xxx vous éditez le VD, et dans l'URL vous voyez ?vid=xxx Il vérifie la valeur de la variable et appuie sur le bouton correspondant à l'icône. D/Variable. Donc maintenant, quand je vois qu'une des icônes associée à mes variables est l'icone standard, je clique sur le bouton, et tout est remis au carré. Cela évite d'avoir un main loop qui tourne pour chaque variable 99% du temps pour rien. On a donc trouvé une parade à la deuxième limitation ;-) Pour la première limitation (mise à jour après un restart de la box) la solution est facile : Créer une scène qui appelle la VD "Var_Update" / bouton 1 au démarrage de la box. --[[ %% autostart --]] fibaro:sleep (10*1000) fibaro:call(361, "pressButton", "1") où 361 est l'ID du Vd "Var_Update" Merci à Steven qui finalement à trouvé la solution du sleep au début de la scène, ainsi qu'à i-magin et mprinfo pour leurs bonnes idées
  7. Visualiser les 10 dernières ouverture de Porte Je remercie @steven car ce VD est une adaptation de son VD Variables Globales Ce virtual devices affiche la dernière détection avec le temps écoulé des captures comme on peu le voir dans l'interface Les informations sont récuperer directement via l'api il peut y avoir quelques soucis si un modules et déclarer comme detecteur de porte alors qu'il ne l'ai pas Ouverture_porte_v0.2b.vfib
  8. Ce module virtuel permet de modifier les paramètres d'un device. Pour savoir comment l'utiliser, voyez la doc dans le code du VD. Il adapte son code automatiquement pour v3.x et v4.x. Son utilité : vous avez le code pour l'utiliser dans vos VD en fonction de vos besoins (je n'ai pas testé le code pour les scènes) permet d'entrer une valeur précise pour un paramètre sans devoir vous faire .... à bouger le slide bar, qui parfois ne veux jamais mettre la valeur que vous voulez La première fois que vous cliquez sur le bouton, il affiche le device, le paramètre à modifier, sa valeur actuelle et la nouvelle valeur souhaitée Un deuxième clic sur le bouton (dans les 5 secondes - paramétrable) confirme le changement un troisième clic sur le bouton affiche la nouvelle valeur telle que enregistrée dans le device Si vous avez des idées d'amélioration, elles sont les bienvenues. DeviceParameter_v1.0.vfib P.S. J'attends une super icône de notre graphiste national
  9. Bonjour à tous, -- Introduction -- Partant du constat que les courbes de températures ne sont dispo qu’à partir de la V4, et qu’on ne peut pas en tirer profit dans des scénarios, je me suis demandé comment mesurer les variations des relevés de température. Voici un partage d’un petit développement que j’ai réalisé pour afficher une « image » de l’évolution de la température. C’est sous la forme d’un Virtual Device en attendant de peut-être le transformer en plugin un jour… -- Installation -- Créer une variable globale (une pour chaque Virtual Device créé) >> exemple ici : Stats_Combles Connaitre l’ID de la sonde de température >> Exemple ici : 30 Importer le Virtual Device A télécharger ici : VD_StatsTemp_V1.0.vfib - Configurer l’@IP du VD avec le nom de la variable créée à l’étape 1 - Configurer le Port TCP avec l’ID de la sonde de température identifié à l’étape 2 Exemple : Ajout d’une icône sur le bouton PushTemp + Virtual Device >> Téléchargement de l’icone C’est parti ! -- Description fonctionnelle -- Par défaut la remontée de la température se fait toutes les 5 minutes La configuration est terminée, il ne reste plus qu’à attendre afin qu’il y ai assez de données pour retourner une valeur de la tendance. Pour forcer l’upload de la température courante, il suffit de cliquer sur le bouton « PushTemp ». Attention, cette action fausse les statistiques par rapport au temps. Le plugin affiche la différence de température entre l’instant T et les relevés précédents. Valeurs affichées : - T° Actuelle = Température actuelle - Min/AVG/Max = Température mini/moyenne/max des 24 dernières heures - Tendance H-10’ = Différence de température entre le dernier relevé et le relevé d’il y a 10 minutes - Tendance H-30’ = Différence de température entre le dernier relevé et le relevé d’il y a 30 minutes - Tendance H-1 = Différence de température entre le dernier relevé et le relevé d’il y a 1 heure - Tendance H-2 = Différence de température entre le dernier relevé et le relevé d’il y a 2 heures - Tendance J-1 = Différence de température entre le dernier relevé et le relevé d’il y a 1 jour - Nb Records = Debug >> Nombre de données de température stockées dans la variable globale. -- Description technique -- Le Main Loop déclenche un appui sur le bouton PushTemp toutes les 5 minutes. Changement du délai entre deux remontées de température Valeurs possibles entre 2 et 10 minutes (en dessous trop de valeurs à stocker dans la variable globale / En dessus la tendance h-10' ne fonctionnera pas). - Main Loop : local TimeToWait = 5 --en minutes - Minimum = 2 ; Max = 10 - Bouton PushTemp local TimeToWait = 5 --en minutes >> Minimum = 2 ; Max = 10 La sauvegarde et restauration de l’historique des données dans la variable globale est faite à l’aide de la fonction json.encode() et json.decode(). Certaines versions V4 Beta avaient un pb avec cette fonction, corrigée depuis les dernières versions (V4.020B). Le stockage d’une chaine de caractère dans une variable globale est limité en taille. D’après mes tests, il semblerait que ça soit aux alentours de 1600 caractères. Attention, les valeurs > ou = à 0 sont précédés du caractère « + ». --Bug connus-- Lors de la modification d’une variable globale par l’interface web, la sauvegarde écrase les données contenues dans la variable globale qui stock l’historique des relevés de température. Une variable globale est limitée en nombre de caractères qui peuvent y être stockés. Il semblerait que cette valeur soit d’environ 1600 caractères. Le VD est configuré pour -- Roadmap -- Affichage des données statistiques des 7 derniers jours (min/avg/max) Transformation en plugin Des idées ?
×