Extinction d'un pc
Extinction d'un pc
bonjour je cherche a coder un lua pour eteindre mon pc à distance. J'ai quand même essayé tout seul mais évidement je galère avec lua.
Pour le moment j'ai un script (tout fait) qui me passe un switch "Pc Master" en On ou Off selon la réponse du ping. A ça je voudrait greffer une commande d'extinction du genre :
ping 192.xx.xx.xx
Si ping Ok et variable d'utilisateur = "linux" => Lancer la commande d'extinction Linux (stocker dans un script bash)
Si ping Ok et variable d'utilisateur = "dos" => Lancer la commande d'extinction Windows (stocker dans un script bash)
Sinon Ne rien faire
Mais je comprend pas comment scripter ça et impossible de me dépatouiller pas des if else if etc..
Merci pour votre aide
Pour le moment j'ai un script (tout fait) qui me passe un switch "Pc Master" en On ou Off selon la réponse du ping. A ça je voudrait greffer une commande d'extinction du genre :
ping 192.xx.xx.xx
Si ping Ok et variable d'utilisateur = "linux" => Lancer la commande d'extinction Linux (stocker dans un script bash)
Si ping Ok et variable d'utilisateur = "dos" => Lancer la commande d'extinction Windows (stocker dans un script bash)
Sinon Ne rien faire
Mais je comprend pas comment scripter ça et impossible de me dépatouiller pas des if else if etc..
Merci pour votre aide
Re: Extinction d'un pc
Appeler un script système a partir de LUA se fait via os.execute (ou io.popen pour du pipe récuperer le flux en sortie). Si tu as des scripts systèmes prêts pour faire les deux reboot (ça c'est un peu plus chaud par contre ...), les appeler de domoticz n'est pas trop compliqué.
Tu as une exemple de ping en LUA ici: https://www.domoticz.com/wiki/Event_script_examples qui s'appuie d'ailleurs sur os.execute, ton script pourrait donner un truc comme ça:
Par contre ton "besoin" m'interpelle. Pourquoi n'exécute tu pas simplement un script action (edit switch) sur le on/off ?
Pour les scripts eux-même de shutdown par contre, je te laisse jouer, pas toujours simple.
Tu as une exemple de ping en LUA ici: https://www.domoticz.com/wiki/Event_script_examples qui s'appuie d'ailleurs sur os.execute, ton script pourrait donner un truc comme ça:
Code : Tout sélectionner
ping_success=os.execute('ping -c1 xxx.xxx.xxx.xxx')
if ping_success then
variable = uservariables["..."]
if (variable == "linux") then
os.execute("... shutdown linux ...")
elseif (variable == "dos") then
os.execute("... shutdown dos ...")
elseif (variable == "MVS") then
:-) :-) :-)
end
end
Pour les scripts eux-même de shutdown par contre, je te laisse jouer, pas toujours simple.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Re: Extinction d'un pc
En fait ce besoin spécifique est du au fait que j'ai un script qui commute l’interrupteur virtuel sur on ou off si le périphérique répond au ping (du coup ne m'affiche que l’état du périphérique)
Je voulais donc y ajouter une "Action Off" pour l'extinction et par la suite une "Action On" pour l'allumage avec un os.execute wake on lan.
Ceci dit il y a peut être vraiment plus simple et d’ailleurs en continuant mes recherches hier j'ai lu que si le script lua porte le nom du switch, il en connais déjà l’état peut être une autre piste plus simple.
En tout cas merci pour ta structure et ta syntaxe car c'est vraiment avec ça que je galère --' Et ça va grandement m'aider!
Je repasse ce soir pour donner le résultat.
Je voulais donc y ajouter une "Action Off" pour l'extinction et par la suite une "Action On" pour l'allumage avec un os.execute wake on lan.
Ceci dit il y a peut être vraiment plus simple et d’ailleurs en continuant mes recherches hier j'ai lu que si le script lua porte le nom du switch, il en connais déjà l’état peut être une autre piste plus simple.
En tout cas merci pour ta structure et ta syntaxe car c'est vraiment avec ça que je galère --' Et ça va grandement m'aider!
Je repasse ce soir pour donner le résultat.
Re: Extinction d'un pc
Ca j'aizapoc a écrit :... et par la suite une "Action On" pour l'allumage avec un os.execute wake on lan....
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Re: Extinction d'un pc
Re
Alors en fait grace a toi je commence comprendre un peu comment fonctionne lua et le mécanisme de domoticz avec les script, donc j'avance mais j'ai encore une merdouille: J'ai voulue ajouter une vérification en plus du ping_succes mais la ça ne fonctionne plus :
Ma double condition ne passe pas même ecrite comme cela : if ping_success and (devicechanged['Master PC']=='Off') then
Alors en fait grace a toi je commence comprendre un peu comment fonctionne lua et le mécanisme de domoticz avec les script, donc j'avance mais j'ai encore une merdouille: J'ai voulue ajouter une vérification en plus du ping_succes mais la ça ne fonctionne plus :
Code : Tout sélectionner
script_device_PCMasterOff.lua
commandArray = {}
ping_success=os.execute('ping -c1 192.168.1.xx')
if (ping_success and devicechanged['Master PC']=='Off') then
variable = uservariables["osPcSalon"]
if (variable == "linux") then
print('coucou')
elseif (variable ~= "linux") then
print('whats up')
end
end
return commandArray
Dernière modification par zapoc le 18 janv. 2016, 23:53, modifié 2 fois.
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Extinction d'un pc
Salut,
Prends l'habitude de nommer ton script en début de script.
Ça évite de demander si tu l'as bien nommé...
En l'occurrence script_device_blabla.lua
Sinon +1 pour usage sur action On et action Off
J'ai du mal à comprendre ton usage de variable...
Ce que tu veux c'est un bouton pour allumer/éteindre ton pc avec une sorte de retour d'état (grâce au ping) ?
Prends l'habitude de nommer ton script en début de script.
Ça évite de demander si tu l'as bien nommé...
En l'occurrence script_device_blabla.lua
Sinon +1 pour usage sur action On et action Off
J'ai du mal à comprendre ton usage de variable...
Ce que tu veux c'est un bouton pour allumer/éteindre ton pc avec une sorte de retour d'état (grâce au ping) ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Extinction d'un pc
Prends l'habitude de nommer ton script en début de script.
Merci pour l'infos j'ai d'ailleur appris cette convention de nommage aujourd'hui seulement --'
C'est exactement ça, sachant que pour l'instant j'ai un script_time qui ping l'ensemble de mes périphériques et qui commute le switch correspondantCe que tu veux c'est un bouton pour allumer/éteindre ton pc avec une sorte de retour d'état (grâce au ping) ?
L'usage de variable est du au fait que j'ai un multiboot sur mon ordi et çà n'est pas la même commande d’extinction linux/windows. Donc une fois que mon script est fonctionnel j'ai 2 script à écrire pour balancer une requête JSON au démarrage du pc pour modifier la variable osPcSalon.
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Extinction d'un pc
Ahhh ok 
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Extinction d'un pc
Bon en fait comme d'habitude faute d’inattention: mon device s’appelle "PC Master" et non pas "Master PC". Une fois corrigé ça rentre dans l'ordre!
Merci merci et encore merci!
Merci merci et encore merci!
Re: Extinction d'un pc
Tu pourrais aussi pourquoi pas déterminer dans ton script shell si il s'agit d'un linux ou d'un windows: ports rdp/ssh ouverts ou pas, wmi ... ou bien tenter systématiquement les deux commandes a distance sachant que l'une d'entre elle ne fonctionnera pas. Le tout dans le script shell, ton appel domoticz devient très light et tu n'as pas de "circuiterie" a faire dans l'autre sens.zapoc a écrit :...L'usage de variable est du au fait que j'ai un multiboot sur mon ordi ...
C'est jamais une mauvaise idée en info de chercher a simplifier
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20