https://github.com/chrkhl/sphero-connector-ipc
A small CLI tool to run an IPC service for connecting and controlling Sphero toys via IPC messages
https://github.com/chrkhl/sphero-connector-ipc
api cli connector ipc node-ipc sphero
Last synced: 5 months ago
JSON representation
A small CLI tool to run an IPC service for connecting and controlling Sphero toys via IPC messages
- Host: GitHub
- URL: https://github.com/chrkhl/sphero-connector-ipc
- Owner: chrkhl
- License: mit
- Created: 2019-01-23T20:38:55.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T21:38:09.000Z (over 3 years ago)
- Last Synced: 2025-10-06T02:21:34.478Z (8 months ago)
- Topics: api, cli, connector, ipc, node-ipc, sphero
- Language: JavaScript
- Homepage:
- Size: 1.15 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://www.npmjs.org/package/sphero-connector-ipc)
[](https://david-dm.org/chrkhl/sphero-connector-ipc)
[](https://david-dm.org/chrkhl/sphero-connector-ipc#info=devDependencies)
[](https://travis-ci.org/chrkhl/sphero-connector-ipc)
[](https://coveralls.io/github/chrkhl/sphero-connector-ipc?branch=master)

# Sphero Connector IPC
This is a small CLI tool to run an [node-ipc](https://github.com/RIAEvangelist/node-ipc) based inter-process-communication service for connecting and controlling Sphero toys via IPC messages. It uses [Sphero Connector Core](https://github.com/chrkhl/sphero-connector-core), a tiny wrapper around the [unofficial Sphero V2 API](https://github.com/igbopie/spherov2.js) for communicating with Sphero toys.
## Getting Started
Install Sphero-Connector-IPC via [npm](https://docs.npmjs.com/cli/npm):
```bash
npm install --save sphero-connector-ipc
```
Add npm run script to your `package.json`:
```json
{
"scripts": {
"sphero-connector-ipc": "sphero-connector-ipc"
}
}
```
Add the following section to your `package.json`:
```json
{
"sphero-connector": {
"type": "ipc"
}
}
```
Finally, run `npm run sphero-connector-ipc` and sphero-connector-ipc will start an ipc service with id `sphero-ipc-server` listening for ipc messages.
## Configuration
### Service ID
By default, the ipc services started by sphero-connector-ipc is named `sphero-ipc-server`.
You can change the service id in the `sphero-connector` section of your package.json as follows:
```json
{
"sphero-connector": {
"type": "ipc",
"serviceId": "my-custom-service-id"
}
}
```
Note: valid `serviceId` values must be strings from 5 to 30 characters.
### Connect with toy on startup
To auto-connect with a Sphero toy on start, you can specify the toy type and name in your package.json.
```json
{
"sphero-connector": {
"type": "ipc",
"connectOnStart": {
"toyType": "SpheroMini",
"toyName": "SM-0815"
}
}
}
```
Valid values for `toyType` are: `SpheroMini`, `LightningMcQueen`, `R2D2`, `R2Q5`, `BB9E`.
The `toyName` option is currently only supported for `toyType: "SpheroMini"`.
### Supported IPC messages
* `connectSpheroMini`
* `connectSpheroMiniWithName` (toyName: string)
* `connectLightningMcQueen`
* `connectR2D2`
* `connectR2Q5`
* `connectBB9E`
* `wake`
* `sleep`
* `setMainLedColor` (hexColor: string)
## Example: Connect Sphero Mini and set main LED to red
``` javascript
const ipc = require('node-ipc');
const delay = require('delay');
ipc.config.id = 'my-sphero-ipc-client';
ipc.config.retry = 1500;
ipc.config.silent = true;
ipc.connectTo('sphero-ipc-server', () => {
ipc.of['sphero-ipc-server'].on('connect', async () => {
ipc.of['sphero-ipc-server'].emit('connectSpheroMini');
await delay(10000);
ipc.of['sphero-ipc-server'].emit('setMainLedColor', '#FF0000');
});
});
```
## License
Please be aware of the licenses of the components used in this project.
Everything else that has been developed by the contributions to this project is under [MIT License](LICENSE).