What is this?

ControlMyPi provides a web based service to allow simple Python scripts to be controlled from a panel over the Internet. Your Python script defines a widget layout of labels, buttons, status indicators and more for ControlMyPi to display. When a button is clicked your script will get a message. If you have some status to report, your script can send that to ControlMyPi at any time and it'll be pushed out to your web browser.

How is this funded?

You may have noticed the banner ads on the site. We're hoping that the income from ad clicks will cover the cost of the cloud hosting. There may be pay-for options in the future too, for example to remove ads. If you have any suggestions on this please contact us.

Why has this been made?

There are other sites out there that offer similar facilities but we wanted to make something super-easy for the Raspberry Pi community. A way to really quickly get a control panel online for your script with minimal code.

  • No account required with ControlMyPi, use an existing Jabber/XMPP account like a Google account or one of these public xmpp services.
  • Push technology used at both ends: control requests are pushed to your script and status updates are pushed to the control panel web page.
  • Share your panel with everyone, just your friends, or keep it to yourself.
  • No separate config files or setup required, your script defines how the control panel should look and work. Want to make a change? Just stop your script, change it and run it up again. Done.
  • No firewall changes required. With ControlMyPi only out-bound connections are made using well known Jabber/XMPP ports.
  • Supports multiple scripts on one or more Raspberry Pis for the same Jabber account.

Is this just for Raspberry Pi?

No. It's aimed at the Raspberry Pi community and the examples may include things like GPIOs specific for the Pi but it will work on anything that can run Python and XMPP.

How can I share my panel?

If you want to allow anyone to access your panel you can make it Public, read the instructions on the Docs page. Otherwise you can simply copy and paste the URL with the magic key and send it to your friends. Of course, anyone who knows your Jabber ID can find your Hidden panels so if you want to keep it to yourself choose the Private option in your script. (Private feature coming soon.)

Can I embed my panel in my own site?

Yes, just add ?embed=true to the end of the URL and put it in an iframe like so:

<iframe frameborder="0"
    height="250" width="530"

Is there a Hello World script to hack?

There are a few examples in the downloadable zip but here is an echo script in 15 lines:

import logging
from controlmypi import ControlMyPi

def on_msg(conn, key, value):
  if key == 'echobox':
    conn.update_status({'echo':'Echo: '+value})

p = [ [ ['E','echobox','send'],['S','echo','-'] ] ]
conn = ControlMyPi('jid@dom.com', 'pwd', 'tiny', 'Tiny', p, on_msg)
if conn.start_control():
    raw_input("Press Enter to finish\n")

How do I contact ControlMyPi?

Email: jerbly (-at-) controlmypi (-dot-) com. Also use the blog and twitter links.