Introducing Kalliope remote

While I still have to finish introducing the neurons I made for Kalliope, I took a bit of time since last week end to work on a side project for Kalliope: Kalliope-remote

It is a simple Single Page Apllication that leverage Kalliope API to display the list of available neurons and launch them via the web page.

kalliope remote

The idea behind this app is to be able to set it up on my raspberry pi touchscreen where Kalliope is installed so that user that don’t know available orders can look for it and even fire them without talking to Kalliope. I will also be able to use it from my phone later on as well as it can be useful in case i’m not near the mic but the audio is loud enough :)

How

Additional notes

Edit 30th of December: The PR has been validated and merged into core. Only thing needed is to configure Kalliope to allow CORS request. Here is explained how.

At the moment, the REST API of Kalliope doesn’t allow request from different origin, thus blocking the request from the JS app (even if both are the same server, as port are different). To fix this, I’ve commited this patch which add an option in the settings file to allow CORS requests.

I’m planing on adding another pull request later to add a configurable list of origin, so keep looking github ^^.

As for the integration of the PR into the main repo, it might be on standby while waiting for possible move to Django (see discussion in the pull request thread)

What it does now

Basically, when the app loads it will request the list of synapse from your Kalliope set up and will display them nicely on the page.

  • List all synapses available on your kalliope instance
  • Allow you to launch synapse that has no parameter in the order

What’s next ?

  • Managing orders with parameters inside
  • Better test coverage ^^
  • Leveraging the browser local storage to allow ignoring synapses (so you list only the one you desire)
  • Managing other type of signals (event)

It’s still early project but does already allow you some remote management :)