I would like to find a way to hide or show some tiles on my dashboard based on the status of another device. E.g. I activate an activity on my harmony hub and tiles appear on my dashboard relating to volume control, etc. I recently worked out how to completely hide a tile using CSS, but can't see any way to conditionally apply this apart from changes in state for the device the tile is linked to.
My only idea is to write a custom driver to capture the status I want as well as the interaction.
Does anyone else have any ideas?
No, this is not possible. The tiles either are displayed or not. You can't use any type of logic for whether or not they are displayed. Where are you thinking you would put the logic in? There's no where available to you to insert the code.
@Ryan780 You can have different CSS for different states available for the device. My theory was to create a driver that exposed the state of another device, e.g. if another device is on or off, allowing me to hide the tile when it is off and show it when the device is on. Happy to look at alternatives.
Drivers can't access other devices. Only apps can do that. But even if you get this to work it's just going to leave a blank space where the tile was. I fail to see why a blank space would be preferable to the device itself. It's not like you're going to get the other tiles in the dashboard to adjust around the empty space.
That's true, I hadn't considered that. As a starting point I could setup some rules to maintain the status details between devices, but only to prove it can work, I wouldn't want to have to maintain them long term.
I think I will concede defeat on this for now. The only hope I could see was in js injection, but that's a bit beyond me at the moment. It sounds like there is work being done in improving the options in the dashboard UI, so I can only hope something like this makes the list. I can always link to a separate dashboard for A/V control to keep my main dashboard clean.
I have found a solution of sorts...
I have been using Tile Master by @bptworld which now allows for device control through the Maker API, i.e. flicking switches, etc. I also use the Logitech Harmony integration by @ogiewon, which is what I want display controls for conditionally on my dashboard when an activity is active. I have setup a virtual button linked to the mute function in harmony, exposing the button through Maker API. I plan to do something similar for volume control for my harmony.
Tile Master includes a command "sendTile01" taking in a string. This overrides the html generated by the app, replacing this with the string passed into the command. If this string is blank, the contents of the tile will also appear blank.
Tile Master, from what I can tell, only adjusts the display on a tile when any linked device is changed, regenerating the tile contents (html) based on the current configuration of the tile.
I have setup a test Tile Master Tile with two sections, one with the mute button accessed through the Maker API, the second section referncing the Harmony activty. The second section (activity) is formatted so it does not appear. This activity reference ensures the tile is regenerated when the activity changes on the harmony.
I have also setup an RM rule to look for no activity being active, when this is true sending a "sendTile01" command to the Tile Master tile device with an empty string.
On my dashboard, I setup the tile so that it blends into the background and only the text or controls are visible. When an activity becomes active, Tile Master regenerates the tile, causing it to appear on the dashboard. When I turn all activities off, the RM rule clears the HTML and the tile looks like it disappears. See some screenshots below, with the Mute option only appearing when I was watching ABC HD in the kitchen. Please don't be too critical of my design skills, that was not my focus for this prototype...
Not ideal, but still a solution. There are still situations where the tile will be displayed, such as making updates to the tile config in the app. I will look further at options within Tile Master and discuss any ideas with Bryan.