{"id":27809,"date":"2025-08-13T08:47:36","date_gmt":"2025-08-13T15:47:36","guid":{"rendered":"https:\/\/tdengine.com\/?p=27809"},"modified":"2025-11-03T07:12:31","modified_gmt":"2025-11-03T15:12:31","slug":"tdengine-idmp-in-action-microgrid-with-sparkplug-b","status":"publish","type":"post","link":"https:\/\/tdengine.com\/tdengine-idmp-in-action-microgrid-with-sparkplug-b\/","title":{"rendered":"TDengine IDMP in Action: Microgrid with Sparkplug B"},"content":{"rendered":"\n<p>This article presents an example scenario simulating a microgrid system with wind power, solar power, and energy storage assets. Metrics from this system are ingested into TDengine TSDB over <a href=\"https:\/\/sparkplug.eclipse.org\/\" rel=\"noopener\">Sparkplug B<\/a>, a framework for MQTT clients designed for industrial IoT scenarios. An asset model is then built and panels and real-time analysis tasks are generated in TDengine IDMP.<\/p>\n\n\n\n<h2 class=\"gb-text\">Video<\/h2>\n\n\n\n<div class=\"gb-element-91ff13bd\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"From Sparkplug B to AI Insights: Building a Smart Microgrid with TDengine IDMP\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/qeBraqF_c0k?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n<\/div>\n\n\n\n<h2 class=\"gb-text\">Environment Setup<\/h2>\n\n\n\n<p>In this demonstration, TDengine TSDB and TDengine IDMP are deployed using Docker, with a Sparkplug B simulator serving as the data source for the demo environment. The data flow is described in the following figure:<\/p>\n\n\n\n<img decoding=\"async\" width=\"4008\" height=\"768\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch.png?strip=all&sharp=1\" alt=\"\" title=\"spb-arch\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch.png?strip=all&amp;sharp=1 4008w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch-300x57.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch-1024x196.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch-768x147.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch-1536x294.png?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch-2048x392.png?strip=all&amp;sharp=1 2048w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch.png?strip=all&amp;sharp=1&amp;w=1603 1603w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch.png?strip=all&amp;sharp=1&amp;w=2404 2404w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch.png?strip=all&amp;sharp=1&amp;w=3206 3206w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch.png?strip=all&amp;sharp=1&amp;w=450 450w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/spb-arch.png?strip=all&amp;sharp=1&amp;w=1920 1920w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<h2 class=\"gb-text\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download the Sparkplug B simulator to your local machine.\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/downloads.tdengine.com\/tools\/spb-pub\/1.11.0\/spb_pub-x86_64.tar.gz\">x64 systems<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/downloads.tdengine.com\/tools\/spb-pub\/1.11.0\/spb_pub-arm64.tar.gz\">ARM64 systems<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Install Docker on your local machine. You can install Docker Desktop from the <a href=\"https:\/\/www.docker.com\/\" rel=\"noopener\">Docker website<\/a>.<\/li>\n\n\n\n<li>Install Git on your local machine. For more information, see the <a href=\"https:\/\/git-scm.com\/downloads\" target=\"_blank\" rel=\"noreferrer noopener\">Git website<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"gb-text\">Install the Demonstration Environment<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<ol>\n<li>\n<p>Clone the <a href=\"https:\/\/github.com\/taosdata\/tdengine-idmp-deployment\" target=\"_blank\" rel=\"noreferrer noopener\">tdengine-idmp-deployment<\/a> repository:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">git clone https:\/\/github.com\/taosdata\/tdengine-idmp-deployment.git<\/code><\/pre>\n<\/li>\n\n\n\n<li>\n<p>Start Docker Compose:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">cd tdengine-idmp-deployment\/docker\ndocker compose up -d<\/code><\/pre>\n\n\n\n<p>Note: On Windows, use a backslash (\\) instead of a forward slash (\/): <code class=\"\" data-line=\"\">cd tdengine-idmp-deployment\\docker<\/code><\/p>\n\n\n\n<p>This command will automatically pull the required images and start the TDengine IDMP and TDengine TSDB-Enterprise services in detached mode.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Add an MQTT broker container to enable the Sparkplug B simulator:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">docker pull tdengine\/ev-mqtt:20250806092152\ndocker run --name mqtt -d --network=docker_taos_net tdengine\/ev-mqtt:20250806092152<\/code><\/pre>\n<\/li>\n<\/ol>\n\n\n\n<p>You can access TDengine TSDB Explorer at <code class=\"\" data-line=\"\">http:\/\/localhost:6060<\/code> and TDengine IDMP at <code class=\"\" data-line=\"\">http:\/\/localhost:6042<\/code>.<\/p>\n\n\n\n<div class=\"gb-element-4ea5202d\">\n<h4 class=\"gb-text\">Troubleshooting<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What happens:<\/strong> You try to start, but it fails or says the port is in use.<\/li>\n\n\n\n<li><strong>Why:<\/strong> An old demo or another program is still using Docker.<\/li>\n\n\n\n<li><strong>Fix:<\/strong>\n<ol class=\"wp-block-list\">\n<li>Stop all Docker containers by running <code class=\"\" data-line=\"\">docker stop $(docker ps -q)<\/code> <\/li>\n\n\n\n<li>If the issue persists, restart Docker Desktop.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<\/div>\n\n\n\n<h2 class=\"gb-text\">Create a Database<\/h2>\n\n\n\n<ol>\n<li>\n<p>In your browser, access TDengine TSDB Explorer at <code class=\"\" data-line=\"\">http:\/\/localhost:6060<\/code>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Log in with the default username <code class=\"\" data-line=\"\">root<\/code> and password <code class=\"\" data-line=\"\">taosdata<\/code>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Enter your name and email address as prompted to activate TDengine TSDB-Enterprise.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Create a database to store the sample data.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"635\" class=\"gb-media-e9a5450d\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1.png?strip=all&sharp=1\" title=\"scen-microgrid-1\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1-300x140.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-1.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<ol class=\"gb-element-31a43742\">\n<li>\n<p>In the main menu on the left, click <strong>Explorer<\/strong>. Then click the + (Create Database) button next to <strong>Databases<\/strong>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>In the <strong>Name<\/strong> field, enter <code class=\"\" data-line=\"\">db_microgrid<\/code>. Retain the default values for all other settings.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Click <strong>Create<\/strong>.<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"gb-text\">Generate Simulated Data<\/h2>\n\n\n\n<p>The simulated data in this scenario is described in the following table.<\/p>\n\n\n\n<table id=\"tablepress-105\" class=\"tablepress tablepress-id-105 tbody-has-connected-cells\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Group ID<\/th><th class=\"column-2\">Edge Node ID<\/th><th class=\"column-3\">Device ID<\/th><th class=\"column-4\">Metrics<\/th><th class=\"column-5\">Unit<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td rowspan=\"16\" class=\"column-1\">Industrial_Park<\/td><td rowspan=\"16\" class=\"column-2\">Micro_Grid<\/td><td class=\"column-3\">PV_Inverter_1<\/td><td rowspan=\"2\" class=\"column-4\">solar_pv_output<\/td><td rowspan=\"2\" class=\"column-5\">kW<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-3\">PV_Inverter_2<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-3\">Wind_Turbine_1<\/td><td rowspan=\"2\" class=\"column-4\">wind_power_output<\/td><td rowspan=\"2\" class=\"column-5\">kW<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-3\">Wind_Turbine_2<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td rowspan=\"3\" class=\"column-3\">Battery_1<\/td><td class=\"column-4\">battery_state_of_charge<\/td><td class=\"column-5\">%<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-4\">battery_charging_rate<\/td><td class=\"column-5\">kW<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-4\">battery_discharging_rate<\/td><td class=\"column-5\">kW<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td rowspan=\"5\" class=\"column-3\">Env_Sensor_1<\/td><td class=\"column-4\">solar_irradiance<\/td><td class=\"column-5\">W\/m<sup>2<\/sup><\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-4\">wind_speed<\/td><td class=\"column-5\">m\/s<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-4\">temperature<\/td><td class=\"column-5\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-4\">humidity<\/td><td class=\"column-5\">%<\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-4\">atmospheric_pressure<\/td><td class=\"column-5\">hPa<\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td rowspan=\"4\" class=\"column-3\">Grid_Interface_1<\/td><td class=\"column-4\">grid_load_demand<\/td><td class=\"column-5\">kW<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-4\">frequency<\/td><td class=\"column-5\">Hz<\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-4\">voltage<\/td><td class=\"column-5\">V<\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td class=\"column-4\">power_exchange<\/td><td class=\"column-5\">kW<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-105 from cache -->\n\n\n<p>Generate the data as follows:<\/p>\n\n\n\n<ol>\n<li>\n<p>Copy the Sparkplug B simulator to the root directory of the TDengine TSDB container. Replace <code class=\"\" data-line=\"\">&lt;arch&gt;<\/code> with <code class=\"\" data-line=\"\">x86_64<\/code> or <code class=\"\" data-line=\"\">arm64<\/code> depending on the simulator package that you downloaded.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">docker cp spb_pub-&lt;arch&gt;.tar.gz tdengine-tsdb:\/root<\/code><\/pre>\n<\/li>\n\n\n\n<li>\n<p>Open a terminal inside the TDengine TSDB container.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">docker exec -it tdengine-tsdb \/bin\/bash<\/code><\/pre>\n<\/li>\n\n\n\n<li>\n<p>Inside the container, decompress the simulator package and open its directory.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">tar -zxvf spb_pub-&lt;arch&gt;.tar.gz\ncd spb_pub<\/code><\/pre>\n<\/li>\n\n\n\n<li>\n<p>Download the simulator configuration file to the simulator directory:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">curl https:\/\/content.tdengine.com\/hubfs\/microgrid.toml --output microgrid.toml<\/code><\/pre>\n<\/li>\n\n\n\n<li>\n<p>Start the simulator:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">.\/spb_pub --schema microgrid.toml --host mqtt<\/code><\/pre>\n<\/li>\n<\/ol>\n\n\n\n<p>Information similar to the following indicates that the simulator is running:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">start report Micro_Grid data\nstart report Micro_Grid\/PV_Inverter_1 data\nstart report Micro_Grid\/PV_Inverter_2 data\nstart report Micro_Grid\/Wind_Turbine_1 data\nstart report Micro_Grid\/Wind_Turbine_2 data\nstart report Micro_Grid\/Battery_1 data\nstart report Micro_Grid\/Env_Sensor_1 data\nstart report Micro_Grid\/Grid_Interface_1 data\nsuccessfully connected<\/code><\/pre>\n\n\n\n<h2 class=\"gb-text\">Create a Data Ingestion Task<\/h2>\n\n\n\n<ol>\n<li>\n<p>In your browser, access TDengine TSDB Explorer at <code class=\"\" data-line=\"\">http:\/\/localhost:6060<\/code>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>In the main menu on the left, open <strong>Data In<\/strong> and click <strong>Add Source<\/strong>.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"634\" class=\"gb-media-ccb20a3e\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3.png?strip=all&sharp=1\" title=\"scen-microgrid-3\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-3.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Configure basic information as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name:<\/strong> Enter a unique name for the data ingestion task.<\/li>\n\n\n\n<li><strong>Type:<\/strong> Select <strong>SparkplugB<\/strong>.<\/li>\n\n\n\n<li><strong>Agent:<\/strong> Leave this field blank.<\/li>\n\n\n\n<li><strong>Target:<\/strong> Select the <code class=\"\" data-line=\"\">db_microgrid<\/code> database.<\/li>\n<\/ul>\n\n\n\n<img decoding=\"async\" width=\"663\" height=\"205\" class=\"gb-media-ebcb5212\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-41.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-41.png?strip=all&amp;sharp=1 663w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-41-300x93.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-41.png?strip=all&amp;sharp=1&amp;w=132 132w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-41.png?strip=all&amp;sharp=1&amp;w=397 397w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-41.png?strip=all&amp;sharp=1&amp;w=530 530w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-41.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 663px) 100vw, 663px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Configure the connection information as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Brokers:<\/strong> Enter <code class=\"\" data-line=\"\">mqtt:1883<\/code>.<\/li>\n\n\n\n<li><strong>MQTT Protocol Version:<\/strong> Retain the default value of <strong>5.0<\/strong>.<\/li>\n\n\n\n<li><strong>Client ID:<\/strong> Enter a unique client ID for the data ingestion task.<\/li>\n\n\n\n<li>Leave all other fields in this section blank.<\/li>\n<\/ul>\n\n\n\n<p>Then click <strong>Check Connection<\/strong> to ensure that your connection to the MQTT broker is configured correctly.<\/p>\n\n\n\n<img decoding=\"async\" width=\"666\" height=\"409\" class=\"gb-media-ff55e7d2\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-42.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-42.png?strip=all&amp;sharp=1 666w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-42-300x184.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-42.png?strip=all&amp;sharp=1&amp;w=133 133w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-42.png?strip=all&amp;sharp=1&amp;w=399 399w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-42.png?strip=all&amp;sharp=1&amp;w=532 532w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-42.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Configure the subscription information as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Group ID:<\/strong> Enter <code class=\"\" data-line=\"\">Industrial_Park<\/code>.<\/li>\n\n\n\n<li><strong>Node Device List:<\/strong> Enter the following:<br><code class=\"\" data-line=\"\">Micro_Grid\/PV_Inverter_1,Micro_Grid\/PV_Inverter_2,Micro_Grid\/Wind_Turbine_1,Micro_Grid\/Wind_Turbine_2,Micro_Grid\/Battery_1,Micro_Grid\/Env_Sensor_1,Micro_Grid\/Grid_Interface_1<\/code><\/li>\n\n\n\n<li><strong>Message Type:<\/strong> Enter <code class=\"\" data-line=\"\">DBIRTH,DDATA<\/code><\/li>\n\n\n\n<li>Enable <strong>Rebirth CMD<\/strong>.<\/li>\n<\/ul>\n\n\n\n<img decoding=\"async\" width=\"670\" height=\"231\" class=\"gb-media-0b48ed8f\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-43.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-43.png?strip=all&amp;sharp=1 670w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-43-300x103.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-43.png?strip=all&amp;sharp=1&amp;w=134 134w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-43.png?strip=all&amp;sharp=1&amp;w=402 402w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image-43.png?strip=all&amp;sharp=1&amp;w=536 536w\" sizes=\"(max-width: 670px) 100vw, 670px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Under <strong>Payload Transformation<\/strong>, click <strong>Retrieve from Server<\/strong>. This obtains the schema from the MQTT broker and displays it in the text box on the left.<\/p>\n\n\n\n<p>Then, under <strong>4. Mapping<\/strong>, click <strong>Create STable<\/strong>.<\/p>\n\n\n\n<img decoding=\"async\" width=\"653\" height=\"533\" class=\"gb-media-b291c10d\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-4.png?strip=all&sharp=1\" title=\"scen-microgrid-4\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-4.png?strip=all&amp;sharp=1 653w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-4-300x245.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-4.png?strip=all&amp;sharp=1&amp;w=130 130w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-4.png?strip=all&amp;sharp=1&amp;w=391 391w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-4.png?strip=all&amp;sharp=1&amp;w=522 522w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-4.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Configure the supertable as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name:<\/strong> Enter <code class=\"\" data-line=\"\">stb_microgrid<\/code>.<\/li>\n\n\n\n<li>Remove all columns except the first TIMESTAMP column. Enter <code class=\"\" data-line=\"\">ts<\/code> as the name of this column.<\/li>\n\n\n\n<li>Then add one column with data type <code class=\"\" data-line=\"\">DOUBLE<\/code> and name <code class=\"\" data-line=\"\">value<\/code>.<\/li>\n\n\n\n<li>Remove all tags. Then add three tags with data type <code class=\"\" data-line=\"\">VARCHAR(128)<\/code> and names <code class=\"\" data-line=\"\">group_id<\/code>, <code class=\"\" data-line=\"\">edge_node_id<\/code>, and <code class=\"\" data-line=\"\">device_id<\/code>.<\/li>\n<\/ul>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"634\" class=\"gb-media-a12932b0\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5.png?strip=all&sharp=1\" title=\"scen-microgrid-5\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-5.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<p>The columns added by default include metadata that is not needed for this demonstration. The <code class=\"\" data-line=\"\">value<\/code> column stores the simulated metric, and the three tags identify the simulated device that sent the metric.<\/p>\n\n\n\n<p>When you have finished configuring the supertable, click <strong>Create<\/strong>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>In the <strong>SubTableName field<\/strong>, enter <code class=\"\" data-line=\"\">t_{device_id}_{name}<\/code>. This specifies that subtables are named using the device ID.<\/p>\n\n\n\n<p>Then in the <strong>ts<\/strong> field, select <strong>generator<\/strong>.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"634\" class=\"gb-media-418cabe6\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/microgrid-new.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<p>At the bottom of the page, click <strong>Submit<\/strong> to create the data ingestion task.<\/p>\n<\/li>\n\n\n\n<li>\n<p>On the <strong>Explorer<\/strong> page, you can now see that the microgrid simulation data is being generated.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"632\" class=\"gb-media-2fa06465\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2.png?strip=all&sharp=1\" alt=\"\" title=\"scen-microgrid-2\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2-1024x474.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2-768x356.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-2.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"gb-text\">Get Started with TDengine IDMP<\/h2>\n\n\n\n<h3 class=\"gb-text\">Create Element Templates<\/h3>\n\n\n\n<ol>\n<li>\n<p>In a web browser, access <code class=\"\" data-line=\"\">http:\/\/localhost:6042<\/code> and activate TDengine IDMP.<\/p>\n<\/li>\n\n\n\n<li>\n<p>From the main menu, open <strong>Libraries<\/strong>. Then select <strong>Element Template<\/strong> and click the New Element Template (+) button.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"634\" class=\"gb-media-b58846fb\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7.png?strip=all&sharp=1\" title=\"scen-microgrid-7\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-7.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Configure the element template as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Template Name:<\/strong> Enter <code class=\"\" data-line=\"\">PV Inverter<\/code>.<\/li>\n\n\n\n<li><strong>Element Naming Pattern:<\/strong> Click the Add Attribute Expression (+) button and select <strong>Template Name<\/strong>. Click the button again and select <strong>KEYWORD +<\/strong>. In the dialog box displayed, enter <code class=\"\" data-line=\"\">Device ID<\/code>.<\/li>\n<\/ul>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"675\" class=\"gb-media-2b0e537d\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1.png?strip=all&sharp=1\" title=\"scen-microgrid-8\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1-300x148.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1-1024x506.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1-768x380.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-8-1.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<p>Then click <strong>Save<\/strong>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Repeat this process to create templates for all elements in the sample dataset.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"gb-text\">Create Attribute Templates<\/h3>\n\n\n\n<ol>\n<li>\n<p>From the main menu, open <strong>Libraries<\/strong>. Click an element template and select <strong>Attribute Template<\/strong> from the drop-down list in the path bar.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"634\" class=\"gb-media-770eee59\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9.png?strip=all&sharp=1\" title=\"scen-microgrid-9\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-9.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Click <strong>New Attribute Template<\/strong> and configure the attribute template as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name:<\/strong> Enter <code class=\"\" data-line=\"\">Solar PV Output<\/code>.<\/li>\n\n\n\n<li><strong>Value Type:<\/strong> Select <strong>Double<\/strong>.<\/li>\n\n\n\n<li><strong>Display Digits:<\/strong> Enter <kbd><code class=\"\" data-line=\"\">2<\/code><\/kbd>.<\/li>\n\n\n\n<li><strong>UOM Class:<\/strong> Select <strong>Power<\/strong>.<\/li>\n\n\n\n<li><strong>Default UOM:<\/strong> Select <strong>kilowatt<\/strong>.<\/li>\n\n\n\n<li><strong>Display UOM:<\/strong> Select <strong>kilowatt<\/strong>.<\/li>\n\n\n\n<li><strong>Data Reference Type:<\/strong> Select <strong>TDengine Metric<\/strong>.<\/li>\n<\/ul>\n\n\n\n<img decoding=\"async\" width=\"1364\" height=\"633\" class=\"gb-media-12070deb\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91.png?strip=all&sharp=1\" title=\"scen-microgrid-91\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91.png?strip=all&amp;sharp=1 1364w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91-1024x475.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91-768x356.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91.png?strip=all&amp;sharp=1&amp;w=545 545w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91.png?strip=all&amp;sharp=1&amp;w=818 818w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91.png?strip=all&amp;sharp=1&amp;w=1091 1091w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-91.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Click inside the <strong>Data Reference Expression<\/strong> field. Configure the data reference expression as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Connection:<\/strong> Select <strong>TDengine<\/strong>.<\/li>\n\n\n\n<li><strong>Database:<\/strong> Select <strong>db_microgrid<\/strong>.<\/li>\n\n\n\n<li><strong>Table Name Pattern:<\/strong> Enter <code class=\"\" data-line=\"\">t_PV_Inverter_${KEYWORD1}_solar_pv_output<\/code>.<\/li>\n\n\n\n<li><strong>Column:<\/strong> Enter <code class=\"\" data-line=\"\">value<\/code>.<\/li>\n<\/ul>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"634\" class=\"gb-media-c965bbbc\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92.png?strip=all&sharp=1\" title=\"scen-microgrid-92\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-92.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<p><code class=\"\" data-line=\"\">KEYWORD1<\/code> is a user-defined placeholder variable. When you create an attribute using this template, you will specify its value. For example, if you specify <code class=\"\" data-line=\"\">1<\/code>, the table name will be <code class=\"\" data-line=\"\">t_PV_Inverter_1_solar_pv_output<\/code>.<\/p>\n\n\n\n<p>When you have finished configuring the data reference expression, click <strong>Confirm<\/strong>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Click <strong>Save<\/strong>. Repeat this process to create attribute templates for all element templates in the sample dataset.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"gb-text\">Create Asset Model<\/h3>\n\n\n\n<ol>\n<li>\n<p>From the main menu, open <strong>Explorer<\/strong>. Under <strong>Elements<\/strong> &gt; <strong>Child Elements<\/strong>, click <strong>New Child Element<\/strong>.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"634\" class=\"gb-media-c1c1e79a\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93.png?strip=all&sharp=1\" title=\"scen-microgrid-93\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93-300x139.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93-1024x476.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93-768x357.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-93.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Retain the default settings and click <strong>Confirm<\/strong>. Name the element <code class=\"\" data-line=\"\">Industrial Park<\/code> and click <strong>Save<\/strong>.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1366\" height=\"720\" class=\"gb-media-41f8fa5a\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94.png?strip=all&sharp=1\" title=\"scen-microgrid-94\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94.png?strip=all&amp;sharp=1 1366w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94-300x158.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94-1024x540.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94-768x405.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-94.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/li>\n\n\n\n<li>\n<p>Following the same steps, create a child element of <code class=\"\" data-line=\"\">Industrial Park<\/code> named <code class=\"\" data-line=\"\">Microgrid<\/code>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Following the same steps, create a child element of <code class=\"\" data-line=\"\">Microgrid<\/code> named <code class=\"\" data-line=\"\">Solar Power<\/code>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Create a child element of Solar Power and configure it as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reference Type:<\/strong> Retain the default value of <strong>Strong<\/strong>.<\/li>\n\n\n\n<li><strong>Template:<\/strong> Select <strong>PV Inverter<\/strong>.<\/li>\n\n\n\n<li><strong>KEYWORD1:<\/strong> Enter <code class=\"\" data-line=\"\">1<\/code>.<\/li>\n<\/ul>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"630\" class=\"gb-media-0d870067\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1.png?strip=all&sharp=1\" title=\"scen-microgrid-95\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1-300x138.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1-1024x473.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1-768x354.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-95-1.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<p>Then click <strong>Confirm<\/strong>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Continue creating elements within <code class=\"\" data-line=\"\">Microgrid<\/code> until your asset model is complete.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<p>Select an asset and view its attributes. You can see that metrics from TDengine have been imported via the data reference.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1365\" height=\"637\" class=\"gb-media-1834bfaa\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96.png?strip=all&sharp=1\" title=\"scen-microgrid-96\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96-300x140.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96-1024x478.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96-768x358.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/scen-microgrid-96.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<h3 class=\"gb-text\">Try AI-Generated Dashboards<\/h3>\n\n\n\n<ol>\n<li>\n<p>In the sidebar, select <strong>Industrial Park<\/strong> &gt; <strong>Microgrid<\/strong> &gt; <strong>Solar Power<\/strong> &gt; <strong>PV Inverter1<\/strong>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Open the <strong>Panels<\/strong> page on this element to see AI recommendations.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Click <strong>Generate<\/strong> on a panel that you want to try. Once the panel is generated, click <strong>View<\/strong> to open it.<\/p>\n<\/li>\n\n\n\n<li>\n<p>On the details page, you can view the panel or click Edit to make changes. When you edit a panel, you can select <strong>Advanced<\/strong> to view the SQL statement used to create the panel.<\/p>\n<\/li>\n\n\n\n<li>\n<p>When you have finished modifying the panel, click <strong>Save<\/strong> to add it to the element.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"gb-text\">Try AI-Generated Analysis<\/h3>\n\n\n\n<ol>\n<li>\n<p>In the sidebar, select <strong>Industrial Park<\/strong> &gt; <strong>Microgrid<\/strong> &gt; <strong>Solar Power<\/strong> &gt; <strong>PV Inverter1<\/strong>.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Open the <strong>Analyses<\/strong> page on this element to see AI recommendations.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Click one of the suggested questions to generate a real-time analysis task.<\/p>\n<\/li>\n\n\n\n<li>\n<p>On the details page, you can view the configuration for the real-time analysis task and make changes as needed. When you have finished, click <strong>Save<\/strong>.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"gb-text\">Troubleshooting the Demonstration Environment<\/h2>\n\n\n\n<ul>\n<li>\n<p><strong><strong>UI doesn\u2019t load<\/strong>:<\/strong> Wait 30 seconds after the containers have started running. If you still cannot access the UI, run <code class=\"\" data-line=\"\">docker ps<\/code> to check the status of your containers.<\/p>\n<\/li>\n\n\n\n<li>\n<p><strong>Connection test fails:<\/strong> Verify that you specified <code class=\"\" data-line=\"\">mqtt:1883<\/code> as the name and port of the broker.<\/p>\n<\/li>\n\n\n\n<li>\n<p><strong>No rows appear in the database:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Verify that you started the Sparkplug B simulator (<code class=\"\" data-line=\"\">spb_pub<\/code>) and that its output contains the line <code class=\"\" data-line=\"\">successfully connected<\/code>.<\/li>\n\n\n\n<li>Verify that you entered the information in the <strong>Subscribe Configuration<\/strong> section of the Data In task exactly as specified in the procedure.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"gb-text\">Tips to Avoid Problems<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always <strong>stop Docker<\/strong> before running the demo again: <code class=\"\" data-line=\"\">docker compose down -v<\/code><\/li>\n\n\n\n<li>If nothing works: <strong>restart Docker Desktop (non-Linux users)<\/strong> and try again.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"gb-text\">Summary<\/h2>\n\n\n\n<p>This article walks through how to use TDengine TSDB and TDengine IDMP to quickly build a microgrid monitoring system that ingests data collected in Sparkplug B format. Systems that previously took days or even weeks of tedious configuration and debugging can be completed within 30 minutes using TDengine IDMP. In the future, if new devices need to be added to the monitoring system, simply create elements from your existing element templates. If monitoring points change or new ones are added, just update the corresponding attribute templates within the element template \u2014 no other changes are required.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article presents an example scenario simulating a microgrid system with wind power, solar power, and energy storage assets.<\/p>\n","protected":false},"author":102,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[21],"tags":[],"ppma_author":[181],"class_list":["post-27809","post","type-post","status-publish","format-standard","hentry","category-engineering"],"authors":[{"term_id":181,"user_id":102,"is_guest":0,"slug":"tdengine-team","display_name":"TDengine Team","avatar_url":{"url":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-01-tdengine.png","url2x":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-01-tdengine.png"},"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/27809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/users\/102"}],"replies":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/comments?post=27809"}],"version-history":[{"count":22,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/27809\/revisions"}],"predecessor-version":[{"id":29402,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/27809\/revisions\/29402"}],"wp:attachment":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/media?parent=27809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/categories?post=27809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/tags?post=27809"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/ppma_author?post=27809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}