Skip to main content

Event Examples

All message always send the full data model object of the related device type of the message. In case of the connect or delete message, the last know state of the device will be send. Below you find examples for each device type. Generally, each device type mostly has the same message types: connect, update, delete, offline, and disconnect notifications. For devices which support commands, notifications about commands are also sent through the command message type.

Vehicle Streaming Message Examples

Vehicles can send the following message types:
  • {subscriptionId}.vehicle.connect
  • {subscriptionId}.vehicle.update
  • {subscriptionId}.vehicle.delete
  • {subscriptionId}.vehicle.offline
  • {subscriptionId}.vehicle.command
  • {subscriptionId}.vehicle.disconnect
{
  "lastUpdated": "2023-11-07T05:31:56Z",
  "chargeState": {
    "stateOfCharge": 72.25,
    "chargingTimeRemaining": 6,
    "chargeLimitMax": 80.25,
    "remoteChargingAllowed": true,
    "estimatedRange": 106,
    "chargingState": "CHARGING",
    "chargeRate": 6.512,
    "lastUpdated": "2023-11-07T05:31:56Z",
    "chargeLimitMin": 20.25,
    "chargeCurrentMax": 12,
    "scheduledDepartureTime": "2023-11-26T05:05:00Z",
    "isPlugged": true,
    "scheduledChargingStartTime": "2023-11-26T05:00:00Z"
  },
  "odometer": {
    "lastUpdated": "2023-11-07T05:31:56Z",
    "odometer": 12228
  },
  "isOnline": true,
  "location": {
    "lastUpdated": "2023-11-07T05:31:56Z",
    "latitude": 50.770774,
    "longitude": -126.104965
  },
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "climateState": {
    "lastUpdated": "2023-11-07T05:31:56Z",
    "isClimateOn": true,
    "isBatteryHeaterOn": true,
    "temperatureCurrent": 18.1,
    "temperatureTarget": 20.1
  },
  "userId": "896f9d5a-b618-48a2-98ae-957059bf1bc9",
  "staticData": {
    "lastUpdated": "2023-11-07T05:31:56Z",
    "vendor": "TESLA",
    "name": "My Tesla",
    "engineType": "BEV",
    "vin": "1XKAD29X0KS502460",
    "model": "Model 3",
    "batteryCapacity": 60.12,
    "vehicleVariant": "Base"
  }
}

Tariff Streaming Message Examples

Tariffs can send the following message types:
  • {subscriptionId}.tariff.connect
  • {subscriptionId}.tariff.update
  • {subscriptionId}.tariff.price.update
  • {subscriptionId}.tariff.delete
  • {subscriptionId}.tariff.disconnect
{
  "id": "b063cd05-a48f-4513-9abe-060a13546bdb",
  "userId": "5f48946a-4203-495b-9c8b-7c31ae84009a",
  "locationId": null,
  "isOnline": true,
  "staticData": {
    "vendor": "OSTROM",
    "name": "Ostrom Feldstraße 22",
    "currency": "EUR",
    "countryCode": "DE",
    "lastUpdated": "2024-12-26T13:41:28.075Z"
  }
}

HVAC Streaming Message Examples

HVACs can send the following message types:
  • {subscriptionId}.hvac.connect
  • {subscriptionId}.hvac.update
  • {subscriptionId}.hvac.schedules.update
  • {subscriptionId}.hvac.delete
  • {subscriptionId}.hvac.offline
  • {subscriptionId}.hvac.command
{
  "id": "6eb5497d-c6bb-4290-84ef-4409fe9501f1",
  "userId": "896f9d5a-b618-48a2-98ae-957059bf1bc9",
  "locationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "isOnline": true,
  "staticData": {
    "type": "AC",
    "room": "Living room",
    "vendor": "VIESSMANN",
    "model": "Vitotronic 200",
    "name": "Viessmann Vitotronic 200",
    "capableModes": ["HEAT"],
    "lastUpdated": "2025-01-02T10:24:02.447Z"
  },
  "climateState": {
    "isActive": null,
    "mode": null,
    "temperatureCurrent": null,
    "temperatureOutside": null,
    "temperatureTargets": [],
    "lastUpdated": null
  },
  "powerState": {
    "powerConsumption": null,
    "lastUpdated": null
  },
  "lastUpdated": "2025-01-02T10:24:02.447Z"
}

Battery Streaming Message Examples

Batteries can send the following message types:
  • {subscriptionId}.battery.connect
  • {subscriptionId}.battery.update
  • {subscriptionId}.battery.delete
  • {subscriptionId}.battery.offline
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "userId": "896f9d5a-b618-48a2-98ae-957059bf1bc9",
  "locationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "isOnline": true,
  "staticData": {
    "vendor": "SMA",
    "model": "Battery,
    "name": "My device",
    "batteryCapacity": 106,
    "siteName": "Osna Lab",
    "lastUpdated": "2025-01-02T10:45:20.980Z"
  },
  "chargeState": {
    "mode": null,
    "stateOfCharge": null,
    "maxChargeRate": null,
    "maxDischargeRate": null,
    "chargeLimitMin": null,
    "chargeLimitMax": null,
    "chargeRate": null,
    "chargingState": null,
    "lastUpdated": null
  },
  "lastUpdated": "2025-01-02T10:45:20.980Z"
}

PV-Inverter Streaming Message Examples

PV-Inverters can send the following message types:
  • {subscriptionId}.pv-inverter.connect
  • {subscriptionId}.pv-inverter.update
  • {subscriptionId}.pv-inverter.delete
  • {subscriptionId}.pv-inverter.offline
{
  "id": "6eb5497d-c6bb-4290-84ef-4409fe9501f1",
  "userId": "896f9d5a-b618-48a2-98ae-957059bf1bc9",
  "locationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "isOnline": true,
  "staticData": {
    "vendor": "FRONIUS",
    "model": "Inverter",
    "name": "My device",
    "siteName": "Osna Lab",
    "lastUpdated": "2025-01-02T10:53:42.719Z"
  },
  "powerState": {
    "solarPower": null,
    "state": null,
    "lastUpdated": null
  },
  "lastUpdated": "2025-01-02T10:53:42.719Z"
}

Meter Streaming Message Examples

Meters can send the following message types:
  • {subscriptionId}.meter.connect
  • {subscriptionId}.meter.update
  • {subscriptionId}.meter.delete
  • {subscriptionId}.meter.offline
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "userId": "896f9d5a-b618-48a2-98ae-957059bf1bc9",
  "locationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "isOnline": true,
  "staticData": {
    "vendor": "FRONIUS",
    "model": "Meter",
    "name": "My device",
    "siteName": "Osna Lab",
    "lastUpdated": "2025-01-02T10:56:28.800Z"
  },
  "powerState": {
    "power": null,
    "meterValue": null,
    "lastUpdated": null
  },
  "lastUpdated": "2025-01-02T10:56:28.800Z"
}