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

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 <\>.
fking
Messages : 166
Inscription : 03 nov. 2017, 10:19
Localisation : Liverdun (54)
Contact :

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

Message 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 !
Dernière modification par fking le 05 nov. 2018, 10:08, modifié 1 fois.
Fais le ou ne le fais pas , essayer ne veut rien dire.
fking
Messages : 166
Inscription : 03 nov. 2017, 10:19
Localisation : Liverdun (54)
Contact :

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

Message par fking »

Up !
Personne ne sait ?
Fais le ou ne le fais pas , essayer ne veut rien dire.
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

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

Message 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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
fking
Messages : 166
Inscription : 03 nov. 2017, 10:19
Localisation : Liverdun (54)
Contact :

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

Message 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!
Fais le ou ne le fais pas , essayer ne veut rien dire.
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

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

Message par jackslayter »

remplace

Code : Tout sélectionner

 Ncode = jsonValeur.Sensors[1].setcolbrightnessvalue
par

Code : Tout sélectionner

Ncode = jsonValeur.result[1].Color
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
fking
Messages : 166
Inscription : 03 nov. 2017, 10:19
Localisation : Liverdun (54)
Contact :

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

Message par fking »

Pas mieux.

Je n'ai plus d'erreur, mais Ncode est vide
Fais le ou ne le fais pas , essayer ne veut rien dire.
fking
Messages : 166
Inscription : 03 nov. 2017, 10:19
Localisation : Liverdun (54)
Contact :

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

Message 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}
Fais le ou ne le fais pas , essayer ne veut rien dire.
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

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

Message 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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
fking
Messages : 166
Inscription : 03 nov. 2017, 10:19
Localisation : Liverdun (54)
Contact :

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

Message par fking »

Ca maaaarche !!!!!

T'ES UN DIEU !!!

Merci beaucoup de ton aide !!!
Fais le ou ne le fais pas , essayer ne veut rien dire.
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

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

Message par jackslayter »

merci même si j'ai un peu galéré
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
Répondre