Heisenware Docs
Go to websiteGet a demo
  • 👋Welcome
  • Getting started
  • Release Notes
    • v85 - Safety net
    • v84 - Get in the flow
    • v83 - Beauty treatment
    • v82 — Fully distributed
    • v81 — Removing old cruft
    • v80 — Chicks on fire
    • v79 — Nothing is forever
    • v78 — Keep moving
    • v77 — More intelligence
    • v76 — Well cooked
  • Build & Deploy Apps
    • Overview
    • Flow Builder
      • Nodes (Functions)
        • Inputs
        • Trigger
        • Output
      • Function Extensions
        • Modifier
        • Filter
        • Error handler
        • Memorizer
      • Objects & Instances
      • Utilities
        • Basic Functions
        • PDF functions
        • Circular buffer
        • Timer
        • Counter
    • Integrations
      • Protocol Connectors
        • GraphQL
        • HTTP/REST
        • MQTT
        • OPC UA
          • Heidenhain PLCs with OPC UA
        • RS-232/485
        • Siemens S7
      • Data Connectors
        • File
        • Relational Database
        • Time Series Database
      • API Connectors
        • OGC SensorThings API
        • Operating System
        • Zebra RFID IoT Connector
      • Agent / (Edge Connector)
      • Calling Custom Code
    • UI Builder
      • Input Widgets
        • Form
        • File Upload
        • Photo
        • Signature
        • Barcode / QR-Code
      • Display Widgets
        • Chart
        • Chat
        • Data Grid
        • Circular Gauge
        • Linear Gauge
        • Map
        • Media View
        • Progress Bar
        • Sparkline
        • Status Lamp
        • Toast
        • Value Box
        • Kanban Board
        • Data List
        • Data Tiles
        • Pie Chart
        • Sankey
      • Buttons
      • Text Box
      • Images
      • Icons
    • Communication Interfaces
      • Email Notifications
      • OPC UA Server
    • Data & File Storage
      • Internal InfluxDB
      • Internal PostgreSQL
      • File Server
    • App Appearance
      • Pages
      • In-App Navigation
      • Screens & Devices
      • Theming
    • Simulation & Testing
      • Simulating Events
      • Simulating Data
    • PDF Templates
    • RAG-based Chatbot
    • Deployment
  • Manage Apps
    • Overview
    • Manage Apps
      • General Settings
      • Users and Access
      • Distribution & Versioning
    • Manage Integrations
    • Manage Account
      • Account Structure
      • Members
      • Workspaces
  • TUTORIALS
    • Build Your First Heisenware App
  • Connect Heidenhain CNC with OPC UA Support
  • Self-hosting Heisenware
  • Related links
    • Website
    • Privacy policy
    • Imprint
Powered by GitBook
On this page
  • Introduction to OGC SensorThings API
  • Example
  • Functions
  • getThings
  • getThing
  • updateThing
  • deleteThing
  • linkLocations
  • unlinkAllLocations
  • createLocation
  • getLocations
  • getLocation
  • updateLocation
  • createObservedProperty
  • getObservedProperties
  • getObservedProperty
  • updateObservedProperty
  • deleteObservedProperty
  • createSensor
  • getSensors
  • getSensor
  • updateSensor
  • deleteSensor
  • Datastreams
  • createDatastream
  • getDatastreams
  • getDatastream
  • updateDatastream
  • deleteDatastream
  • Observations
  • createObservation
  • getObservations
  • getObservation
  • updateObservation
  • deleteObservation
  • Raw Requests
  • Filters and Queries
  • Notes:
  • More information
  1. Build & Deploy Apps
  2. Integrations
  3. API Connectors

OGC SensorThings API

Last updated 7 days ago

This article is a work in progress.

For immediate help integrating the OGC SensorThings API, please .

Introduction to OGC SensorThings API

The OGC SensorThings API is a standard specification aiming to simplify and standardise the integration and communication of Internet of Things (IoT) sensor data. It enables seamless interoperability between different systems, devices, and applications by providing a unified way to access and share sensor data over the internet. This API is particularly useful for real-time data exchange and monitoring tasks in diverse and distributed sensor networks.

Example

Environmental monitoring application

Imagine an environmental monitoring application that collects data from various sensors deployed in a city. This application can utilise the OGC SensorThings API to access real-time data from sensors measuring air quality, temperature, humidity, and noise levels. By making API requests, the application:

  • Retrieves current air quality indexes from different areas within the city.

  • Gathers temperature and humidity readings to monitor weather conditions.

  • Accesses noise level data to identify and address noise pollution hotspots.

This API enables the application to provide citizens and city officials with up-to-date environmental information, supporting better decision-making and urban planning.

Functions

getThings

Retrieves all Things available on the server. A $filter expression can be applied for selective querying (e.g., filtering by name or description).

Example Filter Expression: name eq 'WeatherStation1'

getThing

Retrieves detailed information about a single Thing by its ID, including its associated Locations and HistoricalLocations.

updateThing

Updates the specified properties of an existing Thing. Possible updatable properties include:

  • name (String): The name of the Thing.

  • description (String): Description text.

  • properties (Object): Additional metadata.

deleteThing

Deletes a Thing identified by its ID.

linkLocations

Associates one or more Location entities to a Thing.

unlinkAllLocations

Removes all Location links from a Thing.

createLocation

Creates a new Location.

Options:

  • name (String): Name of the Location.

  • location (Object): Geospatial data in the format of encodingType.

  • description (String): Description of the Location.

  • properties (Object): Custom attributes.

  • encodingType (String): Defaults to 'application/geo+json'.

You may also link this Location directly to existing Things by providing their IDs.

getLocations

Retrieves all Locations. Supports $filter expressions (e.g., name eq 'SiteA').

getLocation

Retrieves a specific Location by ID.

updateLocation

Updates an existing Location’s properties:

  • name

  • description

  • properties

  • location

  • encodingType

deleteLocation

Deletes a Location by ID.

showLocationHistory

Returns the historical Locations of a Thing, aggregated over time based on a specified property found in the propertiesfield of each Location.

createObservedProperty

Creates an ObservedProperty.

Required options:

  • name (String): Name of the ObservedProperty.

Optional options:

  • description (String): Description.

  • properties (Object): Custom metadata.

  • definition (String): URI of a controlled vocabulary term.

getObservedProperties

Retrieves all ObservedProperties. Supports $filter expressions (e.g., name eq 'Temperature').

getObservedProperty

Fetches a single ObservedProperty by ID.

updateObservedProperty

Updates an existing ObservedProperty’s properties.

deleteObservedProperty

Deletes an ObservedProperty by ID.

createSensor

Creates a Sensor entity.

Required options:

  • name (String): Name of the Sensor.

Optional options:

  • description (String)

  • properties (Object)

  • encodingType (String): MIME type, e.g., application/pdf.

  • metadata (String): Metadata URI.

getSensors

Retrieves all Sensors. Supports $filter expressions.

getSensor

Fetches a Sensor by ID.

updateSensor

Updates a Sensor entity.

deleteSensor

Deletes a Sensor by ID.

Datastreams

createDatastream

Creates a Datastream entity.

Required options:

  • name (String)

  • observationType (String): URI or identifier of the observation type (e.g., http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement).

  • unitOfMeasurement (Object): Must include:

    • name (e.g., 'Degree Celsius')

    • symbol (e.g., '°C')

    • definition (URI string)

  • thingId (Integer)

  • sensorId (Integer)

  • observedPropertyId (Integer)

Optional options:

  • description (String)

getDatastreams

Retrieves all Datastreams. Supports $filter expressions.

getDatastream

Fetches a specific Datastream by ID.

updateDatastream

Updates an existing Datastream.

deleteDatastream

Deletes a Datastream by ID.

Observations

createObservation

Creates an Observation.

Required options:

  • result (any type): The value/result of the observation.

  • phenomenonTime (String, ISO 8601 format): Timestamp of the observation.

Also requires:

  • datastreamId (Integer)

getObservations

Retrieves all Observations. Supports $filter expressions (e.g., phenomenonTime ge 2024-01-01T00:00:00Z).

getObservation

Fetches a specific Observation by ID.

updateObservation

Updates an Observation entity.

deleteObservation

Deletes an Observation by ID.

Raw Requests

For flexibility, raw request methods are also provided:

  • getRaw

  • postRaw

  • patchRaw

  • deleteRaw

These allow direct URL access to the API for custom operations.

Filters and Queries

pgsqlCopyEditname eq 'StationA'
description ne 'Old station'
properties/owner eq 'City Council'

Notes:

  • All IDs refer to @iot.id properties from SensorThings resources.

  • All date/time values follow ISO 8601.

  • For geospatial data in Locations, the standard GeoJSON format is recommended (encodingType: 'application/geo+json').

More information

Many get* methods support OGC-compliant , such as:

reach out to us
filter expressions
OGC SensorThings API Standard 1.0
FROST Server Documentation