sebcbien Posté(e) le 8 décembre 2016 Auteur Signaler Posté(e) le 8 décembre 2016 Donc en simplifié, voici comment remplacer une valeur d'un label par la valeur d'un autre label:
sebcbien Posté(e) le 8 décembre 2016 Auteur Signaler Posté(e) le 8 décembre 2016 Wunderground Météo en cours... Jusqu'ici c'est très facile de récupérer les données.
sebcbien Posté(e) le 9 décembre 2016 Auteur Signaler Posté(e) le 9 décembre 2016 Bon, les scripts, c'est dans la poche, j'essayerai de faire un tuto séparé, rien de très compliqué en fait. et ça c'est Wunderground, pour le moment c'est assez. 1
pepite Posté(e) le 9 décembre 2016 Signaler Posté(e) le 9 décembre 2016 Nickel !! j'utilise deja ton VD ;-) sur fibaro Bon arrete j'ai vouloir tester vraiment Jeedom..mais j'ai rien pour le mettre dessus et j'aurai pas un bon maillage, il suffit ;-) de me tenter Nickel, tu as utilisé le framework SC ou non ?
sebcbien Posté(e) le 9 décembre 2016 Auteur Signaler Posté(e) le 9 décembre 2016 Non, pas encore, là j'ai compris les bêtes scripts PHP.Tu sais sur mon Jeedom, je n'ai que 3 devices zwave hein... le Z-wave ce n'est qu'une toute petite partie (qui est en plus désespérément stable pour le moment sur la HC2 ;-) ) facilement transférable.Je.ne fais que m'amuser avec tout ce qui est en IP et la logique.Sent from my Note4 1
pepite Posté(e) le 9 décembre 2016 Signaler Posté(e) le 9 décembre 2016 (modifié) @sebcbien, et avec tes 3 devices, jeedom est solide ? oui c'est sur tu es bête en php..et en dev, il n'y a qu'a regarder ta signature lol ...mais bien sur, et la marmotte ;-) Modifié le 9 décembre 2016 par pepite 1
sebcbien Posté(e) le 9 décembre 2016 Auteur Signaler Posté(e) le 9 décembre 2016 oui ça va, ils sont tous dans les 10m autour
Rocketlud Posté(e) le 9 décembre 2016 Signaler Posté(e) le 9 décembre 2016 Seb tu as fait ce vd script que pour le fun ou tu vas t'en servir ? Car juste avec Clic clic clic tu peux avoir la même chose avec le plugin météo?
sebcbien Posté(e) le 9 décembre 2016 Auteur Signaler Posté(e) le 9 décembre 2016 Oui oui j'utilise le plugin météo, mais pour moi rien ne vaut la précision des prévisions de Wunderground (dans ma région en tout cas) Et il y avait un plugin Wunderground, mais il n'est plus suivi par son auteur. Ceci dit, pour Wunderground c'est un scripteke de rien du tout (cikc click click tap tap tip tap CTRL+C CTRL+V tip tap tip toc click click clik). Pour le HUB de notifications par contre, j'ai tourné en rond pour faire ce que je voulais et j'en ai profité pour tester un vrai script (de base mais en php). 1
Rocketlud Posté(e) le 9 décembre 2016 Signaler Posté(e) le 9 décembre 2016 Excellent le passage tip tap click clic etc.......... ok merci de ton retour Seb
sebcbien Posté(e) le 9 décembre 2016 Auteur Signaler Posté(e) le 9 décembre 2016 comment créer un widget en deux coups de cuiller à pot: Copier sur le forum un code écrit par des Maîtres, Dieux, légendes et autres ;-) Créer un nouveau script, cliquer sur nouveau, coller le code, sauver, ajouter les paramètres (adresse IP, clef api et mode de fonctionnement) Ter-mi-né Au passage, je vous invite à analyser ce code assez didactique... rien de trop compliqué: les if(isset ... servent à récupérer les paramètres passés au script (adresse IP, clef api et mode de fonctionnement) un peu de vérifications de variables (match) ensuite c'est if then else as usual Voici le code complet pour analyse: <?php /** VERIFICATION DES VARIABLES OPTIONNELLES **/ $zwave_port = "8083"; //Si le port est indiqué on le set, sinon c'est celui par defaut if(isset($argv[4])){ $zwave_port = $argv[4]; } //Folder json temporaire $zwave_health_json = '/tmp/zwave_health.json'; if(isset($argv[5])){ $zwave_health_json = $argv[5]; } /** VERIFICATION DES VARIABLES OBLIGATOIRES **/ //Verification de la présence des arguments obligatoires if(!isset($argv[1]) || !isset($argv[2]) || !isset($argv[3])){ echo "Tout les arguments ne sont pas présents."; } //Verification si l'ip est correcte else if(!preg_match("#([0-9]{1,3}\.){3}[0-9]{1,3}#", $argv[1])){ echo "L'adresse IP semble être incorrecte."; echo "<br />"; echo "Merci de vérifier."; } //Verification si la clé API jeedom est correcte else if(!preg_match("#[0-9A-Za-z]#", $argv[2])){ echo "La clé API semble être incorrecte."; echo "<br />"; echo "Merci de vérifier."; } //Verification sur le code affichage else if(!preg_match("#[0-3]{1}#", $argv[3])){ echo "Le code affichage semble être incorrect."; echo "<br />"; echo "Merci de vérifier."; } else{ //IP jeedom (parametre) $ip = $argv[1]; //API Key pour acces page sante ZWave $api_key = $argv[2]; //Affichage sur le dashboard: 0 - Modules Deads / 1 - Modules Timeout + Dead / 2 - Tout les modules $show_option = $argv[3]; //USER CONFIRME - NE MODIFIER CES VALEURS QUE SI BESOIN //Adresse de la page santé $api_health = "/ZWaveAPI/Run/network.GetHealth%28%29"; /** TRAITEMENT **/ //Construction de l'URL de la page santé zwave $url = "token:".$api_key."@".$ip.":".$zwave_port.$api_health; //initialisation curl $curl = curl_init(); //Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL //not to print out the results of its query. //Instead, it will return the results as a string return value //from curl_exec() instead of the usual true/false. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //connexion effectuée, on accède à la page de santé zwave curl_setopt($curl, CURLOPT_URL, $url); //execute la requête $content = curl_exec($curl); //enregistre le contenu de la page santé dans un fichier json file_put_contents($zwave_health_json, $content); //change les droits sur le fichier - écriture chmod($zwave_health_json, 0777); //convertis certains caractères pour ne pas avoir de souci d'affichage dans les tuiles //correspondance trouvée ici http://www.eteks.com/tips/tip3.html $bad_letters = array('\u00e0','\u00e2','\u00e4','\u00e7','\u00e8','\u00e9','\u00ea','\u00eb','\u00ee','\u00ef','\u00f4','\u00f6','\u00f9','\u00fb','\u00fc'); //lettres à remplacer $good_letters = array('à','â','ä','ç','è','é','ê','ë','î','ï','ô','ö','ù','û','ü'); //lettres de remplacement $text = file_get_contents($zwave_health_json); //récupération du contenu du fichier $output = str_replace($bad_letters, $good_letters, $text); // remplacement des caractères //réécris le fichier avec les caractères remplacés file_put_contents($zwave_health_json, $output); //récupère le contenu du json $json = file_get_contents($zwave_health_json); //analyse du contenu $modules = json_decode($json, true); $dead_modules = array(); $timeout_modules = array(); $ok_modules = array(); //Idee: parcours des modules avec Tri timeout / Dead et ensuite l'affichage foreach ($modules['devices'] as $module){ //On verifie que le module a des données if(isset($module['data']) && $module['data'] != null && $module['data'] != ""){ //Verification que le module n'est pas sur pile/batterie if($module['data']['isListening']['value']){ if(isset($module['last_notification'])){ if($module['last_notification'] != null){ if (utf8_decode($module['last_notification']['description']) == "Dead"){ $dead_modules[] = utf8_decode($module['data']['description']['location'])." - ".utf8_decode($module['data']['description']['name']); } else if(utf8_decode($module['last_notification']['description']) == "Timeout"){ $timeout_modules[] = utf8_decode($module['data']['description']['location'])." - ".utf8_decode($module['data']['description']['name']); } else{ $ok_modules[] = utf8_decode($module['data']['description']['location'])." - ".utf8_decode($module['data']['description']['name']); } } } } //Traitement des modules piles else{ $checked = false; //Modules Piles Timeout if(isset($module['battery_level']['value'])){ if($module['battery_level']['value'] == null){ $timeout_modules[] = utf8_decode($module['data']['description']['location'])." - ".utf8_decode($module['data']['description']['name']); $checked = true; } } if($checked == false && isset($module['isFailed']['value'])){ $dead_modules[] = utf8_decode($module['data']['description']['location'])." - ".utf8_decode($module['data']['description']['name']); $checked = true; } if($checked == false){ $ok_modules[] = utf8_decode($module['data']['description']['location'])." - ".utf8_decode($module['data']['description']['name']); } } } } /** HISTORISATION Dead Modules and Timeout **/ echo "<br />"; echo sizeof($dead_modules) + sizeof($timeout_modules); /** AFFICHAGE **/ echo " modules HS: "; echo "<br />"; /** Affichage des modules deads**/ if($show_option >= 0){ echo "<div style='color:red; text-decoration : underline;'>"; echo "Modules Dead: "; echo "</div>"; foreach($dead_modules as $dead_module){ echo $dead_module; echo "<br />"; } } echo "<br />"; /** Affichage des modules timeouts **/ if($show_option >= 1){ echo "<br />"; echo "<div style='color:darkorange; text-decoration : underline;'>"; echo "Modules Timeout: "; echo "</div>"; foreach($timeout_modules as $timeout_module){ echo $timeout_module; echo "<br />"; } } echo "<br />"; /** Affichage des module restants **/ if($show_option >= 2){ echo "<br />"; echo "<div style='color:limegreen; text-decoration : underline;'>"; echo "Modules OK: "; echo "</div>"; foreach($ok_modules as $ok_module){ echo $ok_module; echo "<br />"; } } } ?> 2
pepite Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 Salut salut, J'ai craque vite fait sur une debian que j'avais sur vmware macOS. Testé wget / chmod /./install.sh et ben c'est pas click click click :-) Manquait une lib : libopts25 que jai du rajouter à partir du paquet Et à l'etape suivante, iil ne veut pas installer mysql, un peu gênant non ? :-) y compris à partir des .debs lol bizarre Bon, la j'arrête, les gaines m'appellent ;-)
Hysis Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 (modifié) @pepite : faut préserver un peu! Tu es le seul à pouvoir m'expliquer comment faire cela à partir d'une pomme je crois lol et puis c'est bien connu... là où il y a de la gaine, il n'y a pas de plaisir lol Modifié le 11 décembre 2016 par Hysis
mprinfo Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 Il faut être rootSoit tu utilises"sudo" devant chaque commandeOu "su" puis "pwd" root
pepite Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 @mprinfo, oui merci j'étais bien root :-). A priori il manque des dependances, j ai installe une lib :-). De mm pour mysql, il y en manqud bizarre.. suis sur une jessie a jour.@hysis, facile sur pomme, commence par mettre vmware fusion ca marche pastrop mal. :-)
sebcbien Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 C'est bizarre vos debian... Moi j'ais suivi le tuto, install.sh et tout tournait... Vous êtes sur de ne pas être sur une vieille debian ou installer via un mauvais tuto ? Désolé, difficile d'aider, je suis en balladeSent from my Note4
pepite Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 Ma debian tourne depuis longtemps sans souci. Vais tester sur une install tte fraiche :-) sur une new VM :-)
sebcbien Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 J'en suis sur, mais si elle n'est pas à jour, ou que tu as installé un autre mysql ou ou ou.... et le script d'installation ne vas pas trouver ses petits... Sinon hier soir j'ai remarqué que mes plugins netatmo ne se mettaient pas à jour depuis le 7 décembre. Si je lançais une commande (comme par exemple mettre le thermostat en mode AWAY, ça fonctionnait, si je demandais un refresh manuel, idem. J'avais un message d'erreur dans le log cron pour un autre plugin, mais qui se mettait à jour également toute les 15 minutes... plugin que j'avais installé récemment. En désactivant le plugin, plus de message d'erreur et la mise à jour des stats à recommencé à fonctionner. Bon à savoir donc, certains plugins peuvent partager une même planification, en cas de problème donc, vérifier les logs :-) Le plugin fautif: jeemon... censé monitorer les logs et prévenir s'il y a des erreurs https://www.jeedom.com/forum/viewtopic.php?f=28&t=22405&p=410208&hilit=jeemon#p410208 1
sebcbien Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 En tout cas pour débugger ce problème, les VM c'est top. 1) créer un snapshot. 2) restaurer le backup du 7 (quand ça marchait) et voir que ca marche toujours (exit donc problème cloud netatmo ou autre) 3) restaurer le backup de cette nuit (et voir que ca ne fonctionne de nouveau plus) 4) effacer et réinstaller complètement le plugin, perdre toute la config et voir ça ne fonctionne toujours pas (ce n'est pas le plugin donc) 5) regarder un peu mieux dans les logs (RTFM donc ), faire copy paste du message sur le forum, tester si désactiver le plugin jeemon solutionne le pb -> problème solutionné. 6) revenir en arrière sur le snapshot de la vm et désactiver le plugin jeemon. 7) poster sur le forum mon expérience Plus propre et facile avec la virtualisation... Sans virtualisation c'est possible via backup/restore mais plus violent/intrusif 1
pepite Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 Bon, ben j'ai réinstalle une VM Debian Jessie toute fraiche sans rien modifier ;-) sur une pomme sur lequel se trouve VMWARE Puis install Jeedom en 3 lignes de commande All is good, c'est click click click ;-) Me suis enregistré sur le market, j'ai bien l'interface Jeedom mias je ne peux rien faire pour le moment, pas de clé, ni pack.. Question : Jeedom a prévu qqch pour modifier le password root de mysql en graphique ou faut le faire en ligne de commande ? 1
sebcbien Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 il t'en propose un random à l'installation non ?
sebcbien Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 sinon tu peux déjà bien t'amuser avec les plugins gratuits, (plugin script par exemple, avec les json)
sebcbien Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 Tiens un nouveau plugin: https://www.jeedom.com/forum/viewtopic.php?f=28&t=22754 Je testerai ça quand il sortira de beta, encore un plugin juste ENORME !!!
pepite Posté(e) le 12 décembre 2016 Signaler Posté(e) le 12 décembre 2016 Decouverte de tous les devices upnp avec retour des commandes si j'ai bien compris. C'est pas mal ;-)
sebcbien Posté(e) le 12 décembre 2016 Auteur Signaler Posté(e) le 12 décembre 2016 Oui les possibilités de scénario avec ça sont pas mal...Sent from my Note4
Messages recommandés