Welcome to Domotique-fibaro

 

Inscrivez-vous maintenant pour accéder à toutes nos fonctionnalités. Une fois inscrit et connecté, vous serez en mesure de contribuer à ce site en soumettant votre propre contenu ou en répondant au contenu existant. Vous serez en mesure de personnaliser votre profil, de recevoir des points de réputation comme une récompense pour la soumission de contenu, tout en communiquant avec d'autres membres via votre boîte de réception privée, et bien plus encore! Ce message sera supprimé une fois que vous vous êtes connecté.

 

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Kana-chan

Membres confirmés
  • Compteur de contenus

    118
  • Inscription

  • Dernière visite

Réputation sur la communauté

18 Good

À propos de Kana-chan

  • Rang
    Membre passionné
  • Date de naissance 24/08/1977

Profile Information

  • Sexe :
    Homme
  • Ville :
    Antibes
  • Box
    Home Center 2
  • Version
    4.130

Visiteurs récents du profil

154 visualisations du profil
  1. Tuto HC2

    En gros oui. Mais il faut bien avoir renseigné les icônes des boutons aussi. Voilà ...
  2. Tuto HC2

    C'est l'icône d'état. Celle qui te dis "en live" lorsque ton NAS est éteint ou allumé, qui correspond soit à Synology_ON.png, soit à Synology_OFF.png. Donc ce qui est dans les call (les indexes "52" et "53") : if errorCode == 0 then OK_connected = true; fibaro:log(nameNAS.." ON"); fibaro:call(selfID, "setProperty", "currentIcon", "52"); else fibaro:log(nameNAS.." OFF"); fibaro:call(selfID, "setProperty", "currentIcon", "53"); end Voilà ...
  3. Tuto HC2

    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à ...
  4. Tuto HC2

    Salut, Oui c'est bien comme cela. Voilà ...
  5. Tuto HC2

    Ah oui je parlais bien de la partie variables pas variables définies. Voilà ...
  6. Tuto HC2

    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à ...
  7. Tuto HC2

    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à ...
  8. Tuto HC2

    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à ...
  9. Tuto HC2

    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à ...
  10. Tuto HC2

    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à ...
  11. Tuto HC2

    Salut !! Ok, pas grave. Voilà ...
  12. Tuto HC2

    Bonjour jojo, Pas de souci. Faites ce que vous voulez. Voilà ...
  13. Tuto HC2

    Bonjour jojo, Je pense que c'est le cache du navigateur (ou du système) qui a dû jouer des tours. Voilà ...
  14. Tuto HC2

    @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
  15. Tuto HC2

    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