You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Understand how IoT Edge devices can operate without internet connection for an extended time, and how to enable regular IoT devices to operate offline.
Azure IoT Edge supports extended offline operations on your IoT Edge devices and enables offline operations on downstream devices too. As long as an IoT Edge device has had one opportunity to connect to IoT Hub, that device and any downstream devices can continue to function with intermittent or no internet connection.
16
+
Azure IoT Edge lets your IoT Edge devices work offline for extended periods and lets downstream devices work offline too. After an IoT Edge device connects to IoT Hub once, the device and any downstream device can keep working with intermittent or no internet connection.
17
17
18
18
## How it works
19
19
20
20
When an IoT Edge device goes into offline mode, the IoT Edge hub takes on three roles:
21
21
22
-
* Stores any messages that would go upstream and saves them until the device reconnects.
23
-
* Acts on behalf of IoT Hub to authenticate modules and downstream devices so they can continue to operate.
24
-
* Enables communication between downstream devices that normally would go through IoT Hub.
22
+
* Stores any messages that goes upstream and saves them until the device reconnects.
23
+
* Acts on behalf of IoT Hub to authenticate modules and downstream devices so they can keep operating.
24
+
* Enables communication between downstream devices that normally go through IoT Hub.
25
25
26
26
The following example shows how an IoT Edge scenario operates in offline mode:
27
27
28
28
1.**Configure devices**
29
29
30
-
IoT Edge devices automatically have offline capabilities enabled. To extend that capability to other devices, you need to configure the downstream devices to trust their assigned parent device and route the device-to-cloud communications through the parent as a gateway.
30
+
IoT Edge devices have offline capabilities enabled by default. To extend this capability to other devices, configure downstream devices to trust their assigned parent device and route device-to-cloud communications through the parent as a gateway.
31
31
32
32
2.**Sync with IoT Hub**
33
33
34
-
At least once after installation of the IoT Edge runtime, the IoT Edge device needs to be online to sync with IoT Hub. In this sync, the IoT Edge device gets details about any downstream devices assigned to it. The IoT Edge device also securely updates its local cache to enable offline operations and retrieves settings for local storage of telemetry messages.
34
+
After you install the IoT Edge runtime, make sure the IoT Edge device is online at least once to sync with IoT Hub. During this sync, the IoT Edge device gets details about any downstream devices assigned to it. The IoT Edge device also securely updates its local cache to enable offline operations and gets settings for local storage of telemetry messages.
35
35
36
36
3.**Go offline**
37
37
38
-
While disconnected from IoT Hub, the IoT Edge device, its deployed modules, and any downstream devices can operate indefinitely. Modules and downstream devices can start and restart by authenticating with the IoT Edge hub while offline. Telemetry bound upstream to IoT Hub is stored locally. Communication between modules or between downstream devices is maintained through direct methods or messages.
38
+
While disconnected from IoT Hub, the IoT Edge device, its deployed modules, and any downstream devices can keep operating indefinitely. Modules and downstream devices can start and restart by authenticating with the IoT Edge hub while offline. Device telemetry bound upstream to IoT Hub is stored locally. Communication between modules or between downstream devices is maintained through direct methods or messages.
39
39
40
40
4.**Reconnect and resync with IoT Hub**
41
41
42
-
Once the connection with IoT Hub is restored, the IoT Edge device syncs again. Locally stored messages are delivered to the IoT Hub right away, but are dependent on the speed of the connection, IoT Hub latency, and related factors. They are delivered in the same order in which they were stored.
42
+
When the connection with IoT Hub is restored, the IoT Edge device syncs again. Locally stored messages are delivered to IoT Hub right away, but delivery depends on the speed of the connection, IoT Hub latency, and related factors. Messages are delivered in the same order in which they were stored.
43
43
44
44
Any differences between the desired and reported properties of the modules and devices are reconciled. The IoT Edge device updates any changes to its set of assigned downstream devices.
45
45
46
46
## Restrictions and limits
47
47
48
-
IoT Edge devices and their assigned downstream devices can function indefinitely offline after the initial, one-time sync. However, storage of messages depends on the [time to live (TTL) setting](#time-to-live) and the available disk space for storing the messages.
48
+
IoT Edge devices and their assigned downstream devices can function indefinitely offline after the initial, one-time sync. However, message storage depends on the [time to live (TTL) setting](#time-to-live) and available disk space.
49
49
50
-
A device's *EdgeAgent* updates its reported properties whenever there is a change in the deployment status such as a new or failed deployment. When a device is offline, the *EdgeAgent* can't report status to the Azure portal. Therefore, the device status in the Azure portal may remain **200 OK** when IoT Edge device has no internet connectivity.
50
+
A device's *EdgeAgent* updates its reported properties whenever deployment status changes, like a new or failed deployment. When a device is offline, the *EdgeAgent* can't report status to the Azure portal. Therefore, the device status in the Azure portal can remain **200 OK** when the IoT Edge device has no internet connectivity.
51
51
52
52
## Set up parent and child devices
53
53
54
-
By default, a parent device can have up to 100 children. You can change this limit by setting the **MaxConnectedClients** environment variable in the edgeHub module. A child device only has one parent.
54
+
By default, a parent device can have up to 100 children. Change this limit by setting the **MaxConnectedClients** environment variable in the edgeHub module. A child device only has one parent.
55
55
56
56
>[!NOTE]
57
-
>A downstream device emits data directly to the Internet or to gateway devices (IoT Edge-enabled or not). A child device can be a downstream device or a gateway device in a nested topology.
57
+
>A downstream device sends data directly to the internet or to gateway devices (IoT Edge-enabled or not). A child device can be a downstream device or a gateway device in a nested topology.
58
58
59
-
Downstream devices can be any device, IoT Edge or non-IoT Edge, registered to the same IoT Hub.
59
+
A downstream device can be any device, IoT Edge or non-IoT Edge, registered to the same IoT Hub.
60
60
61
-
For more information about creating a parent-child relationship between an IoT Edge device and an IoT device, see [Authenticate a downstream device to Azure IoT Hub](how-to-authenticate-downstream-device.md). The symmetric key, self-signed X.509, and CA-signed X.509 sections show examples of how to use the Azure portal and Azure CLI to define the parent-child relationships when creating devices. For existing devices, you can declare the relationship from the device details page in the Azure portal of either the parent or child device.
61
+
For more information about creating a parent-child relationship between an IoT Edge device and an IoT device, see [Authenticate a downstream device to Azure IoT Hub](how-to-authenticate-downstream-device.md). The symmetric key, self-signed X.509, and CA-signed X.509 sections show examples of how to use the Azure portal and Azure CLI to define the parent-child relationships when creating devices. For existing devices, declare the relationship from the device details page in the Azure portal of either the parent or child device.
62
62
63
63
For more information about creating a parent-child relationship between two IoT Edge devices, see [Connect a downstream IoT Edge device to an Azure IoT Edge gateway](how-to-connect-downstream-iot-edge-device.md).
64
64
65
65
### Set up the parent device as a gateway
66
66
67
-
You can think of a parent/child relationship as a transparent gateway, where the child device has its own identity in IoT Hub but communicates through the cloud via its parent. For secure communication, the child device needs to be able to verify that the parent device comes from a trusted source. Otherwise, third-parties could set up malicious devices to impersonate parents and intercept communications.
67
+
Think of a parent/child relationship as a transparent gateway, where the child device has its own identity in IoT Hub but communicates through the cloud via its parent. For secure communication, the child device needs to verify that the parent device comes from a trusted source. Otherwise, third-parties could set up malicious devices to impersonate parents and intercept communications.
68
68
69
69
One way to create this trust relationship is described in detail in the following articles:
70
70
@@ -73,22 +73,22 @@ One way to create this trust relationship is described in detail in the followin
73
73
74
74
## Specify DNS servers
75
75
76
-
To improve robustness, it's highly recommended you specify the DNS server addresses used in your environment. To set your DNS server for IoT Edge, see the resolution for [Edge Agent module reports 'empty config file' and no modules start on the device](troubleshoot-common-errors.md#edge-agent-module-reports-empty-config-file-and-no-modules-start-on-the-device) in the troubleshooting article.
76
+
To improve robustness, specify the DNS server addresses used in your environment. To set your DNS server for IoT Edge, see the resolution for [Edge Agent module reports 'empty config file' and no modules start on the device](troubleshoot-common-errors.md#edge-agent-module-reports-empty-config-file-and-no-modules-start-on-the-device) in the troubleshooting article.
77
77
78
78
## Optional offline settings
79
79
80
-
If your devices go offline, the IoT Edge parent device stores all device-to-cloud messages until the connection is reestablished. The IoT Edge hub module manages the storage and forwarding of offline messages.
80
+
If your devices go offline, the IoT Edge parent device stores all device-to-cloud messages until the connection is reestablished. The IoT Edge hub module manages storing and forwarding offline messages.
81
81
82
-
For devices that may go offline for extended periods of time, optimize performance by configuring two IoT Edge hub settings:
82
+
For devices that can go offline for a long time, optimize performance by setting two IoT Edge hub options:
83
83
84
-
* Increase the *time to live* setting, so the IoT Edge hub keeps messages until your device reconnects.
85
-
* Add additional disk space for message storage.
84
+
* Increase the *time to live* setting so the IoT Edge hub keeps messages until your device reconnects.
85
+
* Add more disk space for message storage.
86
86
87
87
### Time to live
88
88
89
-
The *time to live* setting is the amount of time (in seconds) that a message can wait to be delivered before it expires. The default is 7200 seconds (two hours). The maximum value is only limited by the maximum value of an integer variable, which is around 2 billion.
89
+
The *time to live* setting is how long (in seconds) a message waits to be delivered before it expires. The default is 7,200 seconds (two hours). The maximum value is limited by the maximum value of an integer variable, which is about 2 billion.
90
90
91
-
This setting is a desired property of the IoT Edge hub, which is stored in the module twin. You can configure it in the Azure portal or directly in the deployment manifest.
91
+
This setting is a desired property of the IoT Edge hub, stored in the module twin. Configure it in the Azure portal or directly in the deployment manifest.
92
92
93
93
```json
94
94
"$edgeHub": {
@@ -104,7 +104,7 @@ This setting is a desired property of the IoT Edge hub, which is stored in the m
104
104
105
105
### Host storage for system modules
106
106
107
-
Messages and module state information are stored in the IoT Edge hub's local container filesystem by default. For improved reliability, especially when operating offline, you can also dedicate storage on the host IoT Edge device. For more information, see [Give modules access to a device's local storage](how-to-access-host-storage-from-module.md).
107
+
By default, the IoT Edge hub stores messages and module state in its local container filesystem. For better reliability, especially when offline, dedicate storage on the host IoT Edge device. For more information, see [Give modules access to a device's local storage](how-to-access-host-storage-from-module.md).
0 commit comments