LogicMachine Forum
Hue Brightness feedback - Printable Version

+- LogicMachine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8)
+--- Thread: Hue Brightness feedback (/showthread.php?tid=890)

Pages: 1 2 3 4 5 6


RE: Hue Brightness feedback - MLa - 31.07.2020

(31.07.2020, 07:53)Erwin van der Zwart Wrote: Hi,

I checked and line 21 is handling the response of the function getHueLights() that is located in the user.hue, so i guess you use a older version of the user lib.

Can you try to replace your user.hue with this version? A restart might be required.


BR,

Erwin
Thank you, it's working nowSmile

BR 
Magnus


RE: Hue Brightness feedback - Sral1987 - 02.08.2020

Hi Ervin,

since i update the user.hue to V4 i get this error message every time:
Code:
Resident script:62: attempt to perform arithmetic on a nil value stack traceback:

this is my resident script:

Code:
-- Set name (Lookup in HUE app under light configuration) and feedback adresses (don't change statevalue, brivalue and colorvalue as they are used as memoryfield) addressmapping = {   -- Name                  -- On/Off FB       -- Bright FB   -- Color FB   ['Schlafzimmer'] = {state = '10/1/27', bri = '10/1/15',  rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Laura Wand Links'] = {state = '32/1/7', bri = '32/1/9', rgb = '32/1/16', statevalue = '', brivalue = '', colorvalue = ''},   ['Laura Wand Rechts'] = {state = '32/1/8', bri = '32/1/10', rgb = '', statevalue = '', brivalue = '', colorvalue = ''},   ['Küche Led'] = {state = '32/1/11', bri = '32/1/13', rgb = '10/1/5', statevalue = '', brivalue = '', colorvalue = ''},   ['Küche indirekt'] = {state = '32/1/12', bri = '10/1/3', rgb = '32/1/14', statevalue = '', brivalue = '', colorvalue = ''},   ['Esstisch'] = {state = '10/1/157', bri = '10/1/159', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Laura Zelt'] = {state = '10/1/25', bri = 'x/x/x', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Wohnzimmer Links'] = {state = '32/1/3', bri = '32/1/5', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Wohnzimmer Rechts'] = {state = '32/1/4', bri = '32/1/6', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Kinderzimmer Links'] = {state = '32/1/17', bri = '32/1/19', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Kinderzimmer Rechts'] = {state = '32/1/18', bri = '32/1/20', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Küche Theke'] = {state = '10/1/161', bri = '10/1/163', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''} } -- Set polling interval in seconds interval = 1 -- Use logging logging = true require('user.hue') require('json') -- loop indefenitly while true do   reply = getHueLights()   mylamps = json.decode(reply)   for _, item in pairs(mylamps) do     -- Check if lamp is found by bridge otherwise it make no sense to send commands     if item.state.reachable == true then       -- On/Off       name = addressmapping[item.name]       if name then         addr = addressmapping[item.name]['state']         if addr and addr ~= '' then           currentvalue = addressmapping[item.name]['statevalue']           if currentvalue ~= item.state.on then             grp.write(addr, item.state.on)             addressmapping[item.name]['statevalue'] = item.state.on             if logging == true then               log('lamp ' .. item.name .. ' state is: ' .. tostring(item.state.on))             end           end         end       end       -- Brightness       name = addressmapping[item.name]       if name then         addr = addressmapping[item.name]['bri']         if addr and addr ~= '' then           -- Check if lamp is on otherwise overrule BRI value to 0           if item.state.on == false then             item.state.bri = 0           end           currentvalue = addressmapping[item.name]['brivalue']           if currentvalue ~= item.state.bri then             grp.write(addr, math.floor((tonumber(item.state.bri)/2.55) + 0.5))             addressmapping[item.name]['brivalue'] = item.state.bri             if logging == true then               log('lamp ' .. item.name .. ' brightness is: ' .. math.floor((tonumber(item.state.bri)/2.55) + 0.5) .. ' %')             end           end         end       end       -- Color       name = addressmapping[item.name]       if name then         addr = addressmapping[item.name]['rgb']         if addr and addr ~= '' then           -- Check if lamp is on otherwise overrule color value to 0           if item.state.on == false then              colorvalue = 0           end           if item.state.colormode == 'xy' then             currentvalue = addressmapping[item.name]['colorvalue']             colorvalue = xy_to_rgb(item.state.xy[1],item.state.xy[2],item.state.bri)             --colorvalue = xyz_to_rgb((item.state.xy[1] * 100), (item.state.xy[2] * 100))             if currentvalue ~= colorvalue then               grp.write(addr, colorvalue)               addressmapping[item.name]['colorvalue'] = colorvalue               if logging == true then                 log('lamp ' .. item.name .. ' color is: ' .. colorvalue)               end             end           elseif item.state.colormode == 'ct' then             currentvalue = addressmapping[item.name]['colorvalue']             --colortemp = math.floor((item.state.ct / 0.0769) + 0.5)  --0.0769230769230769             colortemp = math.abs((item.state.ct - 500) / 2)             colortemp = math.floor(colortemp + 0.5)             colortemp = 80 + colortemp             if colortemp > 255 then               colortemp = 255             end             r = lmcore.inttohex(255, 1)             g = lmcore.inttohex(255, 1)             b = lmcore.inttohex(colortemp, 1)             rgb = r .. g .. b             colortemp = lmcore.hextoint(rgb,3)             if currentvalue ~= colortemp then               --colortempconverted = ct_to_rgb(colortemp)               grp.write(addr, colortemp)               addressmapping[item.name]['colorvalue'] = colortemp               if logging == true then                 log('lamp ' .. item.name .. ' color is: ' .. colortemp)               end             end           end         end       end           end     --log('manufacturername = ' .. item.manufacturername)     --log('swversion = ' .. item.swversion)     --log('type = ' .. item.type)     --log('ct = ' .. item.state.ct)     --log('reachable = ' .. item.state.reachable)     --log('alert = ' .. item.state.alert)     --log('on = ' .. item.state.on)       --log('bri = ' .. item.state.bri)     --log('colormode = ' .. item.state.colormode)     --log('hue = ' .. item.state.hue)     --log('sat = ' .. item.state.sat)     --log('effect = ' .. item.state.effect)     --log('x = ' .. item.state.xy[1])     --log('y = ' .. item.state.xy[2])     --log('uniqueid = ' .. item.uniqueid)     --log('modelid = ' .. item.modelid)     --log('name = ' .. item.name)   end     -- Delay loop     os.sleep(interval) end

line 62 is the grp.write, before i used your script in V3.

HW is an HL V1 running LM Firmware 202007 RC2.

BR
Lars


RE: Hue Brightness feedback - Erwin van der Zwart - 02.08.2020

Hi,

Try this: (I added a check to be sure the device supports BR, CT or XY)
Code:
-- Set name (Lookup in HUE app under light configuration) and feedback adresses (don't change statevalue, brivalue and colorvalue as they are used as memoryfield) addressmapping = {   -- Name                  -- On/Off FB       -- Bright FB   -- Color FB   ['Schlafzimmer'] = {state = '10/1/27', bri = '10/1/15',  rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Laura Wand Links'] = {state = '32/1/7', bri = '32/1/9', rgb = '32/1/16', statevalue = '', brivalue = '', colorvalue = ''},   ['Laura Wand Rechts'] = {state = '32/1/8', bri = '32/1/10', rgb = '', statevalue = '', brivalue = '', colorvalue = ''},   ['Küche Led'] = {state = '32/1/11', bri = '32/1/13', rgb = '10/1/5', statevalue = '', brivalue = '', colorvalue = ''},   ['Küche indirekt'] = {state = '32/1/12', bri = '10/1/3', rgb = '32/1/14', statevalue = '', brivalue = '', colorvalue = ''},   ['Esstisch'] = {state = '10/1/157', bri = '10/1/159', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Laura Zelt'] = {state = '10/1/25', bri = 'x/x/x', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Wohnzimmer Links'] = {state = '32/1/3', bri = '32/1/5', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Wohnzimmer Rechts'] = {state = '32/1/4', bri = '32/1/6', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Kinderzimmer Links'] = {state = '32/1/17', bri = '32/1/19', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Kinderzimmer Rechts'] = {state = '32/1/18', bri = '32/1/20', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''},   ['Küche Theke'] = {state = '10/1/161', bri = '10/1/163', rgb = 'x/x/x', statevalue = '', brivalue = '', colorvalue = ''} } -- Set polling interval in seconds interval = 1 -- Use logging logging = false -- Load needed lib's require('user.hue') require('json') -- loop indefenitly while true do   reply = getHueLights()   mylamps = json.decode(reply)   for _, item in pairs(mylamps) do     -- Check if lamp is found by bridge otherwise it make no sense to send commands     if item.state.reachable == true then       -- On/Off       name = addressmapping[item.name]       if name then         addr = addressmapping[item.name]['state']         if addr and addr ~= '' then           currentvalue = addressmapping[item.name]['statevalue']           if currentvalue ~= item.state.on then             grp.checkwrite(addr, item.state.on)             addressmapping[item.name]['statevalue'] = item.state.on             if logging == true then               log('lamp ' .. item.name .. ' state is: ' .. tostring(item.state.on))             end           end         end       end       --Brightness       if item.state.bri then         name = addressmapping[item.name]         if name then           addr = addressmapping[item.name]['bri']           if addr and addr ~= '' then             -- Check if lamp is on otherwise overrule BRI value to 0             if item.state.on == false then               item.state.bri = 0             end             currentvalue = addressmapping[item.name]['brivalue'] or 0             if currentvalue ~= item.state.bri then               grp.checkwrite(addr, math.floor((tonumber(item.state.bri)/2.55) + 0.5))               addressmapping[item.name]['brivalue'] = item.state.bri               if logging == true then                 log('lamp ' .. item.name .. ' brightness is: ' .. math.floor((tonumber(item.state.bri)/2.55) + 0.5) .. ' %')               end             end           end         end       end             --Color       if item.state.ct or item.state.xy then         name = addressmapping[item.name]         if name then           addr = addressmapping[item.name]['rgb']           if addr and addr ~= '' then             -- Check if lamp is on otherwise overrule color value to 0             if item.state.on == false then                colorvalue = 0             end             if item.state.colormode == 'xy' then               currentvalue = addressmapping[item.name]['colorvalue']               colorvalue = xy_to_rgb(item.state.xy[1],item.state.xy[2],item.state.bri)               --colorvalue = xyz_to_rgb((item.state.xy[1] * 100), (item.state.xy[2] * 100))               if currentvalue ~= colorvalue then                 grp.checkwrite(addr, colorvalue)                 addressmapping[item.name]['colorvalue'] = colorvalue                 if logging == true then                   log('lamp ' .. item.name .. ' color is: ' .. colorvalue)                 end               end             elseif item.state.colormode == 'ct' then               currentvalue = addressmapping[item.name]['colorvalue']               --colortemp = math.floor((item.state.ct / 0.0769) + 0.5)  --0.0769230769230769               colortemp = math.abs((item.state.ct - 500) / 2)               colortemp = math.floor(colortemp + 0.5)               colortemp = 80 + colortemp               if colortemp > 255 then                 colortemp = 255               end               r = lmcore.inttohex(255, 1)               g = lmcore.inttohex(255, 1)               b = lmcore.inttohex(colortemp, 1)               rgb = r .. g .. b               colortemp = lmcore.hextoint(rgb,3)               if currentvalue ~= colortemp then                 --colortempconverted = ct_to_rgb(colortemp)                 grp.checkwrite(addr, colortemp)                 addressmapping[item.name]['colorvalue'] = colortemp                 if logging == true then                   log('lamp ' .. item.name .. ' color is: ' .. colortemp)                 end               end             end           end         end       end     end   end   -- Delay loop   os.sleep(interval) end
BR,

Erwin


RE: Hue Brightness feedback - Sral1987 - 09.08.2020

Thank you Erwin. No more errors. Big Grin 

I saw in the user.hue an Line send to Group. Have you any scripts to controll an entire Hue Group ?

At the moment i control a Group that each Light has an own event based script wich is triggerd by the same tag behind the KNX Group adress.


RE: Hue Brightness feedback - Erwin van der Zwart - 10.08.2020

Hi,

Yes you can do that, in the user.hue there are already 2 functions to use for group commands, getHueGroups() and sendToGroup()

First you have to get the groups by this command:
Code:
--Get all group information require('user.hue') -- get all lights from bridge result = getHueGroups() log(result)
When you know the group ID you can control it with:
Code:
require('user.hue') value = event.getvalue() group_id = 1 -- change this ID to your actual group, see getHueGroups() result if value == true then   body_msg = '{"on":true}'   sendToGroup(group_id,body_msg) else   body_msg = '{"on":false}'   sendToGroup(group_id,body_msg) end
BR,

Erwin


RE: Hue Brightness feedback - Sral1987 - 05.09.2020

Hi Ervin,

thank you for your help. The Script for group switching works perfect. I tried the same with brigtness but had no luck. Just change the script from lampID to GroupID didn´t work.

Do you have any scripts for controlling the Brightness, RGB an CT for Group´s with Feedback ?

Is there a chance that upcomming releases of W4K Firmware have an nativ integration of Philips HUE ?

BR,

Lars


RE: Hue Brightness feedback - Erwin van der Zwart - 05.09.2020

Did you also called the function sendToGroup?

No I don’t think so, i have not seen any development in that direction, they work on speech control and new mobile app at this moment. Maybe i will start a new project to build a app for HUE this winter, but I don’t have time until November this year..

BR,

Erwin


RE: Hue Brightness feedback - Sral1987 - 05.09.2020

I Tried this with no effect

Code:
--Control HUE from byte object (brightness) (use as event based script) require('user.hue') value = event.getvalue()  -- 1 byte unsigned integer scale 0 - 100 group_id = 1 -- change this ID to your actual light, see getHueLights() result for lamps or use your app to resolve them setBrightness(group_id,value)

then i added a function in user.hue with also no luck.

Code:
function setBrightness(Group_id,brightness)   if brightness == 0 then       body_msg = '{"on":false}'       response = sendToGroup(group_id,body_msg)     return response   else     brightness = math.floor((brightness / 1) + 0.5)     brightness = math.floor((brightness * 2.54) + 0.5)     --HTTP request send     body_msg = '{"on":true,"bri":'..brightness..'}'     response = sendToGroup(Group_num,body_msg)     return response   end end



RE: Hue Brightness feedback - Erwin van der Zwart - 05.09.2020

Hi,

You have 2 mistakes in your script:
Code:
response = sendToGroup(group_id,body_msg) should be response = sendToGroup(Group_id,body_msg) and response = sendToGroup(Group_num,body_msg) should be response = sendToGroup(Group_id,body_msg)
I just tested with my latest user lib and this command and works perfect
Code:
require('user.hue') require('json') --log(json.pdecode(getHueGroups())) -- enable to check group number --setBrightnessGroup(1,100) -- Group, brightness in % setBrightnessCTGroup(1,60,2000) -- Group, brightness in %, CT in Kelvin
.lua   user.hue v5.lua (Size: 11.17 KB / Downloads: 72)

BR,

Erwin


RE: Hue Brightness feedback - Firechief - 08.11.2020

Hi Erwin,

I just configured a group and i can control the group via the group-script. However i can not get the status of this group to update.

Code:
-- Set name (Lookup in HUE app under light configuration) and feedback adresses (don't change statevalue, brivalue and colorvalue as they are used as memoryfield) addressmapping = {   -- Name                  -- On/Off FB       -- Bright FB   -- Color FB   ['Led terras'] = {state = '20/0/1', bri = '20/1/1', rgb = '20/2/1', ct = '20/3/1', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Eiland'] = {state = '20/0/2', bri = '20/1/2', rgb = '20/2/2', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Werkblad R'] = {state = '20/0/3', bri = '20/1/3', rgb = '20/2/3', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Werkblad L'] = {state = '20/0/4', bri = '20/1/4', rgb = '20/2/4', statevalue = '', brivalue = '', colorvalue = ''},   ['Douche L'] = {state = '20/0/5', bri = '20/1/5', rgb = '20/2/5', statevalue = '', brivalue = '', colorvalue = ''},   ['Douche R'] = {state = '20/0/6', bri = '20/1/6', rgb = '20/2/6', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Werkblad'] = {state = '20/0/7', bri = '20/1/7', rgb = '20/2/7', statevalue = '', brivalue = '', colorvalue = ''}, }

It's the last line in the code "Keuken Werkblad" The individual lamps "Keuken Werkblad L" & "Keuken Werkblad R" get updated in both "state", "bri" and "rgb"
Can you help me out?


RE: Hue Brightness feedback - admin - 09.11.2020

Erwin's script uses getHueLights() which does not include groups. Try this to get info for both lights and groups together (replace the relevant script part with this):
Code:
-- loop indefenitly while true do   reply = getHueLights()   mylamps = json.decode(reply)   -- get groups start   reply = getHueGroups()   groups = json.pdecode(reply)   if type(groups) == 'table' then     for k, v in pairs(groups) do       mylamps[ k ] = v     end   end   -- get groups end   for _, item in pairs(mylamps) do



RE: Hue Brightness feedback - Firechief - 09.11.2020

Dear Admin,

I've added these lines to the resident Hue script. Now none of the Hue lamp statusses are updated, neither the brightness nor the rgb. These worked before i added the lines. I do not get log's when switching lamps on or off. No error logs as well. I'm using the v5 user.hue library.



Code:
-- Set name (Lookup in HUE app under light configuration) and feedback adresses (don't change statevalue, brivalue and colorvalue as they are used as memoryfield) addressmapping = {   -- Name                  -- On/Off FB       -- Bright FB   -- Color FB   ['Led terras'] = {state = '20/0/1', bri = '20/1/1', rgb = '20/2/1', ct = '20/3/1', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Eiland'] = {state = '20/0/2', bri = '20/1/2', rgb = '20/2/2', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Werkblad R'] = {state = '20/0/3', bri = '20/1/3', rgb = '20/2/3', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Werkblad L'] = {state = '20/0/4', bri = '20/1/4', rgb = '20/2/4', statevalue = '', brivalue = '', colorvalue = ''},   ['Douche L'] = {state = '20/0/5', bri = '20/1/5', rgb = '20/2/5', statevalue = '', brivalue = '', colorvalue = ''},   ['Douche R'] = {state = '20/0/6', bri = '20/1/6', rgb = '20/2/6', statevalue = '', brivalue = '', colorvalue = ''},   ['Keuken Werkblad'] = {state = '20/0/7', bri = '20/1/7', rgb = '20/2/7', statevalue = '', brivalue = '', colorvalue = ''}, } -- Set polling interval in seconds interval = 1 -- Use logging logging = true require('user.hue') require('json') -- loop indefenitly while true do   reply = getHueLights()   mylamps = json.decode(reply)     -- get groups start   reply = getHueGroups()   groups = json.pdecode(reply)   if type(groups) == 'table' then     for k, v in pairs(groups) do       mylamps[ k ] = v     end   end   -- get groups end     for _, item in pairs(mylamps) do     -- Check if lamp is found by bridge otherwise it make no sense to send commands     if item.state.reachable == true then       -- On/Off       name = addressmapping[item.name]       if name then         addr = addressmapping[item.name]['state']         if addr and addr ~= '' then           currentvalue = addressmapping[item.name]['statevalue']           if currentvalue ~= item.state.on then             grp.update(addr, item.state.on)             addressmapping[item.name]['statevalue'] = item.state.on             if logging == true then               log('lamp ' .. item.name .. ' state is: ' .. tostring(item.state.on))             end           end         end       end       -- Brightness       name = addressmapping[item.name]       if name then         addr = addressmapping[item.name]['bri']         if addr and addr ~= '' then           -- Check if lamp is on otherwise overrule BRI value to 0           if item.state.on == false then             item.state.bri = 0           end           currentvalue = addressmapping[item.name]['brivalue']           if currentvalue ~= item.state.bri then             grp.update(addr, math.floor((tonumber(item.state.bri)/2.55) + 0.5))             addressmapping[item.name]['brivalue'] = item.state.bri             if logging == true then               log('lamp ' .. item.name .. ' brightness is: ' .. math.floor((tonumber(item.state.bri)/2.55) + 0.5) .. ' %')             end           end         end       end       -- Color       name = addressmapping[item.name]       if name then         addr = addressmapping[item.name]['rgb']         if addr and addr ~= '' then           -- Check if lamp is on otherwise overrule color value to 0           if item.state.on == false then              colorvalue = 0           end           if item.state.colormode == 'xy' then             currentvalue = addressmapping[item.name]['colorvalue']             colorvalue = xy_to_rgb(item.state.xy[1],item.state.xy[2],item.state.bri)             --colorvalue = xyz_to_rgb((item.state.xy[1] * 100), (item.state.xy[2] * 100))             if currentvalue ~= colorvalue then               grp.update(addr, colorvalue)               addressmapping[item.name]['colorvalue'] = colorvalue               if logging == true then                 log('lamp ' .. item.name .. ' color is: ' .. colorvalue)               end             end           elseif item.state.colormode == 'ct' then             currentvalue = addressmapping[item.name]['colorvalue']             --colortemp = math.floor((item.state.ct / 0.0769) + 0.5)  --0.0769230769230769             colortemp = math.abs((item.state.ct - 500) / 2)             colortemp = math.floor(colortemp + 0.5)             colortemp = 80 + colortemp             if colortemp > 255 then               colortemp = 255             end             r = lmcore.inttohex(255, 1)             g = lmcore.inttohex(255, 1)             b = lmcore.inttohex(colortemp, 1)             rgb = r .. g .. b             colortemp = lmcore.hextoint(rgb,3)             if currentvalue ~= colortemp then               --colortempconverted = ct_to_rgb(colortemp)               grp.update(addr, colortemp)               addressmapping[item.name]['colorvalue'] = colortemp               if logging == true then                 log('lamp ' .. item.name .. ' color is: ' .. colortemp)               end             end           end         end       end           end     --log('manufacturername = ' .. item.manufacturername)     --log('swversion = ' .. item.swversion)     --log('type = ' .. item.type)     --log('ct = ' .. item.state.ct)     --log('reachable = ' .. item.state.reachable)     --log('alert = ' .. item.state.alert)     --log('on = ' .. item.state.on)       --log('bri = ' .. item.state.bri)     --log('colormode = ' .. item.state.colormode)     --log('hue = ' .. item.state.hue)     --log('sat = ' .. item.state.sat)     --log('effect = ' .. item.state.effect)     --log('x = ' .. item.state.xy[1])     --log('y = ' .. item.state.xy[2])     --log('uniqueid = ' .. item.uniqueid)     --log('modelid = ' .. item.modelid)     --log('name = ' .. item.name)   end     -- Delay loop     os.sleep(interval) end


Kind regards

Can it be that there's a typo in the lines?

Code:
-- get groups start   reply = getHueGroups()   groups = json.pdecode(reply) -- ==>json.decode(reply) ???   if type(groups) == 'table' then     for k, v in pairs(groups) do       mylamps[ k ] = v     end   end   -- get groups end



RE: Hue Brightness feedback - admin - 09.11.2020

Try this (change line 31): mylamps[ #mylamps +1 ] = v
pdecode is needed for safe deciding in case there's no reply or it is malformed.


RE: Hue Brightness feedback - Firechief - 09.11.2020

Admin,

Individual lamp statusses are updated again, but still no update on the group status, brightness and rgb. Log's are also back now.


RE: Hue Brightness feedback - admin - 09.11.2020

Add log(groups) after pdecode and post what you get in Logs tab.


RE: Hue Brightness feedback - Firechief - 09.11.2020

this is the log:

Code:
* table: ["4"]   * table:    ["action"]     * table:      ["ct"]       * number: 153      ["alert"]       * string: select      ["on"]       * bool: true      ["bri"]       * number: 254      ["colormode"]       * string: xy      ["hue"]       * number: 41435      ["sat"]       * number: 77      ["effect"]       * string: none      ["xy"]       * table:        [1]         * number: 0.3129        [2]         * number: 0.3291    ["sensors"]     * table:    ["recycle"]     * bool: false    ["state"]     * table:      ["all_on"]       * bool: true      ["any_on"]       * bool: true    ["lights"]     * table:      [1]       * string: 4      [2]       * string: 3    ["class"]     * string: Kitchen    ["name"]     * string: Keuken Werkblad    ["type"]     * string: Room ["1"]   * table:    ["action"]     * table:      ["ct"]       * number: 331      ["alert"]       * string: none      ["on"]       * bool: false      ["bri"]       * number: 254      ["colormode"]       * string: xy      ["hue"]       * number: 58281      ["sat"]       * number: 142      ["effect"]       * string: none      ["xy"]       * table:        [1]         * number: 0.4359        [2]         * number: 0.2811    ["sensors"]     * table:    ["recycle"]     * bool: false    ["state"]     * table:      ["all_on"]       * bool: false      ["any_on"]       * bool: false    ["lights"]     * table:      [1]       * string: 1    ["class"]     * string: Terrace    ["name"]     * string: Tuin    ["type"]     * string: Room ["2"]   * table:    ["action"]     * table:      ["on"]       * bool: false      ["alert"]       * string: none    ["sensors"]     * table:    ["recycle"]     * bool: false    ["state"]     * table:      ["all_on"]       * bool: false      ["any_on"]       * bool: false    ["lights"]     * table:    ["class"]     * string: Bathroom    ["name"]     * string: Badkamer    ["type"]     * string: Room ["6"]   * table:    ["action"]     * table:      ["ct"]       * number: 343      ["alert"]       * string: select      ["on"]       * bool: false      ["bri"]       * number: 254      ["colormode"]       * string: xy      ["hue"]       * number: 8597      ["sat"]       * number: 121      ["effect"]       * string: none      ["xy"]       * table:        [1]         * number: 0.4452        [2]         * number: 0.4068    ["sensors"]     * table:    ["recycle"]     * bool: false    ["state"]     * table:      ["all_on"]       * bool: false      ["any_on"]       * bool: false    ["lights"]     * table:      [1]       * string: 5      [2]       * string: 6    ["class"]     * string: Bathroom    ["name"]     * string: Douche    ["type"]     * string: Room ["3"]   * table:    ["action"]     * table:      ["ct"]       * number: 156      ["alert"]       * string: select      ["on"]       * bool: true      ["bri"]       * number: 254      ["colormode"]       * string: ct      ["hue"]       * number: 41432      ["sat"]       * number: 75      ["effect"]       * string: none      ["xy"]       * table:        [1]         * number: 0.3146        [2]         * number: 0.3304    ["sensors"]     * table:    ["recycle"]     * bool: false    ["state"]     * table:      ["all_on"]       * bool: true      ["any_on"]       * bool: true    ["lights"]     * table:      [1]       * string: 2    ["class"]     * string: Kitchen    ["name"]     * string: Keuken Eiland    ["type"]     * string: Room



RE: Hue Brightness feedback - admin - 09.11.2020

Try this:
Code:
v.state = v.action mylamps[ #mylamps +1 ] = v
There's no full state response for groups, only the last sent values.


RE: Hue Brightness feedback - Firechief - 09.11.2020

No change. Group doesn't get updated


RE: Hue Brightness feedback - Sral1987 - 27.11.2020

How do you get CT state in the resident Script ??

I tried adding , ct = x/x/x , after the RGB state valeu but nothing happens.


RE: Hue Brightness feedback - admin - 30.11.2020

Try adding this to the script before -- Color:
Code:
-- color temperature       name = addressmapping[item.name]       if name and item.state.ct then         addr = addressmapping[item.name]['ct']         if addr and addr ~= '' then           newvalue = math.floor(1000000 / item.state.ct)           currentvalue = addressmapping[item.name]['ctvalue']           if currentvalue ~= newvalue then             grp.update(addr, newvalue)             addressmapping[item.name]['ctvalue'] = newvalue             if logging == true then               log('lamp ' .. item.name .. ' color temperature is: ' .. newvalue .. ' K')             end           end         end       end