IoT Buddy iPhone App

Apple just approved IoT Buddy, so it is available to be downloaded and used. A few notes. This first version does NOT send JSON in the body, but rather "value={yourvalue} in the message body. You can every value under the settings page. IoT Buddy will be moving to sending JSON in the next version. If you want to keep using HTTP-IN and InputPort, just don’t update. Edit - After rechecking the documentation, HTTP-IN does take JSON, so no worries.

The sliders will send a float value between your values, so you may need to deal with that in your code. Thanks to @brendandawes for introducing me to some great Objective-C libraries. I’ve got lots of ideas for IoT Buddy, and encourage feedback.

The very first version of the code is here: and I’ll be updating that repo.


@jwehr: is it already available in the app store, can’t seem to find it?


That’s a good question. My wife just said she was able to, and I can see it from the link I have to the app store, but I can’t find it in a search either…

Apparently it can take an indeterminate amount of time till the app is actually available to download… or Apple is just messing with me. :slight_smile:

This actually seems to work if you open it on your phone…

Yes, this links works fine. Thanks!

Where are the options for Switch 2? I can’t scroll down.

Tap a text field, and bring up the keyboard to scroll properly through all the options. The settings page is getting a complete overhaul in the next update.

I see it on their app store but now I have to update to the latest IOS on my IPAD.

Let me see if I understand. If we’re going to use all the buttons, switches, and sliders… We have to make sure none of the values overlap on the setup page. Each value must be unique. If the slider range overlaps an integer value we can tell it’s a slider because it’s a float?

Yes, and I don’t think you would want to overlap at all. The slider control in iOS returns a float even if you give it a large range, like 0-255. If you want get an integer, squirrel seems to convert them easily. I haven’t used a slider in any of my projects, so I am looking for feedback on how you guys are using it.

It looks like I was mistaken, and the HTTP-IN node does actually take JSON, so the next update should make working with the sliders a bit easier. Buttons and switches are pretty easy to use with whatever values you decide to assign.

Again, let me know what you guys want to do with the app, and I’ll try to make it as useable as possible. iOS has a stepper control for incrementing and decrementing values that might be useful.

It would be very usefull to have ‘a way back’ from IMP to iOS e.g. for proving some kind of status info from the IMP :">

Working on that for the next update. :slight_smile:

That will be amazing! Simple?

Well, let me clarify. it would have to be an http response to something you sent from the iPhone, either a command or just a status request. You can specify what the response string says.

Nice one!

In order to do what I think moose is asking (and do more than respond from the agent), you would need to receive a request on the agent, ask for some information from the device, and then send it back to the agent and then reply to the app. I’m looking over documentation to fully understand this. If anyone has good code examples for any of this, I’d like to look at them in order to make IoT Buddy as useful as possible.

@brendandawes Thanks! Also, thanks for the tip on formKit. I’m going to implement that in IoT Buddy, but it will also save me a lot of time on an app I am creating for work.

Maybe send a request from the iPhone every minute? User configurable time? I read something before about a HTTP request being replied to much later, only when there is a change in status. This would cut down on overhead.

Really Great stuff, fantastic work
Some improvements would be nice:
The count of buttons, sliders and switches should not be limited to 2, should be configurable
If a control I.e. a button or slider is not configured i.e. if the label is empty it should not appear at the main page
Then we have a really fantastic fully configurable remote app to control the imp


I agree, I want to make it fully customizable, maybe even some theming, backgrounds whatever…working on it as fast as my n00b iOS programming skills will allow.


Getting a response back from a command you just sent is easy enough. I think you should even be able to wait for a bit till something is verified by the imp, like the garage door is fully closed, and then respond. I’m going to test that shortly.

I’m not sure how else you could get a “status” without pinging the imp regularly, and that seems like a bad idea. Let me see if I could theorize a way that might work, and maybe @Hugo or @beardedinventor can set me straight.

If, while IoT Buddy was running, anytime it changed its network address, it pinged the agent with it. I assume you can do this, but I don’t yet know how.

The agent would store the address, or maybe the device would, and then you could do http.sendasync or whatever when the imp needed to send something.

Any know if this is doable, or a good idea?

Hi jwehr,

Cool apps, is it quite easy on your apps to have a window to display what the response is comming back from the http post, e.g “ok” or “error xxx”.

keep up the good work.