Quickstart

RaspberryPi Setup

You need a fresh setup of Raspbian Jessie Light (the real thing and not NOOBS, otherwise you may have to deal with conflicts). Also ssh access to your Raspberry and a working network connection. If you need more detailed instructions please consult the excellent documentation on raspberrypi.org.

Space requirements

If you know what you are doing you can squeeze everything onto a 2GB sdcard, but a 4GB+ sdcard is recommended. If you plan on doing development you should use a 8GB+ sdcard.

Hardware reqirements

A Raspberry PI 3 is reqired for this setup. While other models may work its the only supported setup.

Debian 8 and Ubuntu 16.xx where used during development, and all packages are also available for amd64. But you have to configure the components yourself.

If your devices (opentrigger-board, rpl-border-router) have not yet been flashed with firmware yet, please reade the opentrigger-board setup guide.

Installation

wget -qO- https://acolono.github.io/opentrigger-quickinstall/setup.sh | STAGE=production bash

This is the default setup - binaries only. The development setup can be installed by passing STAGE=development but the development dependencies can also be added later on by installing the opentrigger-dev package.

After the installation is done your raspberry will power down. Now disconnect it from your power source and plug in the rpl-border-router - which will act as our 6LoWPAN router.

Node-RED

The Node-RED version shipped with Raspbian is quite old, if you want to update it manually have a look at this guide.

Testing

Restart your Raspberry and after it's done booting, get the routers address.

grep -A1 'Server IPv6 addresses' /var/log/syslog

You should see something like this:

tunslip6[780]: Server IPv6 addresses:
tunslip6[780]: aaaa::221:2eff:ff00:5e2c

Btw: this only works after a fairly recent power cycle (rebooting does not restart the router).

Now look at your routing table (use the server address from the log file).

curl -s [aaaa::221:2eff:ff00:5e2c] | html2text

In my case, there is one button connected, and the output looks like this:

Neighbors
fe80::221:2eff:ff00:5ce3
Routes
aaaa::221:2eff:ff00:5ce3/128 (via fe80::221:2eff:ff00:5ce3) 827s

It should be possible to ping the device now.

ping6 aaaa::221:2eff:ff00:5ce3

Now watch the distributor's log and push the button while doing so:

sudo supervisorctl tail -f ot_distributor

Ouput should look similar to this:

// Publishing To: /opentrigger/signals/trigger
{
  "Timestamp": "2016-10-31T20:13:07.256648+00:00",
  "UniqueIdentifier": "[aaaa::221:2eff:ff00:5ce3]",
  "Origin": null,
  "EventType": "Trigger",
  "EventId": 98
}
// Publishing To: /opentrigger/signals/release
{
  "Age": 937,
  "Timestamp": "2016-10-31T20:13:08.193695+00:00",
  "UniqueIdentifier": "[aaaa::221:2eff:ff00:5ce3]",
  "Origin": null,
  "EventType": "Release",
  "EventId": 98
}

You can also examine the message queue:

mosquitto_sub -v -t '/opentrigger/#'

If you have a version with an RGB-LED you can make it blink red:

coap post coap://[aaaa::221:2eff:ff00:5ce3]/led/RGB -p 'r=255&g=0&b=0&delay=20&times=3'

Last updated