[LUA] Statut Motion
Publié : 20 oct. 2021, 02:11
Hello,
J'avais besoin de changer certains paramètres de motion comme la sensibilité en fonction de la luminosité ou l'heure, mais je n'arrivais pas à avoir un retour correct pour vérifier l'état actuel en cas de reboot, et donc être fiable dans les scripts d'automation/events.
Et la doc lua_parser n'est pas très claire.
J'ai un truc plutôt sympa qui donne ça, qui permet de récupérer toute la conf actuelle d'une caméra motion en fonction de vos besoins, les noms de config sont dans la doc de motion :
Create HTTP/S poller
GET: http://localhost:7999/1/config/list (1 est le numéro de caméra, localhost est le hostname de là où tourne motion)
COMMAND: monscript.lua dans lua_parsers
Pour cet exemple, il faut avant créer les devices (numéros au début) en partant du poller, noise_tune est un switch, noise_level est un pourcentage.
J'avais besoin de changer certains paramètres de motion comme la sensibilité en fonction de la luminosité ou l'heure, mais je n'arrivais pas à avoir un retour correct pour vérifier l'état actuel en cas de reboot, et donc être fiable dans les scripts d'automation/events.
Et la doc lua_parser n'est pas très claire.
J'ai un truc plutôt sympa qui donne ça, qui permet de récupérer toute la conf actuelle d'une caméra motion en fonction de vos besoins, les noms de config sont dans la doc de motion :
Create HTTP/S poller
GET: http://localhost:7999/1/config/list (1 est le numéro de caméra, localhost est le hostname de là où tourne motion)
COMMAND: monscript.lua dans lua_parsers
Pour cet exemple, il faut avant créer les devices (numéros au début) en partant du poller, noise_tune est un switch, noise_level est un pourcentage.
Code : Tout sélectionner
local noise_tune = 246;
local noise_level = 247;
local function keyeqvalue(str)
local t={};
for key,value,str in str:gmatch("(%g+) = (%g*)") do
-- print('motion key', key, '=', value, "\n")
t[key] = value
end
return t
end
-- Retrieve the request content
s = request['content'];
-- Split the content into an array of values
local motionconfig = keyeqvalue(s);
domoticz_updateDevice(noise_tune,'',motionconfig['noise_tune'])
domoticz_updateDevice(noise_level,'',motionconfig['noise_level'])