https://github.com/projectweekend/pi-control-client-js
A Node.js client for remotely controlling a Raspberry Pi running Pi-Control-Service (https://github.com/projectweekend/Pi-Control-Service)
https://github.com/projectweekend/pi-control-client-js
Last synced: over 1 year ago
JSON representation
A Node.js client for remotely controlling a Raspberry Pi running Pi-Control-Service (https://github.com/projectweekend/Pi-Control-Service)
- Host: GitHub
- URL: https://github.com/projectweekend/pi-control-client-js
- Owner: projectweekend
- License: mit
- Created: 2015-01-29T01:01:03.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-02-04T11:46:41.000Z (over 11 years ago)
- Last Synced: 2025-03-08T21:30:48.262Z (over 1 year ago)
- Language: JavaScript
- Size: 137 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
This is a Node.js client library for remotely controlling a Raspberry Pi that is running [Pi-Control-Service](https://github.com/projectweekend/Pi-Control-Service). After following the instructions for setting up the service, you will need to reuse the same RabbitMQ connection string and device key values to start a client.
## Install it
```
npm install pi-control-client
```
## GPIO client
The GPIO client (`pi-control-client.GPIOClient`) is used to control a Raspberry Pi running the GPIO service. More information about the service can be found [here](https://github.com/projectweekend/Pi-Control-Service) in the **GPIO service** section.
### Using the GPIO client
```javascript
var GPIOClient = require( "pi-control-client" ).GPIOClient;
// The RabbitMQ connection string (must match the one used when starting the service)
var RABBIT_URL = "some_actual_connection_string";
// A unique string you make up to identify a single Raspberry Pi (must match the one used when starting the service)
var DEVICE_KEY = "my_awesome_raspberry_pi";
var pinsClient = new GPIOClient(RABBIT_URL);
# Get config for all pins
pinsClient.readConfig( DEVICE_KEY, function ( err, result ) {
if ( err ) {
// do something with error
}
// do something with result
console.log( result );
} );
# Get config for a single pin
pinsClient.readConfig( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
// do something with error
}
// do something with result
console.log( result );
} );
# Turn a pin on
pinsClient.on( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
// do something with error
}
// do something with result
console.log( result );
} );
# Turn a pin off
pinsClient.off( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
// do something with error
}
// do something with result
console.log( result );
} );
# Read a pin value
pinsClient.readValue( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
// do something with error
}
// do something with result
console.log( result );
} );
```
## Custom action client
The custom action service (`pi-control-service.CustomActionService`) is used to control a Raspberry Pi running the custom action service. More information about the service can be found [here](https://github.com/projectweekend/Pi-Control-Service) in the **Custom action service** section.
### Using the custom action client
```javascript
var CustomActionClient = require( "pi-control-client" ).CustomActionClient;
// The RabbitMQ connection string (must match the one used when starting the service)
var RABBIT_URL = "some_actual_connection_string";
// A unique string you make up to identify a single Raspberry Pi (must match the one used when starting the service)
var DEVICE_KEY = "my_awesome_raspberry_pi";
var actionsClient = new CustomActionClient( RABBIT_URL );
# Call a custom action
actionsClient.call( DEVICE_KEY, "name_of_action_method", function ( err, result ) {
if ( err ) {
// do something with error
}
// do something with result
console.log( result );
} );
```