Testing your data pipeline is easy when you use a virtual device. This tutorial will help you:
Create a virtual device.
Send data from the virtual device.
Copy sample Datalogger events to simulate Danlaw device connections.
What You'll Need
An HTTP client (e.g. Postman)
Create a Virtual Device
Inside the Dashboard, go to the Devices navigation item.
Next, click Add Device button in the top right corner.
On the New Device page:
-input a name ins the Serial # box.
(Recommended format: <tenantName>-virtual-device)
-Select "HTTP" under Connection Protocols
-Firmware or configuration assignment is not applicable in sending test data
Click the Create Device, and you are all set!
Send Data from Your Virtual Device
Now that you have a virtual device created, you can send test data from that device using an HTTP client.
IMPORTANT NOTE: If you have not set up a destination for your data and created some rules, you will NOT receive the test data you send.
Test Messages
The formatting requirements for test messages are as follows:
Request body must be valid JSON.
deviceId
is a required field, and can be provided in the payload or header. Both methods result in the same event data production.
Device ID in the Request Body
HTTP Method:
POST
URL:
http://in-production.kubernetes.bitbrew.com:9003/v1/event
Example Request Body
{
"deviceId": "virtual-device",
"payload": {
"message": "Test_Message",
"random": {
"array": [1, 2, 3]
}
}
}
Device ID in the Header
HTTP Method:
POST
URL:
http://in-production.kubernetes.bitbrew.com:9003/v2/event
Key: X-Device-Id
Value: virtual-device
Sample Datalogger Events
Sending test data that looks like real device events is helpful for testing your rules, integrations, and application logic. We have a few common events listed below for you to copy and paste into the "payload"
object of your POST request.
You can see the full list of events in our event catalog.
Danlaw UDP Trip Start
"message": {
"type": "TripStartEvent",
"tripNumber": 46,
"milStatus": 0,
"vin": "1C16G05GV2B104942",
"imei": "354235053108415"
},
"header": {
"timestamp": "2017-02-13T15:04:49-05:00",
"tripType": "Trip",
"tripNumber": 46,
"messageType": 8,
"messageLength": 40,
"latitude": 42.28004455566406,
"longitude": -83.74847412109401,
"fixQuality": "FixOk",
"vehicleProtocolId": "ISO15765_11_BIT_CAN",
"odo": 97
}
Danlaw UDP Trip End
"message": {
"type": "TripEndEvent",
"tripTime": 1158,
"distanceTravelled": 6.0,
"cumulativeRunningTime": 113,
"calculatedFuelConsumed": 0.28800000000000003,
"avgSpeed": 37,
"maxSpeed": 69,
"highSpeedEventCounts": 0,
"highSpeedDuration": 0,
"criticalSpeedEventCounts": 0,
"criticalSpeedDuration": 0,
"tripIdleTime": 586,
"cumulativeIdleTime": 39,
"hardAcclCounts": 0,
"hardBreakingCounts": 0,
"consumedAir": 11868.81
},
"header": {
"timestamp": "2017-01-01T15:21:40-05:00",
"tripType": "IgnitionOff",
"tripNumber": 485,
"messageType": 9,
"messageLength": 35,
"latitude": 41.46466064453125,
"longitude": -81.51720428466797,
"fixQuality": "FixOk",
"vehicleProtocolId": "ISO15765_11_BIT_CAN",
"odo": 3743
}
Danlaw TCP Rel. Time Trip Start
"type": "TripStartRelativeTime",
"timestamp": "2017-02-13T15:06:34-05:00",
"tripNumber": 3,
"vin": "2FTZF1864WCB87940",
"vehicleProtocol": "CAN11Bit",
"odometer": 8600,
"obdSupportedPids": {
"O2S7EquivalenceRatioVolts": false,
"O2S4EquivalenceRatioVolts": false,
"EngineCoolantTemp": true,
"MonitorStatusDriveCycle": true,
"EngineRpm": true,
"CatalystTempB1S1": true,
"AcceleratorPedalPositionE": true,
"Blank1": false,
"B2S2OxygenSensorVoltageShortTermFuelTrim": true,
"IntakeAirTemp": true,
"B2S1OxygenSensorVoltageShortTermFuelTrim": true,
"O2S5EquivalenceRatioVolts": false,
"ControlModuleVoltage": true,
"TimingAdvance": true,
"FuelType": true,
"O2S6EquivalenceRatioCurrent": false,
"O2S3EquivalenceRatioCurrent": false,
"EvapSystemVaporPressure": false,
"CommandEgr": false,
"B1S4OxygenSensorVoltageShortTermFuelTrim": true,
"B1S1OxygenSensorVoltageShortTermFuelTrim": true,
"O2S8EquivalenceRatioCurrent": false,
"MaxOfMaf": false,
"FuelRailPressure": true,
"BarometricPressure": true,
"CatalystTempB1S2": false,
"AcceleratorPedalPositionF": false,
"O2S1EquivalenceRatioVolts": false,
"PidsSupported65_96": true,
"RunTimeSinceEngineStart": true,
"MilStatus": true,
"HybridBatteryPackLifeRemaining": false,
"OxygenSensorsPresent2": true,
"NumWarmupsSinceCodesCleared": true,
"Blank2": true,
"AmbientAirTemperature": true,
"EngineFuelRate": false,
"DistanceTraveledSinceCodesCleared": true,
"CommandEquivalenceRatio": true,
"ObdStandards": true,
"B2S4OxygenSensorVoltageShortTermFuelTrim": true,
"RelativeAcceleratorPedalPosition": false,
"LongTermSecondaryOxygenSensorTrimB2B4": true,
"EngineOilTemp": false,
"B1S2OxygenSensorVoltageShortTermFuelTrim": true,
"FuelRailPressureRelative": false,
"O2S1EquivalenceRatioCurrent": true,
"EthanolFuelPrct": false,
"O2S7EquivalenceRatioCurrent": false,
"FreezeDtc": true,
"B1S3OxygenSensorVoltageShortTermFuelTrim": true,
"B2S3OxygenSensorVoltageShortTermFuelTrim": true,
"O2S2EquivalenceRatioCurrent": false,
"ThrottlePosition": true,
"CommandedSecondaryAirStatus": true,
"MaxOfErOsvOscMap": false,
"O2S2EquivalenceRatioVolts": false,
"OxygenSensorsPresent": true,
"O2S4EquivalenceRatioCurrent": false,
"O2S8EquivalenceRatioVolts": false,
"CalcEngineLoad": true,
"LongTermFuelPrctB1": true,
"O2S5EquivalenceRatioCurrent": true,
"ShortTermSecondaryOxygenSensorTrimB1B3": false,
"RelativeThrottlePosition": true,
"FuelLevelInput": false,
"CatalystTempB2S1": true,
"PidsSupported33_64": true,
"AbsoluteLoadValue": true,
"MafAirFlowRate": true,
"AuxiliaryInputStatus": true,
"FuelInjectionTiming": false,
"AbsEvapVaporPressure": false,
"ShortTermSecondaryOxygenSensorTrimB2B4": false,
"EvapVaporPressure": false,
"FuelRailPressureAbs": false,
"CommandThrottleActuator": true,
"ShortTermFuelPrctB2": true,
"LongTermSecondaryOxygenSensorTrimB1B3": true,
"ShortTermFuelPrctB1": true,
"LongTermFuelPrctB2": true,
"O2S6EquivalenceRatioVolts": false,
"AbsoluteThrottlePositionC": false,
"DistanceTraveledMil": true,
"CatalystTempB2S2": false,
"TimeRunMilOn": false,
"IntakeManifoldAbsPressure": true,
"TimeSinceTroubleCodesCleared": false,
"CommandedEvaporativePurge": true,
"FuelStatus": true,
"AcceleratorPedalPositionD": true,
"O2S3EquivalenceRatioVolts": false,
"VehicleSpeed": true,
"EgrError": false,
"FuelPressure": true,
"AbsoluteThrottlePositionB": true
},
"pidList": [
13,
12,
128,
131
]
Danlaw TCP Rel. Time Trip End
"type": "TripEndRecordRelativeTime",
"timestamp": "2017-04-27T17:06:36-04:00",
"tripNumber": 1736,
"odometer": 23,
"fuelConsumed": 0.03800000086426735