This is a Node.js client library for remotely controlling a Raspberry Pi that is running 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 in the GPIO service section.
Using the GPIO client
var GPIOClient = require( "pi-control-client" ).GPIOClient;
var RABBIT_URL = "some_actual_connection_string";
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 ) {
}
console.log( result );
} );
# Get config for a single pin
pinsClient.readConfig( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
}
console.log( result );
} );
# Turn a pin on
pinsClient.on( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
}
console.log( result );
} );
# Turn a pin off
pinsClient.off( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
}
console.log( result );
} );
# Read a pin value
pinsClient.readValue( DEVICE_KEY, 18, function ( err, result ) {
if ( err ) {
}
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 in the Custom action service section.
Using the custom action client
var CustomActionClient = require( "pi-control-client" ).CustomActionClient;
var RABBIT_URL = "some_actual_connection_string";
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 ) {
}
console.log( result );
} );