TeamViewer IoT Documentation
TeamViewer IoT Documentation
Preface
Here you’ll learn the basics of every TeamViewer IoT Solution and how to set up a TeamViewer IoT Network quickly.
- What is TeamViewer IoT – a basic overview on the topic.
- Glossary – an overview on all used terms and additional information on how to use this documentation.
- Safety – an overview of all guidelines to help ensure your safety and protect the device from damage.
- System Requirements – an overview on required hardware and software.
What is TeamViewer IoT?
TeamViewer Internet of Things enables you to instantly connect, monitor, and operate machines and devices securely – from anywhere.
Get full visibility into all IoT devices with real-time status alerts and early insights, so you can react quickly to mitigate risks and proactively solve issues, before they impact your business:
- Combine remote control functionalities with monitoring capabilities
- Operate endpoints remotely for faster, more economical operations – at the enterprise scale
- Receive alerts based on monitored IoT Data, enabling you to react quickly to incidents
- Enables remote assistance and support to fix devices and machine issues as they occur
- Accelerate roll-out time for your IoT solution with out-of-the-box connectivity – no complicated IoT VPNs
Components
The TeamViewer IoT Solution comprises the following core components:
- Your personal edge devices you want to control remotely.
- The TeamViewer IoT Agent Software which enables remote control of your devices.
- The TeamViewer Edge Management Software which enables additional features on your devices like Rule Management and a Web User Interface.
- The TeamViewer IoT Cloud which manages your devices and enables the visualization of data of the device and many more (e.g. reading sensor data or commanding motors). It also enables advanced users to automate processes via scripting. You access the cloud via the TeamViewer IoT Management Console.
- The TeamViewer IoT Agent API (MQTT based) which enables advanced users to access the device data, e.g. using data for your custom IoT cloud service or many other cloud services like Amazon Web Services.
- The TeamViewer IoT SDKs (for C, Node.js and Python) which enables advanced users to create custom applications within the TeamViewer IoT Solution, e.g. automation of processes.
Quickly set up secure Remote Operations, Remote Assistance, and Remote Alarming for distributed endpoints with an easy-to-use, reliable, and scalable cloud IoT solution.
The diagram shows the core components and the basic workflow.
Create new Solutions with TeamViewer IoT
The TeamViewer IoT Agent API and the TeamViewer IoT SDKs enable advanced users to use the full potential of creating custom automation and commands to communicate with the devices and cloud services.
Scope and Intended Use
Read this documentation before using any of the referenced products. Heed all safety notices.
Scope
This documentation describes the following products:
- TeamViewer IoT Starter Kit (Dell Edge Gateway, Bosch Sensor XDK110, Power over Ethernet Wall Plug Adapter)
- TeamViewer IoT Software Solution – for remote controlling a device and its connected parts
The TeamViewer IoT Starter Kit contains preconfigured hardware and software to implement your IoT use cases quickly.
Target groups
The products and their documentations address specific target groups. Each target group must have the specified knowledge level to fulfil the tasks and to handle all products safely.
Target group | Knowledge level | Tasks |
Novice | Windows, Web Browser | setup and remote control Starter Kit, setup rules |
Advanced (additionally to Novice) | C/C++/Python, Linux, networking basics | setup and remote control a custom device, automation |
Glossary
This glossary is intended to assist you when using this documentation.
Used Terms
Heed the terms below to enhance your experience with this documentation.
Term | Description |
---|---|
Internet of Things (IoT) | A system of interrelated computing devices, e.g. remote controlling a fridge or a coffee maker. |
Edge Device (device) | The hardware which runs the TeamViewer IoT Solution (e.g. Starter Kit, Raspberry Pi). It is connected to the sensors and actuators. |
TeamViewer IoT Agent (agent) | The software of the TeamViewer IoT Solution. It runs on the Edge Device. It manages the sensors and actuators and enables remote access via internet (e.g. TeamViewer IoT Management Console). |
TeamViewer Client | The software to access your Edge Device remotely. |
TeamViewer IoT Management Console (Management Console) | A software which runs in a web browser. It lists all your devices, connected sensors and many more information. |
TeamViewer IoT Edge Management (Edge Management) | Feature of the TeamViewer IoT Management Console. It provides real-time visualization of your devices, connected sensors and many more information. |
TeamViewer IoT Real Time Rule Engine (Real Time Rule Engine) | Feature of the TeamViewer IoT Management Console. It provides notifications and alerts when defined conditions (rules) are met. |
File Transfer | Feature of the TeamViewer IoT Management Console. It provides a graphical user interface to transfer files from and to edge devices. |
Widget | Displays your IoT data (e.g. chart, gauge) when Edge Management is enabled. |
MQTT | Message Queuing Telemetry Transport is an open lightweight, publish-subscribe network protocol that transports messages between your devices. |
MQTT-Broker | A MQTT system consists of multiple clients – publishers or subscribers – that are configured to communicate with a server (broker). |
SDK | The TeamViewer IoT Software Development Kit is a collection of software. It enables advanced users to create custom applications within the TeamViewer IoT Solution, e.g. automation of processes. |
API | The TeamViewer IoT Application Programming Interface is a computing interface which defines interactions between selected TeamViewer IoT software intermediaries. |
AWS | Amazon Web Services. An on-demand service for cloud computing. |
OPC UA | Open Platform Communications Unified Architecture is a machine to machine communication protocol for industrial automation. |
Webhook | A webhook is a method of augmenting or altering the behavior of a web page or web application with custom callbacks. The format is JSON. The request is done as a HTTP POST request. |
JSON | JavaScript Object Notation is an open standard file format, and data interchange format, that uses human-readable text to store and transmit data objects (e.g. IoT data like temperature). |
Endpoint | The entry point to a service, a process, or a queue or topic destination in service-oriented architecture (e.g. a web page to use a webhook on). |
GUI / gui | Graphical User Interface (e.g. any visible element in your web browser and the web browser itself). |
URL | Uniform Resource Locator is a reference to a web resource that specifies its location on a computer network (e.g. https://www.teamviewer.com). |
X11 | X11 (X Window System) provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard. |
Framebuffer | The framebuffer is a portion of random-access memory containing a bitmap that drives a video display. With TeamViewer IoT, you can access the framebuffer of a edge device. |
DIO | Digital Input/Output |
GPIO | General Purpose Input/Output |
APN | Access Point Name is the name of a gateway between a GSM, GPRS, 3G or 4G mobile network and another computer network. |
REST / RESTful | Representational State Transfer is a software architectural style that defines a set of constraints to be used for creating Web services. Web services that conform to the REST architectural style, called RESTful Web services, provide interoperability between computer systems on the internet. |
RSA | Rivest–Shamir–Adleman is one of the first public-key cryptosystems and is widely used for secure data transmission. |
MB | Megabyte |
GB | Gigabyte |
AES | Advanced Encryption Standard is a specification for the encryption of electronic data. |
SSH / ssh | Secure Shell is a cryptographic network protocol for operating network services securely over an unsecured network. |
CSR | Certificate Signing Request is a message sent from an applicant to a certificate authority in order to apply for a digital identity certificate. |
Used Formats
Heed the formats below to enhance your experience with this documentation.
Format | Description / Usage |
---|---|
bold | elements of the graphical user interface (e.g. button) |
bold | terms |
emphasis | highlighted text |
monospace |
user input, file names, commands |
teamviewer.com | hyperlinks |
For example: To save click OK.
For example: On the right side type into Filename the file name/var/etc/smb/smb.conf
.
Notes and Tips
Command line
Commands to type in are displayed in a single line. You can copy and paste a given command when prompted.
ls -a
Some commands to type in are very long. They are displayed in a special box. The following example represents still one single line command. You can copy and paste the whole content when prompted.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/d43862fd65ac4a0f9054cfe1749cad82/metric/create -m "{"metrics" : [{"matchingId" : "1", "valueUnit": "NoSI.Dimensionless.PERCENT", "name" : "CPUUsage" },{"matchingId" : "2","valueUnit": "NoSI.Dimensionless.PERCENT", "name" :"CPUIdle" }, {"matchingId" : "3", "valueType" : "integer" , "valueAnnotation": "goods per minute", "name" : "ShopFloor1"}]}"
Source code / File contents
Source codes or file contents are displayed in multiple lines. You can copy and paste a given content when prompted.
#include
#include
int main() {
std::cout<<"Hello World"<<std::endl;
return 0;
}
Troubleshoot
Heed the section Troubleshoot (if any) to solve problems while using the product.
Features of this documentation
The following features are enabled to assist you. The use is optional.
- Click the printer symbol (
) next to a heading to print the current documentation or to save it as PDF.
- Click the hash symbol (#) next to a heading to get the link of the current section.
Starter Kit
This section describes the TeamViewer IoT Starter Kit and its components in detail.
The TeamViewer IoT Starter Kit is a preconfigured edge device purchasable from TeamViewer.
See
Safety
The following guidelines help ensure your safety and protect the device from damage. The list of guidelines might not address all potentially hazardous situations in your working environment, so be alert and exercise good judgment at all times.
- Perform only the procedures explicitly described in the documentation for this device. Make sure that only authorized service personnel perform other system services.
- Do not perform any actions that create a potential hazard to people or make the equipment unsafe.
- Keep the area around the device clear and free from dust before, during, and after installation.
Edge Gateway (Starter Kit)
- The Edge Gateway must be installed by knowledgeable, skilled persons familiar with local and/or international electrical codes and regulations.
- The Edge Gateway is not designed for use in wet environments. If the Edge Gateway is to be installed in a wet environment, depending on the location and environment, it must be installed in a panel box or enclosure with an Ingress Protection (IP) rating of IP54, IP65, or higher.
- To reduce the risk of electric shock, power to the DC+ and DC- terminals must be provided by a power supply or transformer/rectifier circuit that is designed with double-insulation. The power supply or power circuit source must comply with local codes and regulations; for example, in the USA, NEC Class 2 (SELV/limited energy circuit, or LPS circuitry). If powered by a battery, double-insulation is not required.
- When installing the Edge Gateway, the responsible party or integrator shall use the 12-57 VDC or Power over Ethernet (PoE) power source 37-57 VDC, with a minimum of 13 W power already present as part of the client’s installation.
- Ensure that the power source providing power to the Edge Gateway is reliably grounded and filtered such that the peak-to-peak ripple component is less than 10 percent of the input DC voltage.
- When installing the Edge Gateway 3001 and 3002, use a cable appropriate for the load currents: 3-core cable rated 5 A at 90°C (194°F) minimum, which conform to either IEC 60227 or IEC 60245. The system accepts cables from 0.8 mm to 2 mm. The maximum operating temperature of the Edge Gateway is 70⁰C (158°F). Do not exceed this maximum temperature while operating the Edge Gateway inside an enclosure. Internal heating of the Edge Gateway electronics, other electronics, and the lack of ventilation inside an enclosure can cause the operating temperature of the Edge Gateway to be greater than the outside ambient temperature. Continuous operation of the Edge Gateway at temperatures greater than 70⁰C (158°F) may result in an increased failure rate and a reduction of the product life. Ensure that the maximum operating temperature of the Edge Gateway when placed inside an enclosure is 70⁰C (158°F) or less.
- When installing the Edge Gateway 3003, use a cable appropriate for the load currents: 3-core cable rated 5 A at 90°C (194°F) minimum, which conform to either IEC 60227 or IEC 60245. The system accepts cables from 0.8 mm to 2 mm. The maximum operating temperature of the Edge Gateway is 60⁰C (140°F). Do not exceed this maximum temperature while operating the Edge Gateway inside an enclosure. Internal heating of the Edge Gateway electronics, other electronics, and the lack of ventilation inside an enclosure can cause the operating temperature of the Edge Gateway to be greater than the outside ambient temperature. Continuous operation of the Edge Gateway at temperatures greater than 60⁰C (140°F) may result in an increased failure rate and a reduction of the product life. Ensure that the maximum operating temperature of the Edge Gateway when placed inside an enclosure is 60⁰C (140°F) or less.
- Always ensure that the available power source matches the required input power of the Edge Gateway. Check the input power markings next to power connector(s) before making connections. The 12-57 VDC (1.08-0.23 A) or the PoE power source must be compliant with local Electrical Codes and Regulations.
- To ensure the protection provided by the Edge Gateway is not impaired, do not use or install the system in any manner other than what is specified in this manual.
- If a battery is included as part of the system or network, the battery must be installed within an appropriate enclosure in accordance with local fire and electrical codes and laws.
- The system is for installation in a suitable industrial enclosure (provides electrical, mechanical, and fire hazard protection).
- The core module only can be wall-mounted (without the need for an additional enclosure).
Electrical
- Inspect portable cord-and-plug connected equipment, extension cords, power bars, and electrical fittings for damage or wear before each use. Repair or replace damaged equipment immediately.
- Use extension cords or equipment that is rated for the level of amperage or wattage that you are using.
- Be aware that unusually warm or hot outlets or cords may be a sign that unsafe wiring conditions exists. Unplug any cords or extension cords from these outlets and do not use until a qualified electrician has checked the wiring.
- Switch all products OFF before connecting them to a power supply.
Cleaning
- Do not clean tools or products with flammable or toxic solvents.
Technical Data
This section describes all technical data of the following products contained in the TeamViewer IoT Starter Kit:
Power over Ethernet Wall Plug Adapter
The Power over Ethernet Wall Plug Adapter (POE) is used to connect the Edge Gateway with a power supply (e.g. wall socket).
See Attached Files to download the full documentation.
Safety Approvals
- cUL / UL
- CE
- SAA
- C-Tick
Diagram

Dimensions and Weight
- Length: 80mm (3.15in)
- Width: 45mm (1.77in)
- Height: 33mm (1.29in)
- Weight: 95g (3.35oz.)
- Data in/Output Connector: RJ45
Output Connections
- Output Connection (Standard Model): +pin 4, 5 / -pins 7, 8
- Output Connection (GigabitModel): +pin 3, 6 / -pins 1, 2
Output Specifications
DC Output Voltage | Load Min. | Load Max. | Regulation Line | Regulation Load | Output Power |
---|---|---|---|---|---|
56 V | 0 A | 0.275 A | ±4 % | ±4 % | 15.4 W |
Characteristics
Input
AC Input Voltage Range | 90 to 264 VAC |
AC Input Voltage Rating | 100 to 240 VAC |
AC Input Current | 0.8 A (RMS) maximum for 90 VAC 0.5 A (RMS) maximum for 240 VAC |
Leakage Current | 0.25 mA maximum @ 254 VAC, 60 Hz |
AC Input Frequency | 47-63 Hz |
AC Inrush Current | 15 A (RMS) maximum for 115 VAC 20 A (RMS) maximum for 230 VAC |
Output
Total Output Power | 15.4 W |
Ripple and Regulation | 150 mV maximum |
Efficiency | 75 % (typical) at maximum load, and 120 VAC, 60 Hz |
Transient O/P Voltage Protection | 60 V maximum at switch on/off at any AC line phase |
Hold-up time | 16 mS minimum at maximum load and 120 VAC, 60 Hz |
Environmental
Temperature | Operation: 0 to +40 °C Non-operation: -25 to +65 °C |
Humidity | Operation: 5 to 90 % |
EMC | FCC Part 15 Class B EN55022 Class B |
Immunity EN50082-1 | ESD: EN61000-4-2. Level 3 RS: EN61000-4-3. Level 2 EFT: EN61000-4-4. Level 2 Surge: EN61000-4-5. Level 3 CS: EN61000-4-6. Level 2 Voltage Dips EN61000-4-11 Harmonic: EN61000-3-2 Class A |
Isolation Test | Primary to Secondary: 3000 VAC for 1 second 10 mA |
Insulation Resistance | Primary to Secondary: >10 M OHM 500 VDC |
Attached Files
- Download (PDF): PHIHONG Single Port Power over Ethernet Wall Plug Adapter
Dell Edge Gateway
The Dell Edge Gateway 3001 is the preconfigured edge device of your TeamViewer IoT Starter Kit. It enables you to collect, secure, analyze, and act on data from multiple devices and sensors.
See Attached Files to download the full documentation.
Safety Approvals
- CE
- complies with FCC radiation exposure limits
- complies with IC radiation exposure limits
Dimensions and Weight
Heigth | 125 mm (4.92 in) |
Width | 125 mm (4.92 in) |
Depth | 51 mm (2 in) |
Weight | 1 kg (2.20 lb) |
Volume | 0.80 L |
Operating Conditions
Operating temperature range | –With 0.7 m/s airflow: –30 °C to 75 °C (–22 °F to 167 °F) –Without airflow: –30 °C to 70 °C (–22 °F to 158 °F) |
Non-operating temperature range | With a maximum temperature gradation of 15 °C (59 °F) per hour: –With 0.7 m/s airflow: –40 °C to 85 °C (–40 °F to 185 °F) –Without airflow: –40 °C to 85 °C (–40 °F to 185 °F) |
Humidity range (non-condensing) | Operating: 10 % to 90 % –With a maximum temperature gradation of 15 °C (59 °F) per hour Non-operating: 5 % to 95 % –With a maximum temperature gradation of 20 °C (68 °F) per hour |
IP Rating | IP 50 |
DC Supply Voltage | 12/24 V vehicle power system (12 V ~ 57 V wide DC input, ISO 7637-2 & SAE J1113 compliant) |
Recommended DC Power Supply | 17 W (20 % derating) |
PoE Supply Voltage | 48 V DC |
Recommended PoE Power Supply | 12.95 W minimum according to Alternative A of IEEE 802.3af-2003 (standard) |
Radio Frequency (RF) Exposure
This equipment complies with FCC and IC radiation exposure limits for an uncontrolled environment. This equipment should be installed and operated with a minimum distance of 20 cm between the active transceiver and your body.
Use only approved antenna(s). Non-approved antenna(s) may produce spurious or excessive RF transmitting power which may lead to a violation of FCC/IC limits.
Attached Files
- Download (PDF): Dell Edge Gateway 3000 Series Technical Guidebook
- Download (PDF): Dell’s Chemical Use Policy
Bosch Sensor XDK110
The Bosch XDK 110 Sensor Kit is a freely programmable sensor which provides eight different measurements. For the TeamViewer IoT Starter Kit it is programmed to send all to the TeamViewer IoT agent which then are visible and usable in the TeamViewer IoT Solution.
See Attached Files to download the full documentation.
Safety Approvals
- CE
Main Components
- Bluetooth 4.0 low energy IEEE 802.15.1Wireless LAN IEEE 802.11b/g/n
- 32-Bit microcontroller (ARM Cortex M3), 1MB Flash, 128 kB RAM
- Internal Li-Ion rechargeable battery 560 mAh
- Integrated antennas
- Built-in sensors: accelerometer, acoustic sensor, digital light sensor, gyroscope, humidity sensor, magnetometer, pressure sensor, temperature sensor
Operating Conditions (Indoor use)
Operating temperature range | -20 °C … 60 °C, (0 °C … 45 °C for battery charging) |
Storage temperature range | -20 °C … 60 °C |
Humidity range | 10 … 90 %rH (non-condensing) |
IP Rating | IP 30 (IEC 60529) |
Supply Voltage | 5 V DC |
The battery lifetime of the sensor is up to 24 hours depending on environmental conditions like temperature.
Measurement Ranges
Accelerometer | ±2 … ±16 g (programmable) |
Gyroscope | ±125 °/s … ±2000 °/s (programmable) |
Magnetic field strength | ±1300 μT (X,Y-Axis); ±2500 μT (Z-Axis) |
Light sensor | 0.045 lux … 188,000 lux ; 22-bit |
Temperature | -20 °C … 60 °C [limited by operating system conditions] |
Pressure | 300 … 1100 hPa |
Humidity | 10 … 90 %rH (non-condensing) [limited by operating system conditions] |
Sampling Rate
Accelerometer BMA280 | 2000 Hz |
Gyroscope BMG160 | 2000 Hz |
Magnetometer BMM150 | 300 Hz |
Hum./Press./Temp. BME280 | 182 Hz |
Inertial Measurement Unit BMI160 | 1600 Hz (Accelerometer) 3200 Hz (Gyroscope) |
LED Indicators
The sensor has 4 LEDs on the top side. Each LED indicates a different status.
LED | Description |
---|---|
Green | Charging indicator. Light is on when the sensor is connected to a power source and the internal battery is charging. |
Yellow | Flashes when the sensor data is transmitted to the edge device. |
Orange | Blinking while it tries to connect to the edge device. |
Red | Blinking while the sensor is connecting to the TeamViewer IoT Service. Light is on when it is connected. |

Troubleshoot
The LED patterns indicate problems with the sensor. Heed the table below and take action.
Pattern | Description | Action |
---|---|---|
No LED is on | The internal battery is empty. | Connect the sensor to a power source. |
Green LED is off, but the power source is connected | The battery is fully charged. | |
Orange LED is constantly blinking | The edge device is not powered. | Connect the edge device to a power source and restart the edge device. |
The edge device is powered. | Move the sensor closer to the edge device and restart the edge device and the sensor. | |
Red LED is on, Yellow LED not flashing | No data is received from the sensor on the dashboards. | Restart the sensor. |
Attached Files
- Download (PDF): Bosch Cross Domain Development Kit | XDK
Set up the Starter Kit
Before you begin any of the procedures in this section heed the information in the section Safety.
What you will
Make sure that you have prepared the following points:
- Your TeamViewer credentials. You received them per E-Mail upon ordering the Starter Kit.
- The TeamViewer Client is installed.
Visit https://www.teamviewer.com/ to download the application. - A working local network with router.
- Multiple USB power supplies – one for each sensor (5 V, 3 A).
The Starter Kit arrives in a “ready-to-use” state. No further installation of software is needed.
Set up the Starter Kit

Set up the Dell 3001 edge gateway and ensure it is connected to an internet router:
- Mount the Wi-Fi antenna
to the right side of the gateway
.
- Connect your router with one Ethernet cable
.
- Connect that Ethernet cable with the IN female connector of the included PoE power supply
.
- Connect the OUT connector of the PoE supply
via the second Ethernet cable with the Dell 3001 edge gateway
.
- Plug the PoE supply
into your wall socket.
Connect the Sensors to the Starter Kit

- Choose a proper location for your Bosch XDK110 sensors
.
- Connect each sensor with a USB cable
and plug them into USB power supplies (not included).
- Switch the sensors ON
. Your Starter Kit is now active and pushes sensor data to the TeamViewer IoT Cloud.
The Starter Kit is now ready to use. Use the IoT Management Console to verify it is working correctly.
Enable GPS receiver on the Starter Kit
The TeamViewer IoT Starter Kit contains a built-in GPS receiver.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- Make sure that the WiFi antenna is connected to the edge device (see Setup the Starter Kit).
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- Access the Edge Device via Remote Terminal.
Enable
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Install the needed dependencies for python. In the terminal type in the following commands and press return:
sudo apt-get update
sudo apt-get install -y python3-pip
- Download the Starter Kit configuration package. In the terminal type in the following commands and press return:
wget -q https://download.teamviewer-iot.com/teamviewer-iot-kit/v2.0.1/teamviewer_iot_kit-2.0.1-py3-none-any.whl
sudo -H pip3 install teamviewer_iot_kit-2.0.1-py3-none-any.whl
- Configure the location receiver. In the terminal type in the following command and press return.
sudo teamviewer-iot-kit -e location_receiver
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- Check that you enabled the GPS. From the left menu select Inventory and on the right side from the drop-down-menu select Metrics.
After the GPS receiver has been enabled you can visualize its data with a widget.
More Information
- The GPS data is NMEA 0183 formatted and packed into a JSON object called NMEA 0183: TPV. In the “Metrics” tab you will find the data in the raw format as well as dedicated metrics for each parameter.
- The location receiver provides the NMEA 0183: SKY object as well which is not presented in the Starter Kit. From that object, two metrics are being calculated and presented separately with the names In View and Used.
The table represents all the available parameters/metrics and their descriptions of the location receiver.
Metric/Parameter | Always | Datatype | Description |
---|---|---|---|
Time | No | string | Time/date stamp in ISO8601 format, UTC. May have a fractional part of up to .001sec precision. May be absent if the mode is not 2 or 3. |
NMEA 0183: TPV | Yes | string | NMEA 0183 formatted JSON data of the TPV class. |
Mode | Yes | numeric | NMEA mode: %d, 0=no mode value yet seen, 1=no fix, 2=2D, 3=3D. |
Estimated timestamp error | No | numeric | Estimated timestamp error in seconds. Present if time is present. |
Latitude | No | numeric | Latitude in degrees: +/- signifies North/South. Present when the mode is 2 or 3. |
Estimated latitude error | No | numeric | Latitude error estimate in meters. Present if the mode is 2 or 3 and DOPs can be calculated from the satellite view. |
Longitude | No | numeric | Longitude in degrees: +/- signifies East/West. Present when the mode is 2 or 3. |
Estimated longitude error | No | numeric | Longitude error estimate in meters. Present if the mode is 2D or 3D and DOPs can be calculated from the satellite view. |
Altitude | No | numeric | Altitude in meters. Present if the mode is 3. |
Estimated vertical error | No | numeric | Estimated vertical error in meters. Present if the mode is 3 and DOPs can be calculated from the satellite view. |
Speed | No | numeric | Speed over ground, meters per second. |
Estimated speed error | No | numeric | Estimated speed error in meters per second. Present for consecutive 2D or 3D fixes. |
Climb | No | numeric | Climb (positive) or sink (negative) rate, meters per second. |
Estimated vertical error | No | numeric | Estimated climb error in meters per second. Present if consecutive 3D fixes. |
Track | No | numeric | Course over ground, degrees from true north. |
In View | No | numeric | Number of satellites which are in view of the location receiver. |
Used | No | numeric | Number of satellites to which the location receiver is locked. |
Enable mobile internet connectivity with SIM-Card on the Starter Kit
The edge device of the TeamViewer IoT Starter Kit has a built-in modem (4G).
What you will need
Make sure that you have prepared the following points:
- Make sure that the Wi-Fi antenna is connected to the edge device (see Set up the Starter Kit).
- An unlocked SIM card to connect with mobile internet.
- The Access Point Name (APN) of your service provider.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- Access the Edge Device via Remote Terminal.
- Basic knowledge of the editor nano.
Unlock the SIM card with the edge device
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Edit the SIM configuration. In the terminal type in the following command and press return.
sudo nano /etc/systemd/system/pinunlock.service
- When the nano editor opens, copy and paste the following text. Replace **** with your pin.
[Unit]
Description=Sim pin unlock
After=network.target
Requires=snap.modem-manager.modemmanager.service
[Service]
Type=idle
ExecStartPre=/bin/sleep 60
ExecStart=/snap/bin/mmcli -i 0 --pin=****
[Install]
WantedBy=multi-user.target
- Save the file and exit nano.
Enable mobile internet connectivity
- Unlock the SIM card.
- Insert the SIM card into the edge device.

- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Check the type of the inbuilt modem. In the terminal type in the following command and press return.
sudo mmcli -L
- Depending on the output of the last command use one of the following instructions:
X7 LTE DW5818 modem
Type in each command and press enter. Replace ConnectionName
with a meaningful name for the connection. Replace APN
with an APN of your service provider.
sudo nmcli c add type gsm ifname cdc-wdm0 con-name ConnecctionName> apn
sudo reboot
MBIM modem
Type in each command and press enter. Replace ConnectionName
with a meaningful name for the connection. Replace APN
with an APN of your service provider.
sudo mmcli -m 0
sudo nmcli c add con-name type gsm ifname cdc-wdm0 apn
sudo nmcli r wwan
sudo nmcli c up
sudo reboot
The edge device reboots. To check the mobile internet connectivity disconnect the edge device from WLAN and LAN and access the edge device remotely.
Reassign the Starter Kit to another TeamViewer Account
Use this procedure to move the TeamViewer Starter Kit from the preassigned account to another TeamViewer Account.
This procedure contains 3 basic steps:
- Unmanage and Reassign the Starter Kit
- Reconfigure the Digital Inputs/Outputs
- Apply the Reconfiguration and Restart
What you will need
Make sure that you have prepared the following points:
- Your login credentials for the Starter Kit (user name, and password).
- You created a new TeamViewer Account (see https://teamviewer-iot.com/).
- You have the IP Address of the Edge Device / IoT Agent.
- A tool to access the Starter Kit remotely via ssh (e.g. Putty).
- Basic knowledge of the editor nano.
Unmanage and Reassign the Starter Kit
- Log in to the Starter Kit and use your credentials by using a ssh-tool.
- Unmanage the Starter Kit. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent unmanage
- Assign the Starter Kit to the new TeamViewer Account. In the terminal, type in the following command and press return. Use your new TeamViewer Account credentials when prompted.
sudo teamviewer-iot-agent setup
- Restore the configuration of the Monitoring Agent for the Bosch XDK sensors. In the terminal type in the following commands and press return.
sudo teamviewer-iot-agent disable system-health
sudo su
sudo cat /var/lib/teamviewer-iot-agent/system_monitors_kit.conf > /var/lib/teamviewer-iot-agent/system_monitors.conf
sudo teamviewer-iot-agent enable system-health
Reconfigure the Digital Inputs/Outputs
To use the Digital Inputs/Outputs (DIOs) of the Starter Kit with the TeamViewer IoT Agent, you need to create corresponding Sensors/Metrics.
- To log in to the IoT Management Console, open a web browser. Navigate to the IP address of the Starter Kit (obtained by Get the IP Address of the Edge Device / IoT Agent).
- From the left menu select API Clients.

- As client name type in
Digital Out
then click Create.

- Click Manage API Client.
- Click New Sensor and name it
Digital Outputs
. - Click
to add 8 metrics. Name the metrics
Out 0
toOut 7
. Set each Value Type toBool
and set each Display Unit toI/O
. For example:

- Optional: When a metric becomes superfluous, click
to remove it.
- To finish click Create.
You will be provided with new connector, sensor and metric Ids. For example:

Keep this window open. You need these Ids in the step Apply the Reconfiguration and Restart.
Apply the Reconfiguration and Restart
You need the provided Ids from the step Unmanage and Reassign the Starter Kit.
- Access the Starter Kit remotely (Access the Edge Device via Remote Terminal).
- Open the
teamviewer_gpio.py
file with the editor nano. In the terminal type in the following command and press return.
sudo nano teamviewer_gpio.py
- Replace the
client_id
,sensor_id
andOut0_id
toOut7_id
on the top of the file with corresponding Ids obtained in step Unmanage and Reassign the Starter Kit. For example:
client_id = "5385da5e6c854abc8d65c0c80b5d79e9"
sensor_id = "e6218136a1144c8e9d117dc55a24297c"
Out0_id = "4ee43a05e70a4a97a20fe13e6baf286e"
Out1_id = "58f38038ea0b48519332a190688a325e"
Out2_id = "cf1aceeb62f3479fb07d81213dd21269"
Out3_id = "05f12c7970704172a374f777bedc83ef"
Out4_id = "d67d349dba2347699096bc0989f638c8"
Out5_id = "8dac154dfeef4d5aa4ec33b39a675ee4"
Out6_id = "cefdd235b1c243a2b6f7d89a6ce639e3"
Out7_id = "50835cca2df34f19bb13b8a5e0873ed2"

- Save the file and close the nano editor.
- Restart the service for the General Purpose Inputs/Outputs (GPIOs). In the terminal, type in the following command and press return.
sudo service teamviewer_gpio restart
- Verify that the DIOs are configured correctly. In the IoT Management Console navigate to Dashboard.
- Pin (see Add a Widget) the
Out0_id
toOut7_id
metrics to the dashboard. Configure each as a Control with Toggle-Switch function. Usetrue
andfalse
for the control values. For example:

Disposal
In August of 2005, the European Union (EU) implemented the EU WEEE Directive 2002/96/EC and later the WEEE Recast Directive 2012/19/EU requiring Producers of electronic and electrical equipment (EEE) to manage and finance the collection, reuse, recycling and to appropriately treat WEEE that the Producer places on the EU market after August 13, 2005. The goal of this directive is to minimize the volume of electrical and electronic waste disposal and to encourage re-use and recycling at the end of life.
TeamViewer GmbH has met its national obligations to the EU WEEE Directive by registering in those countries to which TeamViewer GmbH is an importer. TeamViewer GmbH has also elected to join WEEE Compliance Schemes in some countries to help manage customer returns at end-of-life.
If you have purchased TeamViewer GmbH-branded electrical or electronic products in the EU and are intending to discard these products at the end of their useful life, please do not dispose of them with your other household or municipal waste. TeamViewer GmbH has labeled its branded electronic products with the WEEE Symbol (see figure) to alert our customers that products bearing this label should not be disposed of in a landfill or with municipal or household waste in the EU. Instead, please be aware that TeamViewer GmbH is making a return and collection system available to you, free of transportation and recycling costs, for discarding these products.
Products in the Starter Kit
Heed all information about disposal of each product in the Starter Kit.
Installation
This section describes the step-by-step installation via the TeamViewer IoT Management Console.
For information on installing the TeamViewer IoT Solution on designated hardware see Installation on designated Hardware.
System Requirements
The TeamViewer IoT solution has been verified to be compatible with the following platforms / operating systems.
TeamViewer IoT Agent
Platform | Operating System / Kernel | Example Devices | TeamViewer IoT Agent Version |
---|---|---|---|
ARMv7 HF | Raspbian Jessie 4.9 Raspbian Stretch 4.9 Raspbian Stretch 4.14 | Raspberry PI II,III Samsung Artik 530S | 1.1.46- Latest |
ARMv7 el | Raspbian Jessie 4.9 Raspbian Stretch 4.9 Raspbian Stretch 4.14 | 1.1.102- Latest | |
ARMv5 HF | Raspbian Jessie 4.9 Raspbian Stretch 4.9 Raspbian Stretch 4.14 | Raspberry PI | 1.1.46- Latest |
ARMv5 el | Raspbian Jessie 4.9 Raspbian Stretch 4.9 Raspbian Stretch 4.14 | 1.1.102- Latest | |
Intel x86-64 (AMD64) | Ubuntu 16.04 LTS Ubuntu 17.10.1 CentOS 7.5.1804 Windows 10 IoT Enterprise 2016 LTSB Windows 10 IoT Enterprise 2019 LTSC | Intel 64 Bit PCs | 1.1.102- Latest |
Intel x86-32 (i386) | Ubuntu 16.04 LTS Ubuntu 17.10.1 CentOS 7.5.1804 Windows 10 IoT Enterprise 2016 LTSB Windows 10 IoT Enterprise 2019 LTSC | Intel 32 Bit PCs | 1.1.102- Latest |
TeamViewer IoT Cloud – Browser Compatibility
Browser | Version |
---|---|
Chrome | versions released within last 6 months |
Firefox | versions released within last 6 months |
Edge | versions released within last 6 months |
Safari | versions released within last 6 months |
TeamViewer IoT Client for Remote Access
TeamViewer IoT Remote Access is currently available via TeamViewer Client v13.1 (or newer) for Windows.
Internet Explorer 11 (or newer) is required.
Install the IoT Agent on a Device
The TeamViewer IoT Agent is needed to enable remote access to devices via internet. Installing it is a prerequisite to all remote access and monitoring processes.
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Inventory then click Add Device.
- Depending on your operating system, select the correct installation package.

- Select a Group or create a new Group for your device.
- Follow one of these steps depending on your previously selected operating system:
Operating System | Steps |
---|---|
GNU/Linux and Other | Connect to the device and execute the displayed code. Follow the instructions while installing. |
Windows | Download TeamViewer IoT for Windows and install the software. Follow the instructions while installing. |
The device is automatically added to the Inventory and can be identified by its hostname. It is placed in the selected Group.
Watch How to Set Up Your First Endpoint
This 2-minute video shows you just how simple it is to connect your first IoT Endpoint with your TeamViewer IoT account.
Installation on designated Hardware
This section describes the installation of the TeamViewer IoT Solution on designated hardware like:
Easy Installation on Raspberry devices
The section describes the installation of the TeamViewer IoT Solution on an empty Raspberry (without operating system).
What you will need
Make sure that you have prepared the following points:
- A Raspberry (see System Requirements) connected to keyboard and monitor.
- A properly formatted micro SD card (Minimum 32 GB).
- Your TeamViewer credentials.
- A disk image creation tool is installed on your local PC (e.g. Win32 Disk Imager).
- The Raspberry is connected to the internet.
Setup
- Download one of the following archives:
- Extract the image from the archive.
- Use the disk image creation tool to write the image to the micro SD card.

- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Inventory.
- On the left side from the drop-down-menu Add select Device.
- Select the operating system Linux.
- Select the distribution Debian.
- Select your Raspberry version.

- Select Create an OS image with TeamViewer IoT.
- Configure the operating system:
- Input the Host Name
- Optional: Input the Wi-Fi Network Name (SSID) the Wi-Fi Password and select a Wi-Fi Country
- Select a Group from your Contacts List.

- Click Download Configuration and save the archive.
- Extract the contents of the archive into the
/boot
folder on the micro SD card.

- Insert the micro SD card into the Raspberry.
- Boot the Raspberry.
Set up a Yocto Image for Raspberry
The Yocto Project enables the creation of custom Linux-based systems for embedded devices.
The TeamViewer IoT Agent will run on Yocto Linux devices given minimum requirements and configurations are met.
This article is an example how to build Yocto Image with TeamViewer IoT Agent for Raspberry using the layer provided in GitHub.
For more information visit Information see https://github.com/teamviewer/meta-teamviewer-iot-agent.
What you will need
Make sure that you have prepared the following points:
- The edge device is set up with a TeamViewer IoT Agent.
- The edge device is connected to the internet.
- Your PC is set up with the TeamViewer Client.
- Your login credentials for the edge device (user name, and password).
- Installed dependencies (based on operating system of Raspberry). For more information see Required Packages for the Build Host.
Setup
- On your PC open the TeamViewer Client and log in.
- On the left side open the Computers & Contacts tab.
- Double-click the device.
The Control Window opens and the connection will be established. - In the Control Window on the top open the Remote Terminal tab.
- Type in your user password and press enter.
- Clone the poky project’s zeus branch. In the terminal type in the following command and press return.
git clone --branch=zeus git://git.yoctoproject.org/poky.git && cd poky
- Clone the Raspberry and the TeamViewer IoT Agent meta-packages. In the terminal type in the following commands and press return:
git clone --branch=zeus git://git.yoctoproject.org/meta-raspberrypi
git clone --branch=zeus https://github.com/teamviewer/meta-teamviewer-iot-agent
- Configure the environment. In the terminal type in the following command and press return.
source oe-init-build-env
- Add layers to bitbake. In the terminal type in the following commands and press return:
bitbake-layers add-layer ../meta-raspberrypi
bitbake-layers add-layer ../meta-teamviewer-iot-agent
- Change the target machine on the configuration file and set init manager to systemd. In the terminal type in the following commands and press return:
echo 'MACHINE = "raspberrypi3"' >> conf/local.conf
echo 'DL_DIR = "${TOPDIR}/downloads"' >> conf/local.conf
echo 'CONNECTIVITY_CHECK_URIS = "https://www.google.com/"' >> conf/local.conf
echo '#Set Systemd to Init Manager' >> conf/local.conf
echo 'DISTRO_FEATURES_append = " systemd"' >> conf/local.conf
echo 'DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"' >> conf/local.conf
echo 'VIRTUAL-RUNTIME_init_manager = "systemd"' >> conf/local.co
- Append ssh and TeamViewer IoT Agent layer. In the terminal type in the following commands and press return. Type in user name and password when prompted.
echo '#Append TeamViewer IoT agent layer' >> conf/local.conf
echo 'IMAGE_INSTALL_append += " teamviewer-iot-agent"' >> conf/local.conf
echo 'IMAGE_ROOTFS_EXTRA_SPACE ?= "50000"' >> conf/local.conf
echo 'CORE_IMAGE_EXTRA_INSTALL += "openssh"' >> conf/local.conf
echo 'INHERIT += "extrausers"' >> conf/local.conf
echo 'EXTRA_USERS_PARAMS = "usermod -P raspberry root;"' >> conf/local.conf
- Optional: Install Xvfb server (see Set up the Remote Screen via X11) on the edge device to be able to use X11 features. In the terminal type in the following command and press return. Type in user name and password when prompted.
echo '#X11' >> conf/local.conf
echo 'DISTRO_FEATURES_append += " X11"' >> conf/local.conf
- Optional: Enable Edge Management on the edge device. In the terminal type in the following commands and press return. Type in user name and password when prompted.
git clone --branch=zeus git://git.openembedded.org/meta-openembedded ../meta-openembedded
git clone --branch=zeus git://git.yoctoproject.org/meta-virtualization ../meta-virtualization
sed -i '$d' conf/bblayers.conf
echo ' ${TOPDIR}/../meta-openembedded/meta-oe ' >> conf/bblayers.conf
echo ' ${TOPDIR}/../meta-openembedded/meta-multimedia ' >> conf/bblayers.conf
echo ' ${TOPDIR}/../meta-openembedded/meta-networking ' >> conf/bblayers.conf
echo ' ${TOPDIR}/../meta-openembedded/meta-python ' >> conf/bblayers.conf
echo ' ${TOPDIR}/../meta-openembedded/meta-filesystems ' >> conf/bblayers.conf
echo ' ${TOPDIR}/../meta-virtualization ' >> conf/bblayers.conf
echo ' "' >> conf/bblayers.conf
bitbake-layers show-layers
echo '#Docker layer for supporting Edge services' >> conf/local.conf
echo 'DISTRO_FEATURES_append += " virtualization"' >> conf/local.conf
echo 'IMAGE_ROOTFS_EXTRA_SPACE = "400000"' >> conf/local.conf
- Start the build type. In the terminal type in the following command and press return. Type in user name and password when prompted.
bitbake core-image-minimal
You can find target image tmp/deploy/images/raspberrypi3/
here with core-image-minimal-raspberrypi3 prefix. In case of failure or new bash (terminal) creation, after all steps executed you need to go to project’s directory and start again from step 8 Configure Environment.
IoT Agent on Linux
The TeamViewer IoT Agent is the software which connects your edge device with your TeamViewer account.
The TeamViewer IoT Agent is needed to enable remote access and other services to devices via internet. Installing the agent is a prerequisite to all remote access and monitoring processes.
Once set up and assigned to a TeamViewer account you can access the IoT Agent and the edge device remotely.
For more information see:
Check the Version of the IoT Agent
In case you want to contact the TeamViewer Support, it is helpful to know the concerning agent version.
What you will need
- The edge device is set up with a TeamViewer IoT Agent.
- The edge device is connected to the internet.
- Your PC is set up with the TeamViewer Client.
- Your login credentials for the edge device (user name, and password).
Access
- On your PC open the TeamViewer Client and log in.
- On the left side open the Computers & Contacts tab.
- Double-click the device.
The Control Window opens and the connection will be established. - In the Control Window on the top open the Remote Terminal tab.
- Type in your user password and press enter.
- Identify the version of your agent. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent info
Update the IoT Agent
The latest version of the TeamViewer IoT Agent will be available for download via TeamViewer IoT Cloud.
What you will need
Make sure that you have prepared the following points:
Automatic Update
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Get the most recent repository information. In the terminal type in the following command and press return.
sudo -E apt-get update
- Download and install the update. In the terminal type in the following command and press return.
sudo -E apt-get install teamviewer-iot-agent
The new version replaces the existing IoT Agent. It will start automatically.
Manual Update
Follow the steps outlined in installation.
The new version replaces the existing IoT Agent. It will start automatically.
Get the IP Address of the Edge Device / IoT Agent
This procedure is helpful when you need the IP address of your Edge Device / IoT Agent.
What you will need
Make sure that you have prepared the following points:
Get the IP Address
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- In the terminal type in the following command and press return.
ifconfig
The IP address is displayed in the section eth0. For example inet addr:192.168.1.128
:
eth0 Link encap:Ethernet HWaddr 00:0F:20:CF:8B:42
inet addr:192.168.1.128 Bcast: Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2472694671 errors:1 dropped:0 overruns:0 frame:0
TX packets:44641779 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
Mass Remote Configuration of IoT Agents
The Mass Remote Configuration allows you to assign IoT Agent settings from one Edge Device to one or more other Edge Devices. For example, enabling the Edge Management on all your devices without connecting to them single-handedly.
Follow the 2 basic steps:
- Create a Settings Template.
- Assign the Settings Template to Edge Devices.
You also can edit existing Settings Templates and unassign or change groups or single Edge Devices.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is connected to the internet.
- All edge devices are set up with a TeamViewer IoT Agent (Version 2.9 or newer).
Create a Settings Template
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Settings Template.
- On the right side click Create Template.

- Type in a unique template name.
- Click
to add a configuration. (When a configuration becomes superfluous click
to remove it.)
- Adjust the configuration to your requirements.

- To finish click Create.
Assign the Settings Template to Edge Devices
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Settings Template.
- On the right side choose the Settings Template you want to assign to other Edge Devices. From the dropdown menu select Assign.

- In the popup select the groups or single Edge Devices which you want to receive the Settings Template.

- To send the Settings Template to the Edge Devices click Save.
Depending on the edge device performance, you need to allow some time for the Settings Template to assign to the device.
Upon assigning to a group, all eligible devices within the group will receive the template assignment as well.
Devices with unsupported IoT Agent Version as well as shared devices will be visible in the list, but you will receive an appropriate warning message.
Edit an existing Settings Template
At any time, you can edit the settings for a template. After each modification, all assigned devices will receive an updated assignment.
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Settings Template.
- On the right side choose the Settings Template you want to edit. From the dropdown menu select Edit.
- Adjust the configuration to your requirements.
- To finish click Save.
Depending on the edge device performance, you need to allow some time for the Settings Template to assign to the device.
Unassign Settings Template from Edge Devices
At any time, you can modify the settings for a template. After each modification, all assigned devices will receive an updated assignment.
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Settings Template.
- On the right side choose the Settings Template you want to edit. From the dropdown menu select Assign.

- In the popup remove the groups or single Edge Devices from the selection which you want to unassign.

- To finish click Save.
Changing Device Group to Receive Settings Template
Once a Settings Template is assigned to a group, user can assign Group’s template to any edge device by adding it to that group.
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Inventory.
- On the right side choose the Edge Device for which you want to change its group. From the dropdown menu select Properties.

- In the popup from the dropdown menu select the new group.
- Activate the field Inherit Group Setting Configurations.

- To finish click Save.
Depending on the edge device performance, you need to allow some time for the Settings Template to assign to the device.
Create an Assignment Token
TeamViewer IoT cloud offers assignments via token functionality which can be used both for single device assignment and for assigning hundreds or thousands of devices in a secure way.
Follow the steps below to create an TeamViewer IoT assignment token:
- Sign in to the TeamViewer IoT Management Console with your IoT account credentials
- In the top navigation, click the chevron for User Settings and choose Assignment token
- Copy the created token to your clipboard by clicking the “Copy/Paste” icon
Important:
- Please keep in mind that with each renewal, existing tokens will become invalid. This may have severe impact on your running systems depending on these tokens.
- Do not share your tokens or make them publicly available! Tokens are vital to your infrastructure and its security.
Assigning Edge Devices to Your TeamViewer Account at scale (Mass Deployment)
The journey of the IoT user starts from assigning his edge device to the cloud and the assignment process should be as simple as possible.
The assignment of a single device is mostly done for testing purposes or when evaluating the solution. The time spent on the assignment will not have a significant impact. But when dealing with a big project mostly you have a bunch of devices that should be assigned to the account. This procedure will shorten the time spent on the assignment process up to even without touching the device.
The TeamViewer IoT Cloud offers assignments via token functionality which can be used both for single device assignment and for assigning hundreds or thousands of devices securely.
How it works
For each TeamViewer Account, a unique assignment token is being generated. The assignment token can be used only for the device assignment to the account.
During the assignment process, the device connects to TeamViewer IoT Cloud and presents its assignment token. The assignment service receives the token and connects the device to the account to which the token belongs.
Starting from that moment the edge device continues to work with the assigned account.
What you will need
Make sure that you have prepared the following points:
- The edge device is set up with a TeamViewer IoT Agent.
- Your login credentials for the edge device (user name, and password).
- Your TeamViewer credentials.
- A tool to access the edge device remotely via ssh (e.g. Putty).
Assign the Edge Devices to Your TeamViewer Account
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the top menu click Assignment token.

- In the popup click Reveal to see the token.

- Log in to the Edge Device and use your credentials by using a ssh-tool.
- Assign the Edge Device to your TeamViewer Account. In the terminal type in the following command and press return. Replace
TOKEN
with the token from the previous step.
sudo teamviewer-iot-agent assign -t TOKEN --accept-license
Set up Remote Client to integrate your IoT Network
The TeamViewer IoT Agent acts as a centralized hub bringing the TeamViewer IoT solution to your IoT network. To securely integrate your IoT devices and sensors, you must create trusted Clients (see TeamViewer IoT Agent MQTT API) 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 procedure will illustrate how to enable Remote Clients and how to use the TeamViewer IoT Agent MQTT API to remotely create clients and send your sensor data for monitoring and visualization.
What you will need
Make sure that you have prepared the following points:
Setup
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Enable Remote Connections. In the terminal type in the following command and press return.
teamviewer-iot-agent enable remoteClientProvision
- From your Edge Device, create a client by generating a trusted certificate.
- For more information see TeamViewer IoT Agent MQTT API.
- Replace
localhost
with thehostname
of the device running the TeamViewer IoT Agent in the publish/subscribe examples. - Copy the Trusted CA Cert
TeamViewerAuthority.crt
, referenced in the publish/subscribe examples, to the Edge Device.
- Once your Client 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. In the terminal type in the following command and press return.
teamviewer-iot-agent disable remoteClientProvision
- Enable remote data for clients to securely connect to the TeamViewer IoT Agent to send data. In the terminal type in the following command and press return.
teamviewer-iot-agent enable remoteData
- From your Edge Device, securely register metrics and push data to the TeamViewer IoT Agent.
- For more information see TeamViewer IoT Agent MQTT API.
- Replace
localhost
with thehostname
of the device running the TeamViewer IoT Agent in the publish/subscribe examples.
- To provision additional remote clients enable the Remote Client Provisioning. In the terminal type in the following command and press return.
teamviewer-iot-agent enable remoteClientProvision
Disable Remote Client Provisioning
For security purposes, 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.
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- In the terminal type in the following command and press return.
teamviewer-iot-agent disable remoteClientProvision
Disable Remote Data
For security purposes, when remote connections are no longer needed for Clients to send data, disable Remote Data.
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- In the terminal type in the following command and press return.
teamviewer-iot-agent disable remoteData
Disable Remote Clients
For security purposes, when remote connections are no longer needed for client provisioning or sending data, disable all Remote Connections.
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- In the terminal type in the following command and press return.
teamviewer-iot-agent disable remoteClients
IoT Agent on FreeBSD
TeamViewer IoT offers a new supporting platform: TeamViewer IoT Agent on FreeBSD.
Prerequisites for Your IoT Installation
- TeamViewer IoT version 2.19.5 or higher is installed
- You have created an assignment token
About FreeBSD / System Requirements
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD). According to FreeBSD policies, packages are built by admins for their machines.
This operating system is currently only supported by the teamviewer-iot-agent.
Currently, we support the following connectivity feature sets:
- Remote App Control
- File Transfer
Please see the chapter “General Delivery Flow” to see how a teamviewer-iot-agent package can be created.
Supported Operating System Specification:
Topic | Supported specification |
---|---|
Operating system | FreeBSD 12 / FreeBSD 13 |
Architecture | amd64 (x86_64) |
minimal CPU | 1,5 GHZ |
minimal free available RAM | 150 MB |
minimal persistent storage | 30 MB |
How to get started
Quickstep:
Simply install the TeamViewer IoT Agent with the following command line:
git clone https://github.com/teamviewer/FreeBSD_port_teamviewer-iot-agent.git /tmp/teamviewer-port/
cd /tmp/teamviewer-port
make install
-
-
- Create the package
- Download the ports package from the TeamViewer public GitHub repository: https://github.com/teamviewer/FreeBSD_port_teamviewer-iot-agent
- Unpack or clone the ports package or files under path <x>, e.g. /tmp/teamviewer-port/:
git clone https://github.com/teamviewer/FreeBSD_port_teamviewer-iot-agent.git /tmp/teamviewer-port/
- Run make package inside the unpacked/checked out ports folder <x>. The resulted artifact is placed in the subdirectory work/pkg and uses the naming scheme teamviewer-iot-agent-<version>.txz
cd /tmp/teamviewer-port make package
- (end customer) Install the FreeBSD package with the following command:
pkg add /tmp/teamviewer-port/work/pkg/teamviewer-iot-agent-.[txz/pkg]
- Create the package
-
- Create the EULA acceptance flow
- Customers who have their permanent residence in the Republic of Korea (ROK) require a separate EULA confirmation flow.
- Include the EULA and DPA to be accepted during the provision flow. Important note: The agent will not start without the confirmation of the EULA!
Note: Once the EULA has been accepted:
– The IoT agent can and should be started with service teamviewer_iot_agent start.
The assignment does not work without the agent having been started!
- Assignment
Prequisite:- You have created an assignment token (please see the topic “Create an assignment token“)
- Please make sure that you have started the agent service beforehand
Use the following command:
/usr/local/libexec/teamviewer-iot-agent assign --api-token --group --alias
As a result, it will print out the following message displaying the name of the new manager and the group where the device is in:
Device is assigned to and located in the <group name> (default = IoT) group. Device will be accessible and managed by this account. Assignment can be removed using 'unmanage' command.
If the token assignment was not successful, an error message will be displayed and an exit code other than 0 is returned.
FreeBSD Configuration
The configuration of the FreeBSD can happen in different stages.
TeamViewer delivers the binary files as well as a recipe to create the package. The FreeBSD platform expects that the admin builds the package for his systems on his own. The following steps are not required if somebody just wants to get started.
Stage A – Packaging
Every customer can build his own package with the default configuration they want to have:
- Unpack the dist files package (not the ports package) and changes the teamviewer-iot-agent.conf located at ./etc/teamviewer-iot-agent/.This configuration file is logically the same as the file used for OEM packages on Linux. In this article, we will not describe each setting, as they are described in the file itself.
- After the configuration file has been changed, the whole unpacked dist folder needs to be packaged again using .tar.gz.
- A change in the configuration file require the customer to rerun the creation of the checksum: For that the customer should unpack the ports file and run
setenv TV_PORT_MASTER_SITES sudo --preserve-env=TV_PORT_MASTER_SITES make makesum sudo --preserve-env=TV_PORT_MASTER_SITES make package
Result: The package has the custom configuration included and can be installed on the target system.
Stage B – After the installation
It is mandatory to accept the EULA (see info box above).
The FreeBSD package will be shipped with agent.conf located at /etc/teamviewer-iot-agent/.
This configuration file is logically the same as the file used for OEM packages on Linux. In this article, we will not describe each setting, as they are described within the file. This file can be changed even if the agent is already running. A restart of the agent is required, so the changes are applied to the agent.
Use cases for App Control
- App Control is activated by default
- It can be deactivated in different ways, depending on the package type provided
In this case the same default behavior is applied for App Control as for the Linux version. This means that port 80 of localhost without TLS will be initially accessed. The configuration of this feature should be done via the agent.conf described on the page Configuration of a FreeBSD Package.
Use case | Activate / deactivate this feature |
Setting | EnableAppControl |
Value type | bool / int32 (false means “deactivate” and true means “activate”) |
Default value | true |
Static configuration | activate
deactivate
|
Global.conf | activate
deactivate
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Use case | If the web server is running on another IP address as the agent (e.g., in a container), you can define the IP address the agent should use. Only an IPv4 address is allowed. By default the agent uses the localhost as address. |
Setting | AppControlWebServerIPAddress |
Value type | string → IPv4 address only |
Default value | 127.0.0.1 |
Static configuration | AppControlWebServerIPAddress = “192.168.12.2” |
Global.conf |
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Use case | By default, the agent connects to the web server via port 80. If you like to change that you can edit the following variable: |
Setting | AppControlPort |
Value type | number |
Default value | 80 |
Static configuration | AppControlWebServerIPAddress = “192.168.12.2” |
Global.conf |
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Use case | There is also a navigation panel available in the AppControl window which you can activate or deactivate with the following variable |
Setting | AppControlEnableNavigationPanel |
Value type | bool / int32 |
Default value | false |
Static configuration | activate
deactivate
|
Global.conf | activate
deactivate
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Use case | In case that the web server use a suffix a part of the url (http://SERVER-IP:PORT/SUFFIX) you can add this also to the configuration |
Setting | AppControlUrlSuffix |
Value type | string |
Default value | empty |
Static configuration | AppControlUrlSuffix = “/ui |
Global.conf |
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Use case | Enables AppControl to support TLS |
Setting | AppControlEnableTLS |
Value type | bool / int32 |
Default value | false |
Static configuration | activate
deactivate
|
Global.conf | activate
deactivate
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Use cases for Files Transfer
The configuration of this feature should be done via the agent.conf described on the page Configuration of a FreeBSD Package.
Possible values for File Transfer configuration are
Use case | The access control is currently only active for file transfer. The property can have the value 3 (Active user defined access control) or the value 10 (No access). Important: This setting does not need to be changed when file transfer want so be activated. The default is already set to the right value. |
Setting | AccessControlType |
Value type | int32 |
Default value | 3 (Active user defined access control) |
Static configuration | Active user defined access control
No access
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Use case | Customers wants to activate FileTransfer. The agent has a file transfer include. For FileTransferAccessControl the following values can be used: 0 – Allowed, 1 – After confirmation, 2 – Denied. |
Setting | FileTransferAccessControl |
Value type | int32 |
Default value | 2 (Denied) |
Static configuration | Denied
Allowed
After confirmation ( should not be used as there is no possibility to approve it)
|
Note | A restart of the TeamViewer instance is required to apply this change to the IoT Agent. |
Troubleshooting of IoT Agent on FreeBSD
The IoT agent is writing its logfile in /var/log/teamviewer-iot-agent/teamviewer-iot-agent_logfile.log
Further information about the current package are available at /etc/defaults/teamviewer-iot-agent.conf
A – The agent is not starting
After the installation it is mandatory to approve the EULA of TeamViewer. As long as the EULA is not accepted, the IoT agent will not start.
Although you might have called
service teamviewer_iot_agent start
and the info file shows that the IoT agent is online, even so the output of the start command shows
Starting teamviewer_iot_agent
The log file will also indicate the missing EULA acceptance with an entry of the format:
2021/11/29 09:50:05.555 8794 100830 0!! [Beehive] EULA not accepted. Aborting., Errorcode=2
The EULA has to be accepted via:
/usr/local/libexec/teamviewer-iot-agent/teamviewer-iot-agent eula
Or, if it should be done programmatically without user interaction:
/usr/local/libexec/teamviewer-iot-agent/teamviewer-iot-agent eula -y
B – File transfer is not available
The file transfer is deactivated by default in our FreeBSD package.
It can be activated via the FileTransferAccessControl setting in the agent.conf. Further description can be found on File Transfer on FreeBSD.
C – After an update of the agent, the new behavior/changes are not visible.
On FreeBSD it is expected that the administrator is performing the switch of the loaded binaries. This means, that during the update process, a running IoT agent is not stopped and a the new one is loaded. This has to be done by the administrator.
To solve this issue, simply restart the IoT agent via:
service teamviewer_iot_agent
restart
Important File Locations
This overview contains online locations where TeamViewer IoT provides the necessary files.
File System Entry | On Linux | Notes |
---|---|---|
Agent binaries path | /usr/libexec/teamviewer-iot-agent/ |
e.g. teamviewer-iot-agent, teamviewer-iot-agent-config, etc. |
Agent configuration file | /etc/teamviewer/agent.conf |
|
Agent control script | /usr/bin/teamviewer-iot-agent |
|
Agent dynamic configuration file | /var/lib/teamviewer-iot-agent/global.conf |
|
Agent info file | /var/lib/teamviewer-iot-agent/info |
|
Agent IPC file | /run/teamviewer-iot-agent.ipc |
|
Agent log files path | /var/log/teamviewer-iot-agent/ |
|
Agent PID file | /run/teamviewer-iot-agent.pid |
|
Auto start configuration | not available on linux | |
Crash dump directory | /var/crash/teamviewer-iot-agent/ |
|
Documentation files path | /usr/share/doc/teamviewer-iot-agent/ |
e.g. README, copyright, Third_Party_license_IoT.txt |
Man page path | /usr/share/man/man8/teamviewer-iot-agent.8.gz |
|
Static environment file | /etc/default/teamviewer |
|
Token assignment directory | /var/lib/teamviewer-iot-agent/.local |
IoT Management Console
You can log in to the IoT Management Console. The IoT Management Console lists all your devices, connected sensors and many more information.
To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
The IoT Management Console has 3 sections. The left menu , the top menu
and the main screen
.

Using the IoT Management Console
Hide Menus
Hiding the left menu is helpful e.g. when you want to increase the displayed size of the main screen for presentations.
From the left menu click the menu symbol to show or hide the menu.
Change the Display Language
From the top menu select a language.
Log out
From the top menu click your user name then click Log out.
Edge Management
The TeamViewer IoT Edge Management feature provides real-time visualization of the device, includes a user-friendly GUI for managing and monitoring sensors, metrics and MQTT API clients. Also allows building GUI to control sensors and actuators remotely.
Edge Management is an extension to the TeamViewer IoT Agent.
After the Edge Management is enabled, you can use TeamViewer Client to remotely create secure applications, register sensors and metrics, and view real-time streaming data.
Remote control of edge devices is only supported by TeamViewer Client for Windows.
Enable the Edge Management
The TeamViewer IoT Edge Management feature provides real-time visualization of the device, includes a user-friendly GUI for managing and monitoring sensors, metrics and MQTT API clients. Also allows building GUI to control sensors and actuators remotely.
For more information on Docker see https://www.docker.com/.
What you will need
Make sure that you have prepared the following points:
Enable
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- In the terminal type in the following command and press return.
sudo teamviewer-iot-agent install edge-management
- To start the application on default port 80, type in the following command and press return.
sudo teamviewer-iot-agent start edge-management
Update the Edge Management
Update the Edge Management to keep the application secure.
What you will need
Make sure that you have prepared the following points:
- Access the Edge Device via Remote Terminal.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
Update
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Update the Edge Management. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent update edge-management
Disable the Edge Management
What you will need
Make sure that you have prepared the following points:
- Access the Edge Device via Remote Terminal.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
Disable
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Disable the Edge Management. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent uninstall edge-management
Configure the Edge Management
What you will need
Make sure that you have prepared the following points:
- Access the Edge Device via Remote Terminal.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
Change Port
To change the default port you need to restart the Edge Management.
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Stop the Edge Management. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent stop edge-management
- Restart the Edge Management. In the terminal type in the following command and press return. Replace the value
8080
to your preferred port.
sudo teamviewer-iot-agent start edge-management --port=8080
Remote Control
The TeamViewer IoT Solution enables you to access your edge device remotely.
There are several ways to access your edge device remotely:
- Access the Edge Device via Remote Terminal to implement basic setup and maintenance on your edge device.
- Access the Edge Device via Remote Screen to use the remote graphical user interface (interactive or non-interactive) on your edge device.
- Access the Edge Device via Remote AppControl using a web page on the edge device. The web page needs a running server (e.g. Apache).
- Grab Remote Screen for QT Applications using a QT application (see https://www.qt.io/) on the edge device.
The access via Remote Screen and its control depends on the setup of the remote control feature on the edge device:
Feature | Description |
---|---|
X11 (interactive) | See what is displayed on the edge device and control it. This is helpful to gain remote control e.g. for maintenance (see Set up the Remote Screen via X11). |
Framebuffer (non-interactive) | See what is displayed on the edge device. This is helpful to monitor a user while he is working with the edge device (see Set up the Remote Screen via Framebuffer). |
Set up the Remote Screen via X11
The Remote Screen via X11 allows you to see what is displayed on the screen of the edge device and to control it. This is helpful to maintain the device without connecting a monitor or other peripherals.
What you will need
Make sure that you have prepared the following points:
- The edge device is set up with a TeamViewer IoT Agent.
- Access the Edge Device via Remote Terminal.
- Basic knowledge of the editor nano.
Setup
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Install the virtual framebuffer. Type in the following command and press return.
sudo apt update && sudo apt install xvfb -y
- Run the virtual framebuffer with a display port
1
resolution of1280x1024
pixels and a color depth of24
bit. Type in the following command and press return.
Xvfb -ac :1 -screen 0 1280x1024x24 &
- To run the virtual framebuffer on every reboot of the edge device modify the global crontab file with the nano editor.
sudo nano /etc/crontab
- Add the following lines at the end of the file:
#X virtual desktop
@reboot pi Xvfb -ac :1 -screen 0 1280x1024x24
- Save the file and close the nano editor.
- To use the display port on every login to the edge device modify the personal session file with the nano editor.
sudo nano /home/pi/.bashrc
- Add the following lines at the end of the file:
#run export display
export DISPLAY=:1
- Save the file and close the nano editor.
- Activate the modifications. Type in the following command and press return.
source ~/.bashrc
- Restart the TeamViewer IoT Agent. Type in the following commands and press return:
sudo teamviewer-iot-agent configure set EnableRemoteScreen 1
sudo teamviewer-iot-agent configure set RemoteScreenChannels "X11"
sudo teamviewer-iot-agent restart
The setup is complete. You can access the edge device with your TeamViewer Client now.
When accessing the edge device, the user who works on said device gets a notification. You can customize the notification.
Troubleshoot
No screen / the wrong screen is displayed
After accessing the edge device via TeamViewer client no screen or the wrong screen is displayed.
This occurs when your device uses multiple displays.
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Replace
12
with the correct display number. Type in the following commands and press return:
sudo teamviewer-iot-agent configure set RemoteScreenChannels "X11:12:pi"
sudo teamviewer-iot-agent restart
Set up the Remote Screen via Framebuffer
The Remote Screen via Framebuffer allows you to see what is displayed on the screen of the edge device. This is helpful to monitor a user remotely.
What you will need
Make sure that you have prepared the following points:
- The edge device is set up with a TeamViewer IoT Agent.
- Access the Edge Device via Remote Terminal.
Setup
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- To enable the Remote Screen type in the following command and press return.
sudo teamviewer-iot-agent configure set -p [int32] EnableRemoteScreen 1
- Find the framebuffer number and write it down (see example below). Type in the following command and press return.
ls /dev/ | grep fb

- Replace
fb0
with the found framebuffer number. Restart the TeamViewer IoT Agent. Type in the following commands and press return:
sudo teamviewer-iot-agent configure set -p [strng] RemoteScreenChannels "FBD:/dev/fb0"
sudo teamviewer-iot-agent restart
The setup is complete. You can access the edge device with your TeamViewer Client now.
When accessing the edge device, the user who works on said device gets a notification. You can customize the notification.
Customize the User Notification when accessing the Remote Screen
Customize the notifications on the user remote screen.
Notifications are shown to users when their device is accessed remotely. To avoid that users can be monitored without being notified a logo is shown on the local screen of the edge device.
You can customize the position of the logo.

What you will need
Make sure that you have prepared the following points:
- The edge device is set up with a TeamViewer IoT Agent.
- Access the Edge Device via Remote Terminal.
- Basic knowledge of the editor nano.
Positioning the Logo
To change the position of the logo modify the global configuration file. Use one of the following values:
Value | Description |
---|---|
TopLeft | positions the logo in the top left corner of the screen |
TopRight | positions the logo in the top right corner of the screen |
BottomRight | positions the logo in the bottom right corner of the screen |
BottomLeft | positions the logo in the bottom left corner of the screen |
- Access the edge device Access the edge device remotely (Access the Edge Device via Remote Terminal).
- To modify the global configuration file open the file with nano:
sudo nano /var/lib/teamviewer-iot-agent/global.conf
- Scroll to the end of the file and add the following lines. Replace
TopLeft
with one of the values for the logo position.
#change logo position on user screen
[strng] RemoteScreenLogoPosition = "TopLeft"
- Save the file and exit nano.
Set up a Web Page on the Edge Device
The Remote AppControl lets you access a custom user interface for any device or system that comes without a native graphical user interface. You’ll need to create a user interface as an HTML page which is stored directly on the device.
In this task you’ll need to install a web server to access the web page.
This setup uses a Raspberry Pi with the operating system Raspbian OS. Apache is used as the web server.
The example below is a web page of a digital twin of a pump. So, you can control and read data from the pump directly with TeamViewer Remote AppControl.

What you will need
Make sure that you have prepared the following points:
- Access the Edge Device via Remote Terminal.
- Basic knowledge of how to configure a web server.
- Basic knowledge of how to create web pages (for example see https://www.w3schools.com/html/).
Web servers
A web server can be installed and configured on the Edge Device. Various web servers are available, with different advantages for usage. Below are listed several guides for different web servers installations.
- Apache Web Server setup guide: https://www.raspberrypi.org/documentation/remote-access/web-server/apache.md
- NGINX Web Server setup guide: https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md
- Python Web Server setup guide: https://projects.raspberrypi.org/en/projects/python-web-server-with-flask
- Node.JS Web Server setup guide: https://tutorials-raspberrypi.com/setup-raspberry-pi-node-js-webserver-control-gpios/
Install the Web Server
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Update your software list and install the web server. In the terminal type in the following command and press return.
sudo apt update && sudo apt install apache2 -y
- To verify the correct installation use Access the Edge Device via Remote AppControl.
The window shows the default web page of the Apache Web Server. You need to create your web page or put your HTML files on the device depending on your requirements.

For example, see https://www.w3schools.com/html/ and learn how to create web pages for your Edge Device.
Access the Edge Device via Remote Terminal
The Remote Terminal allows you to maintain the device without connecting a monitor or other peripherals.
What you will need
Make sure that you have prepared the following points:
- The edge device is set up with a TeamViewer IoT Agent.
- The edge device is connected to the internet.
- Your PC is set up with the TeamViewer Client for Windows.
- Your login credentials for the edge device (user name, and password).
Access
- On your PC open the TeamViewer Client and log in.
- On the left side open the Computers & Contacts tab.
- Double-click the device.
The Control Window opens and the connection will be established. - In the Control Window on the top open the Remote Terminal tab.
- Type in your user password and press enter.
You are now logged on the edge device.
Disconnect from Remote Terminal
In the terminal type in the following command and press enter:
exit
Access the Edge Device via Remote Screen
The Remote Screen allows you to see what is displayed on the screen of the edge device.
The access and the control depend on the setup of the remote screen feature on the edge device:
Feature | Description |
---|---|
X11 (interactive) | See what is displayed on the edge device and control it. This is helpful to gain remote control e.g. for maintenance (see Set up the Remote Screen via X11). |
Framebuffer (non-interactive) | See what is displayed on the edge device. This is helpful to monitor a user while he is working with the edge device (see Set up the Remote Screen via Framebuffer). |
What you will need
Make sure that you have prepared the following points:
- The edge device is set up with the Remote Screen (via X1 or via Framebuffer).
- The edge device is connected to the internet.
- Your PC is set up with the TeamViewer Client.
Access
- On your PC open the TeamViewer Client and log in.
- On the left side open the Computers & Contacts tab.
- Double-click the device.
The Control Window opens and the connection will be established. - In the Control Window on the top open the Remote Screen tab.
Access the Edge Device via Remote AppControl
The Remote AppControl lets you access a custom user interface for any device or system that comes without a native graphical user interface. You’ll need to create a user interface as an HTML page which is stored directly on the device.
If you have a Premium or Corporate License linked to your TeamViewer account, you can also log sessions for reporting via the IoT Management Console.
You can use the New Browser Engine Support for IoT Devices. This allows your remote app (web page) to use its new technologies.
What you will need
Make sure that you have prepared the following points:
- The edge device is connected to the internet.
- A web page is set up on the edge device.
- Your PC is set up with the TeamViewer Client.
Access
- On your PC open the TeamViewer Client and log in.
- On the left side open the Computers & Contacts tab.
- Double-click the device.
The Control Window opens and the connection will be established. - In the Control Window on the top open the Remote AppControl tab.
New Browser Engine Support for IoT Devices
This article applies to IoT users who are accessing the web interfaces of the IoT devices using the TeamViewer application
Overview
TeamViewer uses browser engines to render the web content of the Remote AppControl tab in the IoT remote sessions.
Starting with version 15.9, TeamViewer will support the Microsoft Edge WebView2 technology for the IoT Devices.
Microsoft Edge WebView2 is a Chromium-based web control that can handle web technologies not being supported by IE.
Requirements
- A Windows (7, 8.1, 10) machine, with TeamViewer v15.9 or higher.
- A Microsoft Edge WebView2 Runtime installed.
- An IoT Device with a running web application.
How to Activate the New Browser Engine
Before you switch to the new browser engine please make sure that you have the Microsoft Edge WebView2 Runtime installed on your machine. If it is already installed you can skip this step.
There is a chance that your machine already has this component as it could come with other applications using WebView2 technology.
Open TeamViewer Client and navigate to Extras->Options->Advanced->Show advanced options->IoT options. Enable the checkbox for the Use Microsoft Edge WebView2 for Remote AppControl.

On your next connection to the IoT device, Microsoft Edge WebView2 will be used to display the web content.
Below is an example of using the old and the new browser engines for the Remote AppControl tab.


Grab Remote Screen for QT Applications
TeamViewer provides the option to access the content of the screen of a custom Qt Application on the Edge Device. This is realized through the TeamViewer Remote Screen SDK. This SDK is directly linked into the application and so enables the connection to the TeamViewer IoT Agent on the edge device and so to the TeamViewer Cloud.

Building Block | Description |
---|---|
Qt application | The Qt application that in the end provides a user frontend which can be accessed from the outside. |
Customer Qt application | The frontend part of the Qt application. This is not provided by TeamViewer, but from the entity that designs the application and device. |
TeamViewer Remote Screen SDK | The Software Development Kit containing an interface and plugin to enable remote control for a custom application. |
The TeamViewer Remote Screen SDK is released under MIT License allowing an easy integration of our source code.
To create Qt applications Qt licenses are needed.
What you will need
Make sure that you have prepared the following points:
- A valid license for TeamViewer 14 (or newer).
- The edge device is set up with a TeamViewer IoT Agent.
- There must be a Qt application running on the edge device and this application must be accessible so the remote screen SDK can be linked to it.
- The edge device should either be configured to display the user interface via a framebuffer (see Set up the Remote Screen via X11) or is capable enough to send its image data to the SDK.
- Advanced knowledge of Linux systems, programming Qt applications and the TeamViewer Remote Screen SDK.
- Access the Edge Device via Remote Terminal.
Software dependencies
For building the whole package the following libraries and tools need to be installed:
- cmake (3.5 or newer)
- Compiler tool chain with support for C++14 (like GCC or Clang)
- Google Protocol Buffers library (3.0 and newer)
- Google gRPC library (1.20 or newer)
- zlib (needed by gRPC
- Qt 5 (5.3 or newer)
On debian systems (Version 10) the following development packages are used for building:
- cmake
- build-essential or g++
- libgrpc++-dev
- protobuf-compiler-grpc
- libprotobuf-dev
- protobuf-compiler
- qtbase5-dev
- qtdeclarative5-dev
Download the TeamViewer Remote Screen SDK
-
- IoT Agents with version 2.15.10 or higher, please use https://download.teamviewer-iot.com/remoteScreenSDK/TVRemoteScreenSDK_2.1.10.zip
- IoT Agents with a lower version, please use https://download.teamviewer-iot.com/remoteScreenSDK/TVRemoteScreenSDK_1.1.40.zip
Extract the SDK in a suitable folder on the edge device.
Hardware requirements
- The edge device meets all System Requirements.
- 30 MB free disk space or more
- systemd software suite
- glibc-utils package (Version 2.17 newer)
- Linux 2.6.27 kernel
Qt application with the Remote Screen SDK
To build the remote screen SDK make sure that all required libraries and dependencies are installed and available.
Access the edge device remotely (Access the Edge Device via Remote Terminal).
Build the SDK
- Create and navigate to the build directory. In the terminal type in the following commands and press return:
mkdir build
cd build
- Run cmake. In the terminal type in the following command and press return. Replace path (
PATH
) with the path where your previously extracted SDK is located.
cmake PATH
- Run make. In the terminal type in the following command and press return.
make
After building the package there should be two binaries:
libTVQtRC.so
– integration plugin, used by a Qt application for providing Remote Screen capabilitiesqt_simulate
– an example application showing the basic usage of the plugin
Installation for Development
The SDK can also be installed to be used in a development environment.
Run make. In the terminal type in the following command and press return.
sudo make install
The default installation prefix for cmake is /usr/local
. After installation there are two projects installed:
- TVRemoteScreenSDK – The Qt plugin (
/lib/lbTVQtRC.so
) along with the public headers (/include/*.h
). - TVRemoteScreenSDKCommunication – The public C++ API used by the plugin. This API is independent of Qt and can be used together with any other framework.
To install the SDK into a custom prefix override CMAKE_INSTALL_PREFIX
when configuring the SDK before building. For example:
cmake -DCMAKE_INSTALL_PREFIX=
Configuration settings
Configuration of the TeamViewer IoT Agent
The TeamViewer IoT Agent needs then to be configured to remote control an external application. This configuration involves also specifying a so-called Image Grab Strategy. The agent tells the application in what way it expects image updates.
In the terminal type in the following commands and press return.
sudo teamviewer-iot-agent configure set EnableRemoteScreen 1
sudo teamviewer-iot-agent configure set RemoteScreenChannels "EAP"
That the value in escaped double quotes (“) can vary from user case. The values could be:
Use case | Setting |
---|---|
External App (SDK) with built-in grabbing | RemoteScreenChannels "EAP" |
External App (SDK) with notifications about framebuffer changes For example: framebuffer device |
RemoteScreenChannels "EAP:FBPush:/dev/fb42" |
External App (SDK) with framebuffer grabbing For example: first framebuffer device |
RemoteScreenChannels "EAP:FBPull" |
The TeamViewer IoT Agent currently supports the following strategies:
- The application provided (default when setting the remote screen channel to
EAP
)- The application (or the Qt plugin) is grabbing internally and send resulting images to the TeamViewer IoT Agent.
- Linux frame buffer device continuous (called
FrameBuffer-Pull
or the channel settingFBPull
)- This repeatedly copies the contents of a Linux frame buffer device regardless of any actual image changes.
- Linux frame buffer device with notifications (called
FrameBuffer-Pull
or the channel settingFBPull
)- This copies the contents of a Linux frame buffer device when the external application notifies the agent to do so.
After starting the agent its API for remote screen is now available and can be used by the Qt plugin.
Further configuration
After installing the TeamViewer IoT Agent it creates a system group called tv_api
. Every application that wants to communicate with the agent needs to run under a user that is part of the before mentioned system group.
Add the current user to group tv_api
. In the terminal type in the following commands and press return.
usermod -a -G tv_api $USER
For more information about the different channel configurations and their use, see Set up the Remote Screen via X11 and Set up the Remote Screen via Framebuffer.
Example application
In the package for the SDK is an example application included. This example show the basic operations of the SDK and how to integrate the plugin into a Qt Quick based application. It requires Qt 5.3 with the modules Qt Quick 2.3 and Qt Quick Window 2.0 to run.
On debian based distributions the following packages are required to run:
- qml-module-qtquick2
- qml-module-qtquick-window2
To start the example application:
- Open the Build directory using graphical interface
- Locate the qt_simulate
- execute the qt_simulate
With the example application one can also test and see the basic operations:
- connectivity to the agent: the circle on the top left corner is green when the IoT Agent is available (this does not indicate network connectivity)
- set the control mode:
Set Full Control
(image updates and input),Set View Only
(image updates, no input),Disable Remote Control
(no image updates, no input) - terminate all incoming TeamViewer sessions: Terminate TeamViewer Session is only enabled if there is at lease one active remote control session. By clicking, it terminates all incoming sessions and the button is disabled afterwards.
- mouse and keyboard input testing
- rudimentary animation testing
Troubleshoot
Contact TeamViewer IoT Support ⟨[email protected]⟩ if you encounter problems when using the remote screen SDK.
Inverted Colors
On some ARM based devices, the colors may seem inverted or appear wrong on the client’s side.
Screen refresh
When the RemoteScreenChannels
setting is configured with EAP:FBPush
, it may happen that the client picture is sometimes not refreshed appropriately during a TeamViewer session. Resizing the window will force an update and will display the actual content of the application in the client window.
For more information about the different channel configurations and their use, see Set up the Remote Screen via X11 and Set up the Remote Screen via Framebuffer.
Sensors
Sensors play a vital role in any IoT Solution. Sensors on your edge device can help you to monitor your edge devices’ health. They also can help you to monitor the entities you attach a sensor to (e.g. robot arms).
To use sensors make sure TeamViewer Edge Management is enabled.
Three basic steps are needed to integrate sensors into your IoT Solution:
- Connect a sensor physically to your edge device (for example, see Connect the Sensors to the Starter Kit).
- Assign the sensor (and its metrics) to your TeamViewer Account.
- Use sensor metrics for monitoring (e.g. widgets) and/or to set alerts and notifications.
Sensor metrics and data is handled as defined by the TeamViewer IoT MQTT API. You will need to then push your sensor data as specified in the MQTT API Push Metric Values section to visualize it in real-time.
Add Sensors with Easy Setup
The Easy Setup for adding sensors is intended to provide you with an intuitive and easy experience which will lead you through the setup steps in adding the sensors.
The Easy Setup contains 3 basic steps. Follow the sections in this article:
- Generate a Sensor Script
- Enable the Sensor Script on the Edge Device
- Assign the Sensor Script to the Edge Device
The generated Sensor Script is a template.
The Sensor Script prints metric values of a sensor in JSON format and each metric is described as a variable which gets a random value in between 1 and 20.
If you don’t have a ready script, you might need to search for tutorials on how to read your sensor data, find a library or script that works with your sensor and make sure that your script’s output prints the JSON formatted example as presented in the template.
Then place the ready script on the edge device and provide the full path information into the configuration page.
There are thousands of different sensors in the world. Some of them would need special libraries or custom development to get a data from. If you have trouble with the setup of sensors, contact TeamViewer.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- Access the Edge Device via Remote Terminal.
- File Transfer is enabled (see Enable File Transfer).
- A Sensor is connected to the device.
- The edge device is connected to the internet.
Generate a Sensor Script
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Devices.
- On the right side from the dropdown menu select Add Sensor.

- Click Easy Setup.

- From the dropdown menu select the device with the sensor you would like to add.
- Type in a unique sensor name.
- Click
to add a metric. To configure the metric provide a metric name and an unique ID. The fields Value Type and Value Unit are optional. (When a metric becomes superfluous click
to remove it.)

- When all metrics are configured click Download the generated Template.
The downloaded zip-file contains template examples for Python and Bash.
- On your local PC extract the zip-file.
- Pick one of the extracted files as your Sensor Script.
Keep the Management Console open and continue with Enable the Sensor Script on the Edge Device.
Enable the Sensor Script on the Edge Device
In this task you’ll need to transfer the previously downloaded Sensor Script to the Edge Device. Then you’ll give the Sensor Script fitting permissions to be executed.
- Transfer the Sensor Script to your Edge Device by using the Transfer Files feature. Remember the full path (
FULLPATH
) of the Sensor Script on the Edge Device. - Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Give the Sensor Script fitting permissions. In the terminal type in the following command and press return. Replace
FULLPATH
with the full path from the previous step.
sudo chmod +x FULLPATH
Assign the Sensor Script to the Edge Device
After you enabled the Sensor Script on the Edge Device you’ll need to continue where you left off from Generate a Sensor Script.
- Type in the
FULLPATH
you remembered from Enable the Sensor Script on the Edge Device.

- Select the frequency by which the data will be sent to the TeamViewer IoT Cloud. It can be defined in seconds or minutes.

- To finish the Easy Setup click Add.
Example: Connect a Sensor to the TeamViewer IoT Agent
This example provides a quick overview of how to use the TeamViewer IoT Agent MQTT API to securely (encrypted and trusted) connect, to register sensors and metrics, to view device inventory, and to push data to the TeamViewer IoT Cloud.
For more information see TeamViewer IoT Agent MQTT API.
You will use three separate terminals to perform this example:
- Terminal 1 will be used to receive messages from the Authentication API.
- Terminal 2 will be used to publish commands to the API.
- Terminal 3 will be used to receive messages from the Registration and Data API.
What you will need
- The edge device is set up with a TeamViewer IoT Agent.
- Your login credentials for the edge device (user name, and password).
- You are logged in to the IoT Management Console. To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- A tool to access the edge device remotely via ssh (e.g. Putty).
- Advanced knowledge of Linux systems and command line operations.
Setup
- Create Terminal 1. Log in to the Edge Device and use your credentials by using a ssh-tool.
- Create Terminal 2. Log in to the Edge Device and use your credentials by using a ssh-tool.
- Create Terminal 3. Log in to the Edge Device and use your credentials by using a ssh-tool.
- Install the Mosquitto Clients. In the Terminal 1 type in the following command and press return.
sudo apt-get install mosquitto-clients
- Subscribe to all Authentication and Authorization topics to receive data/messages from the TeamViewer IoT Agent MQTT API. In the Terminal 1 type in the following command and press return.
mosquitto_sub -h localhost -p 18883 --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /#
#
is used as placeholder to subscribe to all topics, including success and error messages.- Generate a Certificate Signing Request and Private Key. In the Terminal 2 type in the following command and press return. Type in your specific information when prompted (e.g.
company name
).
openssl req -nodes -new -newkey rsa:2048 -sha256 -out csr.pem
Two files are created:
- privkey.pem (your private key file will be used for publishing / subscribing to topics)
- csr.pem (this file will be presented to the TeamViewer IoT Agent to generate a certificate)
- Publish the Certificate Signing Request (
csr.pem
) to the API to receive a TeamViewer IoT Agent generated and signed certificate. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18883 --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/createClient -m < (echo -n """ && cat csr.pem && echo -n """)
- Copy the certificate content into a new file called
clientCert.crt
and save in the same location as yourprivkey.key
. In the Terminal 1 type in the following command and press return. Replace path (PATH
) with the path where your file
is located.privkey.key
cp csr.pem PATH/clientCert.crt
- Parse the unique client Id to be used for your secure connection for all subsequent messages. Record the resulting Id for future use. In the Terminal 2 type in the following command and press return.
openssl x509 -noout -subject -in clientCert.crt -nameopt multiline | grep commonName | sed -r 's/commonName/ /g' | sed -r 's/=/ /g' | xargs | tr -d " tnr"
c6c5e217089743da8ec3f1d256fa99c2
.- Use your private key and certificate, securely subscribe to all Registration and Data topics to receive data and messages from the TeamViewer IoT Agent MQTT API. In the Terminal 3 type in the following command and press return.
mosquitto_sub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /#
#
is used as placeholder to subscribe to all topics, including success and error messages.- Verify your secure connection to the API is alive, by executing this command and verifying the message is received in Terminal 3. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/ping -m "{ "request" : "Some Message" }"
c6c5e217089743da8ec3f1d256fa99c2
).- Display your Inventory, which will be displayed in Terminal 3. The Inventory should be empty (
[]
) as we haven’t registered any sensors yet. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/list -m "{}"
- Register a new sensor called
Temperature1
. The result will be displayed in Terminal 3. In the Terminal 2 type in the following command and press return. Record thesensordId
from the Terminal 3 output as it will be needed later.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/create -m "{ "name" : "Temperature1" }"
- Register three metrics for your Temperature1 sensor. The result will be displayed in Terminal 3. In the Terminal 2 type in the following command and press return. Record the
metricId
for each Metric from the Terminal 3 output as it will be needed later.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/d43862fd65ac4a0f9054cfe1749cad82/metric/create -m "{"metrics" : [{"matchingId" : "1", "valueUnit": "NoSI.Dimensionless.PERCENT", "name" : "CPUUsage" },{"matchingId" : "2","valueUnit": "NoSI.Dimensionless.PERCENT", "name" :"CPUIdle" }, {"matchingId" : "3", "valueType" : "integer" , "valueAnnotation": "goods per minute", "name" : "ShopFloor1"}]}"
- Display details of one of your metrics, which will be displayed in Terminal 3. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/d43862fd65ac4a0f9054cfe1749cad82/metric/226ede40e42b458d88d09414fa44e7bf/describe -m "{}"
- Display your Inventory, which will be displayed in Terminal 3. The Inventory should be consistent with the sensor and metrics you created. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/list -m "{}"
- From the IoT Management Console navigate to Metrics and verify the sensor and metric information is consistent with the information you registered with the API.
- Update the name of your sensor to
Temperature2
. The result will be displayed in Terminal 3. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/d43862fd65ac4a0f9054cfe1749cad82/update -m "{ "name" : "Temperature2" }"
- From the IoT Management Console navigate to Metrics and verify the sensor has been updated.
- Display your Inventory, which will be displayed in Terminal 3. The Inventory should display the updated the sensor. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/list -m "{}"
- Delete a metric from your Sensor. In the Terminal 2 type in the following command and press return. In this example the metric with the metricId
9712270f8fd04c2baab6a2409b3e4b9d
will be deleted.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/d43862fd65ac4a0f9054cfe1749cad82/metric/delete -m "{"metrics": [{"metricId" : "9712270f8fd04c2baab6a2409b3e4b9d" }]}"
- Send data values for the two remaining metrics. The result will be displayed in Terminal 3. In the Terminal 2 type in the following command and press return.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile /var/lib/teamviewer-iot-agent/certs/TeamViewerAuthority.crt -t /v1.0/c6c5e217089743da8ec3f1d256fa99c2/sensor/d43862fd65ac4a0f9054cfe1749cad82/metric/pushValues -m "{ "metrics": [ {"value" : 21, "metricId" : "226ede40e42b458d88d09414fa44e7bf" }, {"value" : 215, "metricId" : "520b4d8854454e0ea3a4f9a225afb862" } ] }"
- From the IoT Management Console navigate to Metrics and pin the two metrics to the dashboard (See Add A Widget).
- From the IoT Management Console navigate to Dashboard and verify the two new widgets with the created metrics.
Example: Connect a Sensor to the TeamViewer IoT Host for Windows
This example provides a quick overview of how to use the TeamViewer IoT Agent MQTT API to securely (encrypted and trusted) connect, to register sensors and metrics, to view device inventory, and to push data to the TeamViewer IoT Cloud.
For more information see TeamViewer IoT Agent MQTT API.
What you will need
- The edge device is set up with a TeamViewer IoT Host or Windows (TeamViewer Service and Mosquitto broker process running) and has internet access.
- Your login credentials for the edge device (user name, and password).
- You are logged in to the IoT Management Console. To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- Mosquitto is installed. Add Mosquitto installation path to Environment Variables.
- Install Git Bash for Windows, this is needed to create CSR and Request Client Certificate
- Advanced knowledge of Windows systems and command line operations.
Setup
Create MQTT Client
- Generate A CSR using Git Bash
Open a Git Bash window and type in the following command:
openssl req -nodes -new -newkey rsa:2048 -sha256 -out csr.pem
- Get the hash of CSR using Git Bash. It is the SHA-256, which will be used in subscribe topic
Open a Git Bash window and type in the following command:
openssl dgst -sha256 csr.pem
In this example the hash is 83a32b8cbae161ab995b1d3bce24715579c4c672f69ca48a24350baaaed40d17
- Request a client certificate using Command Prompt.
Open a Command Prompt window (run as an administrator) and subscribe for the response:
mosquitto_sub -h localhost -p 18883 --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /certBack/83a32b8cbae161ab995b1d3bce24715579c4c672f69ca48a24350baaaed40d17
Open a command prompt window (as an administrator) and publish the csr.pem
mosquitto_pub -h localhost -p 18883 --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/createClient -f csr.pem
- Get Client ID for future use within MQTT topics using Git Bash.
Open a Git Bash window and type in the following command:
openssl x509 -noout -subject -in clientCert.crt -nameopt multiline | grep commonName | sed -r 's/commonName/ /g' | sed -r 's/=/ /g' | xargs | tr -d " \t\n\r"
In this example the ClientID is 6d69c58223fb44a7b76ae61a18faf37c
Create MQTT Client
- Monitoring
This publish request updates metric values. Prior creation of sensor and metrics is not required. The system checks for the existence of the given sensor and metric IDs. If those do not exist, the system creates missing sensor or metric.
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/6c4a946918dc4facbe354279752a9ddd/sensor/weather/metric/pushValues -m "{ \"metrics\": [{\"value\" : 5, \"metricId\" : \"temperature\" }] , \"timestamp\": 1590394246545}"
Alternatively, you can follow the steps below to create Sensors with Metrics.
Create sensor
Open a Command Prompt window (run as an administrator) and type in the following command:
mosquitto_sub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/6d69c58223fb44a7b76ae61a18faf37c/sensor/inbox
Open a Command Prompt window (run as an administrator) and type in the following command:
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/6d69c58223fb44a7b76ae61a18faf37c/sensor/create -m "{ \"name\" : \"SensorName\" }"
In this example the name of the sensor and the unique ID are { “name”: “SensorName”, “sensorId”: “d4170d999b9240a5863df622aad9fc4a” }
Create metrics
Open a Command Prompt window (run as an administrator) and type in the following command:
mosquitto_sub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/6d69c58223fb44a7b76ae61a18faf37c/sensor/d4170d999b9240a5863df622aad9fc4a/metric/inbox
Open a Command Prompt window (run as an administrator) and type in the following command:
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/6d69c58223fb44a7b76ae61a18faf37c/sensor/d4170d999b9240a5863df622aad9fc4a/metric/create -m "{\"metrics\" : [{\"matchingId\" : \"1\", \"valueUnit\": \"NoSI.Dimensionless.PERCENT\", \"name\" : \"CPUUsage\" },{\"matchingId\" : \"2\",\"valueUnit\": \"NoSI.Dimensionless.PERCENT\", \"name\" :\"CPUIdle\" }, {\"matchingId\" : \"3\", \"valueType\" : \"integer\" , \"valueAnnotation\": \"goods per minute\", \"name\" : \"ShopFloor1\"}]}"
In this example the metrics and the uniques IDs are:
[{ “matchingId” : “1”, “metricId” : “94c2c5e193bb437195368c08f0bd86ab”},
{ “matchingId” : “2”, “metricId” : “94c2c5e193bb437195368c08f0bd86ac”},
{ “matchingId” : “3”, “metricId” : “94c2c5e193bb437195368c08f0bd86ad”}]
Push data to a Sensor
Open a Command Prompt window (run as an administrator) and type in the following command:
mosquitto_sub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/6d69c58223fb44a7b76ae61a18faf37c/sensor/d4170d999b9240a5863df622aad9fc4a/info/inbox
Open a Command Prompt window (run as an administrator) and type in the following command:
mosquitto_pub -h localhost -p 18884 --cert clientCert.crt --key privkey.pem --cafile "C:\Program Files (x86)\Teamviewer\certs\TeamViewerAuthority.crt" -t /v1.0/6d69c58223fb44a7b76ae61a18faf37c/sensor/6d69c58223fb44a7b76ae61a18faf37c/metric/pushValues -m "{ \"metrics\": [ {\"value\" : 21.5, \"metricId\" : \"94c2c5e193bb437195368c08f0bd86ab\" }, {\"value\" : 21.5, \"metricId\" : \"94c2c5e193bb437195368c08f0bd86ac\" }, {\"value\" : 55, \"metricId\" : \"temperature\" }] , \"timestamp\": \"1590394246545\"}"
From the IoT Management Console navigate to Metrics and verify the created metrics.
Set up the OPC UA Connector for Easy Integration
It is effortless to monitor your sensor network via TeamViewer IoT. This article describes the integration approach to monitor OPC UA server node values. For more about OPC UA reference the OPC Foundation (see https://opcfoundation.org/).
The setup contains three basic steps. Follow the sections in this article:
- Install software dependencies
- Download and extract the OPC UA Connector
- Integrate the OPC UA Monitoring Script with the TeamViewer IoT Agent
What you will need
Make sure that you have prepared the following points:
- Access the Edge Device via Remote Terminal.
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent (Version 1.1.12 or newer) and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
- Advanced knowledge of Linux systems, command line operations, Python 3 and OPC UA.
- Basic knowledge of the editor nano.
Install software dependencies
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Install Python 2 or Python 3 (see https://www.python.org/downloads/).
- Update the python libraries pip, setuptools and wheels. In the terminal type in the following command and press return.
python -m pip install --upgrade pip setuptools wheel
- Install the python library freeopcua. In the terminal type in the following command and press return.
pip install freeopcua
Download and extract the OPC UA Connector
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Download the connector. In the terminal type in the following command and press return.
wget https://download.teamviewer-iot.com/connectors/teamviewer-iot-opcua/1.0.0/teamviewer_iot_opcua-1.0.0.tar.gz
- Create a new folder and extract the downloaded connector. In the terminal type in the following commands and press return. Record the path (
PATH
) where you extracted the connector.
sudo mkdir -p /usr/local/teamviewer-iot-agent/monitoring/
tar -xzvf teamviewer_iot_opcua-1.0.0.tar.gz -C /usr/local/teamviewer-iot-agent/monitoring/opc-ua
Integrate the OPC UA Monitoring Script with the TeamViewer IoT Agent
The TeamViewer IoT Agent includes its system Monitoring Configuration File (see JSON Schema for Custom Plugin Connector). Extend the configuration file to include the OPC UA monitoring script.
The Monitoring Configuration File is located at: /var/lib/teamviewer-iot-agent/system_monitors.conf
.
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Open the Monitoring Configuration File with the editor nano. In the terminal type in the following command and press return.
sudo nano /var/lib/teamviewer-iot-agent/system_monitors.conf
For each OPC UA sensor you want to integrate, append its registration information to the configuration file. Reference the example file below and replace the placeholders with your OPC UA node details.
Make sure to replace the value of monitoringService
with the path (PATH
) from the of the extracted connector from step Integrate the OPC UA Monitoring Script with the TeamViewer IoT Agent.
- Save the file and close the nano editor.
- Restart the TeamViewer IoT Agent to reload the configuration file. In the terminal type in the following command and press return.
teamviewer-iot-agent restart
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the IoT Management Console navigate to Metrics and verify the newly integrated sensors and metrics are updated.
- Optional: From the IoT Management Console navigate to Metrics and pin the two metrics to the dashboard (See Add A Widget).
Example Monitoring Configuration File
{
"sensors": [
{
"name": "opcua_node_aa",
"monitoringService": "python /usr/local/teamviewer-iot-agent/monitoring/opc-ua/opc_ua_connect.py",
"monitoringParams": "--url opc.tcp://myopcuahost:26543 --nodeId "opcua_node_id" --frequency 2",
"metrics": [
{
"name": "opcua_node_id",
"key": "opcua_node_id",
"valueType": "double",
"valueAnnotation": ""
}
]
},
...
]
}
For more information about the schema of the Monitoring Configuration File see JSON Schema for Custom Plugin Connector.
Set up the OPC UA Connector for Easy Integration
Overview
OPC Technology stands for “Open Platform Communications” and is an approved communication standard for the process industry. The OPC Unified Architecture (UA) is an interoperability standard and provides a secure and reliable data exchange mechanism. OPC UA is a platform-independent system and ensures information flow between devices from multiple vendors. For real-time data access, the OPC Data Access specification is being used.
Architecture
TeamViewer IoT provides an OPC UA Connector that connects to the OPC UA Server and collects values from OPC UA Variables. The connector communicates with TeamViewer IoT Cloud with the help of the IoT Agent.
The setup contains three basic steps. Follow the sections in this article:
- Installation
- Connector Configuration
- Adding a Sensor via OPC UA Connector
Installation
- Connect to the device
- Download the OPC UA Connector and extract the files
- Copy the opcua folder to the Windows IoT Host installation directory in C:\Program Files (x86)\TeamViewer\
Connector Configuration
In most cases, the OPC UA servers are being configured by other companies. And the configuration is specific to the installation and the environment where it is being used. You need to configure the OPC UA Connector according to your server’s configuration by providing the URL of the server, security settings, and authentication options.
For setting the connector configuration, edit the “config.json” file according to your OPC UA server settings. The file is located in the C:\Program Files (x86)\TeamViewer\ directory.
- Edit the opcua.conf file. The file is located in /var/lib/teamviewer-iot-agent/scripts/opcua/ directory of the Edge Device.
- Below are the parameters included in the file:
"OPCUA_CONN_SETTINGS": { "URL": "opc.tcp://127.0.0.1:49320", "SEC_POLICY": "None", "AUTH": "Anonymous!”
Note: For the moment are only supported anonymous connections without security policy to OPC UA servers.
Adding a Sensor via OPC UA Connector
- For adding sensors, add in the config.json file the sensors and the metrics. The default config file contains 2 sensors with 2 metrics each as an example. Add as many sensors and metrics as you want.
- Run the opcua-connector.exe manually after starting the TeamViewer Windows IoT Host. The executable is located in C:\Program Files (x86)\TeamViewer\opcua
- You can configure the Windows Task Scheduler to run the opcua-connector.exe on Windows startup.
"MQTT_OPCUA_MAP_CFG": { "Sensor1": { "OPCUA_NODE_LIST": [ { "Name": "Tag1", "Nodeid": "ns=2;s=Channel1.Device1.Tag1" }, { "Name": "Tag2", "Nodeid": "ns=2;s=Channel1.Device1.Tag2" } ] }, "Sensor2": { "OPCUA_NODE_LIST": [ { "Name": "Bool", "Nodeid": "ns=2;s=Channel1.Device1.Bool" }, { "Name": "String", "Nodeid": "ns=2;s=Channel1.Device1.Str"
Set up the Log Parser Connector for easy Integration of your Log Based Sensors/Metrics
The TeamViewer IoT Log Parser Connector easily extracts & integrates sensor data from your log files.
The Log Parser Connector is generic, in that, it can be used to parse any log. For the context of this article, it is assumed your IoT sensor values are written to a log file which you would like to connect to the TeamViewer IoT Agent.
The setup contains two basic steps. Follow the sections in this article:
- Download and install the Log Parser Connector
- Integrate the Log Parser Connector with the TeamViewer IoT Agent
For more information about configuration and syntax see Configuration and Syntax of the TeamViewer Log Parser Connector.
What you will need
Make sure that you have prepared the following points:
- Python 3 is installed on the Edge Device (see https://www.python.org/downloads/).
- Access the Edge Device via Remote Terminal.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
- Basic knowledge of the editor nano.
Download and install the Log Parser Connector
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Download the Log Parser Connector. In the terminal type in the following command and press return.
wget https://download.teamviewer-iot.com/connectors/teamviewer-iot-log-parser/1.0.0/teamviewer_iot_log_parser-1.0.0.tar.gz
- Upon completion of the download, extract the contents of the connector. In the terminal type in the following commands and press return:
sudo mkdir -p /usr/local/teamviewer-iot-agent/monitoring/
tar -xzvf teamviewer_iot_log_parser-1.0.0.tar.gz -C /usr/local/teamviewer-iot-agent/monitoring/
- Install the Log Parser Connector. In the terminal type in the following command and press return.
cd teamviewer_iot_log_parser-1.0.0 python3 setup.py install
- Verify the installation was successful by identifying a log file to parse and using the following command to parse a string. In the terminal type in the following command and press return. Replace
logFilePath
&justTextorRegex
with the path of your log file and a string to search for, respectively.
teamviewer_iot_log_parser -f logFilePath --regex justTextOrRegex
Integrate the Log Parser Connector with the TeamViewer IoT Agent
The TeamViewer IoT Agent includes its own system monitoring configuration file. This configuration file will be extended to include the Log Parser configuration.
For each sensor you want to integrate, append its registration information to the configuration file. Reference the Log Parser Connector Template or the Examples and replace the placeholders with your sensor details.
- To modify the configuration file open the file with nano:
nano /var/lib/teamviewer-iot-agent/system_monitors.conf
- Modify the configuration file as needed.
- Save the file and exit nano.
- Restart the IoT Agent to reload the configuration file. In the terminal type in the following command and press return.
teamviewer-iot-agent restart
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Dashboard.
- Verify that the Sensors/Metrics added to the configuration file now appear on your Metrics tab.
- Use a Widget to pin the metrics to your dashboard and ensure the data is being updated per the frequency specified in the config file.
Configuration and Syntax of the TeamViewer Log Parser Connector
The connector can be configured given the following configuration arguments:
Argument / flag | Required? | Description |
---|---|---|
-p, –parser | yes | The log parser can operate in 2 modes: matches – (Default) returns a count of strings matching a specified regex since the last run metrics – returns an aggregated value for each specified metric since the last run |
-t, –timeout | yes | Duration to wait for parsing to complete before terminating and returning an error. Values are in seconds; Default, if not specified, is 5 seconds. |
The two modes of operation, (Matches & Metrics), each require additional parameters to be specified.
Matches
Argument / flag | Required? | Description |
---|---|---|
-f, –file | yes | File path of the log to parse |
-R, –regex | yes | String or regex expression to match (for more information see https://docs.python.org/3/library/re.html) |
Metrics
Argument / flag | Required? | Description |
---|---|---|
-f, –file | yes | File path of the log to parse |
-M, –metrics | yes | Space delimited list of metrics to extract |
-A, –aggfunctions | yes | Space delimited list of aggregation functions for each respective metric Possible values: avg, sum, min, max, median |
-T, –template | no | Template to parse metrics Default template is :metric=.(.*?).[s], which will match log entries of “metricName”=”value” |
TeamViewer IoT Log Parser Connector Template
Use the following template to add your connector configuration for each sensor to the monitoring configuration file. The template is an example of adding a single sensor with two (2) metrics (Temperature & Humidity).
Ensure to replace the following placeholders with the specifics of your sensor. Note: the frequency in the template is set to 10, which will trigger the Log Parser Connector to run every 10 seconds, aggregating the values from each interval.
For more information about the JSON schema see JSON Schema for Custom Plugin Connector.
{
"sensors": [
{
"name": "temperature_humidity_parser",
"monitoringService": "python3 /usr/local/teamviewer-iot-agent/monitoring/log_parser/teamviewer_iot_log_parser.py",
"monitoringParams": "--file /tmp/file.log --parser metrics -–metrics temperature humidity --aggfunctions max avg –-template ':metric=.(.*?).[\s]'",
"frequency": 10,
"metrics": [{
"name": "Temperature",
"key": "temperature",
"valueType": "double",
"valueAnnotation": "C"
}, {
"name": "Humidity",
"key": "humidity",
"valueType": "double",
"valueAnnotation": ""
}
]
},
...
]
}
Examples: Configuration of the Connector using the "monitoringParams"
The following examples describe use cases and their respective configuration of the Log Parser Connector as specified by the monitoringParams parameter.
Example 1
Parse a log file to retrieve the maximum value of a metric called temperature
and the average value of a metric called humidity
.
>> Log File (log_file.log) Contents:
some text temperature=18 some text humidity=80
some other text temperature=19 some text humidity=82 text
>> monitoringParams:
--file log_file.log --parser metrics --metrics temperature humidity --aggfunctions max avg --template=":metric=(.*?)[\s]"
>> Result:
{"temperature": 19, "humidity":81}
Example 2
Parse a log file to retrieve the number of occurrences of the string findMe
.
>> Log File (log_file.log) Contents: some text findMe some text findMe some other text temperature=19 some findMe text humidity=82 text >> monitoringParams: --file log_file.log --parser matches --regex someRegex >> Result: {"count": 3}
JSON Schema for Custom Plugin Connector
An example template:
{
"sensors": [
{
"name": "opcua_node_aa",
"monitoringService": "python /usr/local/teamviewer-iot-agent/monitoring/opc-ua/opc_ua_connect.py",
"monitoringParams": "--url opc.tcp://myopcuahost:26543 --nodeId "opcua_node_id" --frequency 2",
"metrics": [
{
"name": "opcua_node_id",
"key": "opcua_node_id",
"valueType": "double",
"valueAnnotation": ""
}
]
},
...
]
}
JSON Schema for Sensor Objects
Field | Type | Required | Description |
---|---|---|---|
Sensor | JSON Object | ||
name | String | Yes | Display name of the sensor. |
monitoringService | String | Yes | Full path of your custom monitoring script. |
frequency | Integer (seconds) | No | If frequency is set, the TeamViewer IoT Agent will run the script in the interval specified (e.g. every 10 seconds). If frequency is not set, the TeamViewer IoT Agent will run the script once upon start up. This assumes that the scheduler is organized within your custom monitoring script and new values of metrics are printed upon their change. Note that every new JSON message should be printed on a new line. |
monitoringParams | String | No | Additional arguments to pass to the script. E.g. url, host, sensorId etc. This field is useful for cases when you want to use same script to monitor several sensors of the same type. |
JSON Schema for monitoringParams Objects
Field | Type | Required | Description |
---|---|---|---|
url | String | yes | OPC UA server url |
nodeId | String | yes | Id of the node specified by the given OPC UA server. |
frequency | Integer | no | The frequency (in seconds) to poll for new node values. If not set, frequency defaults to 1-time execution. |
JSON Schema for Metric Objects
Field | Type | Required | Description |
---|---|---|---|
Metrics | JSON Array | ||
name | String | Display name of the metric | |
key | String | Short name (identifier) of the metric. It should be used as a key in the JSON output of the monitoring script. | |
valueType | Enum | Indicates the type of the metric. Possible values are: integer / double / string. | |
valueAnnotation | String | The unit of measure which will be displayed as the name of the Y axis when displaying metric values on a chart. Commonly used annotations are: %, C, Pa, req/sec, MB, etc. |
Monitoring Configuration File
After the sensor/metric is registered by the agent, the agent auto-generates the parameters sensorId
and metricId
and adds them as properties to the configuration file.
sensorId
or metricId
after they are added to the configuration file.Monitoring Frequency
Monitoring frequency can be controlled either by the agent’s Monitoring Configuration File (parameterfrequency
) or by your custom script. In the JSON Sensor (see example below), the frequency is specified by the configuration property, causing the agent to run your script every 10 seconds.
{
"sensors": [{
"name": "temperature_humidity_sensor1",
"monitoringService": "/usr/local/teamvieweriot/sensors/temperature_humidity/monitor.sh",
"monitoringParams": "sensor1 sdkCredential",
"frequency": 10,
"metrics": [{
"name": "Temperature",
"key": "temperature",
"valueType": "double",
"valueAnnotation": "C"
}, {
"name": "Humidity",
"key": "humidity",
"valueType": "double",
"valueAnnotation": ""
}]
},
...
]
}
There may be scenarios where the frequency of the data collection should be set by your script rather than specified in the agent’s Monitoring Configuration File. In these scenarios, the parameter frequency
in the configuration file should be left blank.
Use Case: You want to monitor discrete events which don’t have a defined frequency (event-based metrics
- e.g. monitoring when a door is opened or closed
- within your custom script, you subscribe to a message queue to get door movement events and print them to
stdout
.
Generic example:
var queue = new Queue();
queue.openConnection();
queue.createSubscription(callback);
function callback(value) {
print {"key":value};
}
Use Case: You want to set up high frequency monitoring (e.g. 1 second)
Although this can be done by configuring the parameter frequency
in the agent’s Monitoring Configuration File, an optimal solution may be use a loop in your script to print new metric values every second.
Generic example:
var networkObject = new NetworkObject();
networkObject.openConnection();
try {
while (true) {
var value = networkObject.getValue();
print {"key":value};
sleep(1000);
}
}
finally
{
connection.close()
}
Set up Secure Clients, Sensors and Metrics
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
This application provides a GUI wizard for you to create secure clients and define sensors and metrics, as defined by the TeamViewer IoT MQTT API. You will need to then push your sensor data as specified in the MQTT API Push Metric Values section to visualize it in real-time.
Using the wizard, you can create new Clients or authorize existing ones.
Create New Clients
You can create new clients either automatically or by using an existing Certificate Signing Request (CSR). To create clients using a CSR, you must upload the CSR & the associated private key.
Once a secure client has been created, you can download its credentials for use on edge devices (to easily integrate sensors on edge devices to your TeamViewer IoT Agent).
For more Information see Remote Clients.
Once a secure client has been created, you can use the wizard to define the sensors and metrics you want to connect. The wizard will provide you with the details and a template to push the sensor’s data as described in MQTT API Push Metric Values.
Authorize Existing Clients
Any existing client will automatically appear on your clients page of the IoT Management Console. However, you must upload its Certificate credentials using the clients page, to view it in real-time.
View Data in Real-Time
Using the Metrics page of the IoT Management Console, you can view a list of all your sensor metrics and quickly view each in real-time by clicking on the metric name.
Manage Certificates
All client certificates, created by the application or uploaded by the user, are stored under:
/var/lib/docker/volumes/teamviewer-iot-edge-device-management-cert/_data
Public Key: cert-clientId.pem
Private Key: key-clientId.pem
The certificate file names contain the client Id
, in case the certificates are needed on edge devices.
For more Information see Remote Clients.
Rules, Alarms and Notifications
A key part of managing your IoT network is being able to respond as soon as possible to events or anomalies requiring action. In this section, learn how to set up flexible notifications to easily manage your messages and alerts.
Notification are sent by channels (email or webhook). Those channels are bundled into topics. For example:
- the Topic
Staff
which comprises channels sending emails only to staff members - the Topic
Service
which comprises channels sending emails just to service workers
To get a notification when a defined condition is met you need to create a rule. For example:
- Create a Rule with the Condition
Device is offline
and associate it with the TopicStaff
. Staff members receive an email to turn on the edge device. - Create a Rule with the Condition
Temperature > 100 °C
and associate it with the TopicService
. A service worker receives an email to check the health of the edge device.
To use rules and notifications make sure TeamViewer Edge Management is enabled and Real Time Rule Engine is enabled.
Rules
Rules are limited to the following thresholds:
- Metric Threshold type is generated based on the threshold applied on metric(s) when the specified condition is violated.
- Device Offline type is generated based on the abnormal state of the device(s) or metric(s) (in future), for example when no data is received from a device or metric for a period more than two minutes.
See:
Alarms
Each time when threshold triggers, a unique Alarm with specified severity is created.
Alarm severity defines how important the alarm is. We support the following alarm severity levels: Warning, Minor, Major and Critical.
Severity | Definition | Color |
Warning | Be warned. | Yellow |
Minor | Minor problem. | Dark Yellow |
Major | Something important has happened. | Orange |
Critical | Disaster. Financial losses, etc. | Red |
The maximum number of thresholds to be applied per Rule is four, equal to the number of severity levels.
All the open alarms are reflected in the Alarms list (Management Console > Alarms) and can be filtered by severity levels, type, creation time and so on. Thus, users can see metric or device specific alarms correspondingly in Devices and Metrics pages.
Notifications
A Notification topic is a communication bridge that receives notification messages triggered by Rules and sends them to Channels which are subscribed to the Topic.
See:
Enable the Real Time Rule Engine
What you will need
Make sure that you have prepared the following points:
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- Access the Edge Device via Remote Terminal.
Enable
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Install the Real Time Rule Engine. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent install rule-engine
- At the end of the installation, will be asked to start the Rule Engine application. Answer with
YES
. - Ensure the Real Time Rule Engine is running correctly. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent info
The status of the TeamViewer IoT Agent and its extensions is listed.
After enabling the Real Time Rule Engine you can start to create rules and notifications.
Check the Status of the Real Time Rule Engine
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Check the status of the Real Time Rule Engine. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent info
The status of the TeamViewer IoT Agent and its extensions is listed.

Manually enable or disable the Real Time Rule Engine
You can enable or disable the Real Time Rule Engine manually.
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Enable the Real Time Rule Engine. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent start rule-engine
- Disable the Real Time Rule Engine. In the terminal type in the following command and press return.
sudo teamviewer-iot-agent stop rule-engine
Add Rule
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The Real Time Rule Engine is enabled.
- The edge device is connected to the internet.
Adding the Rule
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Rules.
- On the right side click Create Rule.
- Follow the steps in the form to set up the rule:
- Input a rule name
- Set a rule type
- Select one or more metrics
- Set up the condition
- Select one or more topics for notifications (see Add a Topic)

- When finished click Create Rule.
Add Topic
Topics can be created without any Channels or being linked to Rules. In this scenario, notifications will not be sent as there are no specified Channels. You can add Channels to your Topics at any time, during or after setting up the Topic.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The Real Time Rule Engine is enabled.
- The edge device is connected to the internet.
Adding the Topic
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Notifications > Topics.
- On the left side click Create Topic.
- Follow the steps in the form to set up the topic:
- Input a topic name
- Select one or more channels

- Click Create.
Add Channel
Channels can be created without any subscribed Topics. You can subscribe to Topics at any time, during or after setting up the Channel.
Webhooks and emails need to be confirmed prior to being activated (ready for use) in order to prevent abuse of non-owned mediums. Once a Channel is set up, a confirmation message is sent to the endpoint to allow the owner to confirm it within a 24 hour period.
Channel Type | Description |
---|---|
The notification is sent via email to the specified address. | |
Webhook | The notification is sent via HTTP POST message to a specified url. The messages contain JSON documents (see Examples: Rule Triggered Webhook Messages). |
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The Real Time Rule Engine is enabled.
- The edge device is connected to the internet.
Adding the Channel
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Notifications > Channels.
- On the left side click Create Channel.
- Follow the steps in the form to set up the topic:
- Select a channel type
- Input a channel name
- Input the endpoint address (email or URL)
- Select a time zone
- Select one or more topics

- Click Create.
Examples: Rule Triggered Webhook Messages
A Webhook can be thrown when a Rule was triggered. Webhooks are sent via HTTP POST message to a specified url. The message contains JSON documents.
The examples below show Webhook message examples for your reference.
Webhook Endpoint Confirmation
{ "Type": "ChannelConfirmation",
"Message": "You have received this request because your webhook URL has been added to the TeamViewer IoT notification channel list. To confirm this channel visit the ConfirmationURL included in this message" ,
"ConfirmationURL": "https://mywebhook.com/confirmation/eyJ0aW1lU3RhbXAiOjE1Mjk0NzU1OTQwNzYsImNoYW5uZWxOYW1lIjoidGVzdCIsImNoYW5uZWxUeXBlIjoxLCJ1c2VySWQiOiI1YjI3YjI5ZGY2N2VjM2Y1MTAxMDUxNjkiLCJjaGFubmVsSWQiOiI1YjI5ZjIwYTMzNmJjNzUzZjA5M2Q1YWMiLCJ0YXJnZXQiOiJodHRwczovL3dlYmhvb2suc2l0ZS8zMjBmZTQ1Mi1kNzZmLTQ0YTUtYWFiZC04MDAzYTIyZTRlZWEifQ=="
}
{
"Type": "ChannelConfirmationResponse",
"Message": "Webhook channel has been successfully confirmed",
"Timestamp": 1529475719718
}
{
"Type": "ChannelConfirmationResponse",
"Message": "Webhook channel has already been confimred.",
"Timestamp": 1529475731790
}
Rule Met
<pre class="wp-block-syntaxhighlighter-code">{
"StartTime": 1501068864000,
"ruleName": "Default alarm policy",
"condition": "raspberrypi.dht22.temperature < 3",
"consecutiveChecks": 4,
"values": {
"raspberrypi.dht22.temperature": 2
}
}</pre>
Rule Recovered
<pre class="wp-block-syntaxhighlighter-code">{
"endTime": 1501068864000,
"duration": "2 hour(s) 45 minute(s)",
"ruleName": "Default alarm policy",
"condition": "raspberrypi.dht22.temperature < 2",
"consecutiveChecks": 4,
"values": {
"raspberrypi.dht22.temperature": 5
}
}</pre>
Example: Integrate Webhook Alerts
Learn how to integrate alerts with https://ifttt.com/ using TeamViewer IoT Webhooks.
On the TeamViewer IoT dashboard, you can configure Webhook alerts to integrate your IoT solution with many third parties.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- Your IFTTT credentials. Create a user account if not already available.
- Your email account was configured with IFTTT.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The Real Time Rule Engine is enabled.
- The edge device is connected to the internet.
Integrate
- Log in to the IFTTT web page https://ifttt.com/ with your IFTTT credentials.
- To create a new applet click New Applet.

- To add a trigger click +this.

- In the search field enter
webhooks
, then select Webhooks.

- Type in an event name (e.g.
alert
). Then click Create trigger.

- Select the service EMail and complete the template (action fields).
The template represents the email subject and body you will receive when the webhook was triggered.

- Click Create action.
- Switch to MyApps > Services then click Webhooks.

- To see your account information click Settings.
For example:

- To see all details of the webhook navigate to the URL with your web browser.
Make note of the webhook URL (e.g. copy to clipboard).
For example:

- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- Add a Channel use the follwing settings:
- Select channel type Webhook.
- Paste into endpoint the webhook URL from above.
Data and Visualization
Use the capabilities of the TeamViewer IoT Solution to visualize and to export your data.
The easiest way to visualize your data is by using Widgets. This also allows you to export your data for further analysis.
Transfer files quickly and save to and from your edge device by enabling the feature File Transfer.
Make use of the powerful TeamViewer IoT Cloud and its ability to integrate with Amazon Web Services and many other cloud services.
Widgets
Widgets display your IoT data in a comfortable way. The data can be metrics from the Edge Device (e.g. fan speed) or metrics from connected sensors (e.g. room temperature).
Use widgets to help understand your data and to track changes.
To use widgets make sure TeamViewer Edge Management is enabled.
The following types of widgets are available:
- Chart
- Number
- String
- Gauge
- Thermometer
- Map

To use widgets see:
Add a Widget
Add a widget to display your IoT data.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
Adding the Widget
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Dashboard.
- On the right side click Add Widget.

- Setup the widget:
- set a unique Label
- select a widget Type
- select the metrics
- Click OK.
Configure Widgets
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
- A Widget is set up to collect data (see Add a Widget).
Rearrange a Widget on the Dashboard
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Dashboard.
- On the left side choose the Widget which holds the data you want to rearrange.
- Click the Widget and drag it to its new position on the Dashboard.
Display Data within a Time Range
Setting a time range gives you the chance to analyze collected data from a specific period.
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Dashboard.
- On the left side choose the Widget.
- On the upper right of the Widget click the Time Range Menu.
- Select a Time Range:
- Live – displays collected data from the last 3 Minutes
- other ranges – displays collected data from the selected time range
Delete a Widget
Deleting a widget is helpful to keep your dashboard clear and uncluttered.
Data will still be collected even after deleting a widget.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
- A Widget is set up to collect data (see Add a Widget).
Delete a Widget from the Dashboard
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Dashboard.
- On the left side choose the Widget you want to delete.
- On the upper right of the Widget click the Widget Menu (
) > Unpin from Dashboard.
Export collected Data
Collected data is saved in the IoT cloud. Download the raw data from the IoT cloud to analyze it with third-party tools.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
- A Widget is set up to collect data (see Add a Widget).
Export the Data as CSV File
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Dashboard.
- On the left side choose the Widget which holds the data you want to export.

- On the upper right of the Widget click the Widget Menu (
) > Export to CSV.
The Export CSV data file dialog is displayed.- Type in a filename
- Select the metrics you want to export
- Select the time range
- Click Export.
A download link is generated and is sent to your TeamViewer EMail.
Use the download link to download the data from the IoT cloud.
Enable File Transfer
Thanks to the File Transfer feature that TeamViewer IoT offers, users can upload and download files from their PCs to the Edge Device and vice versa.
File Transfer is an extension of the TeamViewer IoT Agent.
What you will need
Make sure that you have prepared the following points:
- System Requirements:
- TeamViewer IoT Agent (Version 2.9 or newer) installed on device edge (see Update the IoT Agent)
- TeamViewer Client installed on PC (see https://www.teamviewer.com/)
- Access the Edge Device via Remote Terminal.
Enable
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Type in the following command and press enter:
sudo teamviewer-iot-agent configure set FileTransferAccessControl 0
When enabled, you can start to transfer files (see Transfer Files).
Disable
- Access the edge device remotely (Access the Edge Device via Remote Terminal).
- In the terminal type in the following command and press enter:
sudo teamviewer-iot-agent configure set FileTransferAccessControl 2
Transfer Files
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent.
- The edge device is connected to the internet.
- File Transfer is enabled (see Enable File Transfer).
Procedure
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Inventory.
- From the drop-down-menu select Devices.
- From the list choose the device you want to transfer file. On the upper right of the device click the Device Menu (
) > File Transfer.
The File Transfer dialog opens. - Use the dialog to transfer files between your PC and the Edge Device.
- When all transfers are finished click Close.

Activate System Monitoring
The TeamViewer IoT Agent comes with a pre-configured monitor for monitoring the operating system of your Edge Device. This is helpful to monitor the status and the health of your devices.
You can use this feature to keep track of the following device operating system metrics:
- 1 min load
- 5 min load
- 15 min load
- Free Memory
- Total Memory
- Free Swap Memory
- Total Swap Memory
- Buffers Memory
- Cached Memory
- Number of CPU cores
- User CPU Usage
- Nice CPU Usage
- System CPU Usage
- Idle CPU Usage
- Io Wait CPU Usage
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
Setup
- To log in to the IoT Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the left menu select Inventory.
- On the right side from the dropdown menu Add select Sensor.

- Depending on which data you want to monitor, activate CPU, Memory or Load.

- From the dropdown menu Select Device select the Edge Device you want to monitor. The
Sensor Name
will be generated automatically with the selected option. - Select the frequency by which the data will be sent to the TeamViewer IoT Cloud. It can be defined in seconds or minutes.

- To finish click Add. You will be redirected automatically to the Inventory.
- From the list choose the Sensor you want to monitor, then from the dropdown menu select Pin to Dashboard.

You can use Rules and Notifications if you want to receive a notification when the health of your Edge Device is in danger. For example: receive a warning if the CPU usage is above 90%.
Integrate TeamViewer IoT with AWS IoT Greengrass
Publish and subscribe data from the edge device to your AWS IoT Greengrass platform and vice-versa.
To accomplish this task you need to follow the steps in this article:
- Create AWS IoT Greengrass group
- Install and Start AWS IoT Greengrass on the Edge Device
- Start AWS IoT Greengrass on the Edge Device
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
- Your AWS Greengrass credentials.
- The edge device is set up with a TeamViewer IoT Agent and TeamViewer Edge Management is enabled.
- The edge device is connected to the internet.
- File Transfer is enabled (see Enable File Transfer).
- Access the Edge Device via Remote Terminal.
Create AWS IoT Greengrass group
An AWS IoT Greengrass group contains settings and other information about its components, such as devices, Lambda functions, and connectors. A group defines how its components can interact with each other.
- On your PC sign in to AWS Management Console and open the AWS IoT console.
- From the left menu click Greengrass.

- On the Welcome to AWS IoT Greengrass page, click Create a Group.
- To allow the console to create or configure the Greengrass service role for you click Grant permission.

- On the Set up your Greengrass group page, select Use default creation to create a group.

- Enter a name for your group (for example,
MyFirstGroup
), and then click Next. - On the Review Group creation page, select Create Group and Core.
- Download your core’s security resources and configuration file. On the confirmation page, under Download and store your Core’s security resources, choose Download these resources as a tar.gz.
tar.gz
file starts with a 10-digit hash that’s also used for the certificate and key file names.
- After the download click Finish.
Install AWS IoT Greengrass on the Edge Device
You need the security resources which you have downloaded when creating an AWS IoT Greengrass group.
- Download the AWS IoT Greengrass Core software installation package. select the CPU architecture and distribution (and operating system, if necessary) that best describe your core device.
- For Raspberry Pi Model B or B+, download the Armv7l for Raspbian package.
- For an Amazon EC2 instance, download the x86_64 for Linux package.
- Use Transfer Files to transfer the AWS IoT Greengrass Core software (
greengrass-
) and the security resourcesXXXXXX
.tar.gzYYYYYY-setup.tar.gz
to the user folder on the edge device (default/home/pi/
). - Access the edge device remotely (Access the Edge Device via Remote Terminal).
- Navigate to the user folder on the edge device where you transferred the files.
- To decompress the files type in the following commands and press enter:
sudo tar -xzvf greengrass-OS-architecture-1.10.0.tar.gz -C
sudo tar -xzvf hash-setup.tar.gz -C /greengrass
- To download the ATS root CA certificate type in the following command and press enter:
cd /greengrass/certs/ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
- Start AWS IoT Greengrass on your edge device type in the following commands and press enter:
cd /greengrass/ggc/core/
sudo ./greengrassd start
- When the message “Greengrass successfully started” is displayed take a note of the PID-number.
- To check if the AWS IoT Greengrass daemon is functioning type in the following command and press enter. Replace
PID
with the PID-number from the previous step.
ps aux | grep PID
Examples: Lambda Functions on AWS IoT Greengrass
Publish Data from the MQTT-Broker to the Amazon Cloud
This lambda function subscribes data from MQTT-Broker from Edge Device and publishes is to the Amazon Cloud to the topic tv/greengrass
.
#!/usr/bin/python
import paho.mqtt.subscribe as subscribe
import paho.mqtt.publish as publish
import traceback
import json
def function_handler(event, context):
return
# AWS part
# Change following parameters
aws_host = "a10kx625z9icrs-ats.iot.eu-central-1.amazonaws.com" # Endpoint
aws_port = 8883
aws_tls = {'certfile': "/home/pi/Downloads/certs/1b9a6e0dcb.cert.pem",
'keyfile': "/home/pi/Downloads/certs/1b9a6e0dcb.private.key",
'ca_certs': "/home/pi/Downloads/certs/root.ca.pem"
}
# TV part
#Change following parameters
tv_iot_api_version = "v1.0"
tv_host = "localhost"
tv_port = 18884
tv_tls = {'certfile': "/home/pi/Downloads/test_client_greengrass/cert-7a2b7efc1ad1473d87e049517a19628b.pem",
'keyfile': "/home/pi/Downloads/test_client_greengrass/key-7a2b7efc1ad1473d87e049517a19628b.pem",
'ca_certs': "/home/pi/Downloads/test_client_greengrass/TeamViewerAuthority.crt"}
client_id = "fd9e67783b7441ffb7cd62dda121567a"
sensor_id = "111804"
def subscribe_data():
try:
mqtt_topic_subscribe_data = "/" + tv_iot_api_version + "/" + client_id + "/sensor/" + sensor_id + "/livedata"
print("Suscribing to " + mqtt_topic_subscribe_data)
subscribe.callback(on_subscribe, mqtt_topic_subscribe_data, hostname=tv_host, port=tv_port, tls=tv_tls)
except Exception as e:
traceback.print_exc()
print(str(e))
def on_subscribe(client, userdata, message):
json_message = json.loads(message.payload.decode('utf8'))
msgArr = []
for metric in json_message["metrics"]:
messageJ = {}
messageJ['metricId'] = metric["metricId"]
messageJ['metricValue'] = metric["value"]
msgArr.append(messageJ)
msgs = []
msgs.append({'topic': "tv/greengrass", 'payload': json.dumps(msgArr)})
print(msgs)
publish.multiple(msgs, hostname=aws_host, port=aws_port, tls=aws_tls)
subscribe_data()
Fetch Data from the Amazon Cloud
This lambda function subscribes the data from Amazon Cloud and pushes the data to TeamViewer metrics and real-time data can be visualized with the IoT Management Console and the dashboard.
#!/usr/bin/python
import paho.mqtt.subscribe as subscribe
import paho.mqtt.publish as publish
import traceback
import json
import ssl
def function_handler(event, context):
return
# AWS part
# Change following parameters
aws_host = "a10kx625z9icrs-ats.iot.eu-central-1.amazonaws.com" # Endpoint
aws_port = 8883
aws_tls = {'certfile': "/home/pi/Downloads/certs/1b9a6e0dcb.cert.pem",
'keyfile': "/home/pi/Downloads/certs/1b9a6e0dcb.private.key",
'ca_certs': "/home/pi/Downloads/certs/root.ca.pem",
'tls_version': ssl.PROTOCOL_TLSv1_2
}
# TV part
#Change following parameters
tv_iot_api_version = "v1.0"
tv_host = "localhost"
tv_port = 18884
tv_tls = {'certfile': "/home/pi/Downloads/test_client_greengrass/cert-7a2b7efc1ad1473d87e049517a19628b.pem",
'keyfile': "/home/pi/Downloads/test_client_greengrass/key-7a2b7efc1ad1473d87e049517a19628b.pem",
'ca_certs': "/home/pi/Downloads/test_client_greengrass/TeamViewerAuthority.crt"}
client_id = "7a2b7efc1ad1473d87e049517a19628b"
sensor_id = "71b91c40fb2d4f61bec2fa593172085d"
def aws_subscribe():
print("Suscribing to tv/greengrassSub")
subscribe.callback(on_subscribe, "tv/greengrassSub", hostname=aws_host, port=aws_port, tls=aws_tls)
def on_subscribe(client, userdata, message):
try:
metric_data = json.loads(message.payload.decode('utf8'))
mqtt_topic_push_data = "/" + tv_iot_api_version + "/" + client_id + "/sensor/" + sensor_id + "/metric/pushValues"
# metric_data = {"metrics": [{"value": 1, "metricId": "7ad8ad3e2dbe4cdcba0ee3ec0cbd2717"}]}
msgs = []
msgs.append({'topic': mqtt_topic_push_data, 'payload': json.dumps(metric_data)})
print(msgs)
publish.multiple(msgs, hostname=tv_host, port=tv_port, tls=tv_tls)
except Exception as e:
traceback.print_exc()
print(str(e))
aws_subscribe()
Security
TeamViewer IoT uses full encryption.
The encryption is based on 2048 Bit RSA private/public key exchange and 256 Bit AES session encoding. This uses the same security level as https/SSL and is considered completely safe by today’s standards.
The key exchange also guarantees that the data transfer is completely encoded from client to client and that any routers or servers in between (including our routers) are unable to read or analyze the data stream.
Activate Two-Factor Authentication
Protect your TeamViewer account and thus your Computers & Contacts list from unauthorized access with an additional security code.
Activate
The TeamViewer Management Console manages the two-factor authentication. You need your TeamViewer Account credentials to access the Management Console.
- To log in to the Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the top menu click your user name > Edit profile.
The dialog Profile Settings opens. - Click General > Two-factor authentication, then click Activate.
Your recovery code is shown. - Download, print or copy the recovery code, then click Continue.
- Click Save to finish the activation.
See also Recovery Code for Two-Factor Authentication.
Video Tutorial: Activate
This video shows you step by step how to activate the two-factor authentication for your TeamViewer Account.
Deactivate
There are two possible ways to deactivate two-factor authentication.
Using your profile settings
The TeamViewer Management Console manages the two-factor authentication. You need your TeamViewer Account credentials to access the Management Console.
- To log in to the Management Console, open https://teamviewer-iot.com and use your TeamViewer account credentials.
- From the top menu click your user name > Edit profile.
The dialog Profile Settings opens. - Click General > Two-factor authentication, then click Deactivate.
Using the Recovery Code
You need your TeamViewer Account credentials and your recovery code to deactivate the two-factor authentication.
- To navigate to the Management Console, open https://teamviewer-iot.com/LogOn#deactivate-tfa.
- Use your TeamViewer account credentials and your recovery code.
Authorize a Trusted Device
Trusted Devices provides an extra layer of security for your TeamViewer Account. As a preventive measure to ensure your account’s security, you need to authorize new devices on which you sign in to your TeamViewer Account for the first time.
Due to technical reasons there is more than one trust per device. You will need to set separate trusts for the TeamViewer client, the Management Console (per browser), and each TeamViewer application.
What you will need
Make sure that you have prepared the following points:
- Your TeamViewer credentials.
If you don’t have an account yet, visit https://www.teamviewer.com/ to create a new account. - TeamViewer Client is installed.
Setup
- On your PC open the TeamViewer Client and log in for the first time.
- Confirm the message dialog.
A device authorization email is sent to the email address of your TeamViewer account.
- Click the link within the email to authorize the device.
You will be forwarded to the TeamViewer Management Console. - To complete the authorization process, select the kind of trust scope you would like to grant. Then click Trust.
- From the dropdown menu select whether you would like to trust this specific device or the IP address permanently or whether you would like to trust this device only once:
Option | Description |
---|---|
Trust device | You are setting the trust for the specific device. |
Trust IP address | You can decide whether you would like to trust a single device only or if you would like to trust the IP address. That means your account’s trust is extended to all other devices in the same local network. You can now log in with all devices/instances that log in from the trusted IP address. When the IP address changes, you will get the trusted device mails only for new devices, that haven’t signed in before the IP address has changed. |
Trust only once | This trust scope can be used, when you only want to log in on the device once (on a device from your customer, in an Internet cafe,… ). It is only valid for one login on the device. The trust will be deleted after you logged in from the trusted device. When you retry to log in you will get the trusted device message again. |
A message is displayed in the Management Console informing you that the new device is now a trusted device.
Once you complete the authorization process, you are able to sign in on the new device with your TeamViewer account credentials.
Recovery Code for Two-Factor Authentication
When activating two-factor authentication for your TeamViewer Account, you get an individual recovery code.
Store the recovery code in a safe place.
If you lose access to your mobile device or to the authenticator app on your device, the recovery code is your last resort to deactivate two-factor authentication.
Do not send the recovery code unencrypted via email since this could give an unauthorized user access to it. After deactivating two-factor authentication with the recovery code, you can always reactivate two-factor authentication for your user.
View Recovery Code
The TeamViewer Management Console manages the recovery code. You need your TeamViewer Account credentials to access the Management Console.

- To log in to the Management Console, open https://login.teamviewer.com/ and use your TeamViewer account credentials.
- From the top menu click your user name > Edit profile.
The dialog Profile Settings opens. - Click General > View Recovery Code.