ALTUI : New Features Suggestions

…and while we’re at it, how about Scenes in the Misc > Tables menu showing name, last run, enable/ disable, timers, triggers … to work just like the Devices table?

v >=905

partially in v 906 , but showing triggers, timers is more complex, would take more time and one scene have many timers or triggers so are we intereseted just by the count ?

Thank you, and thank you (for both features) !! As usual, astonishingly fast service.

but showing triggers, timers is more complex, would take more time and one scene have many timers or triggers so are we intereseted just by the count ?

Yes, I should say just the count for both triggers and timers. If we want more detail, we go to the scene editor, but here we get a great overview of the system.

What about device variable watches? A count for those too? (maybe there is - I haven’t looked yet!!)

Hey amg0,
Since you’re making this even prettier (getting ready for 1.0?) and you just added the Scenes table, can you add an option for the lua in the Triggers table?

Always awesome work, thanks!

[quote=“akbooer, post:84, topic:188330”]Thank you, and thank you (for both features) !! As usual, astonishingly fast service.

but showing triggers, timers is more complex, would take more time and one scene have many timers or triggers so are we intereseted just by the count ?

Yes, I should say just the count for both triggers and timers. If we want more detail, we go to the scene editor, but here we get a great overview of the system.

What about device variable watches? A count for those too? (maybe there is - I haven’t looked yet!!)[/quote]
wip

[quote=“ilikelife, post:85, topic:188330”]Hey amg0,
Since you’re making this even prettier (getting ready for 1.0?) and you just added the Scenes table, can you add an option for the lua in the Triggers table?

Always awesome work, thanks![/quote]
wip

What he said!

Following the same lines as the “Scenes” menu, could we have an “Attributes” one, which would give a sorted list of the top-level scalar attributes of the system.

Here is an executable specification for what it might do:

-- this just gets the user_data (you have this already!)
local a,b = luup.inet.wget "http://172.16.42.14:3480/data_request?id=user_data2"
local json = require "openLuup.json"
local user_data = json.decode (b)

-- this sorts out the interesting bits (no tables, no multi-lines)
local index = {}
for a,b in pairs (user_data) do
  if type(b) ~= "table" then
    index[#index+1] = a
  end
end
table.sort (index)
for _,a in ipairs (index) do
  local b = (tostring(user_data[a])):match "%C+" or ''
  print (("%-32s %s"):format(a,b)) 
end

which for one of my systems gives this sort of thing:

AutomationDevices                0
BuildVersion                     *1.7.1248*
City_description                 Oxford
Country_description              UNITED KINGDOM
DataVersion                      949401022
DataVersion_Static               86
DeviceSync                       1447949413
Device_Num_Next                  95
KwhPrice                         0.15
LoadTime                         1447949401
Mode                             1
ModeSetting                      1:DC*;2:DC*;3:DC*;4:DC*
PK_AccessPoint                   45101161
PluginsSynced                    1
RA_Server                        vera-us-oem-relay41.mios.com
RA_Server_Back                   vera-us-oem-relay11.mios.com
Region_description               England
Scene_Num_Next                   10
ServerBackup                     1
Server_Device                    vera-us-oem-device12.mios.com
Server_Device_Alt                vera-us-oem-device11.mios.com
ShowIndividualJobs               0
StartupCode                      require "AKB_startup"
SvnVersion                       *14765*
TemperatureFormat                C
UnassignedDevices                0
Using_2G                         0
breach_delay                     30
currency                         ?
date_format                      dd/mm/yy
device_sync                      1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,23,24,25,29,30,31,33,41,42,43,44,45,46,47,49,50,51,56,63,64,68,69,71,72,81,82,83,84,90,91,93,94
energy_dev_log                   41,
firmware_version                 1
gmt_offset                       0
ir                               0
latitude                         51.0
local_udn                        uuid:4d494342-5342-5645-0000-000002b03069
longitude                        -1.0
mode_change_delay                30
mode_change_mode                 
mode_change_time                 
model                            Sercomm NA301
net_pnp                          0
setup_wizard_finished            1
shouldHelpOverlayBeHidden        true
skin                             mios
sync_kit                         0000-00-00 00:00:00
timeFormat                       24hr
timezone                         0
zwave_heal                       1446623139

This is really useful data for a developer and interested user, and along with Devices and Scenes gives a pretty complete overview of the system configuration.

[quote=“akbooer, post:89, topic:188330”]Following the same lines as the “Scenes” menu, could we have an “Attributes” one, which would give a sorted list of the top-level scalar attributes of the system.

Here is an executable specification for what it might do:

-- this just gets the user_data (you have this already!)
local a,b = luup.inet.wget "http://172.16.42.14:3480/data_request?id=user_data2"
local json = require "openLuup.json"
local user_data = json.decode (b)

-- this sorts out the interesting bits (no tables, no multi-lines)
local index = {}
for a,b in pairs (user_data) do
  if type(b) ~= "table" then
    index[#index+1] = a
  end
end
table.sort (index)
for _,a in ipairs (index) do
  local b = (tostring(user_data[a])):match "%C+" or ''
  print (("%-32s %s"):format(a,b)) 
end

which for one of my systems gives this sort of thing:

AutomationDevices                0
BuildVersion                     *1.7.1248*
City_description                 Oxford
Country_description              UNITED KINGDOM
DataVersion                      949401022
DataVersion_Static               86
DeviceSync                       1447949413
Device_Num_Next                  95
KwhPrice                         0.15
LoadTime                         1447949401
Mode                             1
ModeSetting                      1:DC*;2:DC*;3:DC*;4:DC*
PK_AccessPoint                   45101161
PluginsSynced                    1
RA_Server                        vera-us-oem-relay41.mios.com
RA_Server_Back                   vera-us-oem-relay11.mios.com
Region_description               England
Scene_Num_Next                   10
ServerBackup                     1
Server_Device                    vera-us-oem-device12.mios.com
Server_Device_Alt                vera-us-oem-device11.mios.com
ShowIndividualJobs               0
StartupCode                      require "AKB_startup"
SvnVersion                       *14765*
TemperatureFormat                C
UnassignedDevices                0
Using_2G                         0
breach_delay                     30
currency                         ?
date_format                      dd/mm/yy
device_sync                      1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,23,24,25,29,30,31,33,41,42,43,44,45,46,47,49,50,51,56,63,64,68,69,71,72,81,82,83,84,90,91,93,94
energy_dev_log                   41,
firmware_version                 1
gmt_offset                       0
ir                               0
latitude                         51.0
local_udn                        uuid:4d494342-5342-5645-0000-000002b03069
longitude                        -1.0
mode_change_delay                30
mode_change_mode                 
mode_change_time                 
model                            Sercomm NA301
net_pnp                          0
setup_wizard_finished            1
shouldHelpOverlayBeHidden        true
skin                             mios
sync_kit                         0000-00-00 00:00:00
timeFormat                       24hr
timezone                         0
zwave_heal                       1446623139

This is really useful data for a developer and interested user, and along with Devices and Scenes gives a pretty complete overview of the system configuration.[/quote]
in v930

amg0, I love the new buttons.

I never like to nitpick but when you have time could you simply match the padding between the devices to the padding between Rooms, Category, Filter from the screenshot?

I’m sure you have better things to do so no rush please, and thank you if you can.

I don’t know how others would feel about this, but when I am in Devices, looking at a particular room, and then click Scenes, I would prefer by default to display the scenes from the same room, vs the room the scenes were last viewed in, possibly days earlier.

A very small thing. Something to ponder.

Could device variable watches be included in the Triggers table and also a count of them per scene on the Scene table?

Graph option extension

The graph option for variables to push to Thingspeak is a great innovation, but a bit restrictive. It would be fantastic to be able to extend this to other servers (such as syslog, SQL, DataYours, …)

It seems to me that a simple and flexible way to accomplish this would be to allow an AltUI configuration variable which specifies a user-defined alternative (global function name) to the watch variable routine. It would be called with exactly the same parameters as a normal Luup watch callback, but it could be defined to do anything you like. There might, perhaps, also be a way to register an alternative form to the Thingspeak configuration panel which pops up when the graph button is pressed, to allow further user-defined configuration on a per-variable basis.

Third-party developers could then provide ‘plugin’ callback routines, which can simply be run in Lua Startup, to handle their favourite databases.

As well as this, it would be nice anyway to have a More > Tables > Archived variables list, which shows which devices/services/variables have this data archiving facility enabled. It’s otherwise a very long hunt through all the devices.

More → Tables …

Can the local data remember the number of rows to display for a given view in addition to remembering the columns to display? I find myself changing from 10 rows to all rows, all the time.

Cheerz!

@dklinkman

when I am in Devices, looking at a particular room, and then click Scene
I’m with you on this one, plus when I go into scene edit I would like to see the Room pull down list already defaulted to the current room.

@akbooer Like the suggestion about expanding the watch process to other servers. I have been playing around with PVOutput.org. At a minimum you need the current time (easy enough), a power and an energy variable to watch, plus an APIkey and Solar SystemID. Plus some other stuff that would be hard coded such as the URL. Seems it could be made to work.

[quote=“dklinkman, post:95, topic:188330”]More → Tables …

Can the local data remember the number of rows to display for a given view in addition to remembering the columns to display? I find myself changing from 10 rows to all rows, all the time.

Cheerz![/quote]
unfortunately it seem bootgrid does not support this easily

in v949

[quote=“dklinkman, post:92, topic:188330”]I don’t know how others would feel about this, but when I am in Devices, looking at a particular room, and then click Scenes, I would prefer by default to display the scenes from the same room, vs the room the scenes were last viewed in, possibly days earlier.

A very small thing. Something to ponder.[/quote]
in v949

[quote=“amg0, post:97, topic:188330”][quote=“dklinkman, post:95, topic:188330”]More → Tables …

Can the local data remember the number of rows to display for a given view in addition to remembering the columns to display? I find myself changing from 10 rows to all rows, all the time.

Cheerz![/quote]
unfortunately it seem bootgrid does not support this easily[/quote]
What might be possible is a settable option to “Always display all table rows” (which is really what I am thinking of), and then based on that initialize bootgrid with rowCount = -1, or rowCount = [to the array]. In the former case it appears the row select dropdown will be absent which is a slight downside.