{"id":22439,"date":"2024-09-02T08:33:45","date_gmt":"2024-09-02T15:33:45","guid":{"rendered":"https:\/\/tdengine.com\/?p=22439"},"modified":"2025-06-26T15:27:53","modified_gmt":"2025-06-26T22:27:53","slug":"solar-panel-monitoring-opc-ua-ingestion","status":"publish","type":"post","link":"https:\/\/tdengine.com\/solar-panel-monitoring-opc-ua-ingestion\/","title":{"rendered":"Solar Panel Monitoring: OPC UA Ingestion"},"content":{"rendered":"\n<p>In this blog we will connect to an OPC-UA data source using the TDengine Cloud built-in OPC-UA connector and set up monitoring for solar panels. We will set up the configuration of the OPC-UA data source using a CSV file and we will also create a <a href=\"https:\/\/docs.tdengine.com\/cloud\/concept\/#super-table-stable\">supertable<\/a> and configure it in the CSV file.<\/p>\n\n\n<div class=\"gb-container gb-container-9a3c1f82 toc\">\n\n<div class=\"gb-headline gb-headline-89b93e98 gb-headline-text\">Table of Contents<\/div>\n\n\n\n<style>\n.toc ol {\ncounter-reset: item\n}\n.toc li {\ndisplay: block\n}\n.toc li:before {\ncontent: counters(item, \".\") \" \";\ncounter-increment: item\n}\n<\/style>\n\n\n<div class=\"gb-container gb-container-bf352232\">\n\n<ol class=\"wp-block-list nopad-li\">\n<li><a href=\"#t1\">OPC UA Package<\/a><\/li>\n\n\n\n<li><a href=\"#t2\">Create an OPC UA Data Source<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"#t2-1\">Name and Type<\/a><\/li>\n\n\n\n<li><a href=\"#t2-2\">TDengine Agent<\/a><\/li>\n\n\n\n<li><a href=\"#t2-3\">Database Creation<\/a><\/li>\n\n\n\n<li><a href=\"#t2-4\">OPC UA Broker Configuration<\/a><\/li>\n\n\n\n<li><a href=\"#t2-5\">Datasets<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"#t3\">See Data in Explorer<\/a><\/li>\n<\/ol>\n\n<\/div>\n<\/div>\n\n\n<h2 class=\"gb-headline gb-headline-fc2a2a27 gb-headline-text\">Video Tutorial<\/h2>\n\n\n<div class=\"gb-container gb-container-0e862247\">\n\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=\"TDengine Hands-on Tutorials: Set Up an OPC UA Data Source\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/_DheO3Qgczg?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\n<\/div>\n\n\n<h2 class=\"gb-headline gb-headline-a44ad872 gb-headline-text\" id=\"t1\">OPC UA Package<\/h2>\n\n\n\n<p>We will use an OPC-UA simulator from Prosys to simulate data from solar panels. The simulator is free and can be downloaded by requesting a <a href=\"https:\/\/prosysopc.com\/products\/opc-ua-simulation-server\/evaluate\/\" rel=\"noopener\">download on the Prosys website<\/a>.<\/p>\n\n\n\n<p>The simulator has been set up as follows:<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-fd3e1155\"><img decoding=\"async\" width=\"780\" height=\"1096\" class=\"gb-image gb-image-fd3e1155\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-01\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01.png?strip=all&amp;sharp=1 780w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01-214x300.png?strip=all&amp;sharp=1 214w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01-729x1024.png?strip=all&amp;sharp=1 729w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01-768x1079.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01.png?strip=all&amp;sharp=1&amp;w=156 156w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01.png?strip=all&amp;sharp=1&amp;w=312 312w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01.png?strip=all&amp;sharp=1&amp;w=468 468w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-01.png?strip=all&amp;sharp=1&amp;w=624 624w\" sizes=\"(max-width: 780px) 100vw, 780px\" \/><\/figure>\n\n\n\n<p>This data is written for each panel and, as one can see, it also contains the attributes for the &#8220;site&#8221; and the &#8220;string&#8221; as well as an identifier called &#8220;panelid&#8221;.<\/p>\n\n\n\n<p>The simulator writes data for 1 solar farm but you can set it up to write data from multiple solar farms.<\/p>\n\n\n\n<p>You can follow along in the video below if you haven&#8217;t used this simulator before. Note that, in the video below, which is only for illustration, I do not set it up exactly as it is set up for the demo as shown in Fig 1 above.<\/p>\n\n\n\n<p><em>Note that because of the limitations of the simulator, this simulator will keep writing data even after sunset.<\/em><\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-f021c39a gb-headline-text\" id=\"t2\">Create an OPC-UA Datasource<\/h2>\n\n\n\n<p>To follow along, it is easiest to use a Starter account on <a href=\"https:\/\/cloud.tdengine.com\/\">TDengine Cloud<\/a>. If you do not already have an account, you can create one easily. No credit card is required and the instance is active for a month.<\/p>\n\n\n\n<p>Once you have logged into your account, navigate to the <strong>Data In<\/strong> link.<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-aa75c0c2\"><img decoding=\"async\" width=\"1648\" height=\"908\" class=\"gb-image gb-image-aa75c0c2\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-02\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02.png?strip=all&amp;sharp=1 1648w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02-300x165.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02-1024x564.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02-768x423.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02-1536x846.png?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02.png?strip=all&amp;sharp=1&amp;w=659 659w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02.png?strip=all&amp;sharp=1&amp;w=1318 1318w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-02.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Then click on &#8220;Add Data Source&#8221;<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-cdbfa4f6\"><img decoding=\"async\" width=\"1920\" height=\"663\" class=\"gb-image gb-image-cdbfa4f6\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-03\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03.png?strip=all&amp;sharp=1 1920w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03-300x104.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03-1024x354.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03-768x265.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03-1536x530.png?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03.png?strip=all&amp;sharp=1&amp;w=384 384w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03.png?strip=all&amp;sharp=1&amp;w=1152 1152w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-03.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h3 class=\"gb-headline gb-headline-f38e71b1 gb-headline-text\" id=\"t2-1\">Name and Type<\/h3>\n\n\n\n<p>Enter a name for the data source and also choose OPC-UA for the type of data source.<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-4dc2a526\"><img decoding=\"async\" width=\"1904\" height=\"932\" class=\"gb-image gb-image-4dc2a526\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-04\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04.png?strip=all&amp;sharp=1 1904w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04-300x147.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04-1024x501.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04-768x376.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04-1536x752.png?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04.png?strip=all&amp;sharp=1&amp;w=380 380w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04.png?strip=all&amp;sharp=1&amp;w=1142 1142w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-04.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h3 class=\"gb-headline gb-headline-31bbbdff gb-headline-text\" id=\"t2-2\">TDengine Agent<\/h3>\n\n\n\n<p><em>Note that if the data source that you are about to configure is behind a firewall, then an agent needs to be created first. An agent is a very lightweight piece of software that runs on a machine that has access to the data source. The agent then establishes a connection to the data source and also establishes an SSL connection to the TDengine Cloud instance.<\/em><\/p>\n\n\n\n<p><em>The process of installing the agent is extremely simple. When you click on &#8220;Create New Agent&#8221;, a wizard will guide you through the process of downloading the agent software and configuring the agent.<\/em><\/p>\n\n\n\n<p>You can see a video that shows you how to do this below:<\/p>\n\n\n<div class=\"gb-container gb-container-3972254e\">\n\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=\"Solar Panel Monitoring: OPC UA Ingestion\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/_DWyIFLzq4w?start=115&#038;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\n<\/div>\n\n\n<h3 class=\"gb-headline gb-headline-50a439a9 gb-headline-text\" id=\"t2-3\">Database Creation<\/h3>\n\n\n\n<p>Now we will need to create a target database where the data will be stored. If a database already exists, you can choose an existing database.<\/p>\n\n\n\n<p>Click on &#8220;Create Database&#8221;. For more information about database configuration parameters see <a href=\"https:\/\/docs.tdengine.com\/cloud\/tdengine-reference\/sql-manual\/manage-databases\/#create-database\">&#8220;Create a Database.&#8221;<\/a><\/p>\n\n\n\n<p>Enter a name for the database and then change the &#8220;CACHEMODEL&#8221; to &#8220;both&#8221;.<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-4e6c60da\"><img decoding=\"async\" width=\"1998\" height=\"773\" class=\"gb-image gb-image-4e6c60da\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-05\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05.png?strip=all&amp;sharp=1 1998w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05-300x116.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05-1024x396.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05-768x297.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05-1536x594.png?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05.png?strip=all&amp;sharp=1&amp;w=399 399w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05.png?strip=all&amp;sharp=1&amp;w=1198 1198w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05.png?strip=all&amp;sharp=1&amp;w=1598 1598w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05.png?strip=all&amp;sharp=1&amp;w=450 450w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-05.png?strip=all&amp;sharp=1&amp;w=1920 1920w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h3 class=\"gb-headline gb-headline-41f7a99f gb-headline-text\" id=\"t2-4\">OPC-UA Broker Configuration<\/h3>\n\n\n\n<p>Enter the URL for the OPC-UA broker. In our case it is the following, as you can see in Fig 6 below.<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-9f2bc898\"><img decoding=\"async\" width=\"1516\" height=\"724\" class=\"gb-image gb-image-9f2bc898\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-06\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06.png?strip=all&amp;sharp=1 1516w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06-300x143.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06-1024x489.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06-768x367.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06.png?strip=all&amp;sharp=1&amp;w=606 606w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06.png?strip=all&amp;sharp=1&amp;w=909 909w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06.png?strip=all&amp;sharp=1&amp;w=1212 1212w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-06.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>In this example we will not be setting up security or authentication, but in a production environment one must definitely set up both.<\/p>\n\n\n\n<p>After setting it up, click on Check Connection to make sure the agent is able to connect to the broker and there is a seamless connection between TDengine, the agent and the OPC-UA broker.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-a51a738b gb-headline-text\" id=\"t2-5\">Data Sets<\/h3>\n\n\n\n<p>To set up the data sets, please see the video below.<\/p>\n\n\n<div class=\"gb-container gb-container-11c68fb1\">\n\n<iframe width=\"100%\" height=\"100%\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/_DWyIFLzq4w?si=aHR0nhWRLQ0YXx4A&#038;start=263\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n\n<\/div>\n\n\n<p>A key thing to note about the way that TDengine handles OPC-UA is that it uses a &#8220;single-column model&#8221;. That is, it sets up a supertable depending on data type and there is a sub-table for each device and measurement combination.<\/p>\n\n\n\n<p>In our example, all of the measurements happen to be floating point measurements and so we set up only one supertable. If you look at the sub-tables, then you will notice that there is a subtable for panel 0 in string 0 for current, and another one for panel 0 in string 0 for voltage and so on.<\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-46dd4f47 gb-headline-text\" id=\"t3\">See Data in Explorer<\/h2>\n\n\n\n<p>We can now click on the &#8220;Explorer&#8221; icon to see the database and whether it is ingesting data from the OPC-UA data source.<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-d615f460\"><img decoding=\"async\" width=\"1920\" height=\"831\" class=\"gb-image gb-image-d615f460\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07.jpg?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-07\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07.jpg?strip=all&amp;sharp=1 1920w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07-300x130.jpg?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07-1024x443.jpg?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07-768x332.jpg?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07-1536x665.jpg?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07.jpg?strip=all&amp;sharp=1&amp;w=384 384w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07.jpg?strip=all&amp;sharp=1&amp;w=1152 1152w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-07.jpg?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Take a look at the individual tables to see what is meant by the &#8220;single column model&#8221; that we described above.<\/p>\n\n\n\n<p>Click on the icon to &#8220;View Table Config&#8221; as shown in Fig 8.<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-c684e717\"><img decoding=\"async\" width=\"982\" height=\"510\" class=\"gb-image gb-image-c684e717\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-08\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08.png?strip=all&amp;sharp=1 982w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08-300x156.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08-768x399.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08.png?strip=all&amp;sharp=1&amp;w=196 196w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08.png?strip=all&amp;sharp=1&amp;w=392 392w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08.png?strip=all&amp;sharp=1&amp;w=589 589w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-08.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<p>In the figures below we show you the individual sub-tables that store data for the ambient temperature and the wind speed for panel 0 in string 0.<\/p>\n\n\n\n<figure class=\"gb-block-image gb-block-image-fae424fd\"><img decoding=\"async\" width=\"1920\" height=\"574\" class=\"gb-image gb-image-fae424fd\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09.jpeg?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-09\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09.jpeg?strip=all&amp;sharp=1 1920w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09-300x90.jpeg?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09-1024x306.jpeg?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09-768x230.jpeg?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09-1536x459.jpeg?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09.jpeg?strip=all&amp;sharp=1&amp;w=384 384w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09.jpeg?strip=all&amp;sharp=1&amp;w=1152 1152w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-09.jpeg?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<figure class=\"gb-block-image gb-block-image-ada0a90e\"><img decoding=\"async\" width=\"2710\" height=\"746\" class=\"gb-image gb-image-ada0a90e\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&sharp=1\" alt=\"\" title=\"solar-opc-10\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&amp;sharp=1 2710w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10-300x83.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10-1024x282.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10-768x211.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10-1536x423.png?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10-2048x564.png?strip=all&amp;sharp=1 2048w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&amp;sharp=1&amp;w=542 542w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&amp;sharp=1&amp;w=1084 1084w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&amp;sharp=1&amp;w=1626 1626w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&amp;sharp=1&amp;w=2168 2168w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&amp;sharp=1&amp;w=450 450w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/solar-opc-10.png?strip=all&amp;sharp=1&amp;w=1920 1920w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>TDengine makes it very convenient to configure an OPC-UA data source and start ingesting data from it. Once data is ingested, you can start analyzing the data using various tools or just SQL. You can also visualize the data in real-time using visualization tools like Grafana.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to use TDengine&#8217;s OPC UA connector to ingest and monitor data generated by solar panels at different sites.<\/p>\n","protected":false},"author":81,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[21],"tags":[],"ppma_author":[167],"class_list":["post-22439","post","type-post","status-publish","format-standard","hentry","category-engineering"],"authors":[{"term_id":167,"user_id":81,"is_guest":0,"slug":"chait","display_name":"Chait Diwadkar","avatar_url":{"url":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-05-cdiwadkar.jpg","url2x":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-05-cdiwadkar.jpg"},"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/22439","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\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/comments?post=22439"}],"version-history":[{"count":12,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/22439\/revisions"}],"predecessor-version":[{"id":26243,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/22439\/revisions\/26243"}],"wp:attachment":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/media?parent=22439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/categories?post=22439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/tags?post=22439"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/ppma_author?post=22439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}