This article applies to TeamViewer IoT users who want to monitor their IoT networks.

The solution presented in this article requires TeamViewer IoT Agent v 1.1.102 (or higher).  To identify the version of your agent, run: sudo teamviewer-iot-agent info (an error, or no result, indicates an older version of the agent is installed).

It is recommended to review the TeamViewer MQTT API documentation prior to proceeding with this article.

Overview

The TeamViewer IoT Agent acts as a centralized hub bringing the TeamViewer IoT solution to your IoT network.  In order to securely integrate your IoT devices and sensors, you must create trusted Clients (Reference TeamViewer MQTT API documentation for details) which can communicate with the TeamViewer IoT Agent.

Remote Clients allows you to extend your clients to trusted remote devices rather than being limited to the localhost (the device hosting the agent).  The following quick-guide will illustrate how to enable Remote Clients and how to use the TeamViewer MQTT API to remotely create Clients and send your sensor data for monitoring & visualization.

Getting Started with Remote Clients

Caution: Enabling Remote Clients will allow any device on your local area network to initiate Client certificate generation.  It is strongly encouraged to Disable Remote Client Provisioning & Remote Client Data connections when not in use.

 

By default, TeamViewer IoT Agent only allows localhost connections; to enable remote connection:

  1. Enable remote connections to allow non-localhost devices to create Clients.
    • teamviewer-iot-agent enable remoteClientProvision
  2. From your remote device, create a Client by generating a trusted certificate
    • Reference: https://download.teamviewer-iot.com/docs/agentapi/index.html
    • Note: Replace localhost with the hostname of the device running the TeamViewer IoT Agent in the publish/subscribe examples
    • Note: You will need to copy the Trusted CA Cert TeamViewerAuthority.crt, referenced in the publish/subscribe examples, to the remote device
  3. Once your Client(s) has been created, disable the remote Client provisioning access to prevent unauthorized access from other hosts on the network.  Disabling remote Client provisioning only allows certificate based secure access from remote hosts.
    • teamviewer-iot-agent disable remoteClientProvision
  4. Enable remote data for Clients to securely connect to the TeamViewer IoT Agent to send data
    • teamviewer-iot-agent enable remoteData
  5. From your remote device, securely register metrics and push data to the TeamViewer IoT Agent
  6. To provision additional remote clients enable the remote Client provisioning
    • teamviewer-iot-agent enable remoteClientProvision
    • Note: For security purposes, disable the remote Client provisioning when no longer needed
  7. For security purposes, when remote connections are no longer needed for Clients to send data, disable remote data
    • teamviewer-iot-agent disable remoteData
  8. For security purposes, when remote connections are no longer needed for client provisioning or sending data, disable ALL remote connections
    • teamviewer-iot-agent disable remoteClients
Version history
Revision #:
2 of 2
Last update:
‎05 09 2018, 11:46 AM
Updated by:
 
Labels (5)
Contributors