Aller au contenu

Kana-chan

Membres confirmés
  • Compteur de contenus

    333
  • Inscription

  • Dernière visite

  • Jours gagnés

    7

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

  1. Bonjour, Ce sont bien des variables globales. Vérifier qu'il n'y ai pas d'espace dans l'adresse MAC pour le réveil. Voilà ...
  2. Bonjour, Non, je reboote ma HC2 assez souvent et j'ai toujours les variables globales. Voilà ...
  3. Kana-chan

    Support Gea

    Merci pepite ! En effet, cela a fonctionné. Donc il ne faut pas mettre les accolades si pas d'actions dedans. Voilà ...
  4. Kana-chan

    Support Gea

    Pardon mais de quelle 6ème ligne tu parles ? J'ai mis le code que j'utilise déjà dans le message précédent. Voilà ...
  5. Kana-chan

    Support Gea

    OK, mais pas si vieille il me semble : -- v 5.42 -- ================================================== -- GEA : Gestionnaire d'Evénements Automatique -- ================================================== Mais si tu as une autre idée pour mes {"Global-", "RamFree", 15}, ce serait bien ! (Le tuto parle de 5.x donc 5.42 en fait bien parti ... NA ! ) Voilà ...
  6. Kana-chan

    Support Gea

    Merci pepite. Je vais tester. Mais donc, il ne suffit pas de prendre les anciennes de GEA v5 pour les coller dans GEA v6 ? C'est pourtant ce que disait le tuto, non ? Et j'ai un autre souci avec ce code : -------------SURVEILLANCE MEMOIRE-------------- GEA.add({ {"Global-", "RamFree", 15}, {"Time", "21:00", "21:01"} }, 30, "RAM inférieure à #value# !", { } ) GEA.add({ {"Global-", "RamFree", 15}, {"Time", "02:45", "02:46"} }, 30, "Reboot HC2 car RAM inférieure à 15% (#value#)", { {"VirtualDevice", id["HC2_DIAGNOSTICS"], 15}, {"Function", function() fibaro:sleep(1000) end}, {"VirtualDevice", id["HC2_DIAGNOSTICS"], 15} } ) (Je sais que cela ne fait pas grand chose, mais je veux bien savoir pourquoi ça ne fonctionne pas.) Voici l'erreur : [DEBUG] 14:48:19: -------------------------------------------------------------------------------- [DEBUG] 14:48:19: Démarrage automatique de GEA 6.00 (mode autostart) [DEBUG] 14:48:19: -------------------------------------------------------------------------------- [DEBUG] 14:48:19: Utilisation de minifiertools v. 2.00 [DEBUG] 14:48:19: Vérification automatique toutes les 30 secondes [DEBUG] 14:48:19: Création de la variable globale : GEA_Tasks [DEBUG] 14:48:19: Création de la variable globale : GEA_History [DEBUG] 14:48:19: -------------------------------------------------------------------------------- [DEBUG] 14:48:20: Recherche de plugins, ... :Aucun plugins trouvé [DEBUG] 14:48:20: Chargement du code utilisateur setEvents() ... [DEBUG] 14:48:20: -------------------------------------------------------------------------------- [DEBUG] 14:48:20: Ajout auto : #1 [Info+, ["serverStatus",1512827180]] | 0 | Box red... | < pas d'action > [DEBUG] 14:48:20: Ajout auto : #2 [true] | 0 | Démarr... | < pas d'action > [DEBUG] 14:48:20: Ajout auto : #3 [Info, ["updateStableAvailable",true]] | 86400 | Une nou... | < pas d'action > *répété* [DEBUG] 14:48:20: Ajout auto : #4 [Info, ["updateBetaAvailable",true]] | 86400 | Une nou... | < pas d'action > *répété* [DEBUG] 14:48:20: Ajout auto : #5 [Time, ["03:30","03:31"]] | 30 | | [VirtualDevice, [39,3]] [DEBUG] 14:48:20: Ajout auto : #6 [Time, ["03:31","03:32"]] | 30 | | [VirtualDevice, [110,1]] [DEBUG] 14:48:20: Ajout auto : #7 [Time, ["03:32","03:33"]] | 30 | | [VirtualDevice, [39,3]] [DEBUG] 14:48:20: Ajout auto : #8 [Time, ["07:25","07:26"]] | 30 | | [VirtualDevice, [53,8]] [DEBUG] 14:48:20: Ajout auto : #9 [Time, ["07:26","07:27"]] | 30 | | [VirtualDevice, [53,5]] [DEBUG] 14:48:20: Ajout auto : #10 [Time, ["07:27","07:28"]] | 30 | | [VirtualDevice, [52,8]] [DEBUG] 14:48:20: Ajout auto : #11 [Time, ["07:28","07:29"]] | 30 | | [VirtualDevice, [52,5]] [DEBUG] 14:48:20: Ajout auto : #12 [Time, ["07:29","07:30"]] | 30 | | [VirtualDevice, [64,8]] [DEBUG] 14:48:20: Ajout auto : #13 [Time, ["07:30","07:31"]] | 30 | | [VirtualDevice, [64,5]] [DEBUG] 14:48:20: Ajout auto : #14 [Time, ["07:31","07:32"]] | 30 | | [VirtualDevice, [103,8]] [DEBUG] 14:48:20: Ajout auto : #15 [Time, ["07:32","07:33"]] | 30 | | [VirtualDevice, [103,5]] [DEBUG] 14:48:20: Ajout auto : #16 [Time, ["07:33","07:34"]] | 30 | | [VirtualDevice, [122,8]] [DEBUG] 14:48:20: Ajout auto : #17 [Time, ["07:34","07:35"]] | 30 | | [VirtualDevice, [122,5]] [DEBUG] 14:48:20: Ajout auto : #18 [Time, ["21:30","21:31"]] | 30 | | [VirtualDevice, [53,8]] [DEBUG] 14:48:20: Ajout auto : #19 [Time, ["21:31","21:32"]] | 30 | | [VirtualDevice, [53,6]] [DEBUG] 14:48:20: Ajout auto : #20 [Time, ["21:32","21:33"]] | 30 | | [VirtualDevice, [52,8]] [DEBUG] 14:48:20: Ajout auto : #21 [Time, ["21:33","21:34"]] | 30 | | [VirtualDevice, [52,6]] [DEBUG] 14:48:20: Ajout auto : #22 [Time, ["21:34","21:35"]] | 30 | | [VirtualDevice, [64,8]] [DEBUG] 14:48:20: Ajout auto : #23 [Time, ["21:35","21:36"]] | 30 | | [VirtualDevice, [64,6]] [DEBUG] 14:48:20: Ajout auto : #24 [Time, ["21:36","21:37"]] | 30 | | [VirtualDevice, [103,8]] [DEBUG] 14:48:20: Ajout auto : #25 [Time, ["21:37","21:38"]] | 30 | | [VirtualDevice, [103,6]] [DEBUG] 14:48:20: Ajout auto : #26 [Time, ["21:38","21:39"]] | 30 | | [VirtualDevice, [122,8]] [DEBUG] 14:48:20: Ajout auto : #27 [Time, ["21:39","21:40"]] | 30 | | [VirtualDevice, [122,6]] [DEBUG] 14:48:20: line 1331: attempt to index field '?' (a nil value) Et la ligne 1331 (à 1337) est : if (type(a) == "table" and a[1]:lower()=="if") then GEA.insert(entry.conditions, GEA.getOption(a[2]), entry) elseif (type(a) == "table" and GEA.compareString(a[1]:lower(), "#r#^time|dates|days|dst|nodst|^armed|^disarmed")) then GEA.insert(entry.conditions, GEA.getOption(a), entry) else GEA.insert(entry.actions, GEA.getOption(a), entry) end Voilà ...
  7. Kana-chan

    Support Gea

    Bonjour, Très bon travail. Pat contre j'ai une erreur après avoir suivit le tuto : [DEBUG] 11:34:07: -------------------------------------------------------------------------------- [DEBUG] 11:34:07: Démarrage automatique de GEA 6.00 (mode autostart) [DEBUG] 11:34:07: -------------------------------------------------------------------------------- [DEBUG] 11:34:07: Utilisation de minifiertools v. 2.00 [DEBUG] 11:34:07: Vérification automatique toutes les 30 secondes [DEBUG] 11:34:07: Création de la variable globale : GEA_Tasks [DEBUG] 11:34:07: Création de la variable globale : GEA_History [DEBUG] 11:34:07: -------------------------------------------------------------------------------- [DEBUG] 11:34:07: Recherche de plugins, ... :Aucun plugins trouvé [DEBUG] 11:34:07: Chargement du code utilisateur setEvents() ... [DEBUG] 11:34:07: -------------------------------------------------------------------------------- [DEBUG] 11:34:07: Ajout auto : #1 [Info+, ["serverStatus",1512815527]] | 0 | Box red... | < pas d'action > [DEBUG] 11:34:07: Ajout auto : #2 [true] | 0 | Démarr... | < pas d'action > [DEBUG] 11:34:07: Ajout auto : #3 [Info, ["updateStableAvailable",true]] | 86400 | Une nou... | < pas d'action > *répété* [DEBUG] 11:34:07: Ajout auto : #4 [Info, ["updateBetaAvailable",true]] | 86400 | Une nou... | < pas d'action > *répété* [DEBUG] 11:34:07: Ajout auto : #5 [Global, ["",""]][Time, ["03:30","03:31"]] | 30 | | [VirtualDevice, [39,3]] [DEBUG] 11:34:07: Global : n'existe(nt) pas [DEBUG] 11:34:07: GEA ... ARRETE Global n'existe pas ? Je dois faire quoi à la place de ceci ? GEA.add({"Global", "", ""}, 30, "", { {"VirtualDevice", id["WP01_COLORS"], 8}, {"Time", "07:25", "07:26"} }) Merci à vous pour votre aide !! Voilà ...
  8. Bonjour Gandalf, Alors ? as-tu réussi à réparer tes modules Synology ? Voilà ...
  9. Bonsoir, Alors j'ai testé : * Etat ==> OK * Redémarrer ==> OK * Arrêter ==> OK * Réveiller ==> OK Et mon Syno est en 6.1.4. Peut-être que vous pouvez essayer en décochant les cases WOL de vos syno, appliquer puiis cocher à nouveau et appliquer, dans l'interface des syno. Voilà ...
  10. Bonjour, L'état du Synology fonctionne chez moi. Qu'est-ce qui ne fonctionne pas ? Voilà ...
  11. Bonsoir, Il en existe une dans le sujet ICI. Tu trouveras comment l'utiliser dans les postes d'après. Voilà ...
  12. En gros oui. Mais il faut bien avoir renseigné les icônes des boutons aussi. Voilà ...
  13. 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à ...
  14. 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à ...
  15. Salut, Oui c'est bien comme cela. Voilà ...
  16. Ah oui je parlais bien de la partie variables pas variables définies. Voilà ...
  17. 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à ...
  18. 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à ...
  19. 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à ...
  20. 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à ...
  21. 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à ...
  22. Salut !! Ok, pas grave. Voilà ...
  23. Bonjour jojo, Pas de souci. Faites ce que vous voulez. Voilà ...
  24. Bonjour jojo, Je pense que c'est le cache du navigateur (ou du système) qui a dû jouer des tours. Voilà ...
  25. @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
×
×
  • Créer...