Aller au contenu

zoydu33

Membres confirmés
  • Compteur de contenus

    3
  • Inscription

  • Dernière visite

Profile Information

  • Sexe :
    Homme
  • Ville :
    Bordeaux
  • Box
    Autre

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

zoydu33's Achievements

Newbie

Newbie (1/14)

6

Réputation sur la communauté

  1. Je propose un scénario permettant un arrêt automatique d'alimentation électrique suite à la mise en veille d'un périphérique (ordinateur, TV, ...). Le principe de fonctionnement est le suivant. Imaginons par exemple un ordinateur branché sur une prise FGWP102. En fonctionnement normal l'ordinateur consomme environ 500w et lorsqu'il est arrêté il continue de consommer 30W. Nous fixons une valeur seuil de 50w avec un délai d'attente de 10 minutes dans le code du scénario avec une exécution toutes les 10 min (trigger). Dans ce cas de figure la HC3 arrêtera la prise lorsque la consommation passera en dessous de 50w pendant au moins 10min au moment de l'exécution du scénario. Je me base sur la lecture de l'historique de la HC3 pour déterminer si délai de 10 min sans consommation au delà de 50w est respecté. Le développement a été réalisé sur prise électrique FGP102 qui est capable de remonter régulièrement la consommation instantanée (donnée nécessaire au fonctionnement du scénario). Code lua du déclencheur { conditions = { { isTrigger = true, operator = "matchInterval", property = "cron", type = "date", value = { date = { "00", "10", "18", "6", "*", "2020" }, --Lancement de la scene toutes les 10 min en seconde (PERSONNALISABLE) interval = 1200 } } }, operator = "all" } Code lua de l'action --Consommation de bascule (PERSONNALISABLE) local SeuilPower = 50 --Intervalle de temps en minutes nécessaire avant d'arréter la prise pour une consommation inferieur au seuil (PERSONNALISABLE) local DelaiTimeOnMin=10 --ID du module prise électrique (PERSONNALISABLE) local IDdevice = 22 local DelaiTimeOnSeconde = DelaiTimeOnMin * 60 local jsonHistopower local HistopowerEncode local LongChaine local i1, i2, Temp1, Temp2 local VerifSeuil = 0 i1=1 i2=0 -- Etat prise true/false local jsonDeviceX= api.get('/devices?id=' .. IDdevice .. '') local EtatDevice=jsonDeviceX["properties"]["value"] ---print(EtatDevice) if EtatDevice == true then print("Prise ON") jsonHistopower= api.get('/energy/now-' .. DelaiTimeOnSeconde .. '/now/summary-graph/devices/power/' .. IDdevice .. '') --local jsonHistopower= api.get('/energy/now-200/now/summary-graph/devices/power/26') HistopowerEncode= json.encode(jsonHistopower) --print(HistopowerEncode) LongChaine=string.len(HistopowerEncode) -- positionnement première virgule Temp1,Temp2=string.find(HistopowerEncode,",",i1) --print(Temp1) --recherche positionnement virgule pour connaitre le nombre de couple de valeur while Temp1 ~= nil do i2=i2+1 i1=Temp1+1 Temp1,Temp2=string.find(HistopowerEncode,",",i1) end -- nombre de couples de valeur i2=(i2+1)/2 print(i2) -- puissance du dernier couple print(jsonHistopower[i2][2]) --Verification si existe un log de puissance superieur au seuil VerifSeuil=0 for i1=1, i2 do if jsonHistopower[i1][2] > SeuilPower then VerifSeuil=1 end end if VerifSeuil == 0 then print("arret prise") fibaro.call(IDdevice, 'turnOff') end else print("Prise OFF") end Les paramètres personnalisables sont les suivant : --Consommation de bascule (PERSONNALISABLE) local SeuilPower = 50 --Intervalle de temps en minutes nécessaire avant d'arrêter la prise pour une consommation inferieur au seuil (PERSONNALISABLE) local DelaiTimeOnMin=10 --ID du module prise électrique (PERSONNALISABLE) local IDdevice = 22 Une fois la scène enregistrée ne pas oublier de paramétrer au niveau de la configuration de base de cette même scène l'option "Lancement de la scène" en mode "Auto". Actuellement j'ai trois prises pilotées de cette manière depuis 5 mois et je n'ai pour l'instant pas relevé de problème. Zoydu33
  2. Bonjour à tous. Je propose un petit tutorial permettant de transférer les valeurs de sondes oregon connectées à jeedom vers une HC3. Ce tuto est certainement transposable à d’autres types de périphériques domotiques couplés à jeedom dont on souhaiterait transférer les données vers une HC3. J’ai également inclus dans ce tuto toutes les procédures de test qui m’ont permis de venir à bout de mon projet de récupération de données sur des sondes au protocole rfx. Le tutorial est volontairement très détaillé pour aider les plus novices d’entre nous. N’ayant pas de HC2 en ma possession je ne sais pas si les scripts et procédures proposées ici sont transposables sur ce type de box Objectif : Création d’une sonde température dans HC3 qui va récupérer les valeurs transmises par une sonde oregon connectée à JEEDOM. Eléments préalables : - Sondes déjà inclues dans JEEDOM - Home center 3 - Pièces (room) déjà créées dans HC3 Etape 1 : Création du device sonde. - Sur la HC3 aller dans « 5. Dispositif » puis cliquer sur l’icône « + » pour ajouter un device. - Dans la fenêtre « Ajouter un appareil » choisir « Autre appareil » - Dans la nouvelle fenêtre choisir « quick app » - Dans la fenêtre suivante donner un nom à la sonde, indiquer la pièce associée et dans « Device type » sélectionner « Temperature sensor » (Pour l’humidité par exemple choisir « Humidity sensor »). Dans le cadre du tuto le nom de la sonde est : « TempExterieurTest ». Voir capture 1 Capture 1 - Sauvegarder - Noter l’ID de la sonde créée pour l’utiliser dans de prochains scripts. Dans ce tuto l’id = 53 - voir capture 2 Capture 2 Etape 2 : Construction du script d’actualisation de la température sur la nouvelle sonde HC3 Dans l'étape 2 je présente de quelle manière j’ai pu construire le script de modification du paramètre Température. La méthodologie peut être employé pour d’autres paramètres. - Dans la page d’administration de la HC3 cliquer sur l’icône swagger (capture 3) Capture 3 - Dans « select a definition » de l'interface du swagger choisir « device » Etape 2.1 : Cas de figure où l’on souhaiterait identifier le paramètre température ou autre à rafraîchir dans l'HC3 - Aller dans « Get /devices/{deviceID} » - Cliquer sur « Try it out » - Dans « ID of an existing device » mettre l’ID du device créé en étape 1 (ID = 53 dans mon exemple) - Cliquer sur « Execute ». Le générateur de script donne l’équivalent en curl et en http - Dans « server response » récupérer le code (Copier le code dans bloc note windows où cliquer dans « download » pour télécharger le fichier et l'ouvrir avec le bloc note de windows). Le code récupéré = CODE1 Extrait du code 1 : "unit": "C", "userDescription": "", "value": 0, è La partie qui nous intéresse est le paramètre ‘’value’’ : 0 sur cette zone de code. C’est cette partie qui est associée à la température qui s’affiche dans l'HC3. Etape 2.2 : Construction du script de modification - Aller dans « Put /devices/{deviceID} » - Cliquer sur « Try it out » - Dans « ID of an existing device » mettre l’ID du device créé en étape 1 (ID = 53 dans mon exemple) - Dans « Modified device body » coller le code 1 (Etape 2.1) - Modifier à des fins de test le paramètre value dans la portion de code présenté dans Extrait du code 1 (exemple : ''value’’ : 55.5, ) - Vérifier sur le tableau de bord de la HC3 la bonne modification de la température de la sonde « TempExterieurTest » ou autre. - Récupérer le script Curl généré par le « Put /devices/{deviceID} » et le coller dans le bloc note Windows - Elaguer le code en conservant uniquement les paramètres à modifier. Dans notre cas c'est le paramètre value que l'on souhaite conserver. L'étape est un peu fastidieuse car elle nécessite pas mal de test (Voir Astuce 1 pour réaliser des tests de validation de script sur windows) Code 2 : code curl élagué permettant de modifier la température curl -X PUT "http://adresseIP-HC3/api/devices/53" -H "Authorization: Basic xxxxxxxxxxx==" -d "{\"properties\":{\"value\":44.4}}" Rappel : 53 est l’ID device et 44.4 la valeur de test adresseIP-HC3 : Adresse ip de la box HC3 xxxxxxxxxxx : login et passe de la HC3 en hexadécimal récupérable en Etape 2.1 ou 2.2 Astuce1 -> Pour tester le bon fonctionnement du code avec Windows, lancer la console ligne de commande (Touche windows +R) puis coller le code et l’exécuter. Normalement la sonde créée dans HC3 va prendre la valeur 44.4 Etape 3 : Paramétrage de JEEDOM - Dans jeedom créer un nouveau scénario (exemple : test temperature) - Dans le paramètre Evenement choisir la sonde de température (ou autre) que l'on doit synchroniser avec l'HC3 (Capture 3 et 4) Capture 3 : Fenêtre jeedom scénario Capture 4 : Fenêtre de paramétrage du déclencheur - Récupérer le code dans la case Evenement. Dans l’exemple #[Exterieur][Sonde exterieur][Température]# => Code 3 (voir capture 3) - Dans l’onglet « Scénario » cliquer sur ajouter bloc Capture 5 : Onglet scénario – Ajouter bloc - Dans la fenêtre « Ajouter un bloc » choisir « code » - Coller le code Code 4 Code 4 : Script jeedom -> HC3 (temperature) $TSondeExterieur = cmd::byString('#[Exterieur][Sonde exterieur][Température]#')->execCmd(); $TSondeExterieurScript='curl -X PUT "http://adresseIP-HC3/api/devices/53" -H "Authorization: Basic xxxxxxxxxxx==" -d "{\"properties\":{\"value\":'.$TSondeExterieur.'}}"'; echo shell_exec($TSondeExterieurScript); Rappel : 53 est l’ID device HC3 #[Exterieur][Sonde exterieur][Température]# : voir Code 3 adresseIP-HC3 : Adresse ip de la box HC3 xxxxxxxxxx : login et passe de la HC3 en hexadécimal récupérable en Etape 2.1 ou 2.2 Les noms des variables $TSondeExterieur et $TSondeExterieurScript peuvent être personnalisées Astuce 2-> A des fins de test on peut ajouter au code 4 le script suivant pour visualiser au niveau des notifications jeedom le script curl (code 4 ligne2): message::add("test", $TSondeExterieurScript); - Sauvegarder le scénario En surveillant le tableau de bord de l'HC3, vérifier que la sonde de température se synchronise. Cela peut prendre plusieurs minutes. L’hygrométrie : Pour récupérer hygrométrie des sondes oregon c'est le même combat. Il faut créer une sonde dédiée HC3. Les étapes sont identiques à celle présentée pour la température. Le paramètre à mettre à jour est de nouveau "value":0 Code 2 : code identiques mais avec l’ID device adapté. Code 4 : code identiques mais avec l’ID device, le code 3 et le nom de variable adapté Code 5 : Script jeedom -> HC3 (hygrométrie) $HSondeExterieur = cmd::byString('#[Exterieur][Sonde exterieur][Humidité]#')->execCmd(); $HSondeExterieurScript='curl -X PUT "http:// adresseIP-HC3/api/devices/51" -H "Authorization: Basic xxxxxxx==" -d "{\"properties\":{\"value\":'.$HSondeExterieur.'}}"'; echo shell_exec($HSondeExterieurScript); J'espère que ce tuto vous sera utile. zoydu33
  3. Bonjour à tous Après plusieurs semaines de lecture du forum et l'acquisition de la HC3 je me suis décidé à m'inscrire. Cela fait quelques années que j'utilise une zibase couplée à homidom mais le moment est arrivé moderniser mon installation avec la HC3. J'ai mis longtemps à me décider pour basculer sur de la box fibaro car je souhaitais pouvoir utiliser le protocole rfx pour la remonter de données de sondes oregon et autres. Après deux semaines de labeur tous les soirs et en écumant forum, tuto divers et torture de la HC3 j'ai finalement réussi en passant par l'intermédiaire de JEEDOM. J'avoue avoir eu envie de m'en servir de frisbee. J'ai fait un tuto détaillé et très simple pour mettre en place de la remonté de données de sonde oregon -> jeedom ->HC3. Si un admin du site veut y jeter un coup d’œil je peux lui faire parvenir par mail sinon je mettrai directement dans la section tuto du forum.
×
×
  • Créer...