We are a Startup building remote construction monitoring platform for the construction industry. We are great at web development (web apps, web APIs, data visualization) however have 0 knowledge about RF low level engineering and programming.
What is more it is extremely hard to find any XBee developer in our area. To make it possible and deliver MVP we decided to purchase ready-to-use sets and use Digi Cloud, therefore we got:
• 1 ConnectPort X4H http://www.digi.com/products/xbee-rf-solutions/gateways/connectportx4
• 4 XBee Sensors http://www.digi.com/products/xbee-rf-solutions/sensors/xbee-sensors
• 2 XBee Wall Router http://www.digi.com/products/xbee-rf-solutions/range-extenders/xbee-wall-router
What we already know:
• We discovered ConnectPort with visible ZigBee network in Digi Cloud, yes it is visible and can be configured online.
• We know that ConnectPort has built in Python engine however only 2.4.3 Python version is supported.
• We know that we can upload Python files directly to ConnectPort using Digi ESP for Python
• We know that we can upload Python files to ConnectPort using Digi Cloud
• We know that Sensors can sent data into Data Streams that will expire after some time
• We know that we can use Monitor API to forward data into our own external web service each time it will be uploaded into Data Stream
What we want to achieve and have questions:
Scenario 1 (simple):
In this scenario we want to specify all settings and sampling using Digi Cloud online interface.
a) Create data streams using Digi Cloud Interface
o As each XBee Sensors has 1 temperature, 1 humidity and 1 light sensor, we want to specify 3 Data Streams for each XBee Sensor. Having total 4 x 3 Data Streams.
o Each Data Stream besides data value should have additional properties like: NodeId (Id of XBee Sensor), SensorTypeId (Id from dictionary of types), SamplingFrequency (value in milliseconds, 0 = real time) DateStart (date from what point should collect data), DateEnd (date after no data should be collected), MeasurementZoneId(Id of measurement zone specified by user, e.g. Floor 1), PlacementVector (x, y, z location inside construction)
b) Somehow link each data stream with each sensor inside XBee Sensors and “Enable Sampling”
c) Watch data changes online in Digi Cloud
Questions:
- Is it possible to extend data stream metadata with above properties?
- Is it possible to define one data stream per one sensor inside one XBee Sensor?
- Is it possible to define sampling frequency and enable sampling from Digi Cloud interface without writing Python code for ConnectPort (without the need for timer of infinity loop)?
- If python code is not necessary to enable sampling and data sending, how to do that?
- If python code is mandatory, does it mean that each time we want to assign XBee Sensors to different measurement zone we need to upload new Python file into ConnectPort?
Scenario 2 (extended):
In this scenario we want to configure devices and sampling from our own external API and use Digi Cloud as a middle man for configuration and data forwarding.
a) While having the same parameters, create data streams using Digi Cloud API from eternal web service (it will be .NET web service, written in C#)
b) While having the same parameters, create Data Forwarding to external web service (it will be .NET web service, written in C#) using Monitor API, each time new data will be uploaded to Digi Cloud
c) While having the same parameters somehow link each data stream with each sensor inside XBee Sensors and “Enable Sampling” using Digi Cloud API from eternal web service (it will be .NET web service, written in C#)
d) Receive data in eternal web service without the need of manual queries
Questions:
- Is it possible to extend data stream metadata with mentioned properties using Digi Cloud API from external web service?
- Is it possible to define one data stream per one sensor inside one XBee Sensor using Digi Cloud API from external web service?
- Is it possible to define sampling frequency and enable sampling using Digi Cloud API from external web service, without writing Python code for ConnectPort (without the need for timer of infinity loop)?
- If python code is not necessary to enable sampling and data sending, how to do that?
- If python code is mandatory, does it mean that each time we want to assign XBee Sensors to different measurement zone we need to generate and upload using Digi Cloud API new Python file into ConnectPort?
We will really appreciate help with above questions regarding both scenarios. I believe that many people will also be interested in these two scenarios.
Help us please.