Aller au contenu

HC3 - Commande Shutdown


jjacques68

Messages recommandés

hello tout le monde, 

 

petite question, si on veut faire un shutdown de la box, c’est la fonction suivante ?

fibaro.homeCenter.systemService.suspend()

d’après la doc

 

Citation

fibaro.homeCenter.systemService.suspend

fibaro.homeCenter.systemService.suspend()

Put the gateway in Sleep Mode.

 

mais un sleep et un shutdown, c’est pas pareil (sans jeux de mots ;) ) ?

Lien vers le commentaire
Partager sur d’autres sites

Bon ben je confirme,

 

Y a pas de commande shutdown, y a que le suspend...

 

bref, c'est pas grave, j'ai ce que je voulais à savoir :

 

en cas de panne de courant, au bout de 10 minutes,

l'onduleur envoi une info à un PC qui lui execute un script pour mettre la HC3 en "suspend".

 

Le bon vieux "hic", c'est que pour remettre la HC3 en route, faut être présent pour dérancher/rebrancher !

 

J'avais une prise plug commandée par wifi pour la HC2, MAIS : le plug + le transfo de la HC3 + le bandeau d'alim de la baie = JE PEUX PLUS FERMER LA PORTE !!! :(:mellow::huh:<_<

Lien vers le commentaire
Partager sur d’autres sites

En croisant avec l' API et connaissant les habitudes de Fibaro ceci devrait parfaitement "émuler" le redémarrage et la mise en veille, (petite question au passage: d’ailleurs elle sort comment du mode veille ? WoL ?)

-- reboot the gateway
reboot = function()
    local http = net.HTTPClient()
    http:request("http://localhost/api/service/reboot",{
    options={ 
        headers = {["X-Fibaro-Version"] = "2"}, 
        method="POST"
        }
    })    
end
-- put the gateway in sleep mode
suspend = function()
    local http = net.HTTPClient()
    http:request("http://localhost/api/service/suspend",{
    options={ 
        headers = {["X-Fibaro-Version"] = "2"}, 
        method="POST"
        }
    })    
end

Alors si nous extrapolons :)

 

A essayer, sans aucune garantie de rien du tout... A tes risques et périls!

-- shutdown the gateway
shutdown = function()
    local http = net.HTTPClient()
    http:request("http://localhost/api/service/shutdown",{
    options={ 
        headers = {["X-Fibaro-Version"] = "2"}, 
        method="POST"
        }
    })    
end

 

Lien vers le commentaire
Partager sur d’autres sites

fibaro.HomeCenter = { 
    SystemService = {
        -- reboot the gateway
        reboot = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/reboot",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end,
        -- put the gatewau in slee mode
        suspend = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/suspend",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end,
        -- shutdown the gateway
        shutdown = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/shutdown",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end
    }
}

Dans un Quick App ;)

 

fibaro.HomeCenter.SystemService.reboot()

fibaro.HomeCenter.SystemService.suspend()

fibaro.HomeCenter.SystemService.shutdown()

 

 

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Non pourquoi ? de mémoire l'espace de nom fibaro.HomeCenter.SystemService n'existe pas dans les QuickApp, et tu peux ajouter des choses dans "fibaro" si tu le souhaites ;)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bah y'a rien de compliqué, c'est juste le code de @Krikroff avec 2 boutons :

 

fibaro.HomeCenter = {
    SystemService = {
        -- reboot the gateway
        reboot = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/reboot",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end,
        -- put the gatewau in slee mode
        suspend = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/suspend",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end,
        -- shutdown the gateway
        shutdown = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/shutdown",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end
    }
}

function QuickApp:btnShutdown(param)
    fibaro.HomeCenter.SystemService.shutdown()
end

function QuickApp:btnReboot(param)
    fibaro.HomeCenter.SystemService.reboot()
end

function QuickApp:onInit()
end

 

image.png.e5a82fe826690c6e39704208c095eab8.png

 

Lien vers le commentaire
Partager sur d’autres sites

@lazer oui je sais très bien. Mais une personne qui débute ne le sais pas forcément et@nico il veut du tout cuit

Je trouve personnellement que c'est mieux que la bibliothèque de QA s'étoffe car pas toujours simple de retrouver des bouts de code
Par contre je ne mets pas le code comme cela on est obligé de s'inscrire est on peut suivre le nombre de téléchargements

Envoyé de mon BLA-L29 en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Les petits codes LUA comme celui-là, j'ai toujours préféré les laisser "en ligne" sur le forum, car cela permet à Google de les indexer, et c'est justement très pratique pour débuter, car on fait une recherche de fonction sur Google, et hop on tombe sur la page avec le bel exemple d'utilisation du code.

Tu vas me dire qu'il y a le topic dédié aux Snipets LUA pour ça, sauf que 99% du code LUA se trouve disséminé sur tout le forum, ça a toujours été comme ça, et c'est très bien ainsi tant que c'est indexé. Sur un forum, on échange, on teste des bouts de code, et on les fait évoluer. C'est encore plus vrai pour l'API de reboot qui a changé au moins 3 fois depuis la HC2.

 

En plus ce bout de code n'a aucun intérêt dans un QA qui ne fait que ça, le but c'est de l'intégrer dans un vrai QA qui fait des choses utiles.

 

J'ajoute que ce n'est pas mon code, je ne vais pas m'en attribuer le mérite en partageant un QA complet.

 

Bref, c'est très bien comme ça.

 

Évidemment les vrais QA je les partagerai en pièce jointe, dans un topic dédié, avec le tuto complet, comme j'ai toujours fait pour les VD et les Scènes.

Mais c'est prématuré, je n'ai rien de prêt, et puis de toute façon ce n'est pas une course :)

 

Et puis Nico fait surtout du mode bloc :D et il n'aura que faire de rebooter sa future HC3, car la sienne sera sans bug.

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

@lazer je me permet de te faire une petite remarque sur ton code (Mode @jojo)

 

Je me suis fais avoir surtout dans les scènes et je me suis aussi fais incendié par @jjacque68 et il avait raison mais dur de changer les habitudes :D

 

Dans ton QA je pense que le debug doit être remplacer par trace.

tu peux aussi donner une nom ça c'est moins grave

 

Par contre dans tes scènes met bien le tag, "text" sinon tu risques de t'arracher les cheveux en te disant pourquoi je vois pas mon debug lorsque tu filtres la scène

 

donc moi en début de scène je mets

local tag = "NondemaScene"

 

puis je fais

(tag, "message")

 

en plus si un jour tu veux changé le tag c'est bien plus simple

 

autrement si tu veux pas te prendre la tête utilise

print

 

voici une explication de JC

 

Lien vers le commentaire
Partager sur d’autres sites

Je confirme, tout ce que je peux, mode bloc, j'ai viré autant que possible le LUA. Tout simplement pour penser maintenance si qqun d'autre doit y accéder un jour, et clairement, au final c'est très simple, fonctionnel et propre, avec pleins de petites scènes simple mais compréhensible par tous. J'ai même supprimé 95% des lignes de GEA, et le reste de devrait pouvoir aussi avec le mode bloc de la HC3 bien plus puissant à ce que j'ai vu.

 

Après les QA c'est autre chose.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Je viens de tester le Shutdown fonctionne

 

par contre le Reboot ne fonctionne pas

 

function QuickApp:onInit()
    self:debug("onInit")
end
fibaro.HomeCenter = {
    SystemService = {
        -- reboot the gateway
        reboot = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/reboot",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end,
        -- put the gatewau in slee mode
        suspend = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/suspend",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end,
        -- shutdown the gateway
        shutdown = function()
            local http = net.HTTPClient()
            http:request("http://localhost/api/service/shutdown",{
            options={ 
                headers = {["X-Fibaro-Version"] = "2"}, 
                method="POST"
                }
            })    
        end
    }
}

function QuickApp:btnShutdown(param)
    print("Shutdown")
    fibaro.HomeCenter.SystemService.shutdown()
end

function QuickApp:btnReboot(param)
    print("Reboot")
    fibaro.HomeCenter.SystemService.reboot()
end

 

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour à toutes et tous, 

 

Un petit up sur ce sujet pour vous demander vos habitudes / conseils vis-à-vis des reboots de nos box. 

 

« A l’époque » où j’avais une HCL, je faisait un reboot chaque semaine (faut dire qu’elle n’était pas d’un grand modèle de stabilité celle-ci  :60:). Mais avec la HC3 je n’ai pas gardé cette habitude... Je me demande tout de même si ce n’est pas conseillé d’automatiser un petit reboot tous les mois ? 

 

Qu’en pensez-vous ?

Lien vers le commentaire
Partager sur d’autres sites

Je ne fais jamais de reboot, mais j'ai un script qui fait un backup automatique chaque semaine, et même si ce n'est pas un reboot au niveau de l'OS de la machine, ça redémarre quand même tous les services Fibaro (serveur web, moteur Z-Wave, Quickapps, Scènes, etc...).

Du coup l'effet est le même.

Ce n'est pas tant le redémarrage qui m'intéresse, mais la sauvegarde régulière... mais au final ça fait d'une pierre 2 coups :)

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Dites donc, ça fonctionne encore chez vous les shutdown reboot et suspend ?

Là je suis en version 5.050.13 et aucune ne fonctionne, même en faisant la requête http sur localhost, ou en passant par api.post()


En passant par api.post() j'obtiens le code 501 qui équivant à "Not implemented".

En passant par http:request() j'obtiens le message d'erreur "End of file"

 

Il faut impérativement ajouter l'authentification de type Basic dans les Headers pour que ça fonctionne, ce qui est bien pénible, car je n'ai pas du tout envie de stocker mes identifiants en clair dans mes scripts LUA.

 

Modifié par Lazer
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...