Page 1 sur 1

Récupérer la couleur d'un device ALERT dans un script lua

Publié : 02 oct. 2019, 13:25
par J.M.B
Bonjour à tous,
Je cherche à récupérer simplement (sans travailler sur un JSON) la couleur d'un device ALERT dans un script lua.
Quelqu'un a-t-il une solution ?
Merci.
Bonne journée.

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 03 oct. 2019, 08:52
par Thorgal
Ben d'apres la doc, le niveau d'alerte est dans nvalue du coup tu as testé tout simplement

Code : Tout sélectionner

otherdevices['ID_Device']
(0=gray, 1=green, 2=yellow, 3=orange, 4=red)

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 03 oct. 2019, 13:12
par J.M.B
Merci pour ta réponse
J'ai déjà testé. otherdevices['ID_Device'] retourne le texte affiché sur le device mais pas la couleur
Bonne journée.

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 03 oct. 2019, 18:16
par Thorgal
Ha mince ca marche a l'envers ?

Code : Tout sélectionner

otherdevices_svalues['device_id']
Si la fonction normale te donne svalue, peut etre que de demander svalue va te donner nvalue ?

Edit:
Je viens de tester, marche pas.

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 03 oct. 2019, 19:38
par lmet
Salut,
Même demande ici faite en 2016 par un de nos compatriotes, restée sans réponse :(

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 03 oct. 2019, 21:12
par Thorgal
Effectivement, je viens de tester, j'ai trouvé aucune commande LUA qui a fonctionné.

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 03 oct. 2019, 23:02
par vil1driver
Salut,

Peut-être travailler sur ce qui met à jour le device alerte pour passer l'info à un autre plus exploitable par la suite..

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 04 oct. 2019, 01:35
par lmet
Quelques lignes de code, en attendant, ce n'est pas la mer à boire.
J'imagine que tu n'en a pas besoin mais si cela peut servir :

Code : Tout sélectionner

local mon_ip    = "127.0.0.1:8080"
local alert_idx = '177'
json            = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()

function GetJSONResult(cmd)
    local f = assert(io.popen(cmd)) 
    local s = f:read('*all')
    f:close()
    jsonValue = json:decode(s)
    ret = jsonValue.result[1].Level
    return ret
end

commandArray = {}

    if (devicechanged["Test"] == 'On') then
        cmd = "curl " .. '"' .. mon_ip .. "/json.htm?type=devices&rid=" .. alert_idx .. '"'
        ret = GetJSONResult(cmd) -- (0=gray, 1=green, 2=yellow, 3=orange, 4=red)
    end

return commandArray

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 04 oct. 2019, 09:41
par boum
En fouillant un peu, on peut récupérer la couleur sans passer par du JSON. J'ai testé, ça marche.
Mais ce n'est pas documenté, donc à voir si ce sera maintenu dans le futur.

Code : Tout sélectionner

local alertDevice = 'TestAlert'
if (devicechanged_ext["idx"] == otherdevices_idx[alertDevice]) then
    local color = devicechanged_ext["nvalue"]
    print('color is ' .. color) -- 0 = gris, 4 = rouge
end
Note : si le script peut être facilement converti en dzVents, la couleur est disponible directement par domoticz.devices('TestAlert').color

Re: Récupérer la couleur d'un device ALERT dans un script lua

Publié : 04 oct. 2019, 15:23
par Thorgal
boum a écrit : 04 oct. 2019, 09:41 En fouillant un peu, on peut récupérer la couleur sans passer par du JSON. J'ai testé, ça marche.
Mais ce n'est pas documenté, donc à voir si ce sera maintenu dans le futur.
Note : si le script peut être facilement converti en dzVents, la couleur est disponible directement par domoticz.devices('TestAlert').color
Jolie trouvaille, j'ai voulu trouver des infos dessus, c'est vraiment une fonction obscure.