[BETA RELEASE] TV Timer for Parental "Smart" Control


(James) #1

EDIT : This now is possible using the TV Timer Manager App created by @Entityxenon (Thanks!) Scroll to the bottom of this thread to install it. Be sure to check out how I created a Lockable Outlet to keep the Kids from unplugging the TV by reading the rest of this post. JUMP to DOWNLOAD CLICK LINK: [BETA RELEASE] TV Timer for Parental "Smart" Control

Currently I use a product called “BOB” http://www.hopscotchtechnology.com/ to control the TV in the kids room. This device allows you to setup 6 total users with 1 master user for a total of 7 users. Here is a picture of the BOB.

I am only using this for our 4 kids and the Master User when the wife or I decide to allow what the kids call an “override” allowing the TV to run indefinitely until turned off manually.

This device has other features I don’t currently use like the ability to add time or take time away as a reward/punishment.

Currently I use it like this. I do not allow the TV to be turned on by the Older users except during the hours of 8AM to 8:15PM on Weekday Nights and for ALL Kids 8AM to 9:00PM on Weekend Nights. I also give each kid an allowance of 2 to 4 hours each per allowed day depending on whether it is summer vacation or the school year.

So basically if kid 1 puts in their pin code during the allowed times the TV will turn on and count down the usage. If they don’t use all of their time for the day in 1 sitting they can turn the BOB off and it will save the leftover time until this resets the next day. (The BOB allows this function of time reset to happen daily or weekly).

This keeps each kid from using the others time or hogging all the time for themselves. Our previous solution we had a heavy user (kid) use all the time for the day and none of the other kids got a chance to use the TV. This caused much fighting.

I went to Lowe’s today and picked up some items to build a custom “Smartthings” replacement hardware to the BOB. I will post a build list at the bottom and hopefully a picture of the finished product.

My hope is to replace the BOB with a Smartthings solution. I have been researching the Iris White Security Alarm Keypad Model #: 3405-L http://www.lowes.com/pd_690406-41277-3405-L___?productId=999925326&pl=1&Ntt=iris

It appears that Ben Lebson @blebson has modified some code written by Erik Thayer @ethayer to make the 3405-L Keypad work on Smartthings. I found this information here: CentraLite Keypads

Also I am currently using this device I built with Rule Machine created by Bruce @bravenel to turn off this outlet at certain times everyday. Possibly an integration with Rule Machine could work. Rule Machine can be found here: Rule machine - as per the app developer, this app is no longer available for new installs, distribution, or support

I would like to integrate the 3405-L or any other keypad into this replacement solution. It appears Ben has added the ability to have multiple users and as a bonus scheduled users where their codes only work a set time of day. For me this would work to control when the kids can turn on the TV.

Instead of having this Keypad triggering the 3 states of the Alarm function I would like the Keypad to trigger the TV Outlet On/Off.

The other stumbling block would be the Time Management portion of this where Smartthings could keep track of how long a particular user has used the TV.

As I stated above my particular needs are not as vast as the functionality of the BOB however I believe this could benefit the community to have the ability to mimic all of the functionality of the BOB.

Why I want to stop using the BOB and move to a Smart/Home Automation Solution is because we really want remote control functionality over the BOB.

Examples:

  1. If the kids are watching TV and an argument irrupts my wife and I would like to be able to instantly turn off the TV.
  2. If we are away from the house at work and the Younger kids finish their homework and would like to watch something we could turn the TV On to allow them to watch until their bedtime.
  3. If when report cards come out and grades are dropping we want to lockout the TV completely until further notice (on rare occasions on the weekend if we have company we may allow an override).
  4. When we transition from the School Year to Summer I would like to make changes the the parameters remotely as it’s a bit difficult to do on the BOB.
  5. When the BOB looses power it disables it from working and the clock on the BOB resets. I believe this was done to prevent tampering from the Kids. Personally I find it annoying especially if I am not here as they cannot use the TV at all until I log in as the master user and reset the clock. I would like to have control over this remotely or not have this happen at all.

I am certain there are other possible uses for this but as we expand the Smart House here we wish to get better control over the Kids TV.

I don’t know if Smartthings can perform these functions in it’s current state. It may need a special SmartApp. Because of this I would be willing to pay for help making this work. My budget isn’t limitless so any and all help is appreciated.

Even though I would be willing to pay for help I would like to submit the finished product to the community free for use.

Any and all help is appreciated.

As promised here is my build list for the hardware I have already assembled. I purchased everything from Lowe’s however I am certain you could find these at Home Depot or Menards or Amazon or whatever store you have around.

  1. http://www.lowes.com/pd_650033-1353-12721222___?Ntt=650033&UserSearch=650033&productId=50329997
  2. http://www.lowes.com/pd_690022-427-MM420W___?Ntt=690022&UserSearch=690022&productId=50411110
  3. http://www.lowes.com/pd_397721-382-7KAD___?Ntt=397721&UserSearch=397721&productId=3824335
  4. http://www.lowes.com/pd_193810-427-PSB37550WH___?productId=4005777&pl=1&Ntt=193810
  5. http://www.lowes.com/pd_575623-66906-UTDW606___?productId=50142346&pl=1&Ntt=575623

EDIT : I changed the Smart Outlet I started with above to a Smart Meter Outlet in order to detect when the TV is turned off. Thanks to @Entityxenon adding this feature to his TVTimer App he created (which you can download at the bottom of this thread).

These are the outlets I switched to:
15 Amp: http://www.amazon.com/Enerwave-ZW15RM-Resistant-Receptacle-Screwless/dp/B00SXEMD9G
20 Amp: http://www.amazon.com/gp/product/B00SXEMALM/ref=pd_lpo_sbs_dp_ss_3?pf_rd_p=1944687642&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=B00SXEMD9G&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1KV017YDFNKD8GN6RSSS

The reason I have the padlock and the locking cover is to keep the kids from being able to unplug the TV cable and plug it directly into the wall. The BOB has a cover lock that performs the same function.

This works best with Hardwired TVs or TVs with special power cables that are not readily available.

I also believe you could make one of these using a regular Smart Outlet plug and just use this box to hide the wire in. I don’t know if you will save much money doing this however if you already have the regular plugs you won’t have to reinvest. I used the GE Smart outlet so I could have one always ON outlet and one Smart Outlets built into the box.

Any and all ideas welcome. Thanks.


(Ben Lebson) #2

It is definitely possible to do within SmartThings but would require a ton of custom SmartApp work. Beyond that, it will only be as reliable as the cloud, so you’d have to keep that in mind. This would be way over my head as I’m just a casual tinkerer but I’m sure there would be someone who could make it happen, at least for some of the main points.

Also, just as a note, if you want to ‘tag’ people in a note you can add a tag by using ‘@’ and then their username; for instance @jgravert. This way the people mentioned get a notification.


(Geko) #3

Just my opinion, of course, but it seems like the same (or similar) result could be achieve with less effort using a TV that provides remote control interface. This way you could not only monitor and control power on/off, but what channel is being watched, TV volume, etc. as well.

See, for example Sony Bravia TV Integration - Discussion


(Jake) #4

So let me check, the pin pad you are using? Can this manage pins and trigger a different switch depending on the user?

If that’s the case then you would need an app for time management and to manage individual quotas per user? To build an app for quota management I expect that I could do this with my current limited experience… The time management I’m not clear on what can and can’t be done, but might be easier to magpie some code from another app perhaps. Although you could use rule machine but think you would need quite a few rules especially if you are using different time bands per user…

Let me know how the pin pad functions and I’ll take a look when I’m back home tonight…


(James) #5

I figured it would be more complicated.

Thanks for the tip on tagging. I will use that @username tag hence forth. Thanks.


(James) #6

I like the idea of the remote interface TV.

I still believe having the control over the outlet would apply to most people at this point as parents would be able to control literally anything they want to enforce time management on. Game Consoles, Computers, TVs, etc.

It would be good if these concepts if implemented would be flexible enough to include devices of the remote control type.


(James) #7

I haven’t picked up one yet. I just found it last night online.

Here is a link to a thread that has a video of it functioning. @blebson Ben modified @ethayer 's User Lock Manager to add keypad support. CentraLite Keypads

On that post shows all the functions the pad is capable of. Thanks.


(Geko) #8

I’m no so sure about computers. Turning power off would not work for a laptop, obviously. As for desktop, you probably don’t want to do that either. Some game consoles, particularly PlayStation, can also be damaged by turning their power off.


(James) #9

For a laptop you are correct this wouldn’t work. However if you controlled the Monitor for the computer this would work. I believe that is how BOB recommends it to be used with a PC.

True also for Game Consoles. We have friends who have Game Consoles all by themselves on a small TV and that is how they control them.


(Jake) #10

Cheers, so looking at that App it’s tied in to the home security… so you couldn’t use that app as the PIN management, you would need to include that in addition to quota and time period management.

Unless there is something that can already manage this then a fair bit to do to get this to work, unless you just edit the smart app you linked to remove the security aspects and add in quota management… Either way a fair bit of work required…


(James) #11

I will have to look at this closer when I get home. However I could swear I saw someone modify this to work with actions other than security.

If I find it I will post a link. Thanks.

As I stated before I am willing to pay if it’s reasonable. Anyone or a group that can help.


(Jake) #12

So have been looking at the code, thinking you could use the existing code and modify, but the key thing missing is different events for different users, now if I can workout just how to get the PIN event, then I could write the logic to check that value against the stored PINs linked to users (that bits easy if you can get the PIN) and the quota management should be pretty easy too, although not sure the extra quota logic will be easy without using dummy switches due to the user editable fields being read only to the code.

Part of the issue is that without the actual device here, testing is a little more complicated :smile:

I’ll take another look tomorrow and see if I can work it out! (Not in it for the money, just in it for the fun!)


(James) #13

I can PayPal you some money if you can buy one at Lowe’s. If you are interested in helping that is. Just let me know.

I just picked one up from Lowe’s today. It was $39.99. I just added the device. Seems to be when it’s added ST sees it as a Thing. Must be a device ID thing. Not a huge issue just had to edit the device type to Centralite Keypad. The Wireless Light on the device kept blinking until I pressed the Off and then the On button. Now it has stopped and the device showed active. See picture below of device screenshot.


(James) #14

@Entityxenon Jake, I have successfully added and configured the Iris 3405-L Keypad (CentraLite). In order to finalize the device I actually had to go into the app and click the “Configure” and “Refresh” buttons inside the app to get the paired keypad to start working with ST. (Using the custom devicetype created by @mitchp Mitch Pond)

I then used the modified User Lock Manager created by @ethayer Erik Thayer and modified by @blebson Ben Lebson to set the SHM (Smart Home Monitor) states (ArmAway/ArmStay/Disarm). Also this offers multiple Users and Passwords Which can be blocked out on certain times of the day.

Then I used Rule Machine created by @bravenel Bruce to switch the Z-Wave Switch On after SHM is set to Arm/Away (On button on the keypad) and then to switch the Z-Wave Switch Off after SHM is set to Disarm (Off button on the keypad). Also Rule Machine can block out these rules during certain days of the week and certain hours of the day.

Doing it this way is not ideal as I will eventually want the Arm/Disarm functions to only be used when I get the Security side of my smart home working.

I have also set Rule Machine to Turn this Z-Wave Switch Off at a certain hour of day when we want the TV off for the kids bedtime.

So as far as basic functionality this hardware works perfectly. This is a feasible thing to accomplish with the chosen hardware.

Of course Time Management does not exist and some other functionality the BOB offers.

This is very cool. And I want to thank all of you.


(Jake) #15

@jgravert thanks for the offer on the keypad, but I’m in the UK and our HA market is currently quite small so product selections are very limited.

Regarding the app you are using, it should be fairly easy to strip out the SHM elements and get it to trigger a switch, the issue comes when you want to manage the quotas for the users which is a bit more than swapping out a few lines of code because I don’t think the current structure supports handling of individual users in this way, will need to take a look later though at work right now. Will take a look at the device specs you posted as well as might be significantly easier just to write from scratch as long as I can work out what the device actually outputs :slight_smile: which should be simple looking at the custom device


(Jake) #16

OK I think I’ve found something I can work with in mitch’s code… I’ll see what I can pull together in the next hour…


(Jake) #17

So 9 days later of pretty much daily coding, re-coding, researching, testing, re-testing @jgravert and I have developed an app to do this…

Parent and Child app… create 2 new apps in IDE (Parent first which you should save and publish) and then the child which you should just save)

THIS IS BETA

I haven’t written a proper install or feature guide but the feature list is below, also please ignore the “TEST SWITCH” option, as will only do something if you have a user called “Jake”

Use a Centralite Keypad to turn on/off a TV or screen for multiple users:

Each user:

  • Own PIN
  • Own Quota
  • Stops quota when TV turns off
  • Stops quota if another user activates
  • Allowed time periods
  • Reset quota switch in app

Globally:

  • Single switch to turn off all users
  • Single switch to provide free usage to all users
  • Single page to view available quota

Code can be found here, any suggestions or forks to code are welcome!


(James) #18

Kudos to @Entityxenon for creating this awesome app! Thank you! :grinning:

NOTE: Scroll to the top of this thread for how I created a Padlocked Outlet to keep kids from unplugging the TV and plugging into a regular outlet.

Instructions for Installing TVTimer Manager

Install Device Types

  1. Centralite Keypad (I will post the Iris Keypad information at the end of this post)
  2. Smart Outlet with or without a built in Smart Meter (Any type that you are using to power your TV)
    Metered Outlet Recommendation will be at the bottom of this post.

Install and Configure Smart outlet

General Instructions here: https://support.smartthings.com/hc/en-us/articles/205956950-How-to-connect-and-configure-new-devices

Install Centralite Keypad
Manually from Code

For this method you will need to have one browser window open on GitHub and another on the IDE.

Follow these steps to install the Centralite Keypad:
Thanks to @mitchp Mitch Pond for creating this custom device type

  • [IDE] Click on My Device Handlers
    
  • [IDE] Click + Create New Device Handler (top right corner)
    
  • [IDE] Click the From Code Tab
    
  • [GitHub] Go to the respository for the Centralite Keypad: https://github.com/mitchpond/SmartThingsPublic/tree/indev/devicetypes/mitchpond/centralite-keypad.src
    
  • [GitHub] Click Raw
    
  • [GitHub] Select all of the text in the window (use Ctrl-A if using Windows)
    
  • [GitHub] Copy all of the selected text to the Clipboard (use Ctrl-C if using Windows)
    
  • [IDE] Click inside the text box
    
  • [IDE] Paste all of the previously copied text (use Ctrl-V if using Windows)
    
  • [IDE] Click Create
    
  • [IDE] Click Save
    
  • [IDE] Click Publish --> For Me
    

Confirgure/Pair the Iris Keypad/Centralite Keypad

General Instructions here: https://support.smartthings.com/hc/en-us/articles/205956950-How-to-connect-and-configure-new-devices

For specific Help with the Iris Keypad: CentraLite Keypads

Install the TVTimer SmartApp
(You will be installing two SmartApps a Parent/Manager App and a Child/User App)

Install Manually from Code

For this method you will need to have one browser window open on GitHub and another on the IDE.

Follow these steps to install the TVTimer Parent/Manager App:

  • [IDE] Click on SmartApps
    
  • [IDE] Click + New SmartApp (top right corner)
    
  • [IDE] Click the From Code Tab
    
  • [GitHub] Go to the respository for the TVTimer Manager SmartApp: https://github.com/jebbett/TVTimer/blob/master/TVTimer_Manager.groovy.txt
    
  • [GitHub] Click Raw
    
  • [GitHub] Select all of the text in the window (use Ctrl-A if using Windows)
    
  • [GitHub] Copy all of the selected text to the Clipboard (use Ctrl-C if using Windows)
    
  • [IDE] Click inside the text box
    
  • [IDE] Paste all of the previously copied text (use Ctrl-V if using Windows)
    
  • [IDE] Click Create
    
  • [IDE] Click Save
    
  • [IDE] Click Publish --> For Me
    
  • [IDE] Click on SmartApps Above
    
  • [IDE] Verify that the SmartApp shows up in the list and is marked with Status Published
    

Now Follow these steps to install the TVTimer Child/User App:

  • [IDE] Click on SmartApps
    
  • [IDE] Click + New SmartApp (top right corner)
    
  • [IDE] Click the From Code Tab
    
  • [GitHub] Go to the respository for the TVTimer User SmartApp: https://github.com/jebbett/TVTimer/blob/master/TVTimer_User.groovy.txt
    
  • [GitHub] Click Raw
    
  • [GitHub] Select all of the text in the window (use Ctrl-A if using Windows)
    
  • [GitHub] Copy all of the selected text to the Clipboard (use Ctrl-C if using Windows)
    
  • [IDE] Click inside the text box
    
  • [IDE] Paste all of the previously copied text (use Ctrl-V if using Windows)
    
  • [IDE] Click Create
    
  • [IDE] Click Save - NOTE: DO NOT PUBLISH
    
  • [IDE] Click on SmartApps Above
    
  • [IDE] Verify that the SmartApp shows up in the list and is marked with Status Unpublished
    

Setup the TVTimer App

Go to the Smartthings App on your phone or tablet.

  1. Select Marketplace -> SmartApps (Scroll Down to the Bottom) -> My Apps -> TVTimer Manager

  2. Select Done (You could configure from here however if you are having network issues you may not want to do this yet).

  3. Go Back to the Dashboard.

  4. Select My Home -> SmartApps -> TVTimer Manager.

  5. Scroll down to Advanced Settings and Tap

  6. Go to Keypad Input and select your keypad

  7. Go to Switch To Control and select your TV Outlet

  8. Optional: Scroll down to When This Meter and select your Metered TV Outlet

  9. Select Done

  10. Select Create New User

  11. Enter the Name, Quota Minutes and PIN Code

  12. Optional: Scroll Down and setup Allowed Times. These are windows of time that reguardless of the Users allowed time the TV Outlet will not function. Think of this as Blackout times.

  13. Select Done

  14. Wait for the App to update. The User you just created will populate on the screen above Create New User

  15. Now select Done.

Enjoy!

NOTE: Android Users there is a known bug with the Smartthings App on Android. Be sure when changing settings to ALWAYS press DONE. Do Not use the BACK button.

UPDATE: How to Use TVTimer

You can get the Iris Keypad here: http://www.lowes.com/pd_690406-41277-3405-L___?productId=999925326&pl=1&Ntt=iris

A good Smart Meter Outlet although you can use any. (2 listed below)

15 Amp: http://www.amazon.com/Enerwave-ZW15RM-Resistant-Receptacle-Screwless/dp/B00SXEMD9G
20 Amp: http://www.amazon.com/gp/product/B00SXEMALM/ref=pd_lpo_sbs_dp_ss_3?pf_rd_p=1944687642&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=B00SXEMD9G&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1KV017YDFNKD8GN6RSSS


(Jake) #19

A few updates and fixes added, added ability to see if a user is active in the app.

And also updated code to stop using the troublesome unschedule() command due to recent SmartThings issues


#20

realise this is an old thread, but is there a way to use this smartapp without having to be quite so draconian and have a keypad etc?

I’d happy just punch in a number at the beginning of the day, and have the tv turn off after that time.

Not tried this yet, but I wonder if it’s a bit overkill for my 7yr old!!