Aller au contenu

JM13

Membres confirmés
  • Compteur de contenus

    367
  • Inscription

  • Dernière visite

Tout ce qui a été posté par JM13

  1. Merci ...Y a plus qu'à attendre
  2. Ok, je vais patienter comme les autres mais pour moi la méthode "playFile " est déjà opérationnelle. J'ai environ 30 messages enregistrés en mp3 qui se lancent la plupart du temps avec GEA. GEA.add(id["PORTE_ENTREE"], -1, "", -- Quand la porte d'entrée s'ouvre on dit : "WELCOME au new comer Jean-Marc" { {"If", { {"Global", "Sortie", "0"}, -- Si la variable Sortie est 0, cela veut dire que qql'un est en train d'entrer {"Global", "WD_JM", "TRUE"}, -- Si c'est le Wifi Device de JM est détecté {"Global", "Welcome_JM", "OK"} -- Si Welcome_JM est OK, on pourra dire le message } }, {"Time", "17:00", "23:00"}, -- Le soir uniquement {"Days", "Monday, Tuesday, Wednesday, Thursday, Friday"}, -- Seulement les jours de la semaine travaillés {"Global", "SONOS_Num_Message", "8"}, -- Message n°8 : "Bonjour JM" dans la salon {"VirtualDevice", id["SONOS"], 1}, -- en mp3 avec playFile {"Global", "Welcome_JM", "NOT_OK"} -- RAZ pour ne dire le message qu'une seule fois par jour }) En fait, j'ai une question sur le cache pour le TTS lors de la première requête tu vas générer un fichier mp3 qui sera rejoué lors des demandes suivantes ? c'est ça ?
  3. Pas trop (au moins pour moi) Ma situation : J'utilise les 2 scripts que tu as proposé pour SONOS 1) Pour le premier, j'utilise fibaro:setGlobal("SonosTTS", "lng="..langue.."|dr=auto|vol="..volume.."|txt="..Mon_Message..". . .|"); -- dans un bouton du VD Le script V0.0.07 dans le main loop Temps de latence important mais je peux "construire" des messages en dynamique (inclusion de température par exemple dans le message) 2) Pour le deuxième, j'utilise playFile("//"..IP_NAS.."/web/Sonos/audio/fr/TTS-MSG"..Num_Message..".mp3", tonumber(Volume_Message)); où j'ai une base de messages en mp3 enregistrés et sockés sur mon NAS pour les messages répétitifs Pas de latence Semble plus robuste Une latence constatée entre 2 messages consécutifs Pour répondre à ta question, comme le format du paramètre n'est pas le même...ai-je le bon fichier "playFile ?
  4. Je ne suis pas sur de bien répondre mais j'ai mis 2 icones différents à un virtual device (un pour le device et un pour le bouton) et ensuite local selfId = fibaro:getSelfId(); local icon = fibaro:get (selfId, "deviceIcon"); -- conserver la même icône que le device -- ici le code du bouton dans le VD -- Après 500ms on remet l'icone principal fibaro:sleep(500); fibaro:call(selfId, "setProperty", "currentIcon", icon); L'icone change lors de l'appuie bouton et reviens ensuite... C'était le question, non ?
  5. Rem's Tu essayes avec les modèles que j'ai donné? Car au moins pour la freebox cela devrait marcher. ..
  6. JM13

    Choix Point D'accès Wifi Pour Remplacer Wifi Freebox

    Discussion intéressante. @Lazer ... 8 ports seulement ? cela me parait un peu court; non ? J'ai un 16 ports et après qqles mois d'utilisation j'en ai 8 déjà d'utilisés. Manageable oui/non : En plus des avantages listés, je peux vous dire que j'ai diagnostiqué un problème de câble en 10 minutes. Sans interface ...j'aurais passé certainement beaucoup plus de temps Par contre, à vous lire; je pense que je vais me lancer dans la caractérisation de mon installation ...je n'ai pas de problème particulier de wifi mais le routeur ASUS m'interpelle
  7. Tu es sur Synology avec DSM5 ? As-tu fait qqle chose de particulier sur les droits, les protocoles ? (webdav, NFS, ...)
  8. @Lazer, je n'arrive non plus à utiliser le répertoire /music ...c'est dommage !! et je suis d'accord avec ton analyse sur l'identification. A suivre ...
  9. Il me me reste plus qu'àaller sur wikipédia pour en apprendre encore...merci
  10. Désolé je spamme mais c'est pour la bonne cause playFile("//192.168.0.35/web/Sonos/TTS-MSG1.mp3", 30); Je ne comprends pas bien car normalement il ne faut pas mettre /web ...mais bon !! l'essentiel c'est que ça marche
  11. et bien sur playFile("//mafreebox.freebox.fr/Disque%20dur/Musiques/TTS-MSG1.mp3", 30); MARCHE playFile("//192.168.0.35/Sonos/TTS-MSG1.mp3", 30); NE MARCHE TOUJOURS PAS
  12. Je crois aussi que le problème ne vient pas du script LUA mais de l'accès aux répertoires du Synology. (j'ai le même problème)... Dans un navigateur internet : //192.168.0.35/Sonos/TTS-MSG1.mp3 marche et joue le message donc on peut en déduire que le chemin est bon (et le fichier aussi) Le chemin réel étant : //IP_du_NAS/volume1/web/Sonos/TTS-MSG1.mp3 Quand je change de répertoire (i.e. /music) c'est normal que cela ne marche pas car dans le cas d'un répertoire partagé (dossier partagé au sens de Synology) il faut un mot de passe pour y accéder. Pour finir, la commande playFile("//IP_du_NAS/Sonos/TTS-MSG1.mp3", 30); ne marche pas et le message est bien "accès au répertoire refusé même si on voit bien l'accés au SONOS avec un changement de volume par exemple. Je vais chercher dans DSM (large MTU, webdav, NFS, ...) mais est-ce que l'on peut associer la requête LUA à un requête FTP ou TFPT (qui ne sont pas activés chez moi par exemple) ?
  13. JM13

    Script Php

    Dis donc Rem's, dans ton script tu n'utilises pas toutes les valeurs local NetTempInt = result.body[1].value[1][1]; local NetHumInt = result.body[1].value[1][3]; local NetBruitInt = result.body[1].value[1][5]; fibaro:setGlobal("NetTempInt", NetTempInt); fibaro:setGlobal("NetHumInt", NetHumInt ); fibaro:setGlobal("NetBruitInt", NetBruitInt ); il t'en manque 2 fibaro:setGlobal("NetTempInt", result.body[1].value[1][1]); fibaro:setGlobal("NetCO2", result.body[1].value[1][2]); fibaro:setGlobal("NetHumInt", result.body[1].value[1][3]); fibaro:setGlobal("NetPression", result.body[1].value[1][4]); fibaro:setGlobal("NetdB", result.body[1].value[1][5]);
  14. JM13

    Script Php

    et la suite pour HC2 -- ----------------------- DEVICE SETTINGS -------------------------------- local message = "" local userID = 2; -- User ID (email used to notify) local SmartPhone = 33; -- SmartPhone Admin local dtLog = os.date(); -- Datation local IP_NAS = "192.168.0.35" -- Affiche des dernières valeurs message = "Mise à jour en cours ..." fibaro:log(message); fibaro:debug(message); -- Récupération des nouvelles valeurs INTERNES FHTE = Net.FHttp(IP_NAS,80); response = FHTE:GET("/Netatmo/netatmo.php?intext=int"); -- decoding json string to table result = json.decode(response); fibaro:debug(response); -- Mise à jour des variables globales fibaro:setGlobal("NetTempInt", result.body[1].value[1][1]); fibaro:setGlobal("NetCO2", result.body[1].value[1][2]); fibaro:setGlobal("NetHumInt", result.body[1].value[1][3]); fibaro:setGlobal("NetPression", result.body[1].value[1][4]); fibaro:setGlobal("NetdB", result.body[1].value[1][5]); fibaro:sleep(500); -- Récupération des nouvelles valeurs EXTERIEURES FHTE = Net.FHttp(IP_NAS,80); response = FHTE:GET("/Netatmo/netatmo.php?intext=ext"); -- decoding json string to table result = json.decode(response); fibaro:debug(response); fibaro:setGlobal("NetTempExt", result.body[1].value[1][1]); fibaro:setGlobal("NetHumExt", result.body[1].value[1][2]); -- Confirme la mise à jour message = "Mise à jour effectuée!" fibaro:log(message); fibaro:debug(message);
  15. JM13

    Script Php

    <?php $intext=$_GET['intext']; $password="mot_de_passe"; $username="nom utilisateur"; $app_id = "xxxxxxxxxxxxxxxxxxxxx"; $app_secret = "xxxxxxxxxxxxxxxxxx"; $token_url = "https://api.netatmo.net/oauth2/token"; $postdata = http_build_query( array( 'grant_type' => "password", 'client_id' => $app_id, 'client_secret' => $app_secret, 'username' => $username, 'password' => $password ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $response = file_get_contents($token_url, false, $context); $params = null; $params = json_decode($response, true); $api_url = "https://api.netatmo.net/api/getuser?access_token=" . $params['access_token']; $requete = file_get_contents($api_url); $url_devices = "https://api.netatmo.net/api/devicelist?access_token=" . $params['access_token']; $resulat_device = file_get_contents($url_devices); $json_devices = json_decode($resulat_device,true); $module_interne = $json_devices["body"]["devices"][0]["_id"]; $module_externe = $json_devices["body"]["modules"][0]["_id"]; $url_mesures_internes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&scale=max&type=Temperature,CO2,Humidity,Pressure,Noise&date_end=last"; $mesures_internes = file_get_contents($url_mesures_internes); $url_mesures_externes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_externe . "&scale=max&type=Temperature,Humidity&date_end=last"; $mesures_externes = file_get_contents($url_mesures_externes); if ($intext == "int") echo $mesures_internes ; else echo $mesures_externes ; ?>
  16. JM13

    Script Php

    Sur le lien que je t'ai donné, il y a 3 scripts (un pour les données int, un pour les données ext ...et un pour les 2 en même temps) Si en tapant la ligne de commande ci-dessous (avec le script pour les 2) tu as les retours dans ton navigateur AVEC des valeurs non nulles, ALORS tu as surement un problème dans la déclaration de tes variables globales sur HC2 car le script par conséquent marche Données intérieures : http://192.168.0.35/Netatmo/netatmo.php?intext=int Affichage : {"status":"ok","body":[{"beg_time":1399140377,"value":20.7,634,64,1012.2,56}],"time_exec":0.0072810649871826,"time_server":1399140622} Données extérieures : http://192.168.0.35/Netatmo/netatmo.php?intext=ext Affichage : {"status":"ok","body":[{"beg_time":1399140288,"value":13.8,64}],"time_exec":0.033488988876343,"time_server":1399140827}
  17. JM13

    Script Php

    Super ... Etape 2 maintenant ;-)
  18. JM13

    Script Php

    Non,non...lors de la création de l'application sur le site de Netatmo j'ai juste mis, un nom "My_domotique" et un commentaire "Récupérer les infos sur HC2"
  19. JM13

    Script Php

    quand je tape dans mon navigateur : http://192.168.0.35/Netatmo/netatmo.php J'ai en réponse dans mon navigateur: {"status":"ok","body":[{"beg_time":1408175150,"value":[[20.1,59]]}],"time_exec":0.0093917846679688,"time_server":1408175228} Netatmo.php est le script qui te permettra de récupérer les infos... APRES, seulement APRES tu peux passer à l'étape suivante : - Soit une page PHP pour aficher qqle chose sur ton site web - Soit un script en LUA sur HC2. As-tu déjà la première réponse ?
  20. JM13

    Script Php

    Normalement tu n'as pas besoin d'une page PHP. Pour tester tape simplement http://ipdunas... Dans le script que tu as, il y a un "echo" àla fin qui affiche dans ton navigateur les valeurs
  21. JM13

    Script Php

    Oui c'est ça ! Tu crées une application sur le site et tu vas récupérer les codes pour mettre dans ton php Ca marchera déjà un peut mieux. Ensuite fait un test dans ton navigateur : http://ip_de_ton_nas/Web_scripts/renetatmo.php avec son sans paramètre suivant ton php (je ne sais pas) Tu devrais recevoir en retour les valeurs T°, etc ...que tu as dans l'interface "normale" de Netatmo. Ensuite..tu verras pour le HC2
  22. JM13

    Script Php

    Ha, tu as raison..je viens de mieux relire les posts. Par contre, je crois que c'est l'adresse du script qui n'est pas bonne (la nuit porte conseil ). Sur Synology (@Rem's as-tu un Syno comme NAS ? ) il ne faut pas mettre le répertoire /web On a en réalité : /volume1/web/ ...et dans ce répertoire "web" tous les sous-répertoires pour des sites, des scripts, etc... Si tu as crée un sous-répertoire Web_scripts comme je vois, il faut uniquement mettre "/Web_scripts/renetatmo.php" et non "/web/Web_scripts/Netatmo.php"
  23. JM13

    My Batteries

    qqles ms seulement
  24. JM13

    Script Php

    Un petit complément car je suis resté coincé dessus pas mal de temps avant de comprendre quand j'ai mis en place ma station Netatmo. Tout d'abord, il faut que tu sois inscrit sur le site de Netatmo pour avoir les droits. Ci-dessous le début de mon script PHP (les valeurs sont changées bien sur )..avec les 4 données...mais si tu dis que ton script marche en ligne de commande ...ce doit être bon. <?php $intext=$_GET['intext']; $password="motdepasse"; $username="jm13@gmail.fr"; $app_id = "34536dfg51f345RET5678e78e9eEFEFEFf"; $app_secret = "QhvARtlIT546TYUJ768UYI6789xtm"; Ensuite, avec l'exemple en LUA lors de mon post précédent...cela devrait fonctionner!
  25. JM13

    Script Php

    Regarde dans ton php. Il faut 2 types d'identifiants.
×