IoT Potty Training

If you have not had children, stop reading now, we implore you. Because before you’ve had kids, you can’t know how supremely important it is that they take care of going to the bathroom by themselves. [David Gouldin] knows how it is. But unlike most of us, he resorted to using an Amazon IoT button and Twilio. No, we are not kidding.

The problem he was trying to solve is when his younger child would need to use the potty in the middle of the night, calling out for assistance would wake the older child. [David] said it best himself:

Behind the smiling emoji facade is an Amazon IoT button, a variant of Amazon’s dash button. When my kid presses this button, it triggers an AWS Lambda function that uses Twilio’s Python Helper Library to call my iPhone from a Twilio number. The Twilio number is stored in my contacts with “emergency bypass” turned on, so even when it’s 2am and I’m on “do not disturb” I still get the call.

The underlying tech uses Python to have Twilio make a phone call. Meanwhile, the IoT button triggers an AWS Lambda function that triggers the Twilio phone call. A lot of infrastructure for a midnight bathroom call, but it works, and that’s what counts.

Speaking of which, we were amused that [David’s] kids are already hackers, themselves. They figured out that using the button was a good way to extend bedtime. So it became standard operating procedure to not put the buttons in with the child until they were already asleep.

Apparently, a lot of people get IoT ideas while sitting on the can. Gives a whole new meaning to the word “logs” in this context.

22 thoughts on “IoT Potty Training

  1. If you don’t have a child, you most certainly have elderly relatives, to take care of, and can be used as an help/emergency button.
    If you don’t have any of the above (child or elderly), it’s still a nice “where is my phone button”.

    1. That’s what my watch does. Only in Bluetooth range admittedly, but it can set it ringing. Or alternatively set it ringing when it’s out of Bluetooth range. Or alternately set the watch ringing from the phone. Or if IT’S out of Bluetooth range.

      GT-08 watch that cost a tenner. They’re great, they are. Even got a camera! Or it’s screen can relay what my phone’s camera is looking at. One day when I feel like wasting the credit, I’ll set it up to get online with it’s own little browser. I know it can be done.

      Flipping brilliant little gadget. It doesn’t do “apps” but for the extra 200 quid difference, I can cope with that.

      Actually these watches are so common, it’s a shame nobody hacks them. Decompiling the whole thing, dumping it, even connecting to it’s teeny weeny pins, is a bit beyond my skill. It’d be great one day though to be able to add my own bits to the OS through a USB cable. I’m pretty sure it can take an OS update that way.

  2. Couldn’t you just disable the button til the kids are asleep? If they have a regular bedtime, can’t you set the Python or whatever else to check the time? Perhaps, as well, have some option to over-ride that, in case you put them to bed at a different time (if it’s a holiday or the like). That can run from the guy’s phone, or home network, or whatever.

    Overall it’s a nice idea though. In the past we’d have done it with a small radio transmitter, maybe a repurposed wireless doorbell (although they weren’t too cheap). Just an RF oscillator with a single transistor, a cap or two, and a coil. Then something similar at the receiver end, with a light or sound to gently wake up the parent whose turn it was.

    Now it uses more processing power than existed in the world way back when, 3 different kinds of computer network (2 wireless), and even the button has a CPU.

    I think either way would be equally about as good.

    1. Kids don’t always follow a solid sleep pattern. I have twins. One falls asleep shortly after his head hits the pillow. The other stays up untill he exhausts himself but he also wets the bed because he sleeps so soundly once he finally sleeps.

      Try to write a program that monitors that kind of behavior.

  3. That is very cool and I’m about to enter into the 2am toilette trip and that will no doubt disturb the upyounger ones so I know where this is at and the need for it.


    It’s a shame that technology as powerful as it is we are tied down to needing to send so much outside the home or office when it should be possible to easily select weather messages/data etc need to leave the immediate vicinity.

  4. Why is the cloud* involved at all, this would look like an ideal problem for a low data rate point-to-point RF solution. e.g.

    * a computer somewhere on the planet where there is minimal to no data protection laws (so any data collected can be archived and sold for any purposes). Although what useful data can be extracted from when small children (or elderly people) need to use the toilet is beyond me. Maybe the aggregated data and based on physical location could be extrapolated to estimate standards of living or average health for insurance companies.

  5. If you are already willing to move the button into the room when kids are already slept and this is restricted to home use, then a wireless door bell will do the same without much intermediate tech. Does the same, no external cloud access, button is as small, and really cheap.

  6. Heya!

    Thanks for the inspiration!

    I just implemented this for our sons using Dasher and IFTTT!

    Basically takes a computer running on your network, as simple as a raspberry pi, or can be a full desktop PC/Mac.

    Then install node.js:

    Then install Dasher:

    Set up the dash button like normal except don’t select a product to order.

    Then find the MAC address of your dash button using scripts/find_button to watch for the around broadcast and pushing the button, or by holding the button and connecting to the Amazon SSID and connecting to

    Then just make a config.json for Dasher in the /config directory with something like this in it:

    “address”: “55:a6:dc:4a:53:d4”,

    “url”: “”,

    “method”: “POST”


    (That’s from the example, it isn’t mine :P)

    Make sure to change the MAC address to match your dash button and the IFTTT or Stringify or whatever URL you want to trigger.

  7. If you have not had children, stop reading now, we implore you. Because before you’ve had kids, you can’t know how supremely important it is that they take care of going to the bathroom by themselves.

    That’s more than a little condescending, Al. This was otherwise a well-written, interesting article that is very much what I come here to read about. There’s no need to spoil it from the outset by telling a large group of your readers that they don’t even have any business reading what you took the time to post because they “couldn’t possibly” relate to how important it is. Why not lead with a simple, inclusive statement of, “One of the first things a new parent learns is how supremely important it is that…”?

    While often wisdom stems from experience, experience does not necessarily equate to wisdom. Not everyone is sold on the world’s path of narcissistic self-destruction, and all of us are capable of much more empathy than you’ve assumed.

    1. Well I hope most people were able to take it in the spirit it was intended as a tongue in cheek observation that only new parents sit around talking about their kids potty habits little it is no big thing.

      I’m always surprised at how quick some people have gotten to be offended over any little thing. I will tell you this. Good thing the Hackaday staff doesn’t share that trait or we would all have hypertension from the comments.

      See? More humor.

      1. Fair enough, Al. I can appreciate it in a humorous light. I suppose I was reacting because so much of our overly-political world uses it as a supposedly legitimate argument, as though we are incapable of rational thought or feeling simply because we haven’t “experienced it ourselves”. It’s idiocy, and I’m more than a little tired of being told my thoughts don’t matter because “your demographic doesn’t qualify you to have an opinion.”

        Hopefully you can appreciate my comment for it is as well; I genuinely enjoyed your piece aside from your choice of opening. Carry on the good work, and I continue to (even before this discussion) look forward to your coming articles!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.