Closed empierre closed 4 years ago
local delai = 15 -- pour initialiser le timer, changer la valeur si trop rapide ou lent
return {
on = {
timer = {
'every ' .. delai .. ' minutes' -- pour programmer la récurrence de la requête dans le temps
},
httpResponses = {
'trigger_normal', -- quand tout s'est bien passé jusque là
'trigger_error' -- on a déjà relancé 1 fois
}
},
execute = function(domoticz, item)
if (item.isTimer) then
domoticz.openURL({
url = 'http://192.168.1.xx:3002', -- appel de myDomoAtHome, mettre le bon IP
method = 'GET',
callback = 'trigger_normal', -- regarder httpResponses plus loin.
})
end
if (item.isHTTPResponse) then
if (item.statusCode == 200) then -- le service est opérationnel
local someValue = "MyDomoAtHome fonctionne correctement " -- prépare le texte
domoticz.log(someValue, domoticz.LOG_INFO) -- log l'info
domoticz.devices('myDomoAtHome').updateText(someValue) -- écrire le text dans le dispositif Domoticz, le nom doit correspondre au dispositif virtuel
else
local someValue_error = "MyDomoAtHome ne fonctionne pas, retour du status:" ..item.statusCode .. ", démarrage lancé (start)" -- prépare le texte
if item.trigger == 'trigger_normal' then
os.execute("echo ###### | sudo -S synoservice --start pkgctl-MyDomoAtHome") -- execute la relance du service dans SYNOLOGY
domoticz.devices('myDomoAtHome').updateText(someValue_error)
domoticz.log(someValue_error, domoticz.LOG_INFO) -- log l'info
else
os.execute("echo ###### | sudo -S synoservice --restart pkgctl-MyDomoAtHome")
someValue_error = "MyDomoAtHome ne fonctionne pas, retour du status:" ..item.statusCode .. ", redémarrage lancé (restart)" -- prépare le texte
end
-- changer le pswd par le votre, malheureusement en clair
-- on va laisser un délai pour permettre au service de redémarrer et immédiatement on va contrôler que ça fonctionne
domoticz.openURL({
url = 'http://192.168.1.xx:3002', -- appel myDomoAtHome , mettre le bon IP
method = 'GET',
callback = 'trigger_error', -- see httpResponses above.
}).afterSec(20) -- appel de la requête après 20 secondes
-- update some device in Domoticz
domoticz.devices('myDomoAtHome').updateText(someValue_error) -- écrire le text dans le dispositif Domoticz, le nom doit correspondre au dispositif virtuel
-- domoticz.log('There was a problem handling the request', domoticz.LOG_ERROR) -- log erreur
domoticz.log(item, domoticz.LOG_ERROR) -- uncomment seulement si nécessaire
end
end
end
}
https://internet-of-things.blog/en/how-to-automatically-start-openhab-on-a-diskstation/
task> Schedule tab run it every 5 minutes, the whole day, every day: user defined script chroot /var/packages/debian-chroot/target/var/chroottarget/ /root/check_if_openHAB_is_running.sh
synoservice --status pkgctl-MyDomoAtHome Service [pkgctl-MyDomoAtHome] status=[enable] required upstart job: [pkgctl-MyDomoAtHome] is start. ' =======================================
Service [pkgctl-MyDomoAtHome] status=[disable] required upstart job: [pkgctl-MyDomoAtHome] is stop. '=======================================
solution: Une proposition à tester, visiblement lancer un start n'a pas d'effet si le process tourne déjà;
Panneau de configuration > Planificateur de taches > Créer > Tache planifiée > Script défini par l'utilisateur onglet programmer > Fréquence: toutes les 5 minutes paramètre de tâches > Script: bash synoservice --start pkgctl-MyDomoAtHome
[quote=jluc2808 post_id=71613 time=1563460239 user_id=3465] bonjour ,
j'ai de manière aléatoire des arrêts de MyDomoAtHome, installé sur mon NAS synology DSM6.2.2 version 0.2.39, je n'ai pas réussit à trouvé pourquoi, mais je constate que le service est arrêté. j'utilise ce service principalement pour impérihome qui de ce fait ne répond plus (of course!!!)
[/quote]