The Smart Mesh Web App

Smart Mesh Part 5

Open Source

Wireless Cables Inc. is introducing the first, bridgeless, universal smart mesh Bluetooth controller application. It is now available for free on iPhone as a native app (bridgeless). With "bridgeless", we mean that no GATT connection to an external hardware is required. While iOS can already receive any BLE ad packet, the transmit of mesh packets on iOS happens using the iBeacon bearer implementation.

All our mesh products as well as the AIRcable MeshBridge turn the iBeacon into a real mesh packet and retransmit it, like a relay. On Android the app runs as a web app, using the Web Bluetooth API to allow Chrome to connect to a mesh bridge, such as the AIRcable MeshBridge. Running the app on Chrome Canary on Linux and OSX also uses a standard GATT bridge to access the mesh network.

In addition the SmartMesh controller app uses MQTT as a mesh packet bearer. Any device that is connected to that message broker can then receive mesh packets, anywhere. Our new product, the AIRcable Gateway implements the connection between the MQTT broker and the mesh.

Starting the application

iPhone and Android

Installed on iPhone, the app presents a splash screen for a few seconds and blends over into the settings page. Once credentials have been established, the Bluetooth scanner is activated and programmed, listening for mesh service packets as well as specifically designed iBeacons.

On Android, start Chrome DEV browser and point to https://aircable.net:8101 to get the application running. Use the wave icon on top to start searching for the mesh bridge.

In addition Chrome Canary on OSX is also supported, though a bit unstable.

Source code for the application is available on Github.

Security, Credentials and Login

Passphrase and cloud login

First screen you see is the login screen. If a pass phrase has been configured before you will see the message "passphrase defined". Otherwise chose a passphrase. This method will create the network key used by the mesh implementation to encrypt the broadcast data. 

As you know, everybody can listen to broadcast messages. So chose a complex enough, something that cannot be guessed easily. E.g. "1234" is not a very good pass phrase, but if you use Feit Homebrite light bulbs you chose the same 4 digits you selected in their application.  In the future we will follow the SIG guidelines generating those network and app keys.

The other login parameter, email and password, server name and port number is used to connect to the message broker server. It is not required but will allow you to display and control smart mesh devices over the cloud, anywhere you are.

At this time, we provide the MQTT server for everyone at aircable.net port 9002 (secure) with the username aircable and password aircable.

Watching for smart mesh nodes

No need to configure

After clicking SAVE on the login screen, the app shows a list of mesh nodes that have been discovered. Discovery is automatic when the device sends our status information and configuration. If a device is not longer sending out these packets after some time it will be deleted from the list. We have implemented SmartDimmer, Gateway, DinnerTime flasher, Serial Mesh as well as some sensors and standard CSR lights.

For those, you can create CSRlight mesh nodes with the 

CSRlight has one simple slider that sends a LIGHT_SET_LEVEL command with the value of the slider. It also sends a Feit Homebright compatible message (soon). In order to configure a CSRlight or Feit Homebrite, you need to "guess" the node ID. But usually, the first you have setup starts at 0x8001 and will just increase by one every time you add a new light to the app. Groups can be used with that as well. Group numbers begin with 1 and will increase by one every time you configure a new group.

Change the node ID, type it into the field next to the light bulb icon and click on SET NODE ID. Then just slide.

Association

Make a device your own

A new smart mesh device you buy usually comes unconfigured. This means that the device does not have a network security key for decrypting the smart mesh messages. Right now, this application lacks the secure exchange of network keys using the Elliptic curve Diffie-Hellman algorithm. Right now, we use the Mesh Association Command Packet and store the key in a simple encrypted form there. 

Contributors wanted.

Mesh Node Products

Products describe themselves

Every node sends out status packets, as often as it is needed. E.g. the AIRcable SerialMesh device sends status every 20 seconds, and its configuration every minute. This information is used by the controller app to identify the product and is able to interpret the data within those packets. See source code for detail.

  • Serial RS232 to Mesh

  • Mesh Bridge with Sniffer

  • Wifi gateway MQTT to Mesh

  • Mesh Flasher (aka Dinnertime), battery powered

  • CSR Light emulator