This article describes how to add a 3rd-party sensor to CityFlow. This process requires some coding experience and access to the sensor's data management control panel.

We are however continuously adding official support for 3rd-party devices/sensors to CityFlow, which makes it possible to add sensors to your account without manually defining them. If your device is not officially supported yet, please follow this guide.

If you need help adding sensors to CityFlow, please contact us and we will happily help you.

The process of adding sensors to CityFlow consists of two stages. The first stage is adding the device type in CityFlow in order to be able to receive data from the sensor/device type. The second stage is making the first device send the data to CityFlow via internet.

If you have already added the device type in CityFlow, you can add more devices of the same type by following the steps mentioned in Stage 3.

Please also read about the supported device types and data types in the article below:

Stage 1: Adding the device type in CityFlow

  1. Log in to CityFlow and click on Settings (cog icon) in the right-hand side menu.
  2. Click on Device Types under Fleet in the left-hand side menu.
  3. Click on the New Device Type button.
  4. Enter a name for the Device Type e.g. "Acme Corporation Weather Station" and Click Next.
  5. Select if the device is placed in an Indoor or Outdoor environment and click next.
  6. Select the data types that you want displayed in CityFlow by clicking on them and then choose the measurement unit for each data type. Click Next, when you are ready to proceed.
  7. Choose the order/position of the sensor data in popups in CityFlow. Click Next.
  8. Choose the order/position of the sensor data in panels in CityFlow. Click Create type.
  9. Once the above process is complete you are presented with a JSON code snippet, which shows an example of how data should be sent from the device to our platform along with an authentication header and a data endpoint URL. Proceed to Stage 2, and click Done once it is completed.

Stage 2: Send data from the device to CityFlow

  1. Log in to your data collection manager or device management console.
  2. Configure your data collection platform to forward data to us in the specified format (from step 9 in Stage 1).
  3. Remember to include the authentication header (from step 9 in Stage 1).

Below is an example of a POST request (without authorisation header) from a device, which is setup to send temperature and noise data to CityFlow:

{ 
"device_id": <UNIQUE DEVICE ID>,
"firmware_version": <FIRMWARE VERSION>, // Optional
"published_at": <YOUR TIMESTAMP>, // Timestamp in ms or ISO8601 - if omitted, server will timestamp on ingest
"data": {
"t": <SENSOR VALUE>, // Temperature (°C) - range: [-40 ; 60]
"nl": <SENSOR VALUE> // Noise (dB(A)) - range: [0 ; 130]
}
}

Below is an example of a data endpoint URL:

[POST] https://api.cityflow.live/measurement/

Stage 3: Adding more devices of the same type

Adding more devices of the same type is simple. Simply use the same request format, with a different unique 'device_id'. No additional setup is required in CityFlow.

Did this answer your question?