Thanks for the heads-up! I see the crash in Crashlytics but I'm not sure how that could happen normally. If you're able to send me a device log from the app maybe I can see what's happening. I also can't reproduce the issue either.
Device log on background color change. Also, the change doesn't take. I pick a background color for the icon. Select OK and the app closes. Same result for individual icon or all icons. Also am not able to change the theme, same result. That was previously working.
I checked in a fix for this - 1.0.317
@jpage4500, my virtual button devices don't work on the Dashboard, probably haven't all along, I just didn't test them before. It looks like the tile isn't calling the button number so it returns 'null' and the request has no button to press. The area below the orange line is sending a command from the HE device manager, the area above the orange line is from pressing a tile in the app. The device manager press triggered my rule, the tile did not.
Thanks, that fixed it for individual tiles and themes.
Adding support for Buttons is also on my TODO list. I did recently add support for sending any of the commands that a device supports which is probably how you were able to send a command to your virtual button. But, I haven't yet added support for passing arguments to any of these. That's coming and will be for generic devices that don't have a more specialized UI.
What I'd like to do with buttons is look at what commands it supports. I've seen several examples of button devices - from a single button to multiple buttons in 1 device. The sample button JSON I'm looking at has 1 button with 3 commands:
"doubleTap", "hold", "push". I can send the 'push' command if the button is pressed on the dashboard.. that would make sense. I could also handle a double-tap and send 'doubleTap' command. The hold command might be tricky though because press and hold brings up the device options today.
Anyway, that could work for a single button but for devices with more than 1 button I'd probably bring up a specialized button dialog that lets you select which button you want to send the command for.. something like this:
Where is the Cloud mode toggle? 1.0.317. I don't see it in settings. I want to use it on my Chromebook when connected to my phone hot spot or another non-local network. I can successfully connect to the maker cloud url. Will there be a a way to increase the text font size.
When you login, the app will check if MakerAPI has the cloud mode setting enabled and it'll fetch the cloud mode API key. If it has that key it'll show a 'enable cloud mode' setting (in nav drawer -> more settings). If you enable cloud mode in MakerAPI after logging in it won't show up.
Will there be a a way to increase the text font size
I'll add it to my TODO list
Maybe a triple tap can equal a hold? Or a tap/tap/hold. Just thinking out loud. Or maybe device options could only be available in edit mode. On multibuttons, perhaps the button option selection can be made saveable so it defaults to it.
Currently I have 3 physical buttons (all with just one button per device, so all would be button #1). One is a panic button that triggers a rule to turn on a couple of very loud sirens, turn on or flash some lights, and text / voice (Echo) notifications (Warning, the police are on the way" plays throughout the house). And a few virtual buttons; virtual buttons are great for running more complex rules from a dashboard, like turning off/on a whole group of lights.
Right now it looks like the virtual button would work on the Hubitat Dashboard if the button number was provided.
Do I have to start over or are you going to be able to add that toggle? If I log out and back in will I be presented with the option.
Just answered my own question the hard way. Logging out and back in wiped out all of my settings. I do now have the cloud toggle.
I did not have cloud enable when I first set up Maker. Any chance there will be a way to backup / restore the dashboard settings?
I should probably add an option to fetch the cloud API key if we didn't get it on login. That'll prevent you from having to logout if you changed this setting or need to update the cloud API key. For that matter I can can also re-fetch the MakerAPI token as well or allow you to change the IP address w/out having to logout.
@jpage4500, is it possible to individually tweek the length of time after a tile pressed before checking to see if it was successful (in cloud mode)? My Yale lock takes longer to acknowledge and I have to manually refresh. I think 5 seconds would work.
I'm curious as to know if it is necessary to automatically clear data when logging out of the app. Logging back in is like it was never previously connected.
It was originally 5 seconds but that felt like nothing happened when you clicked on a device.. so I changed it to 2.5 seconds. I can see, however, that some devices would take longer to change their state so a quick refresh wouldn't get it.
I have an idea how to make this work/look better so there's no need to refresh super fast anymore. I've wanted to tweak the logic a little so if you clicked on something the state would change locally (ie: off->on) while the command is being sent. The device would have time to process it and send back the updated state either via the websocket (local) or by refreshing the device state (cloud mode). If the command failed - the device would revert back to the actual state but if it succeeded no need to change anything.
Let me think about this one. For most apps I've worked on, logging out means resetting the app so the next login would start with a clean slate. But, I do get how the more customizations that are available the more of a pain it is to start from scratch!
Related to this -- if anyone has a color scheme that they think others would also like - send me a screenshot or 2 and I can add it as a new theme choice in the app. Right now I can customize the following for most device types: background color, icon color (or use a custom icon). Any of these can apply to the 'on' and/or 'off' states.. so, for example a light that's ON can have 1 color/icon and another one for when it's OFF.
The multi-color default color scheme isn't something I've spent much time on.. in an ideal world I think I'd use a more consistent/same color for the backgrounds and have the icons change per device type
If it were possible I'd like to be able to select a background for a group of devices. I'm trying to arrange them by physical location proximity. So, switches and bulbs in the same area of the house are the same color background.
- add support for sending button commands (push/hold/double-tap)
If you have a device with just 1 button and click the tile - it'll send the "push/1" command. If you have a device with 2+ buttons it'll display a dialog which allows you to send a "push" command, a "hold" command or a "double-tap" command to any of the buttons.
You can still send the hold or double-tap to a single button device but (currently) you'll have to open up that dialog to do it. That's because a press and hold on any device tile already opens the device options. I'll see if I can figure out a good way to support it from the main screen in a later version.
NOTE: This is another case of getting the feature implemented first and then tweaking the UI to look better later
- toggle device state right away while waiting for hub response/confirmation
- add option in logout to clear preferences
The first change will be noticeable right away when you try to toggle the state of a device (on/off, lock/unlock, etc). Before the app needed confirmation from the Hub that the device actually updated its' state. Now, I'm toggling the state right away and will revert it if the command fails for some reason. This results in a lot better user experience IMO.
It also means for cloud mode I can wait longer to get the state of a device after sending a command to it. I set it back to 5 seconds but that can be pushed back further too.
I tested on a few devices but let me know if you see any issues or the app ends up in any weird states. As usual, a device log is the best way to debug most issues.
Also, super minor change but now you can logout and keep your device preferences (sort order, colors, etc). Ideally, you wouldn't ever need to logout and log back in again so this is more of a short-term fix for things like updating your cloud API token or Hub's IP address
The lock is still not working properly in cloud mode. The tile changes state immediately, but then about 4-5 seconds changes back. But then a refresh fixes it. I think an advanced setting to allow us to adjust the state change refresh timing might be needed. I would hate to slow down state checking for all devices due to one slow one.