Bosch IoT Asset Communication

Devices via Bosch IoT Hub connection

This section describes the default pre-configured connection, which is established automatically by subscribing the Bosch IoT Suite for Asset Communication package.
In case you need to adjust it, find here some details of how it should be configured.

Bosch IoT Hub

  • Your instance is automatically pre-configured to be allowed to send messages to our cloud infrastructure.
    Bosch IoT Hub does not have a UI on its own, thus all relevant information is accessible via Bosch IoT Things Dashboard.

  • By default, the automatically created connection is named "Devices via Bosch IoT Hub".
    The connection is visible at the Bosch IoT Things Dashboard, see below.

Bosch IoT Things

Your instance is pre-configured to allow all messages from Hub to be routed and processed at Bosch IoT Things.

  1. Open the Connections tab to see the entries created automatically during the package booking process.

  2. Click the default connection to see its details.

    images/confluence/download/attachments/1410307167/Things-Connections-UI.png
  3. In the General section you see the new feature enabled. see Implicit provisioning via connection config mapping.

  4. The Coordinates section is filled with the Hub credentials received at booking.

  5. In section Sources you will find the pre-configured topics:

    1. Source 1

      1. Addresses

        1. event/{{your-hub-service-tenant-ID}} and

        2. telemetry/{{your-hub-service-tenant-ID}}

      2. Authorization
        The authorization subject: integration:{{your-things-service-solution-ID}}:hub
        This entry can also be found in the default policy, which we create for you.

      3. Requested acknowledgements
        Filter: fn:filter(header:qos,'ne','0')

      4. Options
        The option to Enable Bosch IoT Hub/Things ID convention is checked by default and a strong prerequisite for the successful and secure communication between the two service layers.
        Thus, keep in mind that the device ID at the Hub will be identical with the thing ID at the Things service by default.

      5. Header mappings

        • content-type ⇾ {{ header:content-type }}

      6. Send replies

        • Expected response types

          • Error

          • Response

        • Address: {{ header:reply-to }}

        • Replies header mappings

          • content-type ⇾ {{ header:content-type | fn:default('application/vnd.eclipse.ditto+json') }}

          • correlation-id ⇾ {{ header:correlation-id }}

          • subject ⇾ {{ header:subject | fn:default(topic:action-subject) | fn:default(topic:criterion) }}-response

          • to ⇾ command/xxx_hub/{{ thing:id }}

    2. Source 2

      1. Addresses

        • command_response/{{your-hub-service-tenant-ID}}/replies

      2. The authorization subject: integration:{{your-things-service-solution-ID}}:hub
        This entry can also be found in the default policy, which we create for you.

      3. Header mappings.

        • content-type ⇾ {{ header:content-type }}

        • correlation-id ⇾ {{ header:correlation-id }}

        • status ⇾ {{ header:status }}

  6. In section Targets you will find two sections with the pre-configured topics

    1. first target

      1. command//{{your-hub-service-tenant-ID}}

      2. Topics to publish on address

        • Live messages

        • Live commands

      3. The authorization subject: integration:{{your-things-service-solution-ID}}:hub
        This entry you will also find in the default policy, which we create for you.

      4. Header mappings.

        • content-type ⇾ {{ header:content-type | fn:default('application/vnd.eclipse.ditto+json') }}

        • to ⇾ command/your-hub-service-tenant-ID/{{ thing:id }}

        • reply-to ⇾ {{ fn:default('command_response/tf851811c34834d698b274dc03c970ccc_hub/replies') | fn:filter(header:response-required,'ne','false') }}

        • subject ⇾ {{ header:subject | fn:default(topic:action-subject) }}

        • correlation-id ⇾ {{ header:correlation-id }}

    2. second target

      1. command//{{your-hub-service-tenant-ID}}

      2. Topics to publish on address

        • Twin events

        • Live events

      3. The authorization subject: integration:{{your-things-service-solution-ID}}:hub
        This entry you will also find in the default policy, which we create for you.

      4. Header mappings.

      • content-type ⇾ {{ header:content-type | fn:default('application/vnd.eclipse.ditto+json') }}

      • to ⇾ command/your-hub-service-tenant-ID/{{ thing:id }}

      • reply-to ⇾ command_response/your-hub-service-tenant-ID/replies

      • subject ⇾ {{ header:subject | fn:default(topic:action-subject) }}

      • correlation-id ⇾ {{ header:correlation-id }}

Further reading

You can configure additional connections with the Bosch IoT Hub as well as generic endpoints using AMQP 1.0, AMQP 0.9.1 (e.g. RabbitMQ), MQTT or Apache Kafka (outgoing only).