Not really a complaint thread, more of a general feature request and explanation as to why I haven’t really gotten involved with SharpTools in spite of using it for quite a while.
Come to think of it, I’d have to go way back in my purchase history to find out when I actually decided to bite, but I really didn’t log into this website until very recently.
Regardless, I’m relying heavily on WebCore (as I’m sure a lot of people are), but dealing with the presence bits and Tasker make me realize that it just seems like duplicate functionality that could / should be available in SharpTools. The reasons why I don’t, in no particular order appear to be:
Lack of global variables. I know this is in the works, but they really are a game-changer. Being able to track items across rules / pistons would make the system significantly more powerful.
Item state history. Maybe I’m missing something, but from what I can see so far, the rules are limited to “device is / is not” without being able to reference recent states. So for example while I can say “if the door is open” but not “if the door has been open for x minutes”
Need more options for timers. Right now you can do “do x every day at a particular time” but that seems to be about it. I’m not sure if you’re able to say “do x every Saturday and Sunday”
Some of these are tied together of course. Some of the bigger flexibility (for me) comes from being able to daisy-chain some of these things to automate things in WebCore.
I have the “GCal Search” SmartApp installed, which checks our family calendar and sets a virtual sensor based on events – like there’s school tomorrow as an example.
I have a subscription to this device that sets a global “school day” boolean. If I put an item in the family calendar that says “no school”, the app changes the device, and the piston sets the boolean.
Then my morning routine says "if there’s school today, fire up the whole wake-up song and dance at 7:15am. If not, then delay that until 9am."
You can even see how to enhance this by saying "if it’s a school day / work day, and it’s a weekday, and it’s after a wake-up time, and the motion sensor in the bedroom hasn’t seen motion in the last 5 minutes, it’s time to start getting serious about waking people up."
Or I can snooze this whole thing with another virtual device that I can click on that sets another global variable to disable all automations – in case you’re taking a personal day or you forgot to set the calendar entry or who knows what.
Or have another timer that runs every hour and says “remember you snoozed everything this morning” if this variable is set.
Again, not a critique of the current state because it’s a solid product and serves its purpose when it comes to dashboard and some integrations, but I think it would be much better if some of these things were possible, even if they’re possible with other options already like WebCore.