elacombe Posté(e) le 7 septembre 2016 Signaler Posté(e) le 7 septembre 2016 Super. Merci. Je teste...
fredokl Posté(e) le 17 avril 2017 Signaler Posté(e) le 17 avril 2017 Salut, je déterre un peu le poste. Le VD fonctionne parfaitement à un détail près, le Reboot ne marche pas. Je suis en 4.120. J'ai essayé toutes les solutions données sur ce fil mais rien n'y fait. Quelqu'un aurait une idée?
Lazer Posté(e) le 18 avril 2017 Signaler Posté(e) le 18 avril 2017 Oui c'est normal, depuis le firmware 4.110 le code LUA a changé, et il n'est plus possible de redémarrer la HC2 depuis un VD, il faut utiliser une scène avec la nouvelle API LUA : https://www.domotique-fibaro.fr/topic/9811-lua-arreter-ou-redémarrer-sa-hc2/ Donc le bouton reboot de ton VD doit être vidé, et remplacé par une simple commande permettant de lancer ta scène : fibaro:startScene(sceneID) Tu remplaces sceneID par l'ID de ta nouvelle scène. 1
sebcbien Posté(e) le 18 avril 2017 Signaler Posté(e) le 18 avril 2017 Tu te trompe mon cher @Lazer voici le code avec reboot qui fonctionne dans un VD. et avec la fonction double click (pour cela, créer un label et l'appeler: lblMessage ) Bouton Reboot: -- Double click by sebcbien -- local msg = "Ré-appuyer pour confirmer" -- Confirm message local action_msg = "REBOOTING !!!" -- message when double click activated local labelId = "lblMessage" -- ID of the label hosting the messages local secondes = 2 -- maximum time between two clicks for the action to be validated -- do not modify below and place your action in line 25 local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") local action if (current == "") or (current == "SHUTTING DOWN !!!") or (current == "REBOOTING !!!") then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg.." ("..string.sub(os.time(),-4)..")") fibaro:debug("First Click") action = false elseif tonumber(string.sub(os.time(),-4)) - tonumber(string.sub(current,-5,-2)) <= secondes then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", action_msg) fibaro:debug("Double click Validated !") fibaro:sleep(2*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", "") action = true elseif tonumber(string.sub(os.time(),-4)) - tonumber(string.sub(current,-5,-2)) > secondes then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", "") fibaro:debug("Cleaning") action = false end if action then fibaro:sleep(5*1000) -- Reboot system local HC2 = Net.FHttp("127.0.0.1", 80) local response, status, errorCode = HC2:GET("/reboot.php") fibaro:log(status.. "Reboot en cours") fibaro:debug(status.. "Reboot en cours") end Bouton shutdown: -- Double click by sebcbien -- local msg = "Ré-appuyer pour confirmer" -- Confirm message local action_msg = "SHUTTING DOWN !!!" -- message when double click activated local labelId = "lblMessage" -- ID of the label hosting the messages local secondes = 2 -- maximum time between two clicks for the action to be validated -- do not modify below and place your action in line 25 local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") local action if (current == "") or (current == "SHUTTING DOWN !!!") or (current == "REBOOTING !!!") then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg.." ("..string.sub(os.time(),-4)..")") fibaro:debug("First Click") action = false elseif tonumber(string.sub(os.time(),-4)) - tonumber(string.sub(current,-5,-2)) <= secondes then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", action_msg) fibaro:debug("Double click Validated !") fibaro:sleep(2*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", "") action = true elseif tonumber(string.sub(os.time(),-4)) - tonumber(string.sub(current,-5,-2)) > secondes then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", "") fibaro:debug("Cleaning") action = false end if action then -- PLACE YOUR CODE HERE -- fibaro:sleep(5*1000) -- Shutdown system local HC2 = Net.FHttp("127.0.0.1", 80) local response, status, errorCode = HC2:GET("/shutdown.php") fibaro:log(status.. "Shutdown en cours") fibaro:debug(status.. "Shutdown en cours") end 3
fredokl Posté(e) le 18 avril 2017 Signaler Posté(e) le 18 avril 2017 Merci @Lazer et @sebcbien pour vos réponses. J'ai testé uniquement celle de @sebcbien qui m'évite de créer encore une scène. Elle fonctionne parfaitement en 4.120 aussi bien en shutdown qu'en reboot. 1
Lazer Posté(e) le 18 avril 2017 Signaler Posté(e) le 18 avril 2017 ah bon très bien alors, merci de la précision @sebcbien 1
fredokl Posté(e) le 18 avril 2017 Signaler Posté(e) le 18 avril 2017 Allez, pour vous remercier voici des icônes pour le reboot, le refresh et le shutdown. 3
nigao Posté(e) le 1 mai 2017 Signaler Posté(e) le 1 mai 2017 Merci pour ce virtual device au top ^^ Une petite question, y a t'il une syntaxe pour ramener l'occupation disque en octet plutôt qu'en pourcentage ?
nigamais Posté(e) le 17 mai 2017 Signaler Posté(e) le 17 mai 2017 Bonjour,faut il modifier quelque chose dans ce VD ,IP etc Merci
Rem's Posté(e) le 17 mai 2017 Signaler Posté(e) le 17 mai 2017 Merci pour ce bout de code, je vais mettre à jour mon VD !!
jjacques68 Posté(e) le 13 août 2017 Signaler Posté(e) le 13 août 2017 merci @sebcbien, j'ai pris les codes du reboot /shutdown 1
Sakkhho Posté(e) le 11 août 2018 Signaler Posté(e) le 11 août 2018 Hello L'api étant différente je pense ce VD n'est plus fonctionnel en 4.510
Kana-chan Posté(e) le 12 août 2018 Signaler Posté(e) le 12 août 2018 (modifié) Bonjour, Il suffit de rajouter ceci : local User = string.gsub("votre_adresse_de_courriel", "%@", "%%40"); local Pass = "votre_mot_de_passe_ENCODE"; HC2:setBasicAuthentication(User, Pass); juste après la ligne : local HC2 = Net.FHttp("127.0.0.1",11111); dans le code du bouton "Rafraîchir" ! Et de commenter les lignes suivantes : --Partition recovery local rused = tonumber(result.storage.internal[2].used); local rfree = 100 - rused; rused = rused .. "%"; rfree = rfree .. "%"; fibaro:call(thismodule,"setProperty","ui.vlRecovery0.value", "Utilisé : " .. rused); fibaro:call(thismodule,"setProperty","ui.vlRecovery1.value", "Disponible : " .. rfree); (mettre "--" devant chaque ligne ci-dessus). Voilà ... Modifié le 14 août 2018 par Kana-chan Oubli d'enlever le string.gsub pour le pass.
Sakkhho Posté(e) le 12 août 2018 Signaler Posté(e) le 12 août 2018 [ERROR] 18:21:45: line 30: bad argument #2 to 'gsub' (string expected, got no value) pourtant j'ai encodé mon mot de passe avec https://www.base64encode.org local Pass = string.gsub("Encodé";)
Barelle Posté(e) le 12 août 2018 Signaler Posté(e) le 12 août 2018 La forme local Pass = string.gsub("Encodé"); serait syntaxiquement plus correcte...
Sakkhho Posté(e) le 12 août 2018 Signaler Posté(e) le 12 août 2018 oui bien sur l'erreur ne vient pas de la. (faute de typo dans le post)
Barelle Posté(e) le 12 août 2018 Signaler Posté(e) le 12 août 2018 La fonction string.gsub attend au moins deux paramètres. Là cela ne peut pas fonctionner... Je suggère : local Pass = "Encodé";
pepite Posté(e) le 13 août 2018 Signaler Posté(e) le 13 août 2018 BOnsoir bonsoir, Au fait je n'ai pas suivi, ok pour la partition recovery, mais pour l'encodage du pass, pas suivi. Donc quel est le code alors ? Ca fonctionne sans chez moi sans, je comprends pas ;-) local vId = fibaro:getSelfId(); local HC2 = Net.FHttp("127.0.0.1",11111) local response, status, errorCode = HC2:GET("/api/diagnostics") if tonumber(status) == 200 then local result = json.decode(response);
kioneoranga Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 Il y a 16 heures, pepite a dit : BOnsoir bonsoir, Au fait je n'ai pas suivi, ok pour la partition recovery, mais pour l'encodage du pass, pas suivi. Donc quel est le code alors ? Ca fonctionne sans chez moi sans, je comprends pas ;-) local vId = fibaro:getSelfId(); local HC2 = Net.FHttp("127.0.0.1",11111) local response, status, errorCode = HC2:GET("/api/diagnostics") if tonumber(status) == 200 then local result = json.decode(response); Moi aussi cela fonctionne comme @pepite sans pb, local HC2 = Net.FHttp("127.0.0.1",11111) Je ne comprends pas pourquoi il faut jouter les lignes user et pass! Est il possible d'expliquer? Merci d'avance
Kana-chan Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 Bonjour, En effet, cela fonctionne aussi sans. Bizarre qu'il le faille dans certaines utilisations de l'API et pas d'autres alors !! Voilà ... 1
pepite Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 Bonsoir, bonsoir, oui c'est bizarre tout de même ce comportement différent ;-) Sinon, J'ai tout de même un comportement bizarre, plus de main loop. au fait, ceci permet de ne pas s'authentifier, enfin de s'authentifier sans user, pass ;-) spécifié. Net.FHttp("127.0.0.1",11111)
Kana-chan Posté(e) le 15 août 2018 Signaler Posté(e) le 15 août 2018 Il y a 10 heures, pepite a dit : Sinon, J'ai tout de même un comportement bizarre, plus de main loop. Bonjour, Bizarre, elle fonctionne bien chez moi : Voilà ... 1
pepite Posté(e) le 15 août 2018 Signaler Posté(e) le 15 août 2018 Bonsoir, All is good pour moi aussi, mode boulet ON, j'avais oublié de modifier le numéro du bouton ;-)
Messages recommandés