- I don’t understand what a Windows media player app has to do with SmartThings & Locks.
- I think it’s incredibly unethical to sell software intended to strip advertisements – content creators need to be paid.
:)) Tell that to “the hopper” which is sold by a cable company!
Since you’re so happy to pay content creators please subscribe to RboyApps and pay the devs for the years of effort they are putting into it and also the months spent developing apps for SmartThings.
I personally have no intention whatsoever of paying for a project designed for video commercial skipping in order to view source for automating a door lock. (I also have to question the oddness of requiring a paid donation to a site that has the following text on the very top of their webpage: “Project Hosting for OPEN SOURCE SOFTWARE.” Since when does “open source” require a donation?)
However, if that’s how @RBoy wants to “sell” his code, that’s certainly his choice. If there are any licensing issues with it, I’m sure he’s aware of them (or will eventually learn of them) and will handle them.
On the other hand, I suspect, that most people would be more inclined to give $5 to the author directly as a show of appreciation than to pay $30 to a website that has nothing whatsoever to do with SmartThings, door locks, etc.
…just my opinion.
A $5 paypal link would be better than a $30 donation or a $15 discount donation. Did i just say there is a discount to a donation?
Seriously it sounds fishy. That being said RBoy thank you for your work on what you provided freely. I honestly would donate just for that. I may have even donated more than $10 but I don’t like donating to the site with a product that has nothing to do with smartthings.
I agree with providing support by donating to developers creating apps and code I am not able to. But the amount seems forced.
For now it was just a easiest way to get it up and going since we have a server. @korban_hadley it wasn’t meant to be fishy just a quick start from our side, I’ll take to the other devs and we’ll work on putting up a new server with a separate link. I’m sure you all realize that not only is write apps our full time job but also very time consuming. I can definitely see people putting up a single app for $5 but we don’t nickel n dime, one contribution gives you access to all apps. There are already a bunch of apps with more to come as we find more use cases.
Okay we’ve setup a dedicated server (https://smartthings.rboyapps.com) for SmartThings apps where I’m hosting all of my apps (current and future).
Check out the website to see how you can get access to it (username and password will be sent via eMail) by contributing to the program.
You can also visit our facebook page for more details:
Appreciate your feedback and thanks for your support.
You’ll receive an eMail from firstname.lastname@example.org in about 15 minutes with your login, password and server details. Please don’t forget to check your Spam folder
Improved reliability and speed of coding
Well spent $10. I’m no coder so it’s nice to be able to enjoy the fruits of your labors, especially particularly for two of the more important capabilities I was needing for my ST home, lock codes and Foscam style IP cam support. Thanks man, much appreciated.
Thanks @Spyder, appreciate your support and hope you enjoy it
Does this smart app (or could it in the future) support scheduling when codes should be active? Basically this would entail setting a date/time when the code is automatically added to the lock and another date/time when it is automatically removed from the lock?
This would be a very helpful feature for assisting with rental properties.
Not yet have thought about this - whether it should be done in the device of the app.
Natively some devices don’t support and some support scheduling. probably putting this in the smart app would be the best way forward (comptibility) but the issue with that is given the current state of the ST platform one cannot be 100% sure if the command was executed successfully.
What happens if the delete or set code didn’t execute successfully? The other thing I’m thinking about how should the UI/options look - I’m assuming this would be on a recurring basis for the multi user code mgmt app and a one time basis for the single user mgmt app, since the single user doesn’t track codes across users it makes sense to enter a one time code and put an expiration date/time on it.
Okay been experimenting with scheduling but run into a serious platform limitation. The platform only allows for 4 active schedules at a time, so once cannot “schedule” more than 4 codes at a time.
Potentially one work around is to use the state variable to track all codes (which could be as high as a 100+) and run a scheduled timer every 1 minute to check which codes needs to be deactivated or activated but not sure how stable that approach will be with the current state of the ST platform. @tgauchat you’ve had some experience with state variable arrays and schedules. Care to weigh in?
Your idea is fine in theory, but, indeed, could be unreliable in practise.
I recommend, at the very least, reduce the frequency of update checks. There’s a huge difference between 5 minutes and 1 minute in terms of the load on the system.
The most “resource friendly” option, is, in fact, provided now in the API with these methods:
runEvery5Minutes(handlerMethod) runEvery10Minutes(handlerMethod) runEvery15Minutes(handlerMethod) runEvery30Minutes(handlerMethod) runEvery1Hour(handlerMethod) runEvery3Hours(handlerMethod)
We’re talking about 4 active schedules per lock, or per instance of the smartapp, or per hub?
Really, in almost any of those cases, 4 max schedules is probably sufficient. Generally only 1 is needed at a time, with the possibility of 2 or 3 scheduled ahead of time, so I would think 4 could probably work.
Would this be lock independent, or would it depend on a feature available only in certain locks?
Thanks for your research on this, I’m very interested in investigating this further.
@tgauchat yes thanks, I saw that and one thing I noticed was it didn’t seem to have the overwrite options, so I’m assuming these can only be called once (unless I missed something). So really the app would then need to let the user know that the timing can be limited to only say within 5 minutes resolution. While it’s okay for a casual user but say if someone’s using it for their rental/office properties and they want to close access to the “office” main door, they can’t be 100% dead on time. You’re right it’s going to be a tradeoff between putting load on the cloud (imagine if a million users are using this simultaneously on the cloud - hopefully by then we’ll have the v2 hub) or trading off on the timing. BTW if one decides to use an array with the state variable (which I understand is based on JSON), how would one add a new schedule to the variable, so if using state.schedules to track the schedules, one would need to add an object that contains 2 variables (slot, datetime), essentially schedules is an array of 2 dimentional array - I don’t see any way to “add” another object to the existing array.
@gjanes, the limitation would be 4 codes per app instance. you’re right while it’s okay for most users but say with the single user app code, the user comes in and add’s a code with a schedule. Now he does it 5 times, what happens the 5th time?
If the getting around the 4 codes limitation introduces any reliability concerns, then I would certainly opt for working with the 4 limitation. In the event of creating a 5th schedule, I would assume you’d want to do the following:
- Check the termination date of all schedules, if one is found to be in the past, overwrite that schedule - perhaps with a warning or notice to the user
- If none are found in the past, perhaps notify the user that there are no free schedules remaining and do nothing.
However, if there are no reliability concerns with getting around the 4-code limitation, then obviously more is better. The more you can schedule, the further out in the calendar you can setup.
And to address the 5-minute concern, I don’t know that anything needs to more precise than 5 minutes. If I were scheduling something for an office building, then I’d probably just schedule it for 4:55 to guarantee it was disabled by 5. Otherwise, in most other scenarios that I can think of, including rentals, as long as it happens reasonably close to the set date/time for activation and set date/time for deactivation, no problem.
Briefly; there’s no reason a variable in Groovy can’t be a List of Lists of Lists …
And so I don’t think there’s any reason that
state (which is a
Map) can’t contain multi-dimensional Collections. i.e., state.x ; x=[[list1],[list2],…]
True, infact I also found this on the ST documentation: http://docs.smartthings.com/en/latest/smartapp-developers-guide/state.html
Thanks for reconfirming.
Okay added support for one time codes for the Single User Lock Mgmt app, will need time to implement Scheduling for the Multi User Lock Mgmt App.
The one time codes, essentially have an expiration date assigned to each code added. It’s optional, you can set it or not.
The code has been updated above and also available on the server.
@RBoy, thanks for your work on this feature. I have yet to play with your apps, but I’m excited about the possibilities this functionality adds. I’ll try to play with it in the next few days and let you know how it works!