Aller au contenu

Kana-chan

Membres confirmés
  • Compteur de contenus

    320
  • Inscription

  • Dernière visite

  • Jours gagnés

    6

Tout ce qui a été posté par Kana-chan

  1. Moi j'ai ces icônes. Il faut bien entrer le numéro qui correspond à l'icône dans la bibliothèque d'icônes (en faisant "inspecter l'élément sous firefox et voir son nom de type User52.png et en déduire son index 52 par exemple). C'est ici qu'il faut le faire dans le bouton Etat (à la place de "52" et "53") : if errorCode == 0 then OK_connected = true; fibaro:log(nameNAS.." ON"); fibaro:call(selfID, "setProperty", "currentIcon", "52"); --fibaro:call(175, "sendDefinedPushNotification", "Ping ReseauHome OK"); else fibaro:log(nameNAS.." OFF"); fibaro:call(selfID, "setProperty", "currentIcon", "53"); --fibaro:call(175, "sendDefinedPushNotification", "Ping ReseauHome OFF"); end Ici le numéro "52" correspond à Synology_ON.png et "53" correspond à Synology_OFF.png. Chez moi : L'icône Synology_restart.png est affecté au bouton Redémarrer. L'icône Synology_Shutdown.png est affecté au bouton Arrêter. L'icône Synology_wol.png est affecté aux boutons Etat et Réveiller. Voilà ...
  2. Salut, Oui c'est bien comme cela. Voilà ...
  3. Ah oui je parlais bien de la partie variables pas variables définies. Voilà ...
  4. En fait, dans le panneau des variables, on ne peut entrer que des nombres... Donc pour entrer des caractères alphanumériques, il faut passer par une scène. Voilà ...
  5. Comme je l'ai dit plus haut, il faut créer les variables dans le panneau des variables AVANT de faire la scène. Car de faire fibaro:setGlobal("TOTO", "TITI") ne créera pas la variable. Voilà ...
  6. Cool ça fonctionne !! Je n'ai pas trouvé comment avoir sur une seule ligne un seul disque. Et c'est une erreur de commentaire, le Reboot dans le bouton Etat. Voilà ...
  7. Bonjour, Oui c'est bien cela ! Mais n'oubliez pas de les créer dans le panneau des variables avant d'exécuter la scène, car je crois qu'il faut qu'elles existent pour être remplies. Voilà ...
  8. Bonjour Gandalf, En fait, il ne faut pas changer les valeurs dans les fonctions fibaro:getGlobal("LoginNAS") et fibaro:getGlobal("MdpNAS"). Il faut créer des variables globales LoginNAS, MdpNAS, MacNAS et BcastNAS dans le panneau de la HC2 pour que les boutons Arrêter, Redémarrer et Etat fonctionnent. Comme vous avez plusieurs NAS, soit vous utilisez le même compte pour les deux (donc LoginNAS et MdpNAS), soit vous utilisez des noms de variables globales différents (LoginNAS1, MdpNAS1, MacNAS1,...). D'ailleurs, pour créer ces variables, il faut créer une scène spéciale pour cela : --[[ %% properties %% events %% globals --]] -- NAS General fibaro:setGlobal("BcastNAS", "ici_adresse_de_broadcast_sur_votre_réseau_finissant_par_.255"); fibaro:setGlobal("LoginNAS1", "ici_compte_admin"); fibaro:setGlobal("MdpNAS1", "ici_mot_de_passe"); fibaro:setGlobal("MacNAS1", "ici_adresse_mac_syno1"); fibaro:setGlobal("LoginNAS2", "ici_compte_admin"); fibaro:setGlobal("MdpNAS2", "ici_mot_de_passe"); fibaro:setGlobal("MacNAS2", "ici_adresse_mac_syno2"); Exécutez cette scène une fois seulement et vous créerez les variables globales avec leur contenu. Enfin, il faut le VD devrait fonctionner. Voilà ...
  9. Salut !! Ok, pas grave. Voilà ...
  10. Bonjour jojo, Pas de souci. Faites ce que vous voulez. Voilà ...
  11. Bonjour jojo, Je pense que c'est le cache du navigateur (ou du système) qui a dû jouer des tours. Voilà ...
  12. @jojo : Voici le code du VD pour récupérer les infos : -------------------------------------------------- -- Synology DSM -- Reboot the disk station -- janvier 2015 -------------------------------------------------- -- User configurable variables local login = fibaro:getGlobal("LoginNAS"); local password = fibaro:getGlobal("MdpNAS"); -- System variables local selfID = fibaro:getSelfId(); local ip = fibaro:get(selfID, 'IPAddress'); local port = fibaro:get(selfID, 'TCPPort'); local nameNAS = fibaro:getName(selfID); local Synology = Net.FHttp(ip, tonumber(port)); local API_AUTH_ERROR_CODE = { [0] = "Sans erreur.", [100] = "Erreur inconnue.", [101] = "Compte non spécifié.", [400] = "Mot de passe invalide.", [401] = "Compte désactivé.", [402] = "Permission refusée.", [403] = "Unique mot de passe non spécifié.", [404] = "Autentification erronée." }; local API_RECORD_ERROR_CODE = { [400] = "Exécution ratée.", }; local OK_connected = false; -- Test connection tcpSocket = Net.FTcpSocket(ip, tonumber(port)); bytes, errorCode = tcpSocket:write("Test"); fibaro:log("Détection"); if errorCode == 0 then OK_connected = true; fibaro:log(nameNAS.." ON"); fibaro:call(selfID, "setProperty", "currentIcon", "52"); --fibaro:call(175, "sendDefinedPushNotification", "Ping ReseauHome OK"); else fibaro:log(nameNAS.." OFF"); fibaro:call(selfID, "setProperty", "currentIcon", "53"); --fibaro:call(175, "sendDefinedPushNotification", "Ping ReseauHome OFF"); end tcpSocket:disconnect(); -- Round function to display percentages round = function(num) local a = math.floor(num*100+0.5)/100; return a,string.format("%.2f",a); end if OK_connected then -- Discover available APIs and corresponding information payload = "/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth"; response, status, errorCode = Synology:GET(payload); if tonumber(status) == 200 then jsonTable = json.decode(response); version = jsonTable.data["SYNO.API.Auth"].maxVersion; if version >= 2 then fibaro:debug("Version API Synology OK"); pathAuth = jsonTable.data["SYNO.API.Auth"].path; fibaro:debug("Chemin API Synology = "..pathAuth); cgiUsed_cpu_mem = "/entry.cgi"; cgiUsed_temp = cgiUsed_cpu_mem; cgiUsed_temp_disk = cgiUsed_cpu_mem; cgiUsed_vols = cgiUsed_cpu_mem; apiUsed_cpu_mem = "SYNO.Core.System.Utilization"; apiUsed_temp_system = "SYNO.Core.System"; apiUsed_temp_disk = apiUsed_temp_system; apiUsed_vols = apiUsed_temp_system; apiMethod_cpu_mem="get"; apiMethod_temp = "info"; apiMethod_temp_disk = apiMethod_temp; apiMethod_vols = apiMethod_temp; if version < 6 then cgiUsed_cpu_mem = "/dsm/system_loading.cgi"; cgiUsed_temp = "/dsm/info.cgi"; cgiUsed_temp_disk = "/entry.cgi"; cgiUsed_vols = "/dsm/volume.cgi"; apiUsed_cpu_mem = "SYNO.DSM.SystemLoading"; apiUsed_temp_system = "SYNO.DSM.Info"; apiUsed_temp_disk = "SYNO.Core.System"; apiUsed_vols = "SYNO.DSM.Volume"; apiMethod_cpu_mem = "getinfo"; apiMethod_temp = apiMethod_cpu_mem; apiMethod_temp_disk = "info"; apiMethod_vols = "list"; end -- Create new login session payload = "/webapi/"..pathAuth.."?api=SYNO.API.Auth&method=Login&version=2&account="..login.."&passwd="..password.."&session=DSM&format=sid"; response, status, errorCode = Synology:GET(payload); if tonumber(status) == 200 then jsonTable = json.decode(response); if jsonTable.success == true then SID = jsonTable.data.sid; fibaro:debug("SID API Synology = ["..SID.."]"); -- Prepare string local info_cpu_memory = ""; -- CPU info from the disk station payload = "/webapi"..cgiUsed_cpu_mem.."?api="..apiUsed_cpu_mem.."&version=1&method="..apiMethod_cpu_mem.."&type=current&_sid="..SID; response, status, errorCode = Synology:GET(payload); if tonumber(status) == 200 then jsonTable = json.decode(response); if jsonTable.success == true then info_cpu = jsonTable.data.cpu; info_mem = jsonTable.data.memory; load_cpu = 0; load_mem = 0; if (version < 6) then load_cpu = round(info_cpu.user*100); load_mem = round((info_mem.total-(info_mem.buffer+info_mem.cached+info_mem.free))/info_mem.total*100); else load_cpu = round(info_cpu.other_load+info_cpu.system_load+info_cpu.user_load); load_mem = round(info_mem.real_usage); end fibaro:debug("Memory: "..load_mem.."%"); info_cpu_memory = "Memory: "..load_mem.."% "; fibaro:debug("CPU: "..load_cpu.."%"); info_cpu_memory = info_cpu_memory.."CPU: "..load_cpu.."%"; fibaro:call(selfID, "setProperty", "ui.CPULoad.value", info_cpu_memory); end else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : '..API_AUTH_ERROR_CODE[tonumber(errorCode)]..'</span>'); end -- Temp info from the disk station payload = "/webapi"..cgiUsed_temp.."?api="..apiUsed_temp_system.."&version=1&method="..apiMethod_temp.."&_sid="..SID; response, status, errorCode = Synology:GET(payload); if tonumber(status) == 200 then jsonTable = json.decode(response); if jsonTable.success == true then temp_system = "System: N/A"; if (version < 6) then if jsonTable.data.temperature ~= "undefined" then temp_system = "System: "..round(jsonTable.data.temperature).."°C"; end else if jsonTable.data.sys_temp ~= nil then temp_system = "System: "..round(jsonTable.data.sys_temp).."°C"; end end fibaro:debug("Temperature "..temp_system); fibaro:call(selfID, "setProperty", "ui.SYSTEMTemp.value", temp_system); end else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : '..API_AUTH_ERROR_CODE[tonumber(errorCode)]..'</span>'); end -- Prepare string local temp_disks = ""; -- Temp info from the disk station payload = "/webapi"..cgiUsed_temp_disk.."?api="..apiUsed_temp_disk.."&version=1&method="..apiMethod_temp_disk.."&type=storage&_sid="..SID; response, status, errorCode = Synology:GET(payload); if tonumber(status) == 200 then jsonTable = json.decode(response); if jsonTable.success == true then local disk_tab = jsonTable.data.hdd_info; for nb = 1, #disk_tab do temp_disks = temp_disks..disk_tab[nb].diskno..": "..round(disk_tab[nb].temp).."°C "; end fibaro:debug("Disks temperature: "..temp_disks); fibaro:call(selfID, "setProperty", "ui.DISKSTemp.value", temp_disks); end else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : '..API_AUTH_ERROR_CODE[tonumber(errorCode)]..'</span>'); end -- Prepare string local vols_load = ""; -- Temp info from the disk station payload = "/webapi"..cgiUsed_vols.."?api="..apiUsed_vols.."&version=1&method="..apiMethod_vols.."&type=storage&_sid="..SID; response, status, errorCode = Synology:GET(payload); if tonumber(status) == 200 then jsonTable = json.decode(response); if jsonTable.success == true then local vols_tab = 0; if (version < 6) then vols_tab = jsonTable.data.volumes; else vols_tab = jsonTable.data.vol_info; end for nb = #vols_tab, 1, -1 do if (version < 6) then used_size_vol = vols_tab[nb].used; total_size_vol = vols_tab[nb].total; else used_size_vol = vols_tab[nb].used_size; total_size_vol = vols_tab[nb].total_size; end occupied_size = round(used_size_vol/total_size_vol*100); if (version < 6) then vols_load = vols_load..vols_tab[nb].id..": "..occupied_size.."% "; else vols_load = vols_load..vols_tab[nb].name..": "..occupied_size.."% "; end end fibaro:debug("Volumes Load: "..vols_load); fibaro:call(selfID, "setProperty", "ui.VOLSLoad.value", vols_load); end else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : '..API_AUTH_ERROR_CODE[tonumber(errorCode)]..'</span>'); end -- Destroy current login session payload = "/webapi/"..pathAuth.."?api=SYNO.API.Auth&method=Logout&version=2&session=DSM&_sid="..SID; response, status, errorCode = Synology:GET(payload); fibaro:debug("Déconnexion: "..status); else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : '..API_AUTH_ERROR_CODE[tonumber(jsonTable.error.code)]..'</span>'); end else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : Authentification API ratée</span>'); end else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : Version API Synology trop vieille : <b>DSM 4.0-2251</b> est requise</span>'); end else fibaro:log("Erreur"); fibaro:debug('<span style="color:red;">Erreur : Impossible de se connecter au Disk Station Synology</span>'); end else fibaro:call(selfID, "setProperty", "ui.CPULoad.value", "Memory: N/A % CPU: N/A %"); fibaro:call(selfID, "setProperty", "ui.SYSTEMTemp.value", "System: N/A °C"); fibaro:call(selfID, "setProperty", "ui.DISKSTemp.value", "Disk: N/A °C"); end
  13. Bonjour domo, Voici la dernière (je l'espère !! :D) version avec la prise en charge de la température des disques dur. Pouvez-vous tester de votre coté ? Merci ... Synology_NAS.vfib
  14. Bonjour, Je ne sais pas. Je vais devoir installer DSM 5.2 pour voir au niveau API ce qui cloche. Sinon, pour la température Système, j'ai un nouveau VD, domo. Pouvez-vous l'essayer ? Merci. Synology_NAS.vfib
  15. Pouvez-vous essayer ceci ? http://<adresse_ip_nas:port_dsm>/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=<login_admin>&passwd=<password_admin>&session=DSM&format=sid http://<adresse_ip_nas:port_dsm>/webapi/dsm/entry.cgi?api=SYNO.Core.Storage.Disk&version=1&method=getinfo&type=storage&_sid=<sid_trouve_avant> Merci !
  16. Mince, je vais chercher encore ...
  17. OK, cela me donne la température du système. Pouvez vous faire l'autre ? Merci.
  18. Bon, normal alors que vous n'ayez rien. Pouvez-vous essayer ceci ? http://<adresse_ip_nas:port_dsm>/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=<login_admin>&passwd=<password_admin>&session=DSM&format=sid http://<adresse_ip_nas:port_dsm>/webapi/dsm/info.cgi?api=SYNO.DSM.Info&version=1&method=getinfo&type=storage&_sid=<sid_trouve_avant> ou (si celle du dessus a raté) http://<adresse_ip_nas:port_dsm>/webapi/dsm/info.cgi?api=SYNO.DSM.System&version=1&method=getinfo&type=storage&_sid=<sid_trouve_avant> Merci !
  19. OK ! Bon bah il ne doit pas y avoir beaucoup de monde sur l'autoroute après 20h ... Ça attendra que vous rentriez chez vous ! Pas de souci.
  20. OK. Pouvez-vous faire les urls de mon précédent post pour comprendre les températures à zéro ? Merci.
  21. OK. Bizarre oui. C'est quel modèle de Synology ? Normalement si on peut voir la température dans l'interface DSM, je dois pouvoir l'avoir dans le VD. Pouvez-vous essayer ceci ? http://<adresse_ip_nas:port_dsm>/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=<login_admin>&passwd=<password_admin>&session=DSM&format=sid http://<adresse_ip_nas:port_dsm>/webapi/dsm/info.cgi?api=&version=1&method=getinfo&type=storage&_sid=<sid_trouve_avant> ou (si celle du dessus n'a pas fonctionné) http://<adresse_ip_nas:port_dsm>/webapi/dsm/info.cgi?&version=1&method=getinfo&type=storage&_sid=<sid_trouve_avant> Merci.
  22. Je peux à deux chiffres, car j'ai déjà une fonction qui le fait. Essayez ce VD ... Synology_NAS.vfib
  23. En effet, vous êtes arrivé au bout. Voir ce que cela donne dans le VD en cliquant sur l'icone des 4 flèches. Voilà ... bonne nuit ...
  24. Bonsoir, Pouvez-vous essayer avec ce VD ? Merci ... Synology_NAS.vfib
  25. Ce n'est pas la même suite de commandes ...
×
×
  • Créer...