Page 1 sur 2

[RESOLU] Récupérer les données d'un dimmer

Publié : 26 oct. 2018, 11:19
par fking
Bonjour,

Je cherche à récupérer les données d'un dimmer, et surtout la couleur choisie. A chaque changement, il émet (log) :

2018-10-26 11:02:05.040 Status: setcolbrightnessvalue: ID: 1, bri: 23, color: '{m: 3, RGB: ff1937, CWWW: 0000, CT: 0}'

J'ai réussi via un script à récupérer la luminosité via un

luminosite = otherdevices_svalues[MonDimmer];

Mais je ne sais pas comment faire pour le paramètre setcolbrightnessvalue

Merci de votre aide !

Re: Récupérer les données d'un dimmer

Publié : 29 oct. 2018, 08:36
par fking
Up !
Personne ne sait ?

Re: Récupérer les données d'un dimmer

Publié : 29 oct. 2018, 09:00
par jackslayter
avec ça

Code : Tout sélectionner

commandArray = {}
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
local config=assert(io.popen('/usr/bin/curl -m 5 http://192.168.1.1/json.htm?type=devices&rid=IDXDUDEVICE'))
local blocjson = config:read('*all')
config:close()
-- print (blocjson)
local jsonValeur = json:decode(blocjson)
Ncode = jsonValeur.Sensors[1].setcolbrightnessvalue
print(Ncode)
return commandArray
si ça ne marche pas enlève les "--" de la ligne "-- print (blocjson)"
et donne nous le résultat

Re: Récupérer les données d'un dimmer

Publié : 30 oct. 2018, 10:08
par fking
Bonjour,
D'abord merci pour ta réponse !
Je viens de tester le script, de base il génère une erreur :

2018-10-30 09:42:39.514 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_interRGB.lua: /home/pi/domoticz/scripts/lua/script_device_interRGB.lua:8: attempt to index local 'jsonValeur' (a nil value)

J'ai réussi à trouver ce que c'était, il faut ajouter le port dans la requête, donc :

http://192.168.1.101:8080/json.htm?type=devices&rid=4

Je récupère un tas de d'infos dans le log, mais le script génère toujours une erreur :

2018-10-30 09:57:42.703 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_interRGB.lua: /home/pi/domoticz/scripts/lua/script_device_interRGB.lua:8: attempt to index field 'Sensors' (a nil value)

Si je comprends bien, le champ Sensors pose problème. J'ai recherché dans les données issues de la requête, il n'y a pas de 'Sensors'

Voila ce que je récupère dans le log après un changement de couleur :

Code : Tout sélectionner

 2018-10-30 09:57:42.427 (DIMMER) Color Switch (INTERRGB)
2018-10-30 09:57:42.392 Status: setcolbrightnessvalue: ID: 4, bri: 6, color: '{m: 3, RGB: ff4137, CWWW: 0000, CT: 0}'
2018-10-30 09:57:42.664 Status: LUA: {
2018-10-30 09:57:42.664 "ActTime" : 1540889862,
2018-10-30 09:57:42.664 "AstrTwilightEnd" : "19:06",
2018-10-30 09:57:42.664 "AstrTwilightStart" : "05:33",
2018-10-30 09:57:42.664 "CivTwilightEnd" : "17:52",
2018-10-30 09:57:42.664 "CivTwilightStart" : "06:46",
2018-10-30 09:57:42.664 "DayLength" : "10:00",
2018-10-30 09:57:42.664 "NautTwilightEnd" : "18:29",
2018-10-30 09:57:42.664 "NautTwilightStart" : "06:09",
2018-10-30 09:57:42.664 "ServerTime" : "2018-10-30 09:57:42",
2018-10-30 09:57:42.664 "SunAtSouth" : "12:05",
2018-10-30 09:57:42.664 "Sunrise" : "07:19",
2018-10-30 09:57:42.664 "Sunset" : "17:20",
2018-10-30 09:57:42.664 "app_version" : "4.9700",
2018-10-30 09:57:42.664 "result" : [
2018-10-30 09:57:42.664 {
2018-10-30 09:57:42.664 "AddjMulti" : 1.0,
2018-10-30 09:57:42.664 "AddjMulti2" : 1.0,
2018-10-30 09:57:42.664 "AddjValue" : 0.0,
2018-10-30 09:57:42.664 "AddjValue2" : 0.0,
2018-10-30 09:57:42.664 "BatteryLevel" : 255,
2018-10-30 09:57:42.664 "Color" : "",
2018-10-30 09:57:42.664 "CustomImage" : 0,
2018-10-30 09:57:42.664 "Data" : "Set Level",
2018-10-30 09:57:42.664 "Description" : "",
2018-10-30 09:57:42.664 "DimmerType" : "abs",
2018-10-30 09:57:42.664 "Favorite" : 1,
2018-10-30 09:57:42.664 "HardwareID" : 2,
2018-10-30 09:57:42.664 "HardwareName" : "DIMMER",
2018-10-30 09:57:42.664 "HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
2018-10-30 09:57:42.664 "HardwareTypeVal" : 15,
2018-10-30 09:57:42.664 "HaveDimmer" : true,
2018-10-30 09:57:42.664 "HaveGroupCmd" : false,
2018-10-30 09:57:42.664 "HaveTimeout" : false,
2018-10-30 09:57:42.664 "ID" : "00082001",
2018-10-30 09:57:42.664 "Image" : "Light",
2018-10-30 09:57:42.664 "IsSubDevice" : false,
2018-10-30 09:57:42.664 "LastUpdate" : "2018-10-29 10:47:19",
2018-10-30 09:57:42.664 "Level" : 100,
2018-10-30 09:57:42.664 "LevelInt" : 100,
2018-10-30 09:57:42.664 "MaxDimLevel" : 100,
2018-10-30 09:57:42.664 "Name" : "DIM_R",
2018-10-30 09:57:42.664 "Notifications" : "false",
2018-10-30 09:57:42.664 "PlanID" : "0",
2018-10-30 09:57:42.664 "PlanIDs" : [ 0 ],
2018-10-30 09:57:42.664 "Protected" : false,
2018-10-30 09:57:42.664 "ShowNotifications" : true,
2018-10-30 09:57:42.664 "SignalLevel" : "-",
2018-10-30 09:57:42.664 "Status" : "Set Level: 100 %",
2018-10-30 09:57:42.664 "StrParam1" : "",
2018-10-30 09:57:42.664 "StrParam2" : "",
2018-10-30 09:57:42.664 "SubType" : "RGB",
2018-10-30 09:57:42.664 "SwitchType" : "Dimmer",
2018-10-30 09:57:42.664 "SwitchTypeVal" : 7,
2018-10-30 09:57:42.664 "Timers" : "false",
2018-10-30 09:57:42.664 "Type" : "Color Switch",
2018-10-30 09:57:42.664 "TypeImg" : "dimmer",
2018-10-30 09:57:42.664 "Unit" : 1,
2018-10-30 09:57:42.664 "Used" : 1,
2018-10-30 09:57:42.664 "UsedByCamera" : false,
2018-10-30 09:57:42.664 "XOffset" : "0",
2018-10-30 09:57:42.664 "YOffset" : "0",
2018-10-30 09:57:42.664 "idx" : "1"
2018-10-30 09:57:42.664 },
2018-10-30 09:57:42.664 {
2018-10-30 09:57:42.664 "AddjMulti" : 1.0,
2018-10-30 09:57:42.664 "AddjMulti2" : 1.0,
2018-10-30 09:57:42.664 "AddjValue" : 0.0,
2018-10-30 09:57:42.664 "AddjValue2" : 0.0,
2018-10-30 09:57:42.664 "BatteryLevel" : 255,
2018-10-30 09:57:42.664 "Color" : "",
2018-10-30 09:57:42.664 "CustomImage" : 0,
2018-10-30 09:57:42.664 "Data" : "Set Level",
2018-10-30 09:57:42.664 "Description" : "",
2018-10-30 09:57:42.664 "DimmerType" : "abs",
2018-10-30 09:57:42.664 "Favorite" : 1,
2018-10-30 09:57:42.664 "HardwareID" : 2,
2018-10-30 09:57:42.664 "HardwareName" : "DIMMER",
2018-10-30 09:57:42.664 "HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
2018-10-30 09:57:42.664 "HardwareTypeVal" : 15,
2018-10-30 09:57:42.664 "HaveDimmer" : true,
2018-10-30 09:57:42.664 "HaveGroupCmd" : false,
2018-10-30 09:57:42.664 "HaveTimeout" : false,
2018-10-30 09:57:42.664 "ID" : "00082002",
2018-10-30 09:57:42.664 "Image" : "Light",
2018-10-30 09:57:42.664 "IsSubDevice" : false,
2018-10-30 09:57:42.664 "LastUpdate" : "2018-10-29 10:47:25",
2018-10-30 09:57:42.664 "Level" : 100,
2018-10-30 09:57:42.664 "LevelInt" : 100,
2018-10-30 09:57:42.664 "MaxDimLevel" : 100,
2018-10-30 09:57:42.664 "Name" : "DIM_G",
2018-10-30 09:57:42.664 "Notifications" : "false",
2018-10-30 09:57:42.664 "PlanID" : "0",
2018-10-30 09:57:42.664 "PlanIDs" : [ 0 ],
2018-10-30 09:57:42.664 "Protected" : false,
2018-10-30 09:57:42.664 "ShowNotifications" : true,
2018-10-30 09:57:42.664 "SignalLevel" : "-",
2018-10-30 09:57:42.664 "Status" : "Set Level: 100 %",
2018-10-30 09:57:42.664 "StrParam1" : "",
2018-10-30 09:57:42.664 "StrParam2" : "",
2018-10-30 09:57:42.664 "SubType" : "RGB",
2018-10-30 09:57:42.664 "SwitchType" : "Dimmer",
2018-10-30 09:57:42.664 "SwitchTypeVal" : 7,
2018-10-30 09:57:42.664 "Timers" : "false",
2018-10-30 09:57:42.664 "Type" : "Color Switch",
2018-10-30 09:57:42.664 "TypeImg" : "dimmer",
2018-10-30 09:57:42.664 "Unit" : 1,
2018-10-30 09:57:42.664 "Used" : 1,
2018-10-30 09:57:42.664 "UsedByCamera" : false,
2018-10-30 09:57:42.664 "XOffset" : "0",
2018-10-30 09:57:42.664 "YOffset" : "0",
2018-10-30 09:57:42.664 "idx" : "2"
2018-10-30 09:57:42.664 },
2018-10-30 09:57:42.664 {
2018-10-30 09:57:42.664 "AddjMulti" : 1.0,
2018-10-30 09:57:42.664 "AddjMulti2" : 1.0,
2018-10-30 09:57:42.664 "AddjValue" : 0.0,
2018-10-30 09:57:42.664 "AddjValue2" : 0.0,
2018-10-30 09:57:42.664 "BatteryLevel" : 255,
2018-10-30 09:57:42.664 "Color" : "",
2018-10-30 09:57:42.664 "CustomImage" : 0,
2018-10-30 09:57:42.664 "Data" : "Set Level",
2018-10-30 09:57:42.664 "Description" : "",
2018-10-30 09:57:42.664 "DimmerType" : "abs",
2018-10-30 09:57:42.664 "Favorite" : 1,
2018-10-30 09:57:42.664 "HardwareID" : 2,
2018-10-30 09:57:42.664 "HardwareName" : "DIMMER",
2018-10-30 09:57:42.664 "HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
2018-10-30 09:57:42.664 "HardwareTypeVal" : 15,
2018-10-30 09:57:42.664 "HaveDimmer" : true,
2018-10-30 09:57:42.664 "HaveGroupCmd" : false,
2018-10-30 09:57:42.664 "HaveTimeout" : false,
2018-10-30 09:57:42.664 "ID" : "00082003",
2018-10-30 09:57:42.664 "Image" : "Light",
2018-10-30 09:57:42.664 "IsSubDevice" : false,
2018-10-30 09:57:42.664 "LastUpdate" : "2018-10-29 10:47:28",
2018-10-30 09:57:42.664 "Level" : 100,
2018-10-30 09:57:42.664 "LevelInt" : 100,
2018-10-30 09:57:42.664 "MaxDimLevel" : 100,
2018-10-30 09:57:42.664 "Name" : "DIM_B",
2018-10-30 09:57:42.664 "Notifications" : "false",
2018-10-30 09:57:42.664 "PlanID" : "0",
2018-10-30 09:57:42.664 "PlanIDs" : [ 0 ],
2018-10-30 09:57:42.664 "Protected" : false,
2018-10-30 09:57:42.664 "ShowNotifications" : true,
2018-10-30 09:57:42.664 "SignalLevel" : "-",
2018-10-30 09:57:42.664 "Status" : "Set Level: 100 %",
2018-10-30 09:57:42.664 "StrParam1" : "",
2018-10-30 09:57:42.664 "StrParam2" : "",
2018-10-30 09:57:42.664 "SubType" : "RGB",
2018-10-30 09:57:42.664 "SwitchType" : "Dimmer",
2018-10-30 09:57:42.664 "SwitchTypeVal" : 7,
2018-10-30 09:57:42.664 "Timers" : "false",
2018-10-30 09:57:42.664 "Type" : "Color Switch",
2018-10-30 09:57:42.664 "TypeImg" : "dimmer",
2018-10-30 09:57:42.664 "Unit" : 1,
2018-10-30 09:57:42.664 "Used" : 1,
2018-10-30 09:57:42.664 "UsedByCamera" : false,
2018-10-30 09:57:42.664 "XOffset" : "0",
2018-10-30 09:57:42.664 "YOffset" : "0",
2018-10-30 09:57:42.664 "idx" : "3"
2018-10-30 09:57:42.664 },
2018-10-30 09:57:42.664 {
2018-10-30 09:57:42.664 "AddjMulti" : 1.0,
2018-10-30 09:57:42.664 "AddjMulti2" : 1.0,
2018-10-30 09:57:42.664 "AddjValue" : 0.0,
2018-10-30 09:57:42.664 "AddjValue2" : 0.0,
2018-10-30 09:57:42.664 "BatteryLevel" : 255,
2018-10-30 09:57:42.664 "Color" : "{\"b\":55,\"cw\":0,\"g\":65,\"m\":3,\"r\":255,\"t\":0,\"ww\":0}",
2018-10-30 09:57:42.664 "CustomImage" : 0,
2018-10-30 09:57:42.664 "Data" : "Set Color",
2018-10-30 09:57:42.664 "Description" : "",
2018-10-30 09:57:42.664 "DimmerType" : "abs",
2018-10-30 09:57:42.664 "Favorite" : 1,
2018-10-30 09:57:42.664 "HardwareID" : 2,
2018-10-30 09:57:42.664 "HardwareName" : "DIMMER",
2018-10-30 09:57:42.664 "HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
2018-10-30 09:57:42.664 "HardwareTypeVal" : 15,
2018-10-30 09:57:42.664 "HaveDimmer" : true,
2018-10-30 09:57:42.664 "HaveGroupCmd" : false,
2018-10-30 09:57:42.664 "HaveTimeout" : false,
2018-10-30 09:57:42.664 "ID" : "00082004",
2018-10-30 09:57:42.664 "Image" : "Light",
2018-10-30 09:57:42.664 "IsSubDevice" : false,
2018-10-30 09:57:42.664 "LastUpdate" : "2018-10-30 09:57:42",
2018-10-30 09:57:42.664 "Level" : 6,
2018-10-30 09:57:42.664 "LevelInt" : 6,
2018-10-30 09:57:42.664 "MaxDimLevel" : 100,
2018-10-30 09:57:42.664 "Name" : "INTERRGB",
2018-10-30 09:57:42.664 "Notifications" : "false",
2018-10-30 09:57:42.664 "PlanID" : "0",
2018-10-30 09:57:42.664 "PlanIDs" : [ 0 ],
2018-10-30 09:57:42.664 "Protected" : false,
2018-10-30 09:57:42.664 "ShowNotifications" : true,
2018-10-30 09:57:42.664 "SignalLevel" : "-",
2018-10-30 09:57:42.664 "Status" : "Set Level: 6 %",
2018-10-30 09:57:42.664 "StrParam1" : "",
2018-10-30 09:57:42.664 "StrParam2" : "",
2018-10-30 09:57:42.664 "SubType" : "RGB",
2018-10-30 09:57:42.664 "SwitchType" : "Dimmer",
2018-10-30 09:57:42.664 "SwitchTypeVal" : 7,
2018-10-30 09:57:42.664 "Timers" : "false",
2018-10-30 09:57:42.664 "Type" : "Color Switch",
2018-10-30 09:57:42.664 "TypeImg" : "d
2018-10-30 09:57:42.703 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_interRGB.lua: /home/pi/domoticz/scripts/lua/script_device_interRGB.lua:8: attempt to index field 'Sensors' (a nil value) 
Désolé, mais là ça devient trop costaud pour mon petit niveau...
Merci d'avance encore une fois pour ton aide!

Re: Récupérer les données d'un dimmer

Publié : 30 oct. 2018, 10:25
par jackslayter
remplace

Code : Tout sélectionner

 Ncode = jsonValeur.Sensors[1].setcolbrightnessvalue
par

Code : Tout sélectionner

Ncode = jsonValeur.result[1].Color

Re: Récupérer les données d'un dimmer

Publié : 30 oct. 2018, 16:10
par fking
Pas mieux.

Je n'ai plus d'erreur, mais Ncode est vide

Re: Récupérer les données d'un dimmer

Publié : 31 oct. 2018, 09:47
par fking
Bon j'avance... A force d'analyser le retour du log du print(blocjson), j'ai trouvé comment afficher la chaine qui contient les valeurs RGB

il faut mettre :

Ncode = jsonValeur.result[4].Color;

Maintenant Ncode contient bien une valeur :

{"b":255,"cw":0,"g":162,"m":3,"r":91,"t":0,"ww":0}

Mon problème, c'est de décortiquer cette chaine pour récupérer les valeurs RGB. En effet, la longueur de chaine n'est pas fixe, je ne peux donc pas parser la chaine caractère après caractère pour repérer les positions.

Voila plusieurs exemples de chaines :
{"b":63,"cw":0,"g":43,"m":3,"r":255,"t":0,"ww":0}
{"b":255,"cw":0,"g":29,"m":3,"r":20,"t":0,"ww":0}
{"b":142,"cw":0,"g":230,"m":3,"r":255,"t":0,"ww":0}

Re: Récupérer les données d'un dimmer

Publié : 31 oct. 2018, 14:34
par jackslayter
pour décoder plus facilement tu peux lancer le lien

Code : Tout sélectionner

http://192.168.1.101:8080/json.htm?type=devices&rid=4
sous firefox ou autre et tu auras la réponse plus organisée ce qui permet le la lire plus facilement

bien sur que tu peux parser, regarde mon exemple :

Code : Tout sélectionner

local aparse = '{"b":255,"cw":0,"g":162,"m":3,"r":91,"t":0,"ww":0}'
aparse = aparse:gsub("%p", {['{'] = "", ['}'] = "", ['"'] = "", [':'] = ""})
print(aparse)
aparse = aparse:gsub("%a", "")
print(aparse)
val1, val2, val3, val4, val5 = aparse:match("([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),")
print(val1.." "..val2.." "..val3.." "..val4.." "..val5)
donc dans ton cas

Code : Tout sélectionner

Ncode = Ncode:gsub("%p", {['{'] = "", ['}'] = "", ['"'] = "", [':'] = ""})
print(Ncode)
Ncode = Ncode:gsub("%a", "")
print(Ncode)
val1, val2, val3, val4, val5 = Ncode:match("([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),")
print(val1.." "..val2.." "..val3.." "..val4.." "..val5)
résultat du print ->

Code : Tout sélectionner

255 0 162 3 91
qui correspond à b cw g m r

Re: Récupérer les données d'un dimmer

Publié : 02 nov. 2018, 12:27
par fking
Ca maaaarche !!!!!

T'ES UN DIEU !!!

Merci beaucoup de ton aide !!!

Re: Récupérer les données d'un dimmer

Publié : 05 nov. 2018, 08:54
par jackslayter
merci même si j'ai un peu galéré