Index
1. Introduction
2. Sending Data
2.1 Sending Data to Default Networks
2.2 Sending Data to Networks
2.3 Sending Data to Session IDs
1. Introduction
Thank you for your interest in our product. This document gives an overview of how our technology works. The main service provided by Webifi is to make it easy to send your own data using our technology. This is a free service, please try to send your data as efficiently as possible. For example, when you send GPS coordinates, instead of sending full NMEA strings, only send the actual coordinates using a simple protocol.
NMEA string: $GPRMC,105353.000,A,3684.3727,N,17476.6863,E,0.66,146.50,130418,,,A*6D
Better replacement:
1. Message starts with #
2. Lattitude in ASCII
3. A comma to separate the fields
4. Longitude in ASCII
The message for the GPS location could look like: #-36.843727,174.766863
This message consists of 22 characters. If this message is sent every 2 seconds then the amount of data used will be under 1MB per day. This demonstrates how much data can be sent if the data is sent in an efficient way.
2. Sending Data
There are multiple ways that data can be sent to recipients. A device will never receive it’s own data if sending data to it’s default networks or any other network. When a device sends data to it’s own session ID then it will receive the message that was sent. This can be handy to test if things are working. When a device belongs to multiple networks and data is sent to more than one of these networks then the device will still receive only one copy of the message. This section will be a lot easier to explain with a couple of examples.
On the Webifi Settings page you can configure your networks. Networks are logical groups that devices can belong to which makes it easier to manage data from multiple devices. For this example the networks are configured as follows:
We have three networks: network 1, network 2 and network 3. Your networks can have more practical names, like home and office. For this example we have 3 devices connected:
Device | Session ID | Default networks |
---|---|---|
PC | 7 | network 1, network 2 |
Raspberry Pi | 10 | network 1, network 3 |
Sensor | 28 | network 3 |
When a device initially connects to our website it is assigned a session ID. This is the unique address that is dynamically assigned to the device. Session IDs are used when a user or device only wants to send data to specific recipients instead of all the devices on a network. A device can send out a discovery request to request the session IDs of your other devices connected to our service.
2.1 Sending Data to Default Networks
The first and easiest is when a device sends data to it’s default networks. Two fields that can be specified when sending data is the networks to send data to and the session IDs to send data to. When both these fields are left empty then the data will be sent to all the devices that are listening to the same networks that the sending device belongs to. For our example, if the PC sends data to it’s default networks then only the Raspberry Pi will receive the data because both are listening to network 1. If the Raspberry Pi sends data to it’s default networks then both the other devices will receive the message. The PC will receive it because it is listening to network 1 and the sensor because it is listening to network 3.
2.2 Sending Data to Networks
A message can be sent to one or more networks by specifying which networks the message must be sent to. If the PC send data to network 3 then both the Raspberry Pi and the sensor will receive the message.
2.3 Sending Data to Session IDs
A message can be sent to one or more session IDs by specifying the session IDs when sending data. When the PC sends data to session ID 10 then only the Raspberry PI will receive the data. If it sends data to session IDs 7, 10 and 28 then the Raspberry Pi and the sensor will receive the data and the PC will also receive a copy of the data it sent.
The next step is documented in our Getting Started page.