Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'Tuto Energie'.



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

19 résultats trouvés

  1. Ce sujet fait suite au sujet [Votre avis ?] Compteur Eau Veolia Hrf initié par @Sakkhho. Si votre fournisseur d'eau est Veolia, il a peut être installé un compteur d'eau équipé d'un module HRF permettant la télétransmission quotidienne des relevés du compteur vers les serveurs de Veolia. Pour Veolia, cela permet de vendre des services à valeur tarif ajoutée au client, comme une assurance "détection de fuite d'eau". Pour le client, cela permet de consulter son historique dans l'espace personnel accessible sur le site web https://www.service-client.veoliaeau.fr/home.html A noter que les données accessibles sur le site ont un retard de 2 jours environ. Pour rappel, le télé-relevé est mis en place par le fournisseur d'eau en accord avec la municipalité, car cela nécessite la pose d'antennes en plusieurs points de la ville. La communication entre le compteur et l'antenne s'effectue sur une fréquence de 433 ou 868 MHz selon la génération, avec un protocole chiffré afin de sécuriser les données transmises. Par conséquent, il est impossible d'y accéder directement. Ce tutoriel décrit comment mettre en place un script permettant d'aller chercher automatiquement le relevé sur le site web, puis aux choix : injecter les données dans une base SQL envoyer les données vers un service de graphiques en ligne mettre à jour une variable globale sur une box domotique ... Tout d'abord, le script qui parcours les pages Web est écris en langage Shell Bash, il faut donc disposer d'un système Linux. Cela peut être un serveur dédié, un NAS, une machine virtuelle, un Raspberry PI, un émulateur Cygwin sous Windows, etc.... ce tuto ne décrit pas l'installation d'une telle plateforme. Ce script a été écrit rapidement, et est une adaptation du script partagé par Vitrail sur le forum.hardware.fr que je remercie au passage. Par conséquent, il sera surement nécessaire de l'adapter légèrement à votre usage. Notamment, j'ai tout installé avec le compte root, ce qui n'est pas une bonne pratique. Il est souhaitable de le faire tourner avec un utilisateur lambda disposant de peu de privilèges. De plus, la gestions des logs peut être améliorée. veolia.sh #/bin/bash # # Script: veolia.sh # # Version : 1.3 # # Auteurs : Vitrail & Lazer # # User data USERNAME="xxxxx.yyyyy@zzzzz.com" PASSWORD="XXXXX" NAS_ADDRESS="http://XXXXX" NAS_URL="/graph" # Do not modify below this line SITE="www.service.eau.veolia.fr" cd /root/veolia date rm -f cookies rm -f home.html curl -c cookies -o home.html https://${SITE}/home.html if [ $? -ne 0 ] then echo "Error 1" exit 1 fi TOKEN=$(grep '<input type="hidden" name="token"' home.html | sed -n 's/.*value="\([a-zA-Z0-9-]*\)".*/\1/p') if [ -z ${TOKEN} ] then echo "Error 2" exit 2 fi rm -f login.html curl --location -b cookies -c cookies --data-urlencode "token=${TOKEN}" --data-urlencode "veolia_username=${USERNAME}" --data "veolia_password=${PASSWORD}" --data-urlencode "login=OK" -o login.html https://${SITE}/home.loginAction.do if [ $? -ne 0 ] then echo "Error 3" exit 3 fi rm -f client.html curl -L -c cookies -b cookies -o client.html https://${SITE}/home/espace-client.html if [ $? -ne 0 ] then echo "Error 4" exit 4 fi rm -f conso.html curl -L -c cookies -b cookies -o conso.html https://${SITE}/home/espace-client/votre-consommation.html if [ $? -ne 0 ] then echo "Error 5" exit 5 fi rm -f conso2.html curl -L -c cookies -b cookies -o conso2.html https://${SITE}/home/espace-client/votre-consommation.html?vueConso=historique if [ $? -ne 0 ] then echo "Error 6" exit 6 fi grep "momentanément indisponible" conso2.html > /dev/null 2>&1 if [ $? -eq 0 ] then echo "Error 7 : website unavailable" exit 7 fi DATE=`/bin/date +"%Y%m%d"` curl -L -c cookies -b cookies https://${SITE}/home/espace-client/votre-consommation.exportConsommationData.do?vueConso=historique > conso-${DATE}.xls if [ $? -ne 0 ] then echo "Error 8" exit 8 fi rm -f conso.xls.csv /usr/local/bin/xls2csv -x conso-${DATE}.xls -c conso.xls.csv -b CP850 -a UTF-8 cat conso.xls.csv | sed -e 's/"//g' | sed '1d' > conso-${DATE}.csv # Send data to DomoCharts POST=`awk -F\, 'BEGIN {ORS="";print "[";OFS=",";sep=""} {print sep"{\"id\":3000","\"date\":\""$1"\"","\"type\":\"water\"","\"value\":"$3"}"; sep=","} END {print "]\n"}' conso-${DATE}.csv` /usr/bin/curl --request POST --data ${POST} ${NAS_ADDRESS}${NAS_URL}/data_post.php echo Dans le script ci-dessus, il faut remplacer XXXXX par vos informations personnelles : # User data USERNAME="xxxxx.yyyyy@zzzzz.com" PASSWORD="XXXXX" NAS_ADDRESS="http://XXXXX" NAS_URL="/graph" On rend ce script exécutable : [root@redhat veolia]# chmod u+x veolia.sh xls2csv Sur ma distribution Redhat, le script xls2csv est buggé. I y a un bug avec le format de date utilisé par Excel, et pas de chance on est en plein dedans. Ca se traduit par une date erronée de 4 ans et 1 jour. Ce script buggé est celui qui est fourni dans le package catdoc-0.94.2 écrit en C par V.B. Vagner et disponible dans toutes les bonnes distributions Linux. Il existe un autre script xls2csv, écrit en Perl par Ken Prows, qui fonctionne très bien. En revanche, il est plus compliqué à installer, comme tout ce qui touche à Perl ! Pour commencer, installer le compilateur gcc : [root@redhat ~]# yum install gcc Puis configurer le gestionnaire de paquets Perl CPAN : [root@redhat ~]# perl -MCPAN -e 'shell' [...] CPAN needs access to at least one CPAN mirror. As you did not allow me to connect to the internet you need to supply a valid CPAN URL now. Please enter the URL of your CPAN mirror http://www.cpan.org Configuration does not allow connecting to the internet. Current set of CPAN URLs: http://www.cpan.org Enter another URL or RETURN to quit: [] New urllist http://www.cpan.org Please remember to call 'o conf commit' to make the config permanent! cpan shell -- CPAN exploration and modules installation (v1.9402) Enter 'h' for help. cpan[1]> o conf commit commit: wrote '/usr/share/perl5/CPAN/Config.pm' cpan[2]> q No history written (no histfile specified). Lockfile removed. Lancer Perl et installer les packages suivants : [root@redhat ~]# perl -MCPAN -e 'shell' install CPAN reload CPAN install YAML install Locale::Recode install Unicode::Map install Spreadsheet::ParseExcel install Spreadsheet::ParseExcel::FmtUnicode install Text::CSV_XS exit Télécharger les sources de xls2csv et extraire l'archive : [root@redhat ~]# wget http://search.cpan.org/CPAN/authors/id/K/KE/KEN/xls2csv-1.07.tar.gz [root@redhat ~]# ll xls2csv-1.07.tar.gz -rw-r--r--. 1 root root 4665 Jan 22 2012 xls2csv-1.07.tar.gz [root@redhat ~]# tar xzf xls2csv-1.07.tar.gz [root@redhat ~]# cd xls2csv-1.07 [root@redhat xls2csv-1.07]# ll total 36 drwxr-xr-x. 4 501 games 4096 Jan 22 2012 . dr-xr-x---. 17 root root 4096 May 10 23:12 .. -rw-r--r--. 1 501 games 1227 Jan 22 2012 Changes -rw-r--r--. 1 501 games 710 Jan 22 2012 Makefile.PL -rw-r--r--. 1 501 games 163 Jan 22 2012 MANIFEST -rw-r--r--. 1 501 games 710 Jan 22 2012 META.yml -rw-r--r--. 1 501 games 536 Jan 22 2012 README drwxr-xr-x. 2 501 games 4096 May 10 23:12 script drwxr-xr-x. 2 501 games 4096 Jan 22 2012 t Compiler et installer xls2csv : [root@redhat xls2csv-1.07]# perl Makefile.PL [...] [root@redhat xls2csv-1.07]# make [...] [root@redhat xls2csv-1.07]# make install [...] Vérifier le bon fonctionnement : [root@redhat xls2csv-1.07]# /usr/local/bin/xls2csv -h xls2csv - Recode a spreadsheet's charset and save as CSV. usage: xls2csv -x spreadsheet.xls [-w worksheet] [-n worksheet number] [-b charset] [-c csvfile.csv] [-a charset] [-qshvWf] -x : filename of the source spreadsheet -b : the character set the source spreadsheet is in (before) -c : the filename to save the generated csv file as -a : the character set the csv file should be converted to (after) -q : quiet mode -s : print a list of supported character sets -h : this help message -v : get version information -W : list worksheets in the spreadsheet specified by -x -w : specify the worksheet name to convert (defaults to the first worksheet) -n : specify the worksheet number to convert (you cannot use this option with -w) -f : force the worsheet to be fully parsed. This disables the feature that skips rows when the first cell is blank example: xls2csv -x "spreadsheet.xls" -b WINDOWS-1252 -c "csvfile.csv" -a UTF-8 More detailed help is in "perldoc xls2csv" Graphiques Le script veolia.sh injecte les données dans la même base de données que mon outil DomoCharts. Dans le fichier index.php on dé-commente les 2 lignes suivantes dans la rubrique <select id="update"> <option value="water_day">Eau [L] (moyenne journalière)</option> <option value="water_month">Eau [L] (moyenne mensuelle)</option> veolia.sh Retour au script veolia.sh écrit précédemment. Il devrait maintenant pouvoir s'exécuter avec succès : [root@redhat veolia]# ls -l veolia.sh -rwxr-xr-x. 1 root root 2171 May 22 00:56 veolia.sh [root@redhat veolia]# ./veolia.sh Thu Jun 4 00:25:15 CEST 2015 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 37588 0 37588 0 0 27791 0 --:--:-- 0:00:01 --:--:-- 53851 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 17606 0 83 15001 70 --:--:-- 0:00:01 --:--:-- 596k % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 29254 0 29254 0 0 9608 0 --:--:-- 0:00:03 --:--:-- 11622 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 36700 0 36700 0 0 19185 0 --:--:-- 0:00:01 --:--:-- 26402 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 7168 100 7168 0 0 11121 0 --:--:-- --:--:-- --:--:-- 36385 Now reading "conso-20150604.xls" as CP850. The spreadsheet has been converted to UTF-8 and saved as "conso.xls.csv". {"success":true,"rowcount":1} On ajoute donc ce script à la crontab afin d'automatiser le relevé tous les soirs : [root@redhat veolia]# crontab -e On ajoute la ligne suivante, puis on sauvegarde : 5 0 * * * /root/veolia/veolia.sh >> /root/veolia/veolia.out 2>&1 Attention : l'éditeur de crontab est vi, donc on fait "a" pour ajouter une ligne, puis on colle la ligne ci-dessus, puis on fait "Echap" ":" "w" "q" "Entrée". Hyper intuitif quand on fait du vi depuis 15 ans Bonus Si on veut mettre à jour une variable globale sur la box Home Center 2 en v4, on peut remplacer les dernières lignes du script veolia.sh par la ligne suivante (non testé personnellement) : # Send data to HC2 global variable CONSO=`tail -1 conso-${DATE}.csv | awk -F\, '{print $3}'` PUT="{\"name\": \"ConsoEau\", \"value\": \"${CONSO}\"}" curl --request PUT --data ${PUT} --user admin:password http://192.168.x.y/api/globalVariables/ConsoEau
  2. Bonjour, Voici ce dont je dispose chez moi: Ce tuto assez complexe me permet de domotiser ma ventilation Storkair 550 . La partie Fibaro n'est pas trop complexe, ce qui l'est plus c'est la partie commande et lecture de la VMC (qui n'est pas prévue pour cela à l'origine...) Cette partie à été réalisée avec un raspberry, un bricolage pour transformer ses signaux TTL en RS232 et un script en Python Des connaissances en Linux sont donc demandées et aussi en "électronique" Donc avant de faire un long (très long) tuto, j'aimerais savoir si ça intéresserait quelques personnes (et pas juste pour la beauté du tuto hein ) Scripts postés plus bas: http://www.domotique-fibaro.fr/index.php/topic/3285-domotisation-dune-vmc-double-flux-storkair-550/#entry95139
  3. pepite

    Prévision Météo

    Voilà un module Virtuel "Collaboratif", comme beaucoup d'autres sur ce forum me direz-vous ;-) De peur d'en oublier et pour ne froisser personne, UN GRAND MERCI à VOUS TOUS, vous vous reconnaitrez... je ne fais que le messager avec PLAISIR Idée de jojo, le lien du topic original pour tous les intervenants ;-) http://www.domotique-fibaro.fr/index.php/topic/4087-pr%C3%A9vision-m%C3%A9t%C3%A9o/ --> Le VD tire ses infos de : www.prevision-meteo.ch et son API : http://www.prevision-meteo.ch/uploads/pdf/recuperation-donnees-meteo.pdf SCREENSHOTS : FONCTIONNEMENT : Mise à jour toutes les heures : 00 h 01 min, 01 h 01, 02 h 01....14 h 01 min, 15 h 01 min ... PRE-REQUIS INDISPENSABLE : Renseigner Longitude et Latitude dans la configuration de la HC2 MODE OPERATOIRE : 1- Importer le VD ci-joint (étonnant non ? ... ) 2- Télécharger les icônes et importez-les (encore plus étonnant... ) 3- Modifier le code du bouton avec vos numéros d'icônes --Affichage des icones en fonction des conditions météo local icone = { ["Ensoleillé"] = 1030, --numéro icone à renseigner ["Nuit claire"] = 1031, ["Ciel voilé"] = 1032, ["Nuit légèrement voilée"] = 1033, ["Faibles passages nuageux"] = 1034, ["Nuit bien dégagée"] = 1035, ["Brouillard"] = 1036, ["Stratus"] = 1037, ["Stratus se dissipant"] = 1038, ["Nuit claire et stratus"] = 1029, ["Eclaircies"] = 1039, ["Nuit nuageuse"] = 1040, ["Faiblement nuageux"] = 1041, ["Fortement nuageux"] = 1042, ["Averses de pluie faible"] = 1043, ["Nuit avec averses"] = 1044, 4- Enregistrer, petit appui sur le bouton et ENJOY ;-) EVOLUTION FUTURE : Intégration possible de la ville et toutes les idées qui pourraient vous venir .... Module Virtuel : V1.0 : ajout de la ville Prévision_Météo (1).vfib Icones : prev_meteo.zip
  4. PatrickVH

    VD panneaux solaires PVOUTPUT

    Pour ceux qui utilisent pvoutput.org pour l'analyse des panneaux sollaires je vous présente un nouveau VD. 1. Utilisation: - voir ce qui se passe avec votre système panneaux sollaires (température, voltage) - voir la production et l'efficacité par jour et pour une période que vous choissisez vous même avec le paramètre pvoutputdf (voir plus bas) - scènes HC2: dans GEA j'ai une règle qui décide, oui ou non, d'utiliser le chauffage électrique de notre chambre de bain sur base de la production du jour (Generated TODAY) de ce VD - à votre imagination ... 2. Installation: 2.1 configuration sur pvoutput.org/account.jsp (l'utilisation de pvoutput.org est gratuit) Vous avez besoin de votre "clé api" et "system id" pvoutput.org que vous trouvez dans la partie account settings Le champ "API access" doit être sur "enabled". Le sid se trouve dans la partie "Registered Systems" en bas de la page account settings. Comme il existe plusieurs outils et manières pour charger les données de votre système panneaux solaires dans pvoutput.org je n'expliquerai pas cette partie. 2.2 configuration du VD Après importation du VD dans votre HC2 il faut simplement modifier la configuration utilisateur, c-à-d: local pvoutputkey = "6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -- your pvoutput.org api-key local pvoutputsid = "xxxxx" -- your pvoutput.org system-id local pvoutputdf = "20180101" -- start date as off which you want to monitor your installation, formatting is YYMMDD 3. Icon (Credits to riemers). 4. le VD version 1.0 Solar_Panels.vfib Mes excuses pour les erreurs ortographes, je suis néérlandophone :-). All feedback is welcome.
  5. La HC2 est capable de gérer l'arrosage de votre jardin via le panneau d'arrosage. Dans ce panneau vous pouvez définir l'heure, la durée de l'arrosage mais aussi "adjust water" et "rain delay" afin de s'adapter à la météo. Sur le forum Fibaro, richo a mis a dispo le script suivant: HC2 = Net.FHttp("HC_IP",80) HC2:setBasicAuthentication("admin", "your_password") -- get table response ,status, errorCode = HC2:GET("/api/panels/drenchers") jsonTable = json.decode(response) -- change table in Lua for 24 hours delay jsonTable.rainDelay = "24" -- send back json = json.encode(jsonTable); HC2:PUT("/api/panels/drenchers", json) fibaro:log("ready") Cela permet de passer "rain delay" (décallage) à 24 heures. Il a aussi mis une scène pour le déclencher en automatique: --[[ %% properties 3 WeatherConditionConverted %% globals --]] local VD_ID = 999 -- enter the ID of your Virtual device local startSource = fibaro:getSourceTrigger(); condition = fibaro:getValue(3, "WeatherConditionConverted") fibaro:debug("Weather change: "..condition) if condition == 'rain' or condition == 'storm' then fibaro:call(VD_ID, "pressButton", "1"); fibaro:debug('sprinkle delayed 24h') end 1- J'ai repris cela pour créer un virtual device avec: - Une label pour le delai, - Trois boutons pour +0h / +24h / +48h - Une label pour le ajustement en eau - Trois boutons pour +0% / +10% / +20% Cela me permettra de le choisir manuellement si besoin. Le script pour le "rain delay" est du type: HC2 = Net.FHttp("HC_IP",80) HC2:setBasicAuthentication("admin", "your_password") -- get table response ,status, errorCode = HC2:GET("/api/panels/drenchers") jsonTable = json.decode(response) -- change table in Lua for 0 hours delay jsonTable.rainDelay = "0" -- send back json = json.encode(jsonTable); HC2:PUT("/api/panels/drenchers", json) fibaro:log("ready") fibaro:call(ID virtual device, "setProperty", "ui.Label1.value", " 0 heures"); Il suffit de changer "0" par "24" pour avoir un délai de 24h Pour l'ajustement, le script est: HC2 = Net.FHttp("HC_IP",80) HC2:setBasicAuthentication("admin", "your_password") -- get table response ,status, errorCode = HC2:GET("/api/panels/drenchers") jsonTable = json.decode(response) -- change table in Lua for +0% of sprinkling jsonTable.adjustWater = "+0" -- send back json = json.encode(jsonTable); HC2:PUT("/api/panels/drenchers", json) fibaro:log("ready") fibaro:call(ID virtual device, "setProperty", "ui.Label2.value", " +0%"); Après j'ai crée une scène qui va déclencher le délai de 24h fonction du temps, cf image jointe. Il faut que je retravaille cette scène afin de faire quelque chose comme en LUA comme celle de richo et aussi utiliser la fonction ajustement s'il fait sec.
  6. Tuto Gestion Compteur d'eau Voici mon approche pour la gestion de ma consommation d'eau. Mon besoin : - Connaitre ma conso d'eau journalière, mensuelle et annuelle et son coà»t - Pouvoir, en cas de d'anomalie couper l'alimentation en eau de mon habitation. J'ai donc installé un compteur d'eau à impulsion type "Gianola" : Raccordement du capteur d'impulsion sur mon éco-device ( Compteur1 ) qui gère déjà ma consommation éléc. et production photovoltaà¯que. Au départ, je voulais installer une électrovanne, mais je suis tombé sur ce module z-wave par trés connu : GR-Smarthome, qui me permet facilement de couper l'arrivée générale d'eau . Ce module, reconnu par l'ensemble des box domotique et trés pratique pour ceux qui ne souhaitent pas faire de plomberie, celui-ci venant simplement se poser sur une vanne "1/4 tour". Extremement simple d'installation, tout comme l'inclusion du matériel dans la HC2. . Un bouton sur la face avant du module vous servira à piloter "manuellement" la vanne si nécessaire. Une goupille permet aussi de débrayer le moteur si nécessaire pour une manÅ“uvre de l'ensemble non motorisée. Je suis satisfait du fonctionnement général. Pour vous donner une idée voici une petite vidéo du pilotage de ce module : . youtu.be/58zYi7_LuXg . Concernant la remontée des informations à la HC2, j'ai créé un module virtuel dédié à la gestion d'eau : Merci @couillerot pour les icones . Ce module virtuel me permet de visualiser l'ensemble de la consommation et de pouvoir piloter la fermeture de la vanne. Aussi, chaque soir, un push nous renvoi l'ensemble des mesures ( GEA ) . ( adapter le code du bouton selon votre besoin ) Pour fonctionner, j'ai créé 3 variables : Compteur_eau Compteur_eau_jour Compteur_eau_mois Compteur_eau_annee Ces variables serviront pour les calculs de conso et mise à jour des labels toutes les 10 secondes. Selon votre système de comptage, il va falloir renseigner la variable "Compteur_eau" Comme perso j'utilise mon Eco-device, j'ai rajouté une ligne à mon script existant pour récupérer l'index du compteur C1 : ( GEA lance régulièrement ce code pour mettre à jour les variables ) local thismodule = fibaro:getSelfId(); local ip = fibaro:get(thismodule, 'IPAddress'); HC2 = Net.FHttp(ip)-- ip de l'éco-device response = HC2:GET("/api/xdevices.json?cmd=10") response = json.decode(response) -- renseignement des index dans plusieures variables distinctes fibaro:setGlobal("ABO", response.T1_PTEC) fibaro:setGlobal("CONSO", response.T1_PAPP) fibaro:setGlobal("IHP", response.T1_HCHP) fibaro:setGlobal("IHC", response.T1_HCHC) fibaro:setGlobal("PROD", response.T2_PAPP) fibaro:setGlobal("INDEXPROD", response.T2_BASE) fibaro:setGlobal("Compteur_eau", response.INDEX_C1) fibaro:log(fibaro:getGlobalValue("CONSO").." W Tarif : "..fibaro:getGlobalValue("ABO").." Index HP : "..fibaro:getGlobalValue("IHP").." Index HC :" ..fibaro:getGlobalValue("IHC") ) . Ensuite, une scène permet de récupérer et stocker le relevé de l'index du compteur tous les jours à minuit, tous les mois et année : . --[[ %% autostart --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); local Jour = tonumber(os.date("%d", os.time())) local Mois = tonumber(os.date("%m", os.time())) local Annee = tonumber(os.date("%y", os.time())) local Heure = tonumber(os.date("%H", os.time())) local Minute = tonumber(os.date("%M", os.time())) local compteur = fibaro:getGlobal("Compteur_eau") -------------------------------------------- --Envoi index dans variable à minuit tous les jours if Heure == tonumber("23") and Minute == tonumber("59") then fibaro:setGlobal("Compteur_eau_jour", compteur) fibaro:debug(indexprod) end -------------------------------------------- --Envoi index au 1er du mois if Jour == tonumber("01") then fibaro:setGlobal("Compteur_eau_mois", compteur) end -------------------------------------------- --Envoi index au 28/07 if Jour == tonumber("01") and Mois == tonumber("01") then fibaro:setGlobal("Compteur_eau_annee", compteur) end fibaro:sleep(30*1000); end end . . On se prend au jeu car le fait de visualiser instantanément la quantité consommée et le prix nous sensibilise sur nos gaspillages éventuels. Pour télécharger le module virtuel : Gestion_Eau.vfib Penser à modifier la ligne 32 du "mainLoop", afin de saisir le prix au litre vendu par votre fournisseur d'eau euro = tonumber(0.00283)--prix au litre . Voici les icônes pour la vanne ( merci Couillerot ) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Edit / 15 / 03 / 2016 Modification du module virtuel faite par Darklite44. Fonction supplémentaires: - Ajout des TVA 5.5 et 7 ( taxes pouvant varier selon les régions ) - Résultat des calculs limités à 2 chiffres aprés la virgule Ligne 1 et 2 du "main loop" , saisir le montant des TVA en Euro Ligne 72 du "main loop", saisir le prix au Litre vendu par votre fournisseur. Téléchargement du module : Gestion_Eau_v1.1.vfib
  7. Je vous partage mon script que j'ai créer pour être régulièrement notifié de ma production photovoltaà¯que. A savoir que ce script est facilement adaptable pour suivre sa consommation Electrique générale compteur + coà»t Petit rappel pour récupérer les valeur de l'écodevice et envoyer cela dans des variables : HC2 = Net.FHttp("192.168.0.151")-- ip de l'écodevice response = HC2:GET("/api/xdevices.json?cmd=10") -- enregistrement du retour de l API dans une table response = json.decode(response) fibaro:setGlobal("ABO", response.T1_PTEC) fibaro:setGlobal("CONSO", response.T1_PAPP) fibaro:setGlobal("IHP", response.T1_HCHP) fibaro:setGlobal("IHC", response.T1_HCHC) fibaro:setGlobal("PROD", response.T2_PAPP) fibaro:setGlobal("INDEXPROD", response.T2_BASE) fibaro:log(fibaro:getGlobalValue("CONSO").." W Tarif : "..fibaro:getGlobalValue("ABO").." Index HP : "..fibaro:getGlobalValue("IHP").." Index HC :" ..fibaro:getGlobalValue("IHC") ) Tout d'abord, il va falloir créer 4 variables globales: -index ( index relevé à minuit ) -indexprod ( index à l'instant "t" ) -indexmois ( index relevé le 1er du mois ) -index28/07 ( index relevé à la date du contrat erdf ) J'ai crée un vd avec 4 boutons, 3 boutons renseignent donc ces variables à des moments précis --récupération de l'index de production local indexprod = fibaro:getGlobal("INDEXPROD") fibaro:debug(indexprod) --affectation de la prod dans la var "index" / a faire à minuit fibaro:setGlobal("index", indexprod); --récupération de l'index de production local indexprod = fibaro:getGlobal("INDEXPROD") fibaro:debug(indexprod) --affectation de la prod dans la var "indexmois" / a faire au 1er du mois fibaro:setGlobal("indexmois", indexprod); --recupération de l'index de production local indexprod = fibaro:getGlobal("INDEXPROD") fibaro:debug(indexprod) --affectation de la prod dans la var "index2807" / a faire à la date souhaitée fibaro:setGlobal("index2807", indexprod); Le dernier bouton servant à faire les relevés d'index et calcul : -- Formattage des chiffres --- function formatIndex(value) local sous = (indexprod - value)/1000;--soustraction return string.format("%010.3f", sous) end indexprod = tonumber(fibaro:getGlobal("INDEXPROD") or 0); fibaro:debug("index actuel: "..indexprod.."");--récup prod actuelle local index = tonumber(formatIndex(tonumber(fibaro:getGlobal("index") or 0))); local minuit = tonumber(fibaro:getGlobal("index") or 0); fibaro:debug("index à minuit: "..minuit.."");--récup prod à minuit local indexmois = tonumber(formatIndex(tonumber(fibaro:getGlobal("indexmois") or 0))); local mois = tonumber(fibaro:getGlobal("indexmois") or 0); fibaro:debug("index au 1er: "..mois.."")--récup prod du mois local index2807 = tonumber(formatIndex(tonumber(fibaro:getGlobal("index2807") or 0))); local date = tonumber(fibaro:getGlobal("index2807") or 0); fibaro:debug("index au 28/07: "..date.."")--récup prod à la date choisie local euro = tonumber(0.465)--prix d'achat erdf --------------- local prixjour = (euro * index) jour = string.sub(prixjour, 1, 4) --fibaro:debug(jour) fibaro:debug("Prod du jour : "..index.." Kwh - soit: "..jour.." €"); ------------- local prixmois = (euro * indexmois) mois = string.sub(prixmois, 1, 6) --fibaro:debug(mois) fibaro:debug("Prod du mois : "..indexmois.." Kwh - soit: "..mois.." €"); ------------- local prixannee = (euro * index2807) annee = string.sub(prixannee, 1, 7) --fibaro:debug(annee) fibaro:debug("Prod depuis le 28/07 : "..index2807.." Kwh - soit: "..annee.." €"); ------------- message = ("Production solaire du jour : "..index.." Kwh - soit: "..jour.." € / Production mensuelle : "..indexmois.." Kwh - soit: "..mois.." € / Production annuelle :"..index2807.." Kwh - soit: "..annee.." €") fibaro:debug(message); fibaro:setGlobal("pushover", message); fibaro:call(198, "pressButton", "2"); --pushover lua fibaro:sleep(1000); fibaro:setGlobal("pushover", "" );--raz variable En "debug" : [DEBUG] 18:19:32: index actuel: 8715878 [DEBUG] 18:19:32: index à minuit: 8698402 [DEBUG] 18:19:32: index au 1er: 8485402 [DEBUG] 18:19:32: index au 28/07: 6340400 [DEBUG] 18:19:32: 8.12 [DEBUG] 18:19:32: Prod du jour : 17.476 Kwh - soit: 8.12 € [DEBUG] 18:19:32: 107.17 [DEBUG] 18:19:32: Prod du mois : 230.476 Kwh - soit: 107.17 € [DEBUG] 18:19:32: 1104.59 [DEBUG] 18:19:32: Prod depuis le 28/07 : 2375.478 Kwh - soit: 1104.59 € [DEBUG] 18:19:32: Production solaire du jour : 17.476 Kwh - soit: 8.12 € / Production mensuelle : 230.476 Kwh - soit: 107.17 € / Production annuelle :2375.478 Kwh - soit: 1104.59 € Personnellement, j'ai choisi d’être informé 2 fois par jour avec l'application "pushover". J'ai donc créé une scène qui "appui" sur le bouton n°4 et qui me notifie quotidiennement ma production :
  8. jojo

    Top 10 Power

    Je publie ici un Virtual Device qui a originellement été créé par Lazer http://www.domotique-fibaro.fr/index.php/topic/770-modules-les-plus-consommateurs-d%C3%A9nergie/?p=8372 Il a évolué depuis sa création : affichage de la consommation totale affichage d'îcônes (merci à Frédéric) différentes en fonction de la consommation totale compatibilité automatique v3.x / v4.x (merci à Shyrka973) L'objectif est de continuer ici les discussions et proposition d'évolution de ce VD. Top_10_Power_v3.0.vfib
  9. Moicphil

    Téléinfo avec Eco-Device

    Si comme moi, vous souhaitez gérer la ou les sorties téléinfo de votre compteur pour monitorer cela sur la HC2, ce tutoriel est fait pour vous... Même si l'Eco-device possède son propre serveur, l''intégrer à la HC2 m'est très utile comme par exemple, déclencher la machine à laver automatiquement dés le passage en Heure Creuse, ou connaitre la conso instantanée de votre domicile.... Sachez qu'il est possible d'aller plus loin comme enregistrer les données, générer des graphes...etc... Tutoriel : http://domotique-info.fr/2013/06/suivi-energetique-eco-device-et-fibaro/ Test de l'eco-device : http://domotique-info.fr/2013/06/test-eco-devices-suivre-vos-consommations/
  10. Bonjour, Vous l'avez peut-être vu ailleurs, j'ai créé un p'tit script qui me permet de lancer ma VMC simple flux selon l'humidité de la maison. Pratique en hivers pour éviter de balancer la chaleur dehors. J'ai mis sur mon bloc VMC un FGS-221 : O1 allume la VMC, O2 mets la grande vitesse. Evidement ceci dépends de votre modèle de VMC. D'autre part, je calcule dans ce script la moyenne d'humidité sur les 4 ST814 que j'ai dans le salon / chambre / sdb / douche et si l'un d'entre eux a +5% d'humidité que la moyenne alors la vitesse lente démarre, si c'est 70% de plus que la moyenne la grande vitesse se lance. Et on attends 10minutes et on voit si on doit changer la solution. Voici le code, il y a encore du debug dedans, les variables suivantes sont a changer : hum_cap : les capteurs d'humidité... vmc_low : VMC low speed vmc_high : VMC high speed Le code est sous licence MPL 1.1, vous pouvez l'utiliser comme vous voulez, mais vous devez laisser mon nom dessus. A noter que je suis preneur de toute idées et ou modifications pour rendre ce code plus intelligent. Changements : Version 1.0.2 : Version initiale Version 1.0.4 : Ajout du support de déclenchement manuel de la scène ou lorsque la sonde d'humidité se déclenche (ne pas oublie de mettre id value en haut du script). Le code est disponible sur mon GIT, si vous avez des bugs il y a aussi un tracker pour cela : https://redmine.oav.net/projects/kiwi/repository/changes/fibaro/lua/vmc/vmc.lua Xavier
  11. lionel

    Armoire Météo avec RGB

    Merci a Olivier Male qui est l auteur de ce script poster ici: http://domotique-info.fr/2013/08/armoire-meteo-fibaro-rgbw-controller/ Dans ce tutoriel, nous allons voir comment transformer son armoire en armoire météo. Le principe est d’y ajouter des LEDs RGB pour éclairer l’armoire avec une couleur au moment où vous ouvrez la porte. Mais nous allons ajouter un peu d’intelligence et faire correspondre la couleur à la météo du moment. Voici le sens qu’on souhaite donner à chaque couleur : bleu : il va pleuvoir vert : il fait froid jaune : il fait beau rouge : il fait lourd blanc : ciel nuageux Pré-requis : Fibaro RGBW Controller Pour réaliser ce tutoriel nous avons besoin d’un contrôleur RGB et de LEDs. Nous allons utiliser le module Fibaro RGBW Controller dont vous pouvez trouver le test sur le site fait par Pascal. Ce tutoriel est prévu pour la box domotique Fibaro Home Center 2. qui est la seule box à ce jour à savoir utiliser ce module RGB. Mais comme la solution est basée sur le protocole z-wave, d’ici quelques semaines, les autres box z-wave du marché sauront en faire de même. Scène : Lumière Armoire La récupération de la météo se fait tout simplement en utilisant les variables de la box Home Center 2. Celles-ci peuvent récupérées avec cette commande : fibaro:getValue(3, « Humidity »). Nous avons plus qu’à intégrer cette commande à notre script et nous obtenons : --[[ %% properties 3 Temperature 3 Humidity 3 WeatherConditionConverted 96 value %% globals --]] local startSource = fibaro:getSourceTrigger(); local Humidity = tonumber(fibaro:getValue(3, "Humidity")); local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature")); local WeatherCondition = fibaro:getValue(3, "WeatherConditionConverted"); fibaro:debug("OutsideTemperature " .. OutsideTemperature); fibaro:debug("Humidity " .. Humidity); fibaro:debug("WeatherCondition " .. WeatherCondition); -- 90 = ID module RGB -- 96 = ID interrupteur if ( (tonumber(fibaro:getValue(96, "value")) > 0 ) or startSource["type"] == "other" ) then -- si l'interrupteur est ouvert if(OutsideTemperature <= tonumber("20")) then fibaro:debug("vert"); fibaro:call(90, "setColor", "0", "255", "0", "0") -- vert end if(OutsideTemperature > tonumber("20")) then fibaro:debug("jaune"); fibaro:call(90, "setColor", "255", "255", "0", "0") -- jaune end if(Humidity >= tonumber("50")) then fibaro:debug("rouge"); fibaro:call(90, "setColor", "255", "0", "0", "0") -- rouge end if(Humidity >= tonumber("50") and OutsideTemperature < tonumber("20")) then fibaro:debug("blanc"); fibaro:call(90, "setColor", "255", "255", "255", "0") -- blanc end if(WeatherCondition == "rain") then fibaro:debug("bleu"); fibaro:call(90, "setColor", "0", "0", "255", "0") -- bleu end -- la météo est affichée 5 secondes fibaro:debug("tempo"); fibaro:sleep(5*1000); -- si la lumière n'a pas été fermée pendant ces 5 secondes if( (tonumber(fibaro:getValue(96, "value")) > 0 ) ) then -- met la lumière en blanc car plus pratique pour choisir ses affaires fibaro:call(90, "setColor", "255", "255", "255", "0") -- blanc fibaro:debug("tempo blanc"); fibaro:sleep(3*60*1000); if( (tonumber(fibaro:getValue(96, "value")) > 0 ) ) then fibaro:debug("turnOff1"); fibaro:call(90, "turnOff"); end end else -- si l'interrupteur est fermée fibaro:debug("turnOff2"); fibaro:call(90, "turnOff"); end
  12. Si comme moi vous avez votre sèche-linge à l'autre bout de la maison et que vous désirez savoir à quel moment il est terminé, voici un petit script utilisant un wallplug pour vérifier la consommation de ce dernier. Bien sur il faudra adapter en fonction du votre. En cadeau des petits icônes pour les 5 états : Tout d'abord un petit relevé des consommations, nous obtenons ceci pour un cycle complet de chauffage : Un peu plus en détail sur le défoulement à la fin : Reste plus qu'à repérer les différentes phases en fonction de la consommation de la machine à l'aide d'un script sans prétention : --[[ %% autostart %% properties %% globals --]] -- Tumble dryer - scene process check v 1.0.3 [03-2015] -- Copyright © 2014 BenjyNet local sourceTrigger = fibaro:getSourceTrigger(); local id_wallplug = 42; local current_conso = 0; local power = 0; if (sourceTrigger["type"] == "autostart") then fibaro:debug("Script sèche-linge démarré"); while true do local flag = 0; current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); if current_conso > 500 then power = 1; fibaro:debug(os.date() .. " - Start tumble dryer"); fibaro:debug(os.date() .. " - PHASE 1"); fibaro:sleep(5*60*1000); -- wait 5 min while current_conso > 500 do fibaro:sleep(2*60*1000); -- check conso every 2 min current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end fibaro:debug(os.date() .. " - PHASE 2"); while current_conso > 100 do fibaro:sleep(1*60*1000); -- check conso every min current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end fibaro:debug(os.date() .. " - PHASE 3"); while (current_conso > 2 and flag < 149) do if current_conso > 100 then flag = 0; current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); else flag = flag + 1; current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end -- fibaro:debug(flag); fibaro:sleep(2*1000); -- check conso every 2s end fibaro:debug(os.date() .. " - Tumble dryer process terminated - flag : " .. flag .. " conso : " .. current_conso); -- Send notification to cellphone here fibaro:call(9, "sendEmail", "Sèche-linge", "Processus terminé"); fibaro:call(101, "sendPush", "Le sèche-linge est terminé"); end if current_conso > 2 then power = 1; fibaro:debug(os.date() .. " - Tumble dryer power ON - Please power OFF"); --fibaro:call(10, "setProperty", "currentIcon", 1009); current_conso = tonumber(fibaro:getValue(id_wallplug, "power")); end if (current_conso == 0 and power == 1) then power = 0; fibaro:debug(os.date() .. " - Tumble dryer power OFF"); --fibaro:call(10, "setProperty", "currentIcon", 1008); end fibaro:sleep(5*60*1000); -- check if tumbler dryer is ON every 5 min end end
  13. À partir du code Krikroffs, j'ai fait un disque virtuel de télécharger les données météo actuelles du wunderground.com. La plupart des crédits doit aller à Krikroff P.s Google translate à tous WU_Weather.vfib
  14. Bonjour, Voici le module virtuel pour l'ECO-DEVICES que je souhaitais faire pour afficher mes consommations mensuelles directement sur le HC2. Je n'ai pas traité le main loop pour le moment donc si vous souhaitez l'améliorer, pas de soucis. Il affiche : • la consommation HP/HC de chaque mois • le coà»t associé pour chaque mois (hors abo) Ce module est prévu pour un abonnement HP/HC mais vous pourrez l'adapter facilement en changeant le pattern qui parse le fichier CSV. Le données sont stockées dans une variable energylist. Il faut la créer dans le panneau Variables. Voilà ce que ça donne sur Androà¯d. Il reste à traiter les points suivants : envoyer de rapports quotidiens via Pushover comparaison de la conso à M-1 automatiser le chargement des valeurs à 00h05 chaque jour via le main loop Consos_mois 1.1.2.vfib
  15. p78ch201

    Module Pour Wallplug

    Pour fêter ma nomination pour Mr Avril en fanfare, voici mon petit module qui gère mes prises automatiquement pour couper la veille des appareils. Etape 1 Créer une variable globale "SysPrise_auto" avec les vlaeurs "ON" et "OFF" Créer une variable globale "Jour_semaine" avec 7 valeurs "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" et "Dimanche" Etape 2 Créer un module avec - 1 label - 2 boutons Etape 3 - Label Label : "Prise auto : " ID : "Label1" Etape 4 - Bouton 1 Label "Auto" code lua : fibaro:setGlobal("SysPrise_auto", "ON"); fibaro:call(103, "setProperty", "ui.Label1.value", "Auto"); icone : 103 est l'ID du module virtuel Etape 5 - Bouton 2 Label "Manuel" code lua : fibaro:setGlobal("SysPrise_auto", "OFF"); fibaro:call(103, "setProperty", "ui.Label1.value", "Manuel"); icone : 103 est l'ID du module virtuel Etape 6 - Main Loop --[[ %% properties %% globals --]] local ID_wallplug = {35,40,55}; --ID wallplug local conso = 50; -- consommation en dessous de laquelle on coupe les prises local sysprise_auto = fibaro:getGlobal("SysPrise_auto"); local jour = fibaro:getGlobal("Jour_semaine"); ------------------------------------------------------------------------------------------------------------- -- Définition des horaires Auto des Prises ------------------------------------------------------------------------------------------------------------- local time_off_1 = "08:30"; -- Si on décide de couper les prises en journée, ici est l'heure de coupure local time_on_1 = "16:30"; -- Si on décide de couper les prises en journée, ici est l'heure de rallumage local time_off_2; -- heure ou on éteint les prises la nuit local time_on_2 = "06:30"; -- l'heure de rallumage de la coupure de nuit if jour == "Samedi" or jour == "Dimanche" then time_off_2 = "02:00"; -- Le samedi et le Dimanche, les prises sont coupées à 2h du matin else time_off_2 = "00:01"; -- Les jours de semaine, les prises sont coupées à minuit. end ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- -- Dans la partie suivante se trouve le code qui fait varié la variable "Jour_semaine" ------------------------------------------------------------------------------------------------------------- local minute = 60000 --in milliseconds local currentDate = os.date("*t"); local currentTime = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min); if (currentDate.wday == 1 ) then fibaro:setGlobal("Jour_semaine", "Dimanche") end if (currentDate.wday == 2 ) then fibaro:setGlobal("Jour_semaine", "Lundi") end if (currentDate.wday == 3 ) then fibaro:setGlobal("Jour_semaine", "Mardi") end if (currentDate.wday == 4 ) then fibaro:setGlobal("Jour_semaine", "Mercredi") end if (currentDate.wday == 5 ) then fibaro:setGlobal("Jour_semaine", "Jeudi") end if (currentDate.wday == 6 ) then fibaro:setGlobal("Jour_semaine", "Vendredi") end if (currentDate.wday == 7 ) then fibaro:setGlobal("Jour_semaine", "Samedi") end local id_w; if sysprise_auto == "ON" then ------------------------------------------------------------------------------------------------------------- -- Nuit ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- -- Coupure Nuit ------------------------------------------------------------------------------------------------------------- if time_off_2 <= currentTime and currentTime < time_on_2 then fibaro:debug("Coupure nuit") for i=1, #ID_wallplug do id_w = tonumber(ID_wallplug[i]); --fibaro:debug(id_w.."valeur : "..tonumber(fibaro:getValue(id_w, "valueSensor"))) if tonumber(fibaro:getValue(id_w, "value")) then fibaro:debug(id_w.." allumé") if tonumber(fibaro:getValue(id_w, "valueSensor")) < conso then fibaro:debug("veille => turnOff "..id_w) fibaro:call(id_w, 'turnOff'); end end end end ------------------------------------------------------------------------------------------------------------- -- Rallumage Nuit ------------------------------------------------------------------------------------------------------------- local id_w; if time_on_2 == currentTime then fibaro:debug("Rallumage nuit") for i=1, #ID_wallplug do id_w = tonumber(ID_wallplug[i]); --fibaro:debug(id_w.."valeur : "..tonumber(fibaro:getValue(id_w, "valueSensor"))) if tonumber(fibaro:getValue(id_w, "value")) == 1 then fibaro:debug("r_nuit prise allumé =1 "..tonumber(fibaro:getValue(id_w, "value"))); fibaro:debug(id_w.." déjà allumé") else fibaro:debug("r_nuit prise allumé =0 "..tonumber(fibaro:getValue(id_w, "value"))); fibaro:debug(id_w.." turnOn") fibaro:call(id_w, 'turnOn'); end end end ------------------------------------------------------------------------------------------------------------- -- Jour - définir ici les jours ou vous souhaitez couper les prises en journée ------------------------------------------------------------------------------------------------------------- if jour == "Samedi" or jour == "Dimanche" or jour == "Lundi" or jour == "Jeudi" then fibaro:debug("Prise OFF soir seulement"); elseif jour == "Mardi" or jour == "Mercredi" or jour == "Vendredi" then fibaro:debug("Prise OFF journée et soir"); ------------------------------------------------------------------------------------------------------------- -- Coupure Jour ------------------------------------------------------------------------------------------------------------- if time_off_1 <= currentTime and currentTime < time_on_1 then fibaro:debug("Coupure jour") for i=1, #ID_wallplug do id_w = tonumber(ID_wallplug[i]); --fibaro:debug(id_w.."valeur : "..tonumber(fibaro:getValue(id_w, "valueSensor"))) if tonumber(fibaro:getValue(id_w, "value")) == 1 then fibaro:debug(id_w.." allumé") if tonumber(fibaro:getValue(id_w, "valueSensor")) < conso then fibaro:debug("veille => turnOff "..id_w) fibaro:call(id_w, 'turnOff'); end end end end ------------------------------------------------------------------------------------------------------------- -- Rallumage Jour ------------------------------------------------------------------------------------------------------------- if time_on_1 == currentTime then fibaro:debug("Rallumage jour") for i=1, #ID_wallplug do id_w = tonumber(ID_wallplug[i]); if tonumber(fibaro:getValue(id_w, "value")) == 1 then fibaro:debug("r_jour prise allumé =1 "..tonumber(fibaro:getValue(id_w, "value"))); fibaro:debug(id_w.." déjà allumé") else fibaro:debug("r_jour prise allumé =0 "..tonumber(fibaro:getValue(id_w, "value"))); fibaro:debug(id_w.." turnOn") fibaro:call(id_w, 'turnOn'); end end end ------------------------------------------------------------------------------------------------------------- end ------------------------------------------------------------------------------------------------------------- end et voila ! ce module coupe les prises en veille : - la nuit à partir de 00:01 et les rallume à 6h30 - le jour (sauf le weekend et les jour ou ma femme est à la maison) entre 8h30 et 16h30. Les lignes à modifier pour chacun sont : ligne 7 : id du smartphone (ça ne sert à rien, il n'ya plus de modifications push dans le module, c'etait juste pour les phases de tests) ligne 8 : id de vos wallplug a renseigner ici ligne 15 à 25 : mettre vos horaires souhaités ligne 102 & 104 : définissez les jours ou vous coupez les prises le jour. pour alleger le code, vous pouvez aussi supprimer toutes les lignes fibaro:debug(xxx) qui me servait a vérifier mon code, maintenant qu'il est plutot fonctionnel, elle ne serve plus a grand chose, si ce n'est vérifié ce que fait le code.
  16. Voici un module virtuel pour l'ECO-DEVICES. J'ai utilisé un bouton plutôt que le main loop car au bout de quelques heures/jours les informations ne remontaient plus. J'espère que ça tiendra cette fois (c'est ok depuis 3 jours)... Il affiche : • l'index en temps réel (évite de descendre dans le garage pour le relevé compteur ou de le faire pendant les vacances) • la consommation instantanée en kWh • la consommation depuis 00h01 et le coà»t en euros. Pour ce calcul, je vous invite à vérifier vos coà»t, taxe et abonnement sur votre facture. Ce module est prévu pour un abonnement standard (donc sans HP HC) mais vous pourrez l'adapter facilement. La conso de la veille est la même sur l'image car je viens de la créer. Elle sera mise à jour ce soit à 00h01. Il vous faudra créer 5 variables globales dans le panneau variables : • ABO • CONSO • INDEX • ConsoMinuit • ConsoVeille Voici le main loop (réduit à sa plus simple expression mais commenté !) -- Notez l'utilisation d'un bouton et non du main loop qui plante au bout de quelques heures !!! -- Pensez à modifier l'adresse IP de votre ECO-Devices. -- NB : calcul commencera seulement après 00h01 (heure de la Mà J de la velur de l'index de référence) fibaro:call(63, "pressButton", "6"); fibaro:sleep(5*1000) -- Attention HC2 ajoute à ce temps le loop de 3 secondes par défaut. Voici le code du bouton (ID 6) : -- mise à jour des données en provenance de l'ECO-Devices : HC2 = Net.FHttp("192.168.0.53") response = HC2:GET("/api/xdevices.json?cmd=10") -- enregistrement du retour de l API dans une table fibaro:debug(response) response = json.decode(response) fibaro:setGlobal("ABO", response.T1_PTEC) fibaro:setGlobal("CONSO", response.T1_PAPP) fibaro:setGlobal("INDEX", response.T1_BASE/1000) fibaro:call(63, "setProperty", "ui.Label1.value", fibaro:getGlobalValue("INDEX") .. " kWh") fibaro:call(63, "setProperty", "ui.Label2.value", fibaro:getGlobalValue("CONSO").." Watts") -- Calcul du coà»t de la conso de la journée maintenant : local VconsoInstant = (fibaro:getGlobalValue("INDEX") - fibaro:getGlobalValue("ConsoMinuit")) VconsoInstant = string.format("%.2f",VconsoInstant) -- coà»t conso réelle (sans abo et taxes) local Vcout = (VconsoInstant * 0.105) -- Prix unitaire HT (€/kWh) :0,0883 HT -- 0,60 € c'est le coà»t TTC des taxes et abonnement : abo + TCFE (CR*0,00932) + CSPE (CR*0,01650) + CTA 2,88 local AboTaxeEtContribution = (15.78 + (VconsoInstant*0.00932) + (VconsoInstant*0.01650) +2.88)/30 --AboTaxeEtContribution = string.format("%.3f",AboTaxeEtContribution) -- calcul conso intstantanée + cout frais fixes à la journée Vcout = Vcout + AboTaxeEtContribution -- réduction du nombre de chiffre après la virgule : Vcout = string.format("%.2f",Vcout) -- Sauvegarde de la conso de la veille : local currentDate = os.date("*t"); if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:00") ) ) then fibaro:setGlobal("ConsoVeille", VconsoInstant .. " kWh soit " .. Vcout .. " €") end -- Sauvegarde de l'index à minuit une : if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:01") ) ) then fibaro:setGlobal("ConsoMinuit", fibaro:getGlobalValue("INDEX")) end -- mise à jour des valeurs des labels fibaro:call(63, "setProperty", "ui.Label3.value", fibaro:getGlobalValue("ConsoMinuit")) fibaro:call(63, "setProperty", "ui.Label4.value", VconsoInstant .. " kWh = " .. Vcout .. " €") fibaro:call(63, "setProperty", "ui.Label5.value", fibaro:getGlobalValue("ConsoVeille")) N'hésitez pas si vous avez des questions ... Mà J : Avec la conso de la veille ... EDF_Ecodevices.vfib
  17. lionel

    Filtration Piscine

    Avant que les beaux jours ne reviennent j ai créer ce petit script pour gérer le temps de filtration en fonction de la Température de la piscine (les retours sur une amélioration de celui sont les bienvenues) tout d abord ,j ai une créer un scénario qui: - ce lance tous les jours à 14 hrs - relève la température de la piscine - lance le script ci dessous --[[ %% properties %% globals --]] --filtration en route en fonction de le température de la piscine fibaro:debug("HC2 demarre le script le " .. os.date()); local MaVariable MaVariable=fibaro:getValue(112,'value')--module temperature piscine fibaro:debug('value = ' .. MaVariable) if (MaVariable >= '24' and MaVariable < '26') then sleep(288*100*1000) -- 8 heures fibaro:call(115,"turnOff") fibaro:debug(115) if (MaVariable >= '26' and MaVariable < '28') then sleep(360*100*1000) -- 10 heures fibaro:call(115,'turnOff') fibaro:debug(115) end end
  18. q.philippe

    Niveau De Bassin / Aquarium

    utilisation d'un module de porte (windows sensor) avec un flotteur en contact sec (sans tension pour le bassin) brancher dessus, une sonde de Tempérarure (du Bassin), un module relais switch FGS221 brancher sur l’électrovanne Bassin. scénes de remplissage ON électrovanne fermer OFF, et flotteur niveau en alerte niveau bas pendant 15 min (900sec) alors enclenche ON relais S1 électrovanne et sleep. --[[ %% autostart %% properties 219 value 252 value %% globals --]] local delayedCheck0 = false; if ( tonumber(fibaro:getValue(219, "value")) == 0 ) then delayedCheck0 = true; end fibaro:sleep(900000); local delayedCheck1 = false; local tempDeviceState1, deviceLastModification1 = fibaro:get(252, "value"); if (( tonumber(fibaro:getValue(252, "value")) > 0 ) and (os.time() - deviceLastModification1) >= 900) then delayedCheck1 = true; end local startSource = fibaro:getSourceTrigger(); if ( ( delayedCheck0 == true and delayedCheck1 == true ) or startSource["type"] == "other" ) then fibaro:call(219, "turnOn"); end remplissage OFF électrovanne ON (id219) et niveau Bassin Normal (id 252) plus de 3 secondes (éviter les déclenchements intempestifs, vagues vent bref les blouffes) alors électrovanne fermer OFF et sleep. --[[ %% autostart %% properties 219 value 252 value %% globals --]] local delayedCheck0 = false; if ( tonumber(fibaro:getValue(219, "value")) > 0 ) then delayedCheck0 = true; end fibaro:sleep(3000); local delayedCheck1 = false; local tempDeviceState1, deviceLastModification1 = fibaro:get(252, "value"); if (( tonumber(fibaro:getValue(252, "value")) == 0 ) and (os.time() - deviceLastModification1) >= 3) then delayedCheck1 = true; end local startSource = fibaro:getSourceTrigger(); if ( ( delayedCheck0 == true and delayedCheck1 == true ) or startSource["type"] == "other" ) then fibaro:call(219, "turnOff"); end (j'ai cherché pour l’intégrer en couleur pas trouver)... Puis je réunir ses deux scènes en 1. les petits poissons qui sont content....
  19. Bonjour à tous, Me baladant régulièrement sur les forums, je n'ai pas souvenir d'avoir trouvé un endroit qui centralise tous les besoins à anticiper lors d'une construction / rénovation de maison afin que la domotique s'y intègre parfaitement. Je vous propose donc de dresser une liste ici et de la mettre à jour au fur et à mesure de vos remontées d'astuces, compléments d'informations etc. Passages de câbles à prévoir selon les besoins: Câbles Hi-Fi pour l’installation home cinema: tenants derrière la TV par exemple, aboutissants sur les murs pour constituer le 5.1 ou 7.1 (section de câble recommandée?) Câble Hi-Fi pour l’installation multi-room: tenants au coffret de communication par exemple, aboutissants dans les pièces sonorisées (section de câble recommandée?) Câbles Ethernet: préférez le grade 3 qui permettra d’atteindre des performances au 10Gigabit (voici un lien qui explique la différence entre les catégories, grades etc http://www.forumconstruire.com/construire/topic-69045.php). Le câble doit être de type monobrin (plus rigide). Distance max sans point de coupure = 90m. Câbles Coax (si le câble Ethernet est en grade 3 les signaux TNT est Satellite peuvent transiter sur ce câble, sinon le câble Coax est à prévoir) Câbles alarme 6x0.22mm2: tenants au niveau du boitier d’alarme, aboutissants vers les capteurs de mouvements, d’ouverture etc. Cloisons: Préférez les boites d’encastrements en 50mm de profondeur, 60mm si possible. C’est beaucoup plus simple pour installer les modules domotiques. Installation électrique: Prévoyez la manière d’installer vos vas-et-viens. Elle détermine la position du module à installer. Prenez compte de la fonction scène sur les dernières version du FGD, dans ce cas un deuxième interrupteur, de type poussoir peux être installé pour déclencher une scène. Prévoyez la manière de piloter vos éclairages, le neutre peut-être nécessaire au niveau de l'interrupteur pour alimenter le module domotique. Si le compteur électrique est changé, demander à votre fournisseur d’énergie d’activer la télé-information. Si le compteur électrique n’est pas à proximité du tableau électrique, prévoir un câble réseau entre les deux afin de pouvoir utiliser la télé-information (sur un eco-device par exemple). Volets roulants (un sujet est ouvert ici http://www.domotique-fibaro.fr/index.php/topic/535-conseil-dans-le-choix-de-volets-roulants-rénovation/?hl=volets): N’optez que pour du filaire, à butée mécanique ou électronique. Les volets à commandes radio sont à écarter car ils sont rarement intégrables dans l’installation domestique sauf si la box gère le protocole propriétaire (Zibase et RTS par exemple). Vérifier la compatibilité du moteur du volet avec le module domotique avant achat.
×