Coolride Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 Et pour ceux qui n'ont pas de NAS un rapsberry Pi fait très bien l'affaire. pour 3 watts voire 4 si on l'overclocke
Moicphil Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 allez ! on attend ton tuto Coolride. ;-)
fredo Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 oh voui, un tuto, un bien copieux comme je les aime !
Coolride Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 ok ok... je vous fais ca ce week-end. ça ne doit pas être compliqué :-) vous le voulez basé sur raspbian ? ou sur openelec histoire d'avoir un mediacenter xbmc en meme temps ?
Steven Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 Raspbmc pour moi et surtout pour embêter @Lazer
fredo Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 enfin, oui, je rejoins Steven, Raspbmc
Lazer Posté(e) le 3 juin 2014 Auteur Signaler Posté(e) le 3 juin 2014 LOL et bien il faut plusieurs tutos alors 1
fredo Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 moué, ça me fait penser que mon tuto, je l'ai fait sous windows, ça ne va pas plaire àcertains ! il faudrait aussi une version Linux et une autre sous OSX. Comme Linux, je n'y connais rien, ça fait ça de moins àfaire. De toute façon, vSphere, c'est sous windows !
Coolride Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 Je propose de ne faire que la partie OS alors. une fois le serveur Web et php et MySql installés c'est du pareil au même que ce soit sur syno ou linux. Par contre pour windows je ne peux pas aider, je ne mange pas de ce pain là lool.
HANSOLO Posté(e) le 8 juin 2014 Signaler Posté(e) le 8 juin 2014 Bonsoir, Juste pour info, j'ai fait des modifications pour inclure les capteurs de luminosité
Coolride Posté(e) le 9 juin 2014 Signaler Posté(e) le 9 juin 2014 Comme promis, Voici déjà le tuto basé sur raspbian. je ne suis pas un virtuose de la smith & corona donc ne m'en veuillez pas trop si c'est lourd a digérer
Lazer Posté(e) le 9 juin 2014 Auteur Signaler Posté(e) le 9 juin 2014 @Coolride : je vais aller jeter un oeil @Hansolo : Voilà ce que j'ai qui tourne depuis un bon moment chez moi pour la luminosité. Je ne l'ai pas encore partagé car je voulais faire un package complet pour ceux qui ne maitrisent pas le sujet. En attendant, voici le code source : Code LUA du bouton virtuel n°1 (qui reprend la température, humidité, et luminosité) : local updatechart = Net.FHttp("xxx") local i = 0 local maxNodeID = 150 local deviceType2 = "" for i = 0, maxNodeID do local deviceType = fibaro:getType(i) if deviceType == "temperature_sensor" then deviceType2 = "temperature" elseif deviceType == "humidity_sensor" then deviceType2 = "humidity" elseif deviceType == "thermostat_setpoint" then deviceType2 = "temperature" elseif deviceType == "light_sensor" then deviceType2 = "light" end if deviceType2 ~= "" then payload = "/graph/data_post_" .. deviceType2 .. ".php?id=" .. i .. "&value=" .. fibaro:getValue(i, "value") --fibaro:debug(payload) response, status, errorCode = updatechart:GET(payload) deviceType2 = "" end end payload = "/graph/data_post_temperature.php?id=3&value=" .. fibaro:getValue(3, "Temperature") --fibaro:debug(payload) response, status, errorCode = updatechart:GET(payload) payload = "/graph/data_post_humidity.php?id=3&value=" .. fibaro:getValue(3, "Humidity") --fibaro:debug(payload) response, status, errorCode = updatechart:GET(payload) fibaro:log("Environmental uploaded") . Base SQL : -- -- Structure de la table `domotique_light` -- CREATE TABLE IF NOT EXISTS `domotique_light` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `device_id` smallint(6) NOT NULL, `value` smallint(5) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `device` (`device_id`,`time`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Structure de la table `domotique_light_day` -- CREATE TABLE IF NOT EXISTS `domotique_light_day` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `date` date NOT NULL, `device_id` smallint(6) NOT NULL, `min_value` smallint(5) unsigned DEFAULT NULL, `avg_value` smallint(5) unsigned DEFAULT NULL, `max_value` smallint(5) unsigned DEFAULT NULL, PRIMARY KEY (`id`), KEY `device_id` (`device_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; . Page data_post_light.php : <?php /*****************************************************************************/ /*** File : data_post_light.php ***/ /*** Author : Lazer ***/ /*** Date : April 2014 ***/ /*** Note : Insert data into database ***/ /*****************************************************************************/ include 'config.inc.php'; try { $bdd = new PDO('mysql:host='.$server.';dbname='.$database, $login, $password); if ( isset($_GET['id']) && is_numeric($_GET['id']) && isset($_GET['value']) && is_numeric($_GET['value']) ) { $sql = $bdd->prepare('INSERT INTO domotique_light (device_id, value) VALUES(:device_id, :value)'); $sql->execute(array( 'device_id' => $_GET['id'], 'value' => $_GET['value'] )); echo $sql->rowCount(); } else echo '-1'; } catch (Exception $e) { echo $e->getMessage(); } ?> . Extrait de la page index.php : <select id="update"> <option value="temperature">Température</option> <option value="temperature_day">Température Historique</option> <option value="humidity">Humidité</option> <option value="humidity_day">Humidité Historique</option> <option value="power">Energie</option> <option value="battery">Batterie</option> <option value="battery_day">Batterie Historique</option> <option value="light">Luminosité</option> <option value="light_day">Luminosité Historique</option> </select> . Extrait de config.js : var texte = [ {type:'temperature', title: 'Température', yaxis: 'Température (°C)', tooltip: '°C'}, {type:'temperature_day', title: 'Historique de température (moyenne journalière)', yaxis: 'Température (°C)', tooltip: '°C'}, {type:'humidity', title: 'Humidité', yaxis: 'Humidité (%)', tooltip: '%'}, {type:'humidity_day', title: "Historique d'humidité (moyenne journalière)", yaxis: 'Humidité (%)', tooltip: '%'}, {type:'power', title: 'Consommation', yaxis: 'Consommation (Watt)', tooltip: 'W'}, {type:'battery', title: 'Batterie', yaxis: 'Niveau (%)', tooltip: '%'}, {type:'battery_day', title: 'Historique de batterie (moyenne journalière)', yaxis: 'Niveau (%)', tooltip: '%'}, {type:'light', title: 'Luminosité', yaxis: 'Luminosité (Lux)', tooltip: 'lux'}, {type:'light_day', title: "Historique de luminosité (moyenne journalière)", yaxis: 'Luminosité (Lux)', tooltip: 'lux'} ] . Je crois que c'est tout, en attendant que je sorte la version complète. 1
HANSOLO Posté(e) le 9 juin 2014 Signaler Posté(e) le 9 juin 2014 J'ai pratiquement pareil sauf que j'ai choisi brightness àla place de light, je vais modifier pour être en phase avec ta prochaine release.
sebcbien Posté(e) le 21 juin 2014 Signaler Posté(e) le 21 juin 2014 Salut Lazer, Merci pour ce superbe module, ça marche c'est super :-) Avant j'étais sur Thingspeak puis je suis passé sur emoncms et maintenant ta solution me semble la meilleure. J'ai deux trois info/suggestions: Tuto: Ajouter qu'il faut appuyer sur le bouton 4 manuellement si on ne veut pas attendre jusqu'a minuit IP: utiliser la fonction pour récupérer l'ip renseignée dans le module virtuel (plus facile pour l'installation: local thismodule=fibaro:getSelfId() local ipsyno = fibaro:get(thismodule, 'IPAddress') et ajouter une variable locale en tête de script pour le paramètre de l'id du module virtuel -- ajouter ici l'ID du module virtuel graphiques (voir id dans l'url) local virtualdeviceID = XX Dernière chose, j'ai aussi un Eco Devices mais il ne me sert que pour mesurer le gaz et l'eau (je suis en Belgique, pas de téléinfo) Pour le moment je récupère via un script la valeur du compteur et je la stocke dans une variable globale. Que proposes-tu comme solution pour remonter cette valeur ? Merci encore !
Lazer Posté(e) le 21 juin 2014 Auteur Signaler Posté(e) le 21 juin 2014 yep, certaines de tes suggestions sont déjà prévues Pour l'Eco-Devices, je n'ai pas prévu de le gérer avec ces scripts, et pour tout dire je ne récupère pas la valeur de la conso dans la HC2, je considère que ça n'a aucun intérêt. En effet, de mon point de vue, l'interface de la HC2 est de l'admin, donc utilisé pour des tâches d'admin, et non pas pour des tâches de consultations de valeurs. C'est la raison pour laquelle j'ai mis en place ces graphiques, c'est à dire avoir une page Web sur laquelle je vois toutes les données, avec leur historique. Pour revenir à l'Eco Devices, j'ai une autre page Web qui me donne tout l'historique des consos. Souces ici http://www.eb-home.eu/ Ceci dit, si la valeur de ton compteur est dans une variable globale, alors tu peux facilement bricoler un bout de code LUA pour l'envoyer vers les pages PHP de mon outil de graphs. Une demande similaire a été faite par BenjyNet car il récupère les valeurs de ses sondes EnOcean dans des variables globales, au travers de FHEM sur un Raspberry PI.
sebcbien Posté(e) le 22 juin 2014 Signaler Posté(e) le 22 juin 2014 Ahhh c'est toi EB-Home :-) j'avais déjà beaucoup consulté ces pages à l'époque !! Oki je vais voir pour le push ! j'arriverai à l'avoir aussi dans l'admin de graphs je suppose ? Merci
Lazer Posté(e) le 22 juin 2014 Auteur Signaler Posté(e) le 22 juin 2014 Oh là non, ce n'est pas moi EB-Home Je me suis mal exprimé dans mon message, disons que j'utilise les scripts mis en place par le gars de EB-Home. Par contre, j'ai apporté quelques modifs comme l'amélioration des bases (index, etc) qu'il faudrait que je partage à l'occasion. Ah par contre, dans la mesure où ce que tu veux grapher n'appartient à aucune des catégorie existantes (T°C, H°, W, Batterie%) il faudra ajouter des tables et modifier un peu les pages Web afin d'ajouter la gestion de l'eau et du gaz. Je pense que ça serait plus simple d'utiliser les scripts de EB-Home pour ça, vu que ça fonctionne déjà (il gère les compteurs C1 et C2 de l'Eco-Devices)
JM13 Posté(e) le 26 juin 2014 Signaler Posté(e) le 26 juin 2014 Tout d'abord félicitations Lazer ! Super boulot et j'attends avec impatience la nouvelle version Bon en attendant, je te fais un petit retour d'expérience : 1) Première installation OK à‡a marche...(wallplug, Température, etc...) 2) J'ai donc ajouté les capteurs Netatmo (T° et H° en valeurs intérieures et extérieures) facilement car j'avais leurs valeurs en variable globale donc comme pour la météo Yahoo j'utilise data_post_temperature.php ou data_post-humidite.php et cela marche aussi. Comme ce ne sont pas des capteurs "réels" (vue par HC2) j'ai donnée un ID supérieur à 1000 pour les différentier. Pas de problème ! 3) Comme je veux aussi ajouter les capteurs Netatmo de CO2 et Bruits ..je bricole... 4) Comme je bricole...Je ré-installe ta version de base et là ... plus de Wallplug ...il a fallu que je re-créer à la main dans la base le capteur ! même si les valeurs étaient prises en compte ...pas d'affichage car la base sql n'était pas complète 5) Après re-création à la main dans la base tout à l'air OK pour le wallplug mais là il y a peut être un petit bug car tout les capteurs n'étaient pas détectés par le bouton "device" 6) Bon, comme cela à l'air de marcher, je reprends donc mon sujet sur le CO2 et là même si j'ai fait un copie du data_post_co2.php , création de la base pour le co2,device type etc ...les données se mettent bien dans la base, le menu déroulant est OK(modif de config.js et index.php), dans la partie admin je vois bien le capteur Co2 et je peux changer la couleur..etc ...mais pas d'affichage (comme s'il n' avait pas de données ou que les échelles n’étaient pas bonnes) Je vais donc être obliger d'attendre ta nouvelle version Bon courage ...
JM13 Posté(e) le 26 juin 2014 Signaler Posté(e) le 26 juin 2014 Après rapide analyse, mon problème vient peut être des valeurs (donc du data_post_co2.php qui pourtant est une copie) Dans le debug j'ai la valeur 479 ppm ce qui est correct [DEBUG] 07:23:59: /Graphiques/data_post_Co2.php?id=1002&value=479dans la base sql je me retrouve avec la valeur 255 try { $bdd = new PDO('mysql:host='.$server.';dbname='.$database, $login, $password); if ( isset($_GET['id']) && is_numeric($_GET['id']) && isset($_GET['value']) && is_numeric($_GET['value']) ) { $sql = $bdd->prepare('INSERT INTO domotique_co2 (device_id, value) VALUES(:device_id, :value)'); $sql->execute(array( 'device_id' => $_GET['id'], 'value' => $_GET['value'] )); echo $sql->rowCount(); } else echo '-1'; } catch (Exception $e) { echo $e->getMessage();
Lazer Posté(e) le 27 juin 2014 Auteur Signaler Posté(e) le 27 juin 2014 Ah oui si tu as copié une table existante, il faut que tu fasse attention au type de données pour le champ value. Regarde sur cette page, tu as un tableau à la fin avec les valeurs mini/maxi acceptables pour chaque type numérique : http://dev.mysql.com/doc/refman/5.0/fr/numeric-types.html Tu dois certainement utiliser un UNSIGNED TINYINT, alors qu'il ta faudrait au moins un UNSIGNED SMALLINT acceptant des valeurs de 0 à 65535 PS : j'ai optimisé chaque table, afin de réduire son utilisation disque, et aussi améliorer les performances. Donc il n'est pas judicieux de mettre du BIGINT partout, il faut faire attention à choisir un type de données le plus adapté à ce qu'on veut mettre dedans. PS2 : il te faudra phpMyAdmin pour modifier le champs dans la table... mais du dois déjà l'utiliser puisque tu as pu créer la table domotique_co2
JM13 Posté(e) le 28 juin 2014 Signaler Posté(e) le 28 juin 2014 Merci de ta réponse, ..j'avais fini par deviner que le tronquage venait de quelque part par là . J'ai mis un SMALLINT Par contre, mon erreur (pas d'affichage des données Co2) venait que dans certain cas, j'utilise co2 et dans d'autres Co2 (il y avait donc une incohérence entre le nom de la table, le script...) C'est réparé
Messages recommandés