{"id":517,"date":"2024-05-31T09:09:40","date_gmt":"2024-05-31T07:09:40","guid":{"rendered":"https:\/\/blog.bardalen.no\/?p=517"},"modified":"2024-05-31T09:10:05","modified_gmt":"2024-05-31T07:10:05","slug":"greenhouse-iot-project-part-4-get-data-flowing","status":"publish","type":"post","link":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/","title":{"rendered":"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing"},"content":{"rendered":"\n<p>I finally managed to get my Home Assistant and ESPHome up and running. That&#8217;s awesome. Now we need to involve Azure somehow. But first we actually need another piece of hardware. We need to hook up a temperature sensor! Yeah, let&#8217;s start there.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Solder on!<\/h2>\n\n\n\n<p>I bought a sensor called Dallas DS18B20 off of eBay. This sensor needs 3.3 volt, ground and a connection to a data line. The ESP32 has pins for all of this. I used dataline 2 (GPIO02). Hooked it up with a resistor with 8,2Kohm between the data line and 3.3volts. This is to get a more correct reading (some sort of a baseline voltage), if I understand it correctly. Soldered it together and put it out in the greenhouse. I&#8217;ll get a housing and a better solution for this later, but it&#8217;s all for proof of concept as of now<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69e9fbf667a6e&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large is-style-default wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"654\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5422-768x1024.jpg\" alt=\"\" class=\"wp-image-654\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5422-768x1024.jpg 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5422-225x300.jpg 225w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5422-1152x1536.jpg 1152w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5422-1536x2048.jpg 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5422-203x270.jpg 203w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5422-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Forst\u00f8rr\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69e9fbf66860a&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"653\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5426-768x1024.jpg\" alt=\"\" class=\"wp-image-653\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5426-768x1024.jpg 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5426-225x300.jpg 225w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5426-1152x1536.jpg 1152w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5426-1536x2048.jpg 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5426-203x270.jpg 203w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5426-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Forst\u00f8rr\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69e9fbf669075&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"652\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5427-768x1024.jpg\" alt=\"\" class=\"wp-image-652\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5427-768x1024.jpg 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5427-225x300.jpg 225w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5427-1152x1536.jpg 1152w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5427-1536x2048.jpg 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5427-203x270.jpg 203w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5427-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Forst\u00f8rr\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69e9fbf669b13&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"655\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5428-768x1024.jpg\" alt=\"\" class=\"wp-image-655\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5428-768x1024.jpg 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5428-225x300.jpg 225w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5428-1152x1536.jpg 1152w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5428-1536x2048.jpg 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5428-203x270.jpg 203w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/IMG_5428-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Forst\u00f8rr\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Configure the sensor<\/h2>\n\n\n\n<p>Next we need to let ESPHome know of it&#8217;s presence. In the config file for my EPS32 in the ESPHome dashboard, I can click on edit and type in this YAML code to load the correct config. We actually need to do this in two steps, because we need a sensor address to input, and we don&#8217;t know what that is before we trigger the <strong>&laquo;DallasComponent&raquo;<\/strong>. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">YAML<\/span><span role=\"button\" tabindex=\"0\" data-code=\"dallas:\n  - pin: GPIO02\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F07178\">dallas<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F07178\">pin<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">GPIO02<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>So, save the file and reupload the software wirelessly. This will compile, upload and then reboot your ESP32. Take a look in the logs, and you should be able to see it has found the sensor and what address it has. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"345\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.13.43-1024x345.png\" alt=\"\" class=\"wp-image-587\" style=\"width:647px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.13.43-1024x345.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.13.43-300x101.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.13.43-768x259.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.13.43-604x204.png 604w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.13.43.png 1098w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Copy this string and use it in the configuration of the sensor. This should be your final result. Here you first set up the Dallas component, then reference it in the sensor component, what address it has and what you want it to be called:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">YAML<\/span><span role=\"button\" tabindex=\"0\" data-code=\"dallas:\n  - pin: GPIO02\n\nsensor:\n  - platform: dallas\n    address: 0xae3ce10457b5d728\n    name: &quot;Greenhouse Temperature&quot;\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F07178\">dallas<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F07178\">pin<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">GPIO02<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">sensor<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F07178\">platform<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">dallas<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #F07178\">address<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0xae3ce10457b5d728<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #F07178\">name<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Greenhouse Temperature<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Another compile, upload and reboot later: voila! My Greenhouse is now connected to HA and displaying the actual temperature. Cool! Or hot&#8230; I guess it depends.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"892\" height=\"280\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.15.55.png\" alt=\"\" class=\"wp-image-589\" style=\"width:653px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.15.55.png 892w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.15.55-300x94.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.15.55-768x241.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-14.15.55-604x190.png 604w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Create Azure resources<\/h2>\n\n\n\n<p>So on to the next part! Since I want HA to push this data to Azure, we need to prepare a couple of things. Before we can add Azure Event Hub integration to HA, we need to deploy some resources to Azure. Got your Azure account ready? Good! I&#8217;ve created this Bicep-script for you so your resources will be setup as they should. I prefer to use Azure CLI via VScode. Read more on Azure CLI here: <a href=\"https:\/\/learn.microsoft.com\/en-us\/cli\/azure\/authenticate-azure-cli\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/learn.microsoft.com\/en-us\/cli\/azure\/authenticate-azure-<\/a><\/p>\n\n\n\n<p>Authenticate with Azure:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">PowerShell<\/span><span role=\"button\" tabindex=\"0\" data-code=\"az login\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">az login<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Create your resource group. Give it a name and location:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">PowerShell<\/span><span role=\"button\" tabindex=\"0\" data-code=\"az group create --name rg-iot-drivhus --location norwayeast\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">az group create <\/span><span style=\"color: #89DDFF\">--<\/span><span style=\"color: #BABED8\">name rg<\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\">iot<\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\">drivhus <\/span><span style=\"color: #89DDFF\">--<\/span><span style=\"color: #BABED8\">location norwayeast<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>The full Bicep-code. It deploys two resources: One Eevnt Hub namespace, and the Event Hub itself:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">BICEP<\/span><span role=\"button\" tabindex=\"0\" data-code=\"@description('Specifies a project name to work under and gives a name to your resrouces')\n@minLength(3)\nparam projectName string\n\n@description('Provides a location for you resources based on your resource group')\nparam location string = resourceGroup().location\n\n@description('Specifies the SKU for Event Hub Namespace')\n@allowed([\n  'Basic'\n  'Standard'\n])\nparam eventHubSKU string = 'Basic'\n\nvar eventHubNamespaceName = 'ns-${projectName}'\nvar eventHubName = 'eh-${projectName}'\n\nresource greenhouseEventHubNamespace 'Microsoft.EventHub\/namespaces@2023-01-01-preview' = {\n  name: eventHubNamespaceName\n  location: location\n  sku: {\n    name: eventHubSKU\n    tier: eventHubSKU\n    capacity: 1\n  }\n  properties: {\n    isAutoInflateEnabled: false\n    maximumThroughputUnits: 0\n  }\n}\n\nresource greenhouseEventHub 'Microsoft.EventHub\/namespaces\/eventhubs@2023-01-01-preview' = {\n  parent: greenhouseEventHubNamespace\n  name: eventHubName\n  properties: {\n    messageRetentionInDays: 1\n    partitionCount: 1\n  }\n}\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">@<\/span><span style=\"color: #82AAFF\">description<\/span><span style=\"color: #BABED8\">(<\/span><span style=\"color: #C3E88D\">&#39;Specifies a project name to work under and gives a name to your resrouces&#39;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">@<\/span><span style=\"color: #82AAFF\">minLength<\/span><span style=\"color: #BABED8\">(<\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">param<\/span><span style=\"color: #BABED8\"> projectName string<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">@<\/span><span style=\"color: #82AAFF\">description<\/span><span style=\"color: #BABED8\">(<\/span><span style=\"color: #C3E88D\">&#39;Provides a location for you resources based on your resource group&#39;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">param<\/span><span style=\"color: #BABED8\"> location string = <\/span><span style=\"color: #82AAFF\">resourceGroup<\/span><span style=\"color: #BABED8\">().location<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">@<\/span><span style=\"color: #82AAFF\">description<\/span><span style=\"color: #BABED8\">(<\/span><span style=\"color: #C3E88D\">&#39;Specifies the SKU for Event Hub Namespace&#39;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">@<\/span><span style=\"color: #82AAFF\">allowed<\/span><span style=\"color: #BABED8\">([<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #C3E88D\">&#39;Basic&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #C3E88D\">&#39;Standard&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">param<\/span><span style=\"color: #BABED8\"> eventHubSKU string = <\/span><span style=\"color: #C3E88D\">&#39;Basic&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">var<\/span><span style=\"color: #BABED8\"> eventHubNamespaceName = <\/span><span style=\"color: #C3E88D\">&#39;ns-<\/span><span style=\"color: #89DDFF\">${<\/span><span style=\"color: #BABED8\">projectName<\/span><span style=\"color: #89DDFF\">}<\/span><span style=\"color: #C3E88D\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">var<\/span><span style=\"color: #BABED8\"> eventHubName = <\/span><span style=\"color: #C3E88D\">&#39;eh-<\/span><span style=\"color: #89DDFF\">${<\/span><span style=\"color: #BABED8\">projectName<\/span><span style=\"color: #89DDFF\">}<\/span><span style=\"color: #C3E88D\">&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">resource<\/span><span style=\"color: #BABED8\"> greenhouseEventHubNamespace <\/span><span style=\"color: #C3E88D\">&#39;Microsoft.EventHub\/namespaces@2023-01-01-preview&#39;<\/span><span style=\"color: #BABED8\"> = {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  name: eventHubNamespaceName<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  location: location<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  sku: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    name: eventHubSKU<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    tier: eventHubSKU<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    capacity: <\/span><span style=\"color: #F78C6C\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  properties: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    isAutoInflateEnabled: <\/span><span style=\"color: #89DDFF\">false<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    maximumThroughputUnits: <\/span><span style=\"color: #F78C6C\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">resource<\/span><span style=\"color: #BABED8\"> greenhouseEventHub <\/span><span style=\"color: #C3E88D\">&#39;Microsoft.EventHub\/namespaces\/eventhubs@2023-01-01-preview&#39;<\/span><span style=\"color: #BABED8\"> = {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  parent: greenhouseEventHubNamespace<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  name: eventHubName<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  properties: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    messageRetentionInDays: <\/span><span style=\"color: #F78C6C\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    partitionCount: <\/span><span style=\"color: #F78C6C\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Deploy it with this command. Take note of the parameter <strong>&laquo;projectName&raquo;<\/strong>. This can be whatever you need it to be. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">PowerShell<\/span><span role=\"button\" tabindex=\"0\" data-code=\"az deployment group create --resource-group rg-iot-drivhus --template-file EventHub.bicep --parameters projectName=greenhouse01\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">az deployment group create <\/span><span style=\"color: #89DDFF\">--<\/span><span style=\"color: #BABED8\">resource<\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\">group rg<\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\">iot<\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\">drivhus <\/span><span style=\"color: #89DDFF\">--<\/span><span style=\"color: #BABED8\">template<\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\">file EventHub.bicep <\/span><span style=\"color: #89DDFF\">--<\/span><span style=\"color: #BABED8\">parameters projectName<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\">greenhouse01<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>After a while, they are available in Azure<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"540\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.52.02-1024x540.png\" alt=\"\" class=\"wp-image-591\" style=\"width:540px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.52.02-1024x540.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.52.02-300x158.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.52.02-768x405.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.52.02-512x270.png 512w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.52.02.png 1442w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"471\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.54.27-1024x471.png\" alt=\"\" class=\"wp-image-592\" style=\"width:554px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.54.27-1024x471.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.54.27-300x138.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.54.27-768x353.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.54.27-587x270.png 587w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.54.27.png 1474w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>The last thing here is to create a SAS Policy with <strong>&laquo;Send&raquo;<\/strong> permissions, so we can send data to the Event Hub.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"236\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.56.16.png\" alt=\"\" class=\"wp-image-593\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.56.16.png 652w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.56.16-300x109.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-16.56.16-604x219.png 604w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"456\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-20.52.54.png\" alt=\"\" class=\"wp-image-602\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-20.52.54.png 760w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-20.52.54-300x180.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-20.52.54-450x270.png 450w\" sizes=\"auto, (max-width: 760px) 100vw, 760px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Once you have the name of the namespace, Event Hub instance name SAS Policy and the key, you can go on and setup the integration in HA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Add Azure Event Hub to HA<\/h2>\n\n\n\n<p>To setup Event Hub, click this link here: <a href=\"https:\/\/my.home-assistant.io\/redirect\/config_flow_start\/?domain=azure_event_hub\">Start configuration<\/a><\/p>\n\n\n\n<p>The first thing you have to input is your Event Hub name. Click <strong>&laquo;Submit&raquo;<\/strong>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.08.51-1024x516.png\" alt=\"\" class=\"wp-image-660\" style=\"width:518px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.08.51-1024x516.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.08.51-300x151.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.08.51-768x387.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.08.51-536x270.png 536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.08.51.png 1100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Next you copy in the namespace, SAS Policy and your key. Click <strong>&laquo;Submit&raquo;<\/strong>, and then <strong>&laquo;Finish&raquo;<\/strong> and you&#8217;re done!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.12.27-1024x768.png\" alt=\"\" class=\"wp-image-662\" style=\"width:500px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.12.27-1024x768.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.12.27-300x225.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.12.27-768x576.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.12.27-360x270.png 360w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-19.12.27.png 1234w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"834\" height=\"362\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-17.00.29.png\" alt=\"\" class=\"wp-image-595\" style=\"width:507px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-17.00.29.png 834w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-17.00.29-300x130.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-17.00.29-768x333.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-17.00.29-604x262.png 604w\" sizes=\"auto, (max-width: 834px) 100vw, 834px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Admire your work!<\/h2>\n\n\n\n<p>Isn&#8217;t it lovely to se all that data flowing in? A sense of fulfillment? I know&#8230; Look at all these graphs showing all that data:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"396\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-19.58.10-1024x396.png\" alt=\"\" class=\"wp-image-597\" style=\"width:652px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-19.58.10-1024x396.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-19.58.10-300x116.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-19.58.10-768x297.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-19.58.10-1536x595.png 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-19.58.10-2048x793.png 2048w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-26-kl.-19.58.10-604x234.png 604w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>But is it a bit much data, eh? This is because HA now sends ALL the data from all of my sensors via Event Hub. To filter, you have to edit the Configuration.yaml-file and add a filter like this:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">YAML<\/span><span role=\"button\" tabindex=\"0\" data-code=\"azure_event_hub:\n  filter:\n    include_entity_globs:\n      - sensor.greenhouse_greenhouse_temperature\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F07178\">azure_event_hub<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #F07178\">filter<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #F07178\">include_entity_globs<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">      <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">sensor.greenhouse_greenhouse_temperature<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This will send only the included sensor data to the cloud, and nothing else. But it&#8217;s still a bit much for what I need. Therefore we can slow down the readings from the sensor to every 5 minutes so the amount of data points are kept to a minimum. The final YAML-code for the sensor in ESPHome will look like this:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">YAML<\/span><span role=\"button\" tabindex=\"0\" data-code=\"sensor:\n  - platform: dallas\n    address: 0xae3ce10457b5d728\n    name: &quot;Greenhouse Temperature&quot;\n    filters:\n    - throttle: 300s\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F07178\">sensor<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F07178\">platform<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">dallas<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #F07178\">address<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0xae3ce10457b5d728<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #F07178\">name<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Greenhouse Temperature<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #F07178\">filters<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F07178\">throttle<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">300s<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Next we need to slow things down from HA to Azure. You can configure this under Integration entries in the integration. The default is 5 seconds. So it sends data every 5th second. We need it to send every 5th minute, so bump it up to 300.<\/p>\n\n\n\n<p>Now we will read the temperature from the greenhouse every 5th minute, and send data from HA to Azure every 5th minute. More than enough to have a nice graph! Oh, talking about graphs. I use Azure Data Explorer to look at my data to ensure they are correct.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Azure Data Explorer<\/h2>\n\n\n\n<p>Azure Data Explorer is a free data exploration and analytics service. Azure Data Explorer is fully managed, scalable, secure, robust, and enterprise-ready. It&#8217;s useful for log analytics, time series analytics, IoT, and general-purpose exploratory analytics. Read more here: <a href=\"https:\/\/azure.microsoft.com\/en-us\/products\/data-explorer\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/azure.microsoft.com\/en-us\/products\/data-explorer<\/a><\/p>\n\n\n\n<p>First, go to <a href=\"https:\/\/dataexplorer.azure.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dataexplorer.azure.com<\/a> and create your own FREE cluster to start ingesting your data to:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"851\" height=\"1024\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-29-kl.-15.39.42-851x1024.png\" alt=\"\" class=\"wp-image-631\" style=\"width:583px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-29-kl.-15.39.42-851x1024.png 851w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-29-kl.-15.39.42-249x300.png 249w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-29-kl.-15.39.42-768x924.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-29-kl.-15.39.42-224x270.png 224w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-29-kl.-15.39.42.png 1242w\" sizes=\"auto, (max-width: 851px) 100vw, 851px\" \/><\/figure><\/div>\n\n\n<p>This will create what&#8217;s called a cluster. After that we need to create a database. This is totally free:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"602\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.15.png\" alt=\"\" class=\"wp-image-635\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.15.png 674w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.15-300x268.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.15-302x270.png 302w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"990\" height=\"632\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.31.png\" alt=\"\" class=\"wp-image-636\" style=\"width:467px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.31.png 990w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.31-300x192.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.31-768x490.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.42.31-423x270.png 423w\" sizes=\"auto, (max-width: 990px) 100vw, 990px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>To create the connection, go to <strong>&laquo;Ingest data&raquo;<\/strong> and choose <strong>&laquo;Event Hubs&raquo;<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"698\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.05.png\" alt=\"\" class=\"wp-image-630\" style=\"width:347px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.05.png 698w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.05-300x300.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.05-150x150.png 150w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.05-270x270.png 270w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><figcaption class=\"wp-element-caption\">Step 1<\/figcaption><\/figure><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"356\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.15.png\" alt=\"\" class=\"wp-image-629\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.15.png 706w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.15-300x151.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.58.15-535x270.png 535w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><figcaption class=\"wp-element-caption\">Step 2<\/figcaption><\/figure><\/div><\/div>\n<\/div>\n\n\n\n<p>Create a table in your newly made database. When you&#8217;ve created your table you can choose your subscription and correct Event Hub-stuff. This is my example. When you are done, click <strong>&laquo;Next&raquo;<\/strong>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"776\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.59.04-1024x776.png\" alt=\"\" class=\"wp-image-628\" style=\"width:639px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.59.04-1024x776.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.59.04-300x227.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.59.04-768x582.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.59.04-1536x1164.png 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.59.04-356x270.png 356w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-27-kl.-16.59.04.png 1844w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Here it will check for a connection and let&#8217;s you inspect the data. Under the Command viewer you can dictate how the table will be mapped. It will generate a suggestion based on the data from your Event Hub, but it&#8217;s always nice to have some control over the outcome. Click <strong>&laquo;Finish&raquo;<\/strong> and let Azure Data Explorer create a table with the mappings specified in your new database:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.41-1024x512.png\" alt=\"\" class=\"wp-image-639\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.41-1024x512.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.41-300x150.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.41-768x384.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.41-1536x768.png 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.41-540x270.png 540w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.41.png 1788w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"540\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.49-1024x540.png\" alt=\"\" class=\"wp-image-640\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.49-1024x540.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.49-300x158.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.49-768x405.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.49-1536x810.png 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.49-512x270.png 512w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.04.49.png 1774w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>What do you want to do next? Explore the results? Visualize data? It opens up a ton of possibilites. Click <strong>&laquo;Close&raquo;<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"874\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.05.03-1024x874.png\" alt=\"\" class=\"wp-image-642\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.05.03-1024x874.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.05.03-300x256.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.05.03-768x655.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.05.03-1536x1310.png 1536w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.05.03-317x270.png 317w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.05.03.png 1810w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now we can run some queries to our database and see if there&#8217;s any data available from Event Hub. Go to <strong>&laquo;Query&raquo;<\/strong> and select your freshly made database, and expand it so the table comes to view. Try to input a Kusto query to get data from the lates day (24 hours):<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"793\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-15.05.19-1024x793.png\" alt=\"\" class=\"wp-image-646\" style=\"width:540px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-15.05.19-1024x793.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-15.05.19-300x232.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-15.05.19-768x595.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-15.05.19-349x270.png 349w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-15.05.19.png 1232w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Looks good! State is the actual temperature, and we can see when it last changed. Now it&#8217;s time to view your data in a graphical manner. But first, grab your Cluster URI from the <strong>&laquo;My cluster&raquo;<\/strong> page:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"419\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.28.44-1024x419.png\" alt=\"\" class=\"wp-image-634\" style=\"width:565px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.28.44-1024x419.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.28.44-300x123.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.28.44-768x315.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.28.44-604x247.png 604w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-13.28.44.png 1050w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Then, go to <strong>&laquo;Dashboards&raquo;<\/strong> and click <strong>&laquo;Create new dashboard&raquo;<\/strong>. Give it a name. Here&#8217;s a blank slate for you to play with. Click on <strong>&laquo;+ Add tile&raquo;<\/strong>. Give that a name. When that&#8217;s done you can click on <strong>&laquo;+ Data source&raquo;<\/strong>. Give it a name, paste your Cluster URI and press <strong>&laquo;Connect&raquo;<\/strong>. Choose your database and select a cache max age:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"834\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.22.39.png\" alt=\"\" class=\"wp-image-643\" style=\"width:316px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.22.39.png 602w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.22.39-217x300.png 217w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-14.22.39-195x270.png 195w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/figure><\/div>\n\n\n<p>You will then be presented with a code editor where you will be able to begin to craft your graphs. Why not reuse our Kusto query from earlier? What will happen? <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf\">Kusto<\/span><span role=\"button\" tabindex=\"0\" data-code=\"Temps\n| where last_changed &gt; ago(1d)\n| project state, last_changed\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-palenight\" style=\"background-color: #292D3E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">Temps<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">| <\/span><span style=\"color: #F78C6C\">where<\/span><span style=\"color: #BABED8\"> last_changed &gt; <\/span><span style=\"color: #82AAFF\">ago<\/span><span style=\"color: #BABED8\">(<\/span><span style=\"color: #F78C6C\">1d<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">| <\/span><span style=\"color: #F78C6C\">project<\/span><span style=\"color: #BABED8\"> state, last_changed<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Click <strong>&laquo;Run&raquo;<\/strong>. Did you get some results? Nice&#8230; Now we can create our graph (Finally!). Click <strong>&laquo;+Add visual&raquo;<\/strong> and fill inn all the fields like this. When you do this, all your changes are visualized live so you can see what&#8217;s changing:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"407\" height=\"1024\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.17-407x1024.png\" alt=\"\" class=\"wp-image-648\" style=\"width:319px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.17-407x1024.png 407w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.17-119x300.png 119w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.17-610x1536.png 610w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.17-107x270.png 107w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.17.png 660w\" sizes=\"auto, (max-width: 407px) 100vw, 407px\" \/><\/figure><\/div>\n\n\n<p>But before you go on and click <strong>&laquo;Apply changes&raquo;<\/strong>, change your timezone to your local one:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"946\" height=\"276\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.42.png\" alt=\"\" class=\"wp-image-649\" style=\"width:524px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.42.png 946w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.42-300x88.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.42-768x224.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.27.42-604x176.png 604w\" sizes=\"auto, (max-width: 946px) 100vw, 946px\" \/><\/figure><\/div>\n\n\n<p>When you save, you are taken back to your dahsboard with your newly created tile showing a nice graph over the temperatures from the greenhouse:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"646\" src=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.30.44-1024x646.png\" alt=\"\" class=\"wp-image-650\" style=\"width:497px;height:auto\" srcset=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.30.44-1024x646.png 1024w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.30.44-300x189.png 300w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.30.44-768x485.png 768w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.30.44-428x270.png 428w, https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Skjermbilde-2024-05-30-kl.-16.30.44.png 1074w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>Whoa! This has been a wonderful process, all from hardware and sensors to data and graphs in Azure. I&#8217;ve learned a lot by going through all these steps.<\/p>\n\n\n\n<p>Not every step is so well documented as it should be. Have been scratching my head a couple of times before I figured stuff out. But we are not done yet! Next time we will store this data in a safe place. Was it Dataverse? Yeah I think so. Stay tuned!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I finally managed to get my Home Assistant and ESPHome up and running. That&#8217;s awesome. Now we need to involve Azure somehow. But first we actually need another piece of hardware. We need to hook up a temperature sensor! Yeah, let&#8217;s start there. Solder on! I bought a sensor called Dallas DS18B20 off of eBay. This sensor needs 3.3 volt, ground and a connection to a data line. The ESP32 has pins for all of this. I used dataline 2&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\">Les mer<span class=\"screen-reader-text\"> Les mer<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":666,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-517","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-annet"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing - Blog.bardalen.no<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\" \/>\n<meta property=\"og:locale\" content=\"nb_NO\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing - Blog.bardalen.no\" \/>\n<meta property=\"og:description\" content=\"I finally managed to get my Home Assistant and ESPHome up and running. That&#8217;s awesome. Now we need to involve Azure somehow. But first we actually need another piece of hardware. We need to hook up a temperature sensor! Yeah, let&#8217;s start there. Solder on! I bought a sensor called Dallas DS18B20 off of eBay. This sensor needs 3.3 volt, ground and a connection to a data line. The ESP32 has pins for all of this. I used dataline 2...Les mer Les mer\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog.bardalen.no\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-31T07:09:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-31T07:10:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tony Bardalen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Skrevet av\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tony Bardalen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ansl. lesetid\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\"},\"author\":{\"name\":\"Tony Bardalen\",\"@id\":\"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a\"},\"headline\":\"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing\",\"datePublished\":\"2024-05-31T07:09:40+00:00\",\"dateModified\":\"2024-05-31T07:10:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\"},\"wordCount\":1389,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a\"},\"image\":{\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg\",\"articleSection\":[\"Annet\"],\"inLanguage\":\"nb-NO\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\",\"url\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\",\"name\":\"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing - Blog.bardalen.no\",\"isPartOf\":{\"@id\":\"https:\/\/blog.bardalen.no\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg\",\"datePublished\":\"2024-05-31T07:09:40+00:00\",\"dateModified\":\"2024-05-31T07:10:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#breadcrumb\"},\"inLanguage\":\"nb-NO\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nb-NO\",\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage\",\"url\":\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg\",\"contentUrl\":\"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hjem\",\"item\":\"https:\/\/blog.bardalen.no\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.bardalen.no\/#website\",\"url\":\"https:\/\/blog.bardalen.no\/\",\"name\":\"Blog.bardalen.no\",\"description\":\"A blog about cloudy stuff\",\"publisher\":{\"@id\":\"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.bardalen.no\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nb-NO\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a\",\"name\":\"Tony Bardalen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nb-NO\",\"@id\":\"https:\/\/blog.bardalen.no\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/433273fdcc418ba1a5101686ae0fa85fc15baf53a2bafc63eb84bce1911caa0e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/433273fdcc418ba1a5101686ae0fa85fc15baf53a2bafc63eb84bce1911caa0e?s=96&d=mm&r=g\",\"caption\":\"Tony Bardalen\"},\"logo\":{\"@id\":\"https:\/\/blog.bardalen.no\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing - Blog.bardalen.no","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/","og_locale":"nb_NO","og_type":"article","og_title":"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing - Blog.bardalen.no","og_description":"I finally managed to get my Home Assistant and ESPHome up and running. That&#8217;s awesome. Now we need to involve Azure somehow. But first we actually need another piece of hardware. We need to hook up a temperature sensor! Yeah, let&#8217;s start there. Solder on! I bought a sensor called Dallas DS18B20 off of eBay. This sensor needs 3.3 volt, ground and a connection to a data line. The ESP32 has pins for all of this. I used dataline 2...Les mer Les mer","og_url":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/","og_site_name":"Blog.bardalen.no","article_published_time":"2024-05-31T07:09:40+00:00","article_modified_time":"2024-05-31T07:10:05+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg","type":"image\/jpeg"}],"author":"Tony Bardalen","twitter_card":"summary_large_image","twitter_misc":{"Skrevet av":"Tony Bardalen","Ansl. lesetid":"14 minutter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#article","isPartOf":{"@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/"},"author":{"name":"Tony Bardalen","@id":"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a"},"headline":"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing","datePublished":"2024-05-31T07:09:40+00:00","dateModified":"2024-05-31T07:10:05+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/"},"wordCount":1389,"commentCount":0,"publisher":{"@id":"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a"},"image":{"@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg","articleSection":["Annet"],"inLanguage":"nb-NO","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/","url":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/","name":"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing - Blog.bardalen.no","isPartOf":{"@id":"https:\/\/blog.bardalen.no\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage"},"image":{"@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg","datePublished":"2024-05-31T07:09:40+00:00","dateModified":"2024-05-31T07:10:05+00:00","breadcrumb":{"@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#breadcrumb"},"inLanguage":"nb-NO","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/"]}]},{"@type":"ImageObject","inLanguage":"nb-NO","@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#primaryimage","url":"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg","contentUrl":"https:\/\/blog.bardalen.no\/wp-content\/uploads\/2024\/05\/Designer-7.jpeg","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/blog.bardalen.no\/index.php\/2024\/05\/31\/greenhouse-iot-project-part-4-get-data-flowing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Hjem","item":"https:\/\/blog.bardalen.no\/"},{"@type":"ListItem","position":2,"name":"Greenhouse IoT Project \u2013 Part 4 \u2013 Get data flowing"}]},{"@type":"WebSite","@id":"https:\/\/blog.bardalen.no\/#website","url":"https:\/\/blog.bardalen.no\/","name":"Blog.bardalen.no","description":"A blog about cloudy stuff","publisher":{"@id":"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.bardalen.no\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nb-NO"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.bardalen.no\/#\/schema\/person\/824afefe68762a6905723a53c0f28f9a","name":"Tony Bardalen","image":{"@type":"ImageObject","inLanguage":"nb-NO","@id":"https:\/\/blog.bardalen.no\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/433273fdcc418ba1a5101686ae0fa85fc15baf53a2bafc63eb84bce1911caa0e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/433273fdcc418ba1a5101686ae0fa85fc15baf53a2bafc63eb84bce1911caa0e?s=96&d=mm&r=g","caption":"Tony Bardalen"},"logo":{"@id":"https:\/\/blog.bardalen.no\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/posts\/517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/comments?post=517"}],"version-history":[{"count":30,"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/posts\/517\/revisions"}],"predecessor-version":[{"id":670,"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/posts\/517\/revisions\/670"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/media\/666"}],"wp:attachment":[{"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/media?parent=517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/categories?post=517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bardalen.no\/index.php\/wp-json\/wp\/v2\/tags?post=517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}