Introduction

This document provides a step-by-step guide for integrating Proxus with AWS IoT Core. This integration allows you to connect your Proxus-managed devices to the AWS cloud, enabling secure data transfer, device management, and access to various AWS services.

Prerequisites

  • An active AWS account.
  • A Proxus instance.
  • An existing device in Proxus.

Steps

1. Configure AWS IoT Core

  1. Log in to the AWS Management Console and navigate to the AWS IoT Core service.
  2. Domain Configuration: Under Connect, select Domain configurations. Note the domain name for your instance (e.g., xxxxxxxxxxxx-ats.iot.us-east-1.amazonaws.com). This will be used later in Proxus.

2. Create a “Thing” in AWS IoT Core

A “Thing” in AWS IoT Core represents a physical or logical device.

  1. Navigate to Manage > Things and click Create things.

  2. Choose Create a single thing and click Next.

  3. Provide a Thing name (e.g., proxus_demo). Click Next.

  4. Configure device certificate: Select Auto-generate a new certificate (recommended). Click Next.

  5. Attach policies to certificate: Click Create thing without attaching any policies for now.

  6. Download certificates and keys: Download the following files:

    • Device certificate (.pem)
    • Public key (.pem)
    • Private key (.pem)
    • Amazon Root CA 1

    Important: Store the private key securely, as it cannot be downloaded again.

3. Create an AWS IoT Policy

An IoT policy defines the permissions for your “Thing.”

  1. Navigate to Security > Policies and click Create policy.

  2. Provide a Policy name (e.g., proxus_policy).

  3. Policy document: Use the builder to add the following policy statements (replace resources with your account details):

    Policy EffectPolicy ActionPolicy Resource
    Allowiot:Connectarn:aws:iot:${region}:${account}:client/${thingName}
    Allowiot:Publisharn:aws:iot:${region}:${account}:topic/enterprise/bits/data/process_cell/equipment/module/test
    Allowiot:Subscribearn:aws:iot:${region}:${account}:topicfilter/enterprise/bits/data/process_cell/equipment/module/test
    Allowiot:Receivearn:aws:iot:${region}:${account}:topic/enterprise/bits/data/process_cell/equipment/module/test
  4. Click Create.

4. Attach Policy to Certificate

  1. Navigate to Security > Certificates.
  2. Select the certificate created for your “Thing.”
  3. Click Attach policies and select the policy you created (proxus_policy). Click Attach policies.

5. Configure Proxus Outbound Channel

  1. In Proxus, navigate to Integrations > Outbound Channels.

  2. Click + New.

  3. Select AWS IoT Core as the Target Type. Provide a Profile Name (e.g., AWS IoT Core).

  4. Parameters: Add the following parameters:

    KeyValue
    EndPointYour AWS IoT Core domain name (e.g., xxxxxxxxxxxx-ats.iot.us-east-1.amazonaws.com)
    Port8883
    ClientIdYour “Thing” name (e.g., proxus)
    UseTlsTrue
    PfxCertificateUpload the device certificates (xxx.certificate.pem.crt and xxx.private.pem.key file) you downloaded earlier.
    QualityOfServiceLevelAtLeastOnceEnsures message delivery with confirmation (QoS 1)
    MaxReconnectAttempts10Number of reconnection attempts on failure
    HealthCheckIntervalSec10Interval for connection health checks
    KeepAliveSeconds30Keep-alive interval for MQTT connection
  5. Click Save.

  1. In Proxus, navigate to Data Management > Devices.
  2. Select your device and go to the Target Profiles tab.
  3. Click + Link.
  4. Select the AWS IoT Core profile you created.
  5. Click Save.

7. Test the Connection

  1. In the AWS IoT Core console, navigate to Test > MQTT test client.
  2. Connection details: Verify the connection status.
  3. Subscribe to a topic: Subscribe to the topic you defined in the policy (e.g., enterprise/bits/data/process_cell/equipment/module/test).
  4. Monitor incoming messages from your Proxus device.

Topic Structure

Proxus automatically creates AWS IoT Core topics. It constructs these topics using the fields from the Hierarchy tab (except for Group) and appends the device name to the end. If these fields are left blank, the resulting topic will resemble: unknown/unknown/unknown/unknown/unknown/test.

Advanced Configuration Options

The following additional parameters can be configured for enhanced reliability:

ParameterDescriptionDefault Value
InitialReconnectDelayMsInitial delay before first reconnection attempt (ms)1000
MaxReconnectDelayMsMaximum delay between reconnection attempts (ms)30000
MessageBatchTimeoutMsTime window for collecting messages into batches (ms)500
MaxBatchSizeMaximum number of messages to batch together50
ConnectionTimeoutSecTimeout for connection attempts (seconds)5

Key Integration Features

The Proxus-AWS IoT integration includes these reliability features:

  • Automatic Reconnection: Built-in exponential backoff reconnection if connectivity issues occur
  • Message Persistence: Messages are queued during connection loss and transmitted when connectivity is restored
  • Secure Communication: All data is encrypted using TLS 1.2
  • Configurable QoS: Ensures message delivery even through intermittent connection issues

Troubleshooting

If you encounter issues with the integration:

  1. Verify Connection: Check if the device is enabled in Proxus
  2. Confirm Certificate: Ensure the certificate is active in AWS IoT Core
  3. Check Topics: Verify you’re subscribed to the correct topic in AWS IoT test client
  4. Network Access: Confirm your Proxus server has internet connectivity
  5. Credentials: Double-check that the certificates were correctly uploaded

Conclusion

You have successfully integrated Proxus with AWS IoT Core. Your Proxus devices can now securely communicate with AWS, enabling you to collect data, manage devices, and leverage the power of the AWS cloud.