Data Model
Your application can be configured with a specific data model. This model will format your device information as expected by the Application Server.
Only one model can be applied per application server.
Here is below a non exhausitive list of data model available. Data models can be updated/created upon request to Wi6labs.
Smart Essential
The Smart Format allows you to get decoding output with the same formating of measure regardless of the device manufacturer.
JSON Field | Description | format |
---|---|---|
device_id | unique identifier of a device in Wiotys | integer |
deveui | unique identifier of a LoRa device | 16 hexadecimal |
datetime | date and time of the information reception, it may not be real time | ISO 801 |
timestamp | timestamp of the information reception in UTC | timestamp |
payload_deciphered | payload data | hexadecimal data 0 to 104 caracter |
ver | version of the following smart dataset | |
data | decoded data | Smart formating |
customElement | custom information field for the sensor | table |
Example :
{
"device_id": "1234",
"deveui": "0123456789ABCDEF",
"device_name": "MyDevice",
"datetime": "2020-10-04T11:37:56+00:00",
"timestamp": "1601811476",
"payload_deciphered": "7238837C4A8014",
"data": {
"columns": [
"type",
"ref",
"value"
],
"values": [
[
"Measure",
"Multi_Fluid|0|ICO2",
1120
],
[
"Measure",
"Multi_Fluid|0|IInstTemperature",
26.2
],
[
"Measure",
"Multi_Fluid|0|IHumidity",
62
]
]
},
"customElement": [
{
"name": "MyDeviceCustomValue",
"value": 42
}
]
}
Wi6labs extended
This is the format to get complete information of your devices with default decoded information and network statistics. For compatibility, this format is identical to the WiotysV4 format.
JSON Field | Description | format |
---|---|---|
id | unique identifier of a device in Wiotys | integer |
deveui | unique identifier of a LoRa device | 16 hexadecimal |
timestamp | date and time of the information reception, local time (Europe/Paris) | Date-time RFC3339 |
payload_ciphered | payload crypted by LoRaWAN protocol | |
payload_deciphered | Device applicative payload | hexadecimal data 0 to 104 caracter |
data | decoded information | Default decoding. Format is depending of the device, configuration and codec selected |
lorawan | LoRaWAN detailed information | |
lora | radio parameters of the frame | |
gateway | Gateway ID with the best SNR and Number of gateway which seen the uplink | |
gps | GPS coordinates | decimal degrees (geodetic system WGS 84) |
Example :
{
"id": "1453",
"deveui": "0123456789abcdef",
"timestamp": "2022-02-10T09:28:48+01:00",
"payload_ciphered": "4d0335affdec9e0ecf90ccbb188e9543",
"payload_deciphered": "4d4bf83bf203e101fd00d201ff00bdff",
"data": {
"battery": 75,
"humidity": 59,
"pressure": 1010,
"CO2_moy": 481,
"CO2_max": 466,
"temperature_moy": 25.3,
"temperature_max": 25.5,
"signal_quality": -67
}
"lorawan": {
"type": "unconfirmed_data_up", /* unconfirmed_data_up, confirmed_data_up */
"devaddr": "abcdef01", /* Device address on the network */
"adr": true, /* If set to true, the sensor authorizes network to set its data rate. */
"fcnt": 1234, /* Uplink frame counter */
"port": 1 /* LoRaWAN port */
},
"lora": {
"freq": 868.5, /* RX central frequency in MHz */
"data_rate": "SF7BW125", /* LoRa datarate identifier */
"rssi": -52, /* RSSI in dBm (1 dB precision) */
"lsnr": -1.5 /* LoRa SNR ratio in dB (0.1 dB precision) */
},
"gateway": {
"best": "ABCDEF0123456789",
"number": 1234
},
"gps": {
"lat": 48.6,
"lng": -1.6
}
}
WiotysV4 Legacy Deprecated
This format is not complete and will not be supported. It is only available to help some WiotysV4 migration.
JSON Field | Description | format |
---|---|---|
DevAddr | Device address on the network | hexadecimal |
sensorInstallId | unique identifier of a LoRa device | 16 hexadecimal |
fcnt | Uplink frame counter | int |
data | decoded information | Format is depending of the device, configuration and codec selected |
rxpk.rssi | RSSI in dBm (1 dB precision) | int |
frame | payload | hexadecimal |
timestamp | timestamp of the information reception in UTC | timestamp |
This is the basic format to get essential information of your devices with default decoded information.
Example :
{
"DevAddr" : "0f034a6f",
"sensorInstallId" : "0123456789ABCDEF",
"fcnt" : 152,
"data" : {
"EndPoint" : 0,
"Report" : "Standard",
"CommandID" : "ReportAttributes",
"ClusterID" : "Temperature",
"AttributeID" : "MeasuredValue",
"AttributeType" : "Int16",
"Data" : 1879,
"Cause" : []
},
"rxpk" : {
"rssi": -58,
"freq": 868.5,
"datr": "SF12BW125",
"lsnr": 8.1999998092651
},
"frame" : "110a04020000290757",
"timestamp" : 1656408127,
"DevEUI" : "78d800b023926793"
}
Advanced Models
The advanced models are to be used only in specific use case. They are not be available from Wiotys Web Interface. Please contact Wi6labs support for more information.
Wiotys App
This is the format compatible with WiotysApp dashboard application.
JSON Field | Description | format |
---|---|---|
protocol | current version of the protocol used | integer |
device | unique identifier of a LoRa device on Wiotys App platformes specified as device customElement smartcoreDevelopperId | |
at | date and time of the information reception, in UTC | |
data | payload data | |
ver | version of the following smart dataset | |
data | decoded information | one or several dataset |
dataset | decoded data | Smart formating |
checksum | computed checksum calculated upon shared secret specified as device customElement smartcoreChecksum |
Example :
{
"protocol": "v3",
"persist": "true",
"device": "28776a99-185c-4df5-b9cf-289631ed9244",
"at": 1554884039,
"data": {
"ver": "S1",
"dataset": [
{
"columns": ["type","ref","value"],
"values": [
["Measure","Global|0|SNR",1560415499],
["Measure","Global|0|Frame_cnt",546],
["Measure","Global|0|RSSI",-110]
]
},
{
"columns": ["type","ref","value"],
"values": [
["Status","Item|0|IGenericStatus",1]
]
}
]
},
"checksum": "7a8df448e93bd1167a2575937a5e57e1d56ea589"
}
Wi6labs Essential
This is the basic format to get essential information of your devices with default decoded information.
JSON Field | Description | format |
---|---|---|
id | unique identifier of a device in Wiotys | integer |
deveui | unique identifier of a LoRa device | 16 hexadecimal |
timestamp | date and time of the information reception in UTC | Date-time RFC3339 |
payload_deciphered | Device applicative payload | hexadecimal data 0 to 104 caracter |
data | decoded information | Default decoding. Format is depending of the device, configuration and codec selected |
Example :
{
"id": "1453",
"deveui": "0123456789abcdef",
"timestamp": "2022-02-10T09:28:48+00:00",
"payload_deciphered": "4d4bf83bf203e101fd00d201ff00bdff",
"data": {
"battery": 75,
"humidity": 59,
"pressure": 1010,
"CO2_moy": 481,
"CO2_max": 466,
"temperature_moy": 25.3,
"temperature_max": 25.5,
"signal_quality": -67
}
}
Water Meter Index
This is a format dedicated for advanced information regarding water meters index. It is available only for several LoraWan water meters models : * iTron Cyble 5 * Diehl G3 module * Elster Merlin * Maddalena Arrow 2
JSON Field | Description | format |
---|---|---|
Type_Trame | Index | string |
Network_A | Lorawan | string |
Network_B | Wi6labs | string |
Manufacturer | Either iTron, Diehl, Elster Merlin, Maddalena | string |
Module_addr | Serial number on the LoraWan device sticker (not always DevEUI) | string |
Module_version | Version SW of the LoraWan module, if present in the frame | string |
WaterMeter_Serial | Serial number of the Water Meter | string |
DateTime_Module | LoraWan device time if present in the frame, otherwise time of frame reception | AAAA-MM-DDTHH:mm:ss |
DateTime_ModuleGMT | LoraWan device time if present in the frame, otherwise time of frame reception | ISO 8601 |
DateTime_Concentrateur | Time of the frame reception by the LoraWan gateway | AAAA-MM-DDTHH:mm:ss |
DateTime_ConcentrateurGMT | Time of the frame reception by the LoraWan gateway | ISO 8601 |
Index | Table of Index, one or several if the module sends data with an historic mode | table |
DateTime_Index | Time of the index | AAAA-MM-DDTHH:mm:ss |
DateTime_IndexGMT | Time of the index | ISO 8601 |
Pulse | Pulse weight to convert 1x impulsion into liter, purly informative | integer |
Index | Water metter index in liters | integer |
ID_concentrateur | EUI identifier of the LoraWan best gateway for the frame | 16 hexadecimal |
Example :
{
"Type_Trame" : "Index",
"Network_A" : "Lorawan",
"Network_B" : "Wi6labs",
"Manufacturer" : "Maddalena",
"Module_addr" : "23926793",
"Module_version" : "0.23",
"WaterMeter_Serial" : "H21VA231461",
"DateTime_Module":"2023-02-05T07:08:00",
"DateTime_ModuleGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Concentrateur":"2023-02-05T07:08:00",
"DateTime_ConcentrateurGMT":"2023-02-05T07:08:00+02:00",
"Index":[
{
"DateTime_Index":"2023-02-05T07:08:00",
"DateTime_IndexGMT":"2023-02-05T07:08:00+02:00",
"Pulse":1 ,
"Index": 1536
},
{
"DateTime_Index":"2023-02-05T19:08:00",
"DateTime_IndexGMT":"2023-02-05T19:08:00+02:00",
"Pulse":1 ,
"Index": 1589
}
],
"ID_concentrateur": "7076FF0056050A3A"
}
Water Meter Alarm
This is a format dedicated for advanced information regarding water meters alarms. It is available only for several LoraWan water meters models : * iTron Cyble 5 * Diehl G3 module * Elster Merlin * Maddalena Arrow 2
JSON Field | Description | format |
---|---|---|
Type_Trame | Alarme | string |
Network_A | Lorawan | string |
Network_B | Wi6labs | string |
Manufacturer | Either iTron, Diehl, Elster Merlin, Maddalena | string |
Module_addr | Serial number on the LoraWan device sticker (not always DevEUI) | string |
DateTime_Module | LoraWan device time if present in the frame, otherwise time of frame reception | AAAA-MM-DDTHH:mm:ss |
DateTime_ModuleGMT | LoraWan device time if present in the frame, otherwise time of frame reception | ISO 8601 |
DateTime_Concentrateur | Time of the frame reception by the LoraWan gateway | AAAA-MM-DDTHH:mm:ss |
DateTime_ConcentrateurGMT | Time of the frame reception by the LoraWan gateway | ISO 8601 |
Alarm | Table of active alarms on the water meter module | table |
DateTime_Alarme | Time of the alarm if available in the frame, otherwise time of frame reception | AAAA-MM-DDTHH:mm:ss |
DateTime_AlarmeGMT | Time of the alarm if available in the frame, otherwise time of frame reception | ISO 8601 |
Alarm_Type | Type of alarm, depends on each manufacturer | string |
value | Value of the alarm, 1 for active and 0 for inactive | 0 / 1 |
ID_concentrateur | EUI identifier of the LoraWan best gateway for the frame | 16 hexadecimal |
Example :
{
"Type_Trame" : "Alarme",
"Network_A" : "Lorawan",
"Network_B" : "Wi6labs",
"Manufacturer" : "Diehl",
"Module_addr" : "5322878121148402",
"DateTime_Module":"2023-02-05T07:08:00",
"DateTime_ModuleGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Concentrateur":"2023-02-05T07:08:00",
"DateTime_ConcentrateurGMT":"2023-02-05T07:08:00+02:00",
"Alarm":[
{
"DateTime_Alarme":"2023-02-05T07:08:00",
"DateTime_AlarmeGMT":"2023-02-05T07:08:00+02:00",
"Alarm_Type": "MacroAlarme_InProgressAlarms"
"value": 1,
},
{
"DateTime_Alarme":"2023-02-05T07:08:00",
"DateTime_AlarmeGMT":"2023-02-05T07:08:00+02:00",
"Alarm_Type": "MacroAlarme_Metrology"
"value": 1,
}
],
"ID_concentrateur": "7076FF0056050A3A"
}
CSV Water Meter Index
This is the equivalent of format Water Meter Index but for FTP delivery.
Example :
{
{
"Type_Trame" : "Index",
"Network_A" : "Lorawan",
"Network_B" : "Wi6labs",
"Manufacturer" : "Maddalena",
"Module_addr" : "90dffb818734a123",
"Module_version" : "",
"WaterMeter_Serial" : "H21VA231461",
"DateTime_Module":"2023-02-05T07:08:00",
"DateTime_ModuleGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Concentrateur":"2023-02-05T07:08:00",
"DateTime_ConcentrateurGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Index":"2023-02-05T07:08:00",
"DateTime_IndexGMT":"2023-02-05T07:08:00+02:00",
"Pulse":1 ,
"Index": 1536
"ID_concentrateur": "7076FF0056050A3A"
},
{
"Type_Trame" : "Index",
"Network_A" : "Lorawan",
"Network_B" : "Wi6labs",
"Manufacturer" : "Diehl",
"Module_addr" : "90dffb818734a123",
"Module_version" : "",
"WaterMeter_Serial" : "H21VA231461",
"DateTime_Module":"2023-02-05T07:08:00",
"DateTime_ModuleGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Concentrateur":"2023-02-05T07:08:00",
"DateTime_ConcentrateurGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Index":"2023-02-05T19:08:00",
"DateTime_IndexGMT":"2023-02-05T19:08:00+02:00",
"Pulse":1 ,
"Index": 1589
"ID_concentrateur": "7076FF0056050A3A"
}
}
CSV Water Meter Alarm
This is the equivalent of format Water Meter Alarm but for FTP delivery.
Example :
{
{
"Type_Trame" : "Alarme",
"Network_A" : "Lorawan",
"Network_B" : "Wi6labs",
"Manufacturer" : "diehl",
"Module_addr" : "90dffb818734a123",
"DateTime_Module":"2023-02-05T07:08:00",
"DateTime_ModuleGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Concentrateur":"2023-02-05T07:08:00",
"DateTime_ConcentrateurGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Alarme":"2023-02-05T07:08:00",
"DateTime_AlarmeGMT":"2023-02-05T07:08:00+02:00",
"Alarm_Type": "MacroAlarme_InProgressAlarms"
"value": 1,
"ID_concentrateur": "7076FF0056050A3A"
},
{
"Type_Trame" : "Alarme",
"Network_A" : "Lorawan",
"Network_B" : "Wi6labs",
"Manufacturer" : "diehl",
"Module_addr" : "90dffb818734a123",
"DateTime_Module":"2023-02-05T07:08:00",
"DateTime_ModuleGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Concentrateur":"2023-02-05T07:08:00",
"DateTime_ConcentrateurGMT":"2023-02-05T07:08:00+02:00",
"DateTime_Alarme":"2023-02-05T07:08:00",
"DateTime_AlarmeGMT":"2023-02-05T07:08:00+02:00",
"Alarm_Type": "MacroAlarme_Metrology"
"value": 1,
"ID_concentrateur": "7076FF0056050A3A"
}
}