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

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Répondre
J.M.B
Messages : 67
Inscription : 26 déc. 2017, 15:43

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

Message 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.
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

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

Message 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)
J.M.B
Messages : 67
Inscription : 26 déc. 2017, 15:43

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

Message 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.
Dernière modification par vil1driver le 03 oct. 2019, 13:26, modifié 1 fois.
Raison : Citation inutile
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

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

Message 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.
Dernière modification par Thorgal le 03 oct. 2019, 21:12, modifié 1 fois.
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

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

Message par lmet »

Salut,
Même demande ici faite en 2016 par un de nos compatriotes, restée sans réponse :(
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

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

Message par Thorgal »

Effectivement, je viens de tester, j'ai trouvé aucune commande LUA qui a fonctionné.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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..
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
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

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

Message 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
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

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

Message 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
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

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

Message 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.
Répondre