1.8.6 • Published 8 years ago

node-flower-bridge v1.8.6

Weekly downloads
4
License
ISC
Repository
github
Last release
8 years ago

Bridge node-flower-bridge Work

Version node Issues Forum

Get your access API

  • username password * Make sure you have an account created by your smartphone. You should be see your garden: myflowerpower.parrot.com.
  • client_id client_secret Sign up to API here, and got by email your Access ID (client_id) and your Access secret* (client_secret).

How to install

This program works with any BLE-equipped/BLE-dongle-equipped computers as well. To install it on your raspberry is really easy. You require Node (with npm) and BLE libraries.

First, you need a raspberry with a USB BLE dongle. This raspberry must be up and running. Then you need to install some required tools on your raspberry.

Step 1: NodeJs

First, nodejs needs to be installed, proceed as following:

$ wget http://node-arm.herokuapp.com/node_latest_armhf.deb
$ sudo dpkg -i node_latest_armhf.deb

Then do a node --version to check if it worked.

Step 2: BLE libraries

Then we need to install the BLE libraries:

$ sudo apt-get install libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libical-dev libreadline-dev libudev-dev libusb-dev glib2.0 bluetooth bluez libbluetooth-dev

The command hciconfig will be show your dongle (hci0):

$ sudo hciconfig hci0 up

You should be able to discover peripheral around you. To check it, do sudo hcitool lescan and if it shows you a list of surrounding BLE devices – or at least your Flower Power -- it works fine. If not, do sudo apt-get install bluez and try again.

Step 3: Build the brigde

Now Nodejs and BLE libraries are installed.

Ready to use it

If you have cloned this project, install:

$ ./install.sh

Edit credentials.json:

{
	"client_id":		"...",
	"client_secret":	"...",
	"username":		 	"...",
	"password":			"..."
}

And walk on the brigde:

$ ./bridge display			 : To have a output:
$ ./bridge background		 : To run the program in background
$ ./bridge restart			 : To restart the program
$ ./bridge status			 : To show the status
$ ./bridge stop			     : To stop the program
$ ./bridge					 : To have help
How it works
  • Login Cloud
  • Loop (every 15 minutes by default)
    • Get Inforamtions from Cloud
      • Your garden
      • Your user-config
    • For each of your FlowerPowers (1 by 1)
      • Scan to discover the Flower Power
      • Retrieve his history samples
      • Send his history samples to the Cloud
  • End Loop

The program relive a new Loop only if all Flower Powers have been checked.

Quick started for developers

If you have this module in dependencies:

$ npm install node-flower-bridge
var bridge = require('node-flower-bridge');
var credentials = {
	"client_id": "...",
	"client_secret": "...",
	"username": "...",
	"password": "..."
};

bridge.loginToApi(credentials, function(err, res) {
	if (err) return console.error(err);
	bridge.all('synchronize');
	bridge.live('...', 5);
	bridge.synchronize('...');
});

bridge.on('newProcess', function(flowerPower) {
	console.log(flowerPower.uuid, flowerPower.lastProcess);
});
bridge.on('info', function(info) {
	console.log(info.message);
});
bridge.on('error', function(error) {
	console.log(error.message);
});

The bridge is a continual queud. Method like .all .synchronize or .live push back to this queud.

Events
'login' = {access_token, expires_in, refresh_token}
'info' = {message, date}
'error' = {message, date}
'newState' = state
'newProcess' = {uuid, lastProcess, process, lastDate}

Api

Kind: global class

new FlowerBridge()

FlowerBridge - Module to build a bridge form BLE/sensors and CLOUD/Parrot

flowerBridge.loginToApi(credentials)

To connect your bridge to the Parrot cloud

Kind: instance method of FlowerBridge

ParamTypeDescription
credentialsobjectclient_id client_secret username password

flowerBridge.getUser(callback)

Get your current profil from the cloud Get all sensor Get user version

Kind: instance method of FlowerBridge

ParamTypeDescription
callbackfunctionThe callback after getting information form cloud

flowerBridge.automatic(options)

Synchronize periodicly all of your flower powers

Kind: instance method of FlowerBridge Default: optionsdelay = 15; // minutes

ParamTypeDescription
optionsobjectdelay priority

flowerBridge.update(uuid, options)

Update mode

  • Synchronize historic samples
  • Update the frimware

Kind: instance method of FlowerBridge

ParamTypeDescription
uuidstringThe Uuid of the flower power
optionsobjectoptions[file] -> Binary file to update the flower power

flowerBridge.synchronize(uuid)

Synchronize mode

  • Synchronize historic samples

Kind: instance method of FlowerBridge

ParamTypeDescription
uuidstringThe Uuid of the flower power

flowerBridge.live(uuid, options)

Live mode

  • Show every second each data of a sensor

Kind: instance method of FlowerBridge Default: optionsdelay = 5

ParamTypeDescription
uuidstringThe Uuid of the flower power
optionsjsonoptions[delay] -> Delay of the live mode

flowerBridge.all(action, options)

Apply then action for all flower powers of your garden.

  • options[delay] -> Do an action every delay minutes.
  • options[priority] -> array of uuid: Do this action for these flower power befor the normal process.

Kind: instance method of FlowerBridge

ParamTypeDescription
actionstringThe name of the function to apply.
optionsobjectOptions to deal with all sensors.

forthebadge

1.8.6

8 years ago

1.8.5

8 years ago

1.8.4

8 years ago

1.8.2

8 years ago

1.8.1

8 years ago

1.7.2

8 years ago

1.7.1

8 years ago

1.7.0

8 years ago

1.6.1

8 years ago

1.5.1

8 years ago

1.5.0

8 years ago

1.4.1

8 years ago

1.4.0

8 years ago

1.3.3

8 years ago

1.3.2

8 years ago

1.3.0

8 years ago

1.2.2

8 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.1.0

8 years ago

1.0.3

8 years ago

1.0.0

8 years ago