{"id":7164,"date":"2024-10-11T09:17:25","date_gmt":"2024-10-11T09:17:25","guid":{"rendered":"https:\/\/www.mixtile.com\/?page_id=7164"},"modified":"2024-10-16T08:46:46","modified_gmt":"2024-10-16T08:46:46","slug":"build-smart-home-system-with-node-red","status":"publish","type":"page","link":"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/","title":{"rendered":"Node-RED\u3067\u30b9\u30de\u30fc\u30c8\u30db\u30fc\u30e0\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9"},"content":{"rendered":"<section class=\"section\" id=\"section_1164609645\">\n\t\t<div class=\"bg section-bg fill bg-fill\" >\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t<div class=\"is-border\"\n\t\tstyle=\"border-color:rgb(235, 235, 235);border-width:1px 0px 0px 0px;\">\n\t<\/div>\n\n\t\t<\/div>\n\n\t\t\n\n\t\t<div class=\"section-content relative\">\n\t\t\t\n\n<div class=\"row\"  id=\"row-1747022637\">\n\n\n\t<div id=\"col-495391717\" class=\"col medium-12 small-12 large-11\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-3811633168\" class=\"text\">\n\t\t\n\n<h1 style=\"text-align: left;\"><span style=\"font-size: 160%;\"><strong><span style=\"font-weight: 600; color: #ffffff;\">Node-RED\u3067\u30b9\u30de\u30fc\u30c8\u30db\u30fc\u30e0\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9<\/span><\/strong><\/span><\/h1>\n<p>&nbsp;<\/p>\n<p><span class=\"inline-comment-marker valid active\" style=\"color: #ffffff; font-size: 115%;\">Use the Mixtile Edge 2 Kit as your Smart Home project&#8217;s control and monitoring center, efficiently managing data from temperature, humidity, brightness, UV sensors, etc.<\/span><\/p>\n\t\t\n<style>\n#text-3811633168 {\n  font-size: 0.85rem;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-495391717 > .col-inner {\n  padding: 0px 0px 0px 0px;\n  margin: 10px 0px -68px 0px;\n}\n@media (min-width:550px) {\n  #col-495391717 > .col-inner {\n    padding: 0px 0px 0px 15px;\n  }\n}\n<\/style>\n\t<\/div>\n\n\t\n\n<\/div>\n\n\t\t<\/div>\n\n\t\t\n<style>\n#section_1164609645 {\n  padding-top: 0px;\n  padding-bottom: 0px;\n  min-height: 400px;\n  background-color: rgb(246, 246, 246);\n}\n#section_1164609645 .section-bg.bg-loaded {\n  background-image: url(https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241015-Node-Red-Banner-BG.jpg);\n}\n#section_1164609645 .section-bg {\n  background-position: 30% 50%;\n}\n#section_1164609645 .ux-shape-divider--top svg {\n  height: 150px;\n  --divider-top-width: 100%;\n}\n#section_1164609645 .ux-shape-divider--bottom svg {\n  height: 150px;\n  --divider-width: 100%;\n}\n<\/style>\n\t<\/section>\n\t\n\t<section class=\"section\" id=\"section_1418988286\">\n\t\t<div class=\"bg section-bg fill bg-fill  bg-loaded\" >\n\n\t\t\t\n\t\t\t\n\t\t\t\n\n\t\t<\/div>\n\n\t\t\n\n\t\t<div class=\"section-content relative\">\n\t\t\t\n\n<div class=\"row align-center\"  id=\"row-562877146\">\n\n\n\t<div id=\"col-1082089557\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\" style=\"background-color:rgb(247, 247, 247);\" >\n\t\t\t\n\t\t\t\n\n<h3>&nbsp;<\/h3>\n<h3 style=\"font-weight: 600;\"><span style=\"font-size: 120%; color: #000000;\">\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4f7f\u7528\u3057\u305f\u3082\u306e&nbsp; &nbsp;<\/span><\/h3>\n<h3 style=\"font-weight: 600;\"><span style=\"color: #808080;\">\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/span><\/h3>\n<hr>\n<h4 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.mixtile.com\/ja\/edge-2-kit\/\"><span style=\"color: #00aae7;\">Mixtile Edge 2 Kit<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; <a href=\"https:\/\/www.mixtile.com\/ja\/store\/accessory\/mixtile-2-in-1-zigbee-z-wave-mpcie-interface-module\/\"><span style=\"color: #00aae7;\">Mixtile 2-in-1 Zigbee &amp; Z-Wave mPCIe Interface Module <\/span><\/a>\u00d71&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.aliexpress.com\/i\/1005005508686571.html\"><span style=\"color: #00aae7;\">Espressif ESP32-C6<\/span><\/a> \u00d72<\/h4>\n<h4 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.aliexpress.com\/item\/33029110421.html\"><span style=\"color: #00aae7;\">Texas Instruments CC2530 dev board<\/span><\/a> \u00d73&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.aliexpress.com\/item\/1005007739851088.html\"><span style=\"color: #00aae7;\">Tuya temperature sensor<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.aliexpress.com\/item\/1005006220876302.html\"><span style=\"color: #00aae7;\">Sonoff button<\/span><\/a>&nbsp;\u00d71<\/h4>\n<h4 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.aliexpress.com\/item\/1005005863788789.html\"><span style=\"color: #00aae7;\">Texas Instruments CC Debugger<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.dfrobot.com\/product-2778.html\"><span style=\"color: #00aae7;\">DFRobot Beetle ESP32 C6 Mini<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.dfrobot.com\/product-2771.html\"><span style=\"color: #00aae7;\">DFRobot FireBeetle 2 ESP32-C6 IoT<\/span><\/a>&nbsp;\u00d71<\/h4>\n<h4 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.dfrobot.com\/product-2071.html\"><span style=\"color: #00aae7;\">DFRobot Fermion: 2.0&#8243; 320&#215;240 IPS TFT LCD Display<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.aliexpress.com\/item\/1005007283463744.html\"><span style=\"color: #00aae7;\">Espressif ESP32 Devit1<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.adafruit.com\/product\/4831\"><span style=\"color: #00aae7;\">Adafruit LTR390 U<\/span><\/a>&nbsp;\u00d71<\/h4>\n<h4 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.hackster.io\/dfrobot\/products\/gravity-i2c-bme280-environmental-sensor1\"><span style=\"color: #00aae7;\">DFRobot Gravity: I2C BME280 Environmental Sensor<\/span><\/a>&nbsp;\u00d71<\/h4>\n\t<div id=\"gap-722506395\" class=\"gap-element clearfix\" style=\"display:block; height:auto;\">\n\t\t\n<style>\n#gap-722506395 {\n  padding-top: 30px;\n}\n<\/style>\n\t<\/div>\n\t\n\n<h3 style=\"font-weight: 600;\"><span style=\"color: #808080;\">\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30fb\u30a2\u30d7\u30ea\u3068\u30aa\u30f3\u30e9\u30a4\u30f3\u30fb\u30b5\u30fc\u30d3\u30b9<\/span><\/h3>\n<hr>\n<h4 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.mixtile.com\/ja\/docs\/install-debian-10\/\"><span style=\"color: #00aae7;\">Debian OS 11 for Mixtile Edge 2 Kit<\/span><\/a>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"https:\/\/nodered.org\/\"><span style=\"color: #00aae7;\">Node-RED<\/span><\/a>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/mosquitto.org\/\"><span style=\"color: #00aae7;\">Mosquitto MQTT Broker<\/span><\/a>&nbsp;<\/h4>\n<h4 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.zigbee2mqtt.io\/guide\/configuration\/\"><span style=\"color: #00aae7;\">Zigbee2Mqtt Bridg<\/span><\/a>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.arduino.cc\/en\/software\"><span style=\"color: #00aae7;\">Arduino IDE<\/span><\/a>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.jetbrains.com\/datagrip\/features\/\"><span style=\"color: #00aae7;\">SQLITE<\/span><\/a>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.python.org\/downloads\/\"><span style=\"color: #00aae7;\">Python3<\/span><\/a>&nbsp;<\/h4>\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1082089557 > .col-inner {\n  padding: 0px 30px 30px 30px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-796667608\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-604762297\" class=\"text\">\n\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">\u30b9\u30c8\u30fc\u30ea\u30fc<\/span><\/h3>\n<hr \/>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Short introduction<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">\u306b\u3064\u3044\u3066 <strong><em>Mixtile Edge 2 Kit used as Smart Home center<\/em><\/strong>\u00a0integrates Zigbee technology and machine learning algorithms to automate the home and improve user comfort. The Mixtile Edge 2 acts as a central coordinator of the Zigbee and BLE network, managing data from temperature, humidity, brightness and UV sensors. This data is used not only to intelligently control devices in the home, such as lights and thermostats, but also to provide personalized clothing recommendations based on the weather conditions outside. The system uses a logistic regression model, integrated through Node-RED, to analyze sensor data and generate accurate suggestions, facilitating quick and efficient decisions for the user.<\/span><\/p>\n\t\t\n<style>\n#text-604762297 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_543993134\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1000\" height=\"750\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241016-SmarthomeE2K-2.webp?fit=1000%2C750&amp;ssl=1\" class=\"attachment-large size-large\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241016-SmarthomeE2K-2.webp?w=1000&amp;ssl=1 1000w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241016-SmarthomeE2K-2.webp?resize=533%2C400&amp;ssl=1 533w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241016-SmarthomeE2K-2.webp?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241016-SmarthomeE2K-2.webp?resize=50%2C38&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241016-SmarthomeE2K-2.webp?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/241016-SmarthomeE2K-2.webp?resize=600%2C450&amp;ssl=1 600w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_543993134 {\n  width: 55%;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div id=\"text-50154294\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>About Mixtile Edge 2 kit:<\/strong><\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Mixtile Edge 2 Kit is a high-performance IoT gateway designed specifically for industry applications. More details about this device\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/www.mixtile.com\/ja\/edge-2-kit\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here&quot;,&quot;href&quot;:&quot;https:\/\/www.mixtile.com\/edge-2-kit\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">here<\/a><\/span>.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Most important specifications:<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; processor Rockchip RK3568, an quad-core processor (4xCortex A55);<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; support NPU (Neural Processing Unit);<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; maximum RAM memory support is 2\/4GB RAM LPDDR4x, enough for video or AI applications;<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; support for eMMC (16\/32 GB);<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; connectivity: USB 3.0, HDMI 2.1, Gigabite Ethernet, WiFi 6. Bluetooth 5.2;<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; compatible with Linux (Debian, Ubuntu); also Home Assistant and Android can be installed on this PC.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>\u4f7f\u3044\u65b9\uff1a<\/strong>\u00a0Mixtile Edge 2 Kit will be the &#8220;heart&#8221; of smart home and will act as an control center. Some of the sensors and external devices will use the\u00a0<a class=\"hckui__typography__linkBlue\" style=\"color: #282828;\" href=\"https:\/\/en.wikipedia.org\/wiki\/Zigbee\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;Zigbee &quot;,&quot;href&quot;:&quot;https:\/\/en.wikipedia.org\/wiki\/Zigbee&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">Zigbee\u00a0<\/a>protocol to communicate with Mixtile Edge 2 Kit and other (sensors from weather station) will comunicate via\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/en.wikipedia.org\/wiki\/MQTT\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;MQTT&quot;,&quot;href&quot;:&quot;https:\/\/en.wikipedia.org\/wiki\/MQTT&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">MQTT<\/a>\u00a0<\/span>over WiFi, in local network. External devices connected to Smart home command center will use ESP32-C6 dev boards, because these have Zigbee protocol built-in, CC2530 based dev boards and other devices will be purchased from the market (to test the compatibility with this system).<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To achieve this, I will setup this device using the steps below.<\/span><\/p>\n\t\t\n<style>\n#text-50154294 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row align-center\"  id=\"row-733150932\">\n\n\n\t<div id=\"col-176753513\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-1936192016\" class=\"text\">\n\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">1. Install and configure Node-Red and Mosquitto<\/span><\/h3>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The Mixtile Edge 2 Kit was come with Debian 11 installed. I have to install and configure Node-Red in order to communicate with some sensors located in my home, using MQTT protocol over WiFi.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>A.&nbsp;<\/strong>Install the NodeRed on Mixtile Edge 2 Kit: I used the instructions from this&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/thriveread.com\/install-node-red-on-debian\/?utm_content=cmp-true\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;link&quot;,&quot;href&quot;:&quot;https:\/\/thriveread.com\/install-node-red-on-debian\/?utm_content=cmp-true&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">link<\/a><\/span>.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">First make sure that Debian package list repository is up to date. to do that, use the following lines:<\/span><\/p>\n\t\t\n<style>\n#text-1936192016 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2676321938\" class=\"text\">\n\t\t\n\n<pre class=\"hljs ebnf\"><code><span class=\"hljs-attribute\" style=\"font-size: 110%; color: #ed1c24;\">sudo apt update<\/span><br \/><br \/><span class=\"hljs-attribute\" style=\"font-size: 110%; color: #ed1c24;\">sudo apt upgrade -y<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-2676321938 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2142659261\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Then, install nodejs for Debian (latest version for nodejs is 20, according to this&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/deb.nodesource.com\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;link&quot;,&quot;href&quot;:&quot;https:\/\/deb.nodesource.com\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">link<\/a><\/span>):<\/span><\/p>\n<pre class=\"hljs vim\"><span style=\"font-size: 110%;\"><code>curl -fsSL http<span class=\"hljs-variable\">s:<\/span>\/\/<span class=\"hljs-keyword\" style=\"color: #ed1c24;\">deb<\/span>.nodesource.<span class=\"hljs-keyword\" style=\"color: #ed1c24;\">com<\/span>\/setup_20.<span class=\"hljs-keyword\" style=\"color: #ed1c24;\">x<\/span> | sudo bash -<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2142659261 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-686809663\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Then, install npm<\/span><\/p>\n<pre class=\"hljs routeros\"><span style=\"font-size: 110%;\"><code>sudo apt-<span class=\"hljs-builtin-name\">get<\/span> install nodejs -y<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-686809663 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-662966164\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">To verify if the nodejs and npn is installed, use the following commands to verify:<\/span><\/p>\n<pre class=\"hljs crmsh\"><code><span class=\"hljs-keyword\"><span style=\"font-size: 110%;\">node<\/span><\/span><span class=\"hljs-title\" style=\"font-size: 110%; color: #ed1c24;\"> -v <\/span><br><span style=\"font-size: 110%;\">npm <span style=\"color: #ed1c24;\">-v<\/span><\/span><\/code><\/pre>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">The result from my Mixtile Edge 2 Kit:<\/span><\/p>\n\t\t\n<style>\n#text-662966164 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:25%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"167\" height=\"76\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-1.png?resize=167%2C76&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-1.png?w=167&amp;ssl=1 167w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-1.png?resize=50%2C23&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-1.png?resize=18%2C8&amp;ssl=1 18w\" sizes=\"(max-width: 167px) 100vw, 167px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>nodejs and npm versions<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1111031594\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-3230164021\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Now we have install Node-Red using the following command:<\/span><\/p>\n<pre class=\"hljs crmsh\"><span style=\"font-size: 110%;\"><code>udo npm install -g --unsafe-perm <span class=\"hljs-keyword\">node<\/span><span class=\"hljs-title\" style=\"color: #ed1c24;\">-red<\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3230164021 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2390715724\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Note: after the Node-Red installation, it is possible to see in console an npm notice to update the latest version, using&nbsp;<em>npm install -g npm@version<\/em>, where version could be 10.8.3<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Start Node-Red:<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-size: 110%;\"><code> node<span style=\"color: #ed1c24;\">-red<\/span><br>\n <\/code><\/span><\/p>\n<p><span style=\"color: #282828;\">Node-red started:<\/span><\/p>\n\t\t\n<style>\n#text-2390715724 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1111031594 > .col-inner {\n  margin: -30px 0px -30px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1819597008\" class=\"col medium-7 small-12 large-7\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-1740784068\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row\"  id=\"row-588569701\">\n\n\n\t<div id=\"col-2124014085\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"712\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?resize=1020%2C712&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?w=1241&amp;ssl=1 1241w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?resize=573%2C400&amp;ssl=1 573w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?resize=1146%2C800&amp;ssl=1 1146w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?resize=768%2C536&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?resize=50%2C35&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-2.png?resize=600%2C419&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/2 \u00b7 Node-red in browser<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-884100887\">\n\n\n\t<div id=\"col-745229697\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"479\" height=\"485\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-3.png?resize=479%2C485&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-3.png?w=479&amp;ssl=1 479w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-3.png?resize=395%2C400&amp;ssl=1 395w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-3.png?resize=50%2C50&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-3.png?resize=12%2C12&amp;ssl=1 12w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-3.png?resize=100%2C100&amp;ssl=1 100w\" sizes=\"(max-width: 479px) 100vw, 479px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/2 \u00b7 Node-red in console<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-1740784068 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1819597008 > .col-inner {\n  margin: -10px 0px -25px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1745824797\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-614515513\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Note: install Node-Red Dashboard module, to create UI instruments and buttons\/sliders to interact with IoT devices:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">go to in Node-Red Menu&gt; Manage Palette; here search for node-red-dashboard and install it. More info&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/randomnerdtutorials.com\/getting-started-node-red-dashboard\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here&quot;,&quot;href&quot;:&quot;https:\/\/randomnerdtutorials.com\/getting-started-node-red-dashboard\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">here<\/a><\/span>.<\/span><\/li>\n<li><span style=\"color: #282828;\">access Node-Red UI by typing this in browser:<\/span><\/li>\n<\/ul>\n\t\t\n<style>\n#text-614515513 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2666962037\" class=\"text\">\n\t\t\n\n<pre class=\"hljs crmsh\"><code><span style=\"font-size: 110%;\"><span style=\"color: #00aae7;\">http:\/\/localhost:<span class=\"hljs-number\">1880<\/span>\/ui<\/span> --&gt; if <span class=\"hljs-keyword\">Node<\/span><span class=\"hljs-title\">-Red<\/span> UI is accessed from Mixtile2 Edge kit<\/span><br><span style=\"font-size: 110%;\">OR<\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #00aae7;\">http:\/\/mixtile_IP:<span class=\"hljs-number\">1880<\/span>\/ui<\/span> --&gt; if <span class=\"hljs-keyword\">Node<\/span><span class=\"hljs-title\">-Red<\/span> is accessed from the same network<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-2666962037 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1169249313\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To find the Mixtile Edge 2 Kit IP, type this in console:<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-size: 110%;\"><code> hostname -I<\/code><\/span><\/p>\n\t\t\n<style>\n#text-1169249313 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:30%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"197\" height=\"43\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-4.png?resize=197%2C43&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-4.png?w=197&amp;ssl=1 197w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-4.png?resize=50%2C11&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-4.png?resize=18%2C4&amp;ssl=1 18w\" sizes=\"(max-width: 197px) 100vw, 197px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Mixtile Edge 2 Kit IP<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1745824797 > .col-inner {\n  margin: -30px 0px -30px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1917214912\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-2773885344\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>B.<\/strong>&nbsp;Install Mosquitto MQTT broker (<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/randomnerdtutorials.com\/how-to-install-mosquitto-broker-on-raspberry-pi\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;link&quot;,&quot;href&quot;:&quot;https:\/\/randomnerdtutorials.com\/how-to-install-mosquitto-broker-on-raspberry-pi\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">link<\/a><\/span>&nbsp;with instructions):<\/span><\/p>\n<pre class=\"hljs cmake\"><span style=\"font-size: 110%;\"><code>sudo apt <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">install<\/span> -y mosquitto mosquitto-clients<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2773885344 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-914265862\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">To make Mosquitto auto-start when Mixtile Edge 2 Kit start, run the following command:<\/span><\/p>\n<pre class=\"hljs cmake\"><span style=\"font-size: 110%;\"><code>sudo systemctl enable mosquitto.service<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-914265862 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2007971057\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Test the installation by running:<\/span><\/p>\n<pre class=\"hljs cmake\"><span style=\"font-size: 110%; color: #ed1c24;\"><code>sudo systemctl status mosquitto<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2007971057 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3013052546\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Now, configure Mosquitto broker to accept remote access to communicate with other IoT devices:<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; Run the following command to open the mosquitto.conf file:<\/span><\/p>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>sudo nano <span class=\"hljs-regexp\"><span style=\"color: #800080;\">\/etc\/<\/span>m<\/span>osquitto\/mosquitto.conf<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3013052546 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1158199133\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; go to on the top on the file and add this line:<\/span><\/p>\n<pre class=\"hljs cmake\"><span style=\"font-size: 110%; color: #ed1c24;\"><code><span style=\"color: #ed1c24;\">per_listener_settings<\/span> <span style=\"color: #993366;\">true<\/span><\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211; go to at the end of the file and add these lines:<\/span><\/p>\n<pre class=\"hljs nginx\"><code><span class=\"hljs-attribute\" style=\"color: #ed1c24;\"><span style=\"font-size: 110%;\">listener<\/span><\/span><span style=\"font-size: 110%;\"> 1883<\/span><br><span style=\"font-size: 110%;\">allow_anonymous <span class=\"hljs-literal\" style=\"color: #993366;\">true<\/span><\/span><\/code><\/pre>\n\t\t\n<style>\n#text-1158199133 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3061125007\" class=\"text\">\n\t\t\n\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">press&nbsp;<strong>CTRL-X<\/strong>&nbsp;to exit and save the file. Press&nbsp;<strong>Y<\/strong>&nbsp;\u305d\u3057\u3066&nbsp;<strong>\u5165\u308b<\/strong><\/span><\/li>\n<li><span style=\"color: #282828;\">restart Mosquitto for the changes to take effect with this command:<\/span><\/li>\n<\/ul>\n<pre class=\"hljs cmake\"><span style=\"font-size: 110%; color: #ed1c24;\"><code><span style=\"color: #ed1c24;\">sudo systemctl restart mosquitto<\/span><\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">&#8211;&nbsp;to verify if Mosquitto is running, run the following command:<\/span><\/p>\n<pre class=\"hljs cmake\"><span style=\"font-size: 110%; color: #ed1c24;\"><code><span style=\"color: #ed1c24;\">sudo systemctl status mosquitto<\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3061125007 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:60%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"437\" height=\"284\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-5.png?resize=437%2C284&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-5.png?w=437&amp;ssl=1 437w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-5.png?resize=50%2C32&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-5.png?resize=18%2C12&amp;ssl=1 18w\" sizes=\"(max-width: 437px) 100vw, 437px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Mosquitto config file modified<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-2488957686\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Start Node-red using:<\/span><\/p>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\">node<\/span><span style=\"color: #50b848;\">-red<\/span><\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Final: Node-Red working, Mosquitto broker working and display data on Node-Red UI:<\/span><\/p>\n\t\t\n<style>\n#text-2488957686 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"401\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-6.png?resize=1020%2C401&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-6.png?w=1124&amp;ssl=1 1124w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-6.png?resize=800%2C315&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-6.png?resize=768%2C302&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-6.png?resize=50%2C20&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-6.png?resize=18%2C7&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/1-6.png?resize=600%2C236&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Node-red working and display data<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-2962328778\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>\u6ce8<\/strong>: the data sent to Node-Red on Mixtile Edge 2 Kit come from my project<a class=\"hckui__typography__linkBlue\" style=\"color: #282828;\" href=\"https:\/\/www.hackster.io\/popa-mihai\/beaconhome-92ec7d\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot; https:\/\/www.hackster.io\/popa-mihai\/beaconhome-92ec7d&quot;,&quot;href&quot;:&quot;https:\/\/www.hackster.io\/popa-mihai\/beaconhome-92ec7d&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">&nbsp;<span style=\"color: #00aae7;\">https:\/\/www.hackster.io\/popa-mihai\/beaconhome-92ec7d<\/span><\/a>&nbsp;; this project is used only to test the configuration of whole chain, from distant device (in my case ESP32 reading some BLE beacon sensors) to Node-Red UI. Meanwhile, this project was moved from RPI Zero to Mixtile Edge 2. The change means only replacing the IP address of the RPI Zero with that of the Kixtile Edge 2 Kit in the ESP32 code; see the project lins and code.<\/span><\/p>\n\t\t\n<style>\n#text-2962328778 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row align-center\"  id=\"row-1784503847\">\n\n\n\t<div id=\"col-412592068\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-3536639146\" class=\"text\">\n\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">2. Install and configure Zigbee2Mqtt<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">One of the interesting option of Mixtile Edge 2 Kit is the posibility to comunicate with other devices using Zigbee and Z-Wave protocol.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In this project I will use only Zibgee protocol, due to the fact that Zigbee do not need any license, the devices are relatively cheap and can be even created using ESP32-C6 or CC2530 or similar dev boards.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Board used for Zigbee and Z-Wave communication is this one: Mixtile 2-in-1 Zigbee &amp; Z-Wave mPCIe Interface Module. More data about this board&nbsp;<a class=\"hckui__typography__linkBlue\" style=\"color: #282828;\" href=\"https:\/\/www.mixtile.com\/ja\/store\/accessory\/mixtile-2-in-1-zigbee-z-wave-mpcie-interface-module\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here.&quot;,&quot;href&quot;:&quot;https:\/\/www.mixtile.com\/store\/accessory\/mixtile-2-in-1-zigbee-z-wave-mpcie-interface-module\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\"><span style=\"color: #00aae7;\">here<\/span>.<\/a><\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">This board has an mPCIe interface but communicates with Mixtile Edge 2 Kit through 2 USB ports, creating two serial connections.<\/span><\/p>\n\t\t\n<style>\n#text-3536639146 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-687591318\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To see this USB connection, type this command in console:<\/span><\/p>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>ls <span class=\"hljs-regexp\" style=\"color: #993366;\">\/dev\/<\/span>ttyACM*<\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The result should be:<\/span><\/p>\n\t\t\n<style>\n#text-687591318 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:40%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"292\" height=\"68\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-1.png?resize=292%2C68&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-1.png?w=292&amp;ssl=1 292w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-1.png?resize=50%2C12&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-1.png?resize=18%2C4&amp;ssl=1 18w\" sizes=\"(max-width: 292px) 100vw, 292px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Mixtile 2-in-1 Zigbee and Z-Wave USB connections<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-119984481\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Note: ttyACM0 is Z-Wave and ttyACM1 is Zigbee<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To establish communication link between Zigbee board and Node-Red, I will use Zigbee2Mqtt bridge. Details for what is and how to configure&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/www.zigbee2mqtt.io\/guide\/configuration\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here&quot;,&quot;href&quot;:&quot;https:\/\/www.zigbee2mqtt.io\/guide\/configuration\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">here<\/a><\/span>.<\/span><\/p>\n\t\t\n<style>\n#text-119984481 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1483864253\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Now, proceed to install Zigbee2MQTT:<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> \u30ae\u30c3\u30c8\u30af\u30ed\u30fc\u30f3 <span style=\"color: #00aae7;\">https\uff1a<span class=\"hljs-regexp\">\/\/\u30b8<\/span>\u30c4\u30d6\u30c9\u30c3\u30c8\u30b3\u30e0<span class=\"hljs-regexp\">\/Koenkk\/<\/span>zigbee2mqtt.git<\/span> <span class=\"hljs-regexp\">\/opt\/<\/span>zigbee2mqtt<\/span><br><span style=\"font-size: 110%;\">cd <span class=\"hljs-regexp\">\/userdata\/<\/span>zigbee2mqtt\/<\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> npm install<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-1483864253 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-866459720\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Configure Zigbee2Mqtt to use the Zigbee board. To do that, modify the file:<\/span><\/p>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>sudo nano <span style=\"color: #993366;\">\/userdata\/<\/span>zigbee2mqtt\/data <span style=\"color: #993366;\">configuration.yaml<\/span><\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In this file, modify the serial port to&nbsp;<strong>\/dev\/ttyACM1<\/strong>&nbsp;and add adapter type&nbsp;<strong>ezsp:<\/strong><\/span><\/p>\n\t\t\n<style>\n#text-866459720 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:55%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"393\" height=\"121\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-2.png?resize=393%2C121&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-2.png?w=393&amp;ssl=1 393w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-2.png?resize=50%2C15&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-2.png?resize=18%2C6&amp;ssl=1 18w\" sizes=\"(max-width: 393px) 100vw, 393px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Zigbee2mgtt config file modified<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-9448718\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Obs: because the Mosquitto MQTT server and Zigbee2Mqtt run on the same machine, then we will not create, for the moment, user and pass in&nbsp;<em>configuration.yaml<\/em>&nbsp;file (because Mosquitto accept anonymous connections).<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, add used to specific groups (after that, restart Mixtile Edge 2 Kit):<\/span><\/p>\n\t\t\n<style>\n#text-9448718 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3315576031\" class=\"text\">\n\t\t\n\n<pre class=\"hljs crmsh\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> usermod -a -G uucp <span style=\"color: #993366;\">$<span class=\"hljs-keyword\">USER<\/span> <\/span><\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-title\" style=\"color: #ed1c24;\">\u3059\u3069<\/span> usermod -a -G tty <span style=\"color: #993366;\">$<span class=\"hljs-keyword\">USER<\/span> <\/span><\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-title\" style=\"color: #ed1c24;\">\u3059\u3069<\/span> usermod -a -G dialout <span style=\"color: #993366;\">$USER<\/span><\/span><\/code><\/pre>\n\t\t\n<style>\n#text-3315576031 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1918818037\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Start Zigbee2Mqtt:<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\">cd <span class=\"hljs-regexp\" style=\"color: #993366;\">\/userdata\/<\/span>zigbee2mqtt\/<\/span><br><span style=\"font-size: 110%;\">npm start<\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The result should look like this:<\/span><\/p>\n\t\t\n<style>\n#text-1918818037 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"989\" height=\"336\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-3.png?resize=989%2C336&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-3.png?w=989&amp;ssl=1 989w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-3.png?resize=800%2C272&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-3.png?resize=768%2C261&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-3.png?resize=50%2C17&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-3.png?resize=18%2C6&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-3.png?resize=600%2C204&amp;ssl=1 600w\" sizes=\"(max-width: 989px) 100vw, 989px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Zigbee2mgtt started<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-272161674\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Now, we continue with connection between Zigbee2Mqtt and Node-Red.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Before configure Node-red to send or receive commands\/data to end-devices using Zigbee2Mqtt, We have to activate Zigbee2Mqtt UI. For that, We have to add the following lines to&nbsp;<em>configuration.yaml<\/em>&nbsp;file:<\/span><\/p>\n<pre class=\"hljs yaml\"><code><span class=\"hljs-attr\" style=\"font-size: 110%;\">frontend:<\/span><br><span class=\"hljs-attr\" style=\"font-size: 110%;\">  port: <\/span><span class=\"hljs-number\"><span style=\"color: #993366; font-size: 110%;\">8080<\/span><\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The modification should look lite this:<\/span><\/p>\n\t\t\n<style>\n#text-272161674 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:25%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"199\" height=\"156\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-4.png?resize=199%2C156&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-4.png?w=199&amp;ssl=1 199w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-4.png?resize=50%2C39&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-4.png?resize=15%2C12&amp;ssl=1 15w\" sizes=\"(max-width: 199px) 100vw, 199px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Zigbee2mgtt UI activation<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">The modification should look lite this:<\/span><\/p>\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"151\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-5.png?resize=1020%2C151&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-5.png?w=1223&amp;ssl=1 1223w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-5.png?resize=800%2C118&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-5.png?resize=768%2C114&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-5.png?resize=50%2C7&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-5.png?resize=18%2C3&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2-5.png?resize=600%2C89&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Zigbee2mgtt UI in browser<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">In this stage, the whole chain is set and ready to to be configured with sensors, buttons, out-devices and so on.<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1807051873\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-549273215\" class=\"text\">\n\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">3. Connect Zigbee end-devices to Mixtile<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">For this step, I will use some sensors from the market (for example: Tuya temperature sensor, Sonoff button) and other sensors and devices based on development boards, as ESP32-C6 Zigbee enabled or TI CC2530.<\/span><\/p>\n\t\t\n<style>\n#text-549273215 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3559043745\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\"><strong>A.<\/strong>&nbsp;First, will proceed to configure End Devices based on ESP32-C6 that will be connected to our Zigbee network; these devices will be flashed with examples provided by ESP32 Arduino library, as following:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">one will be an temperature sensor (will send data to Node-red) and will be flashed with&nbsp;<em>Zigbee_Temperature_Sensor.ino<\/em>&nbsp;example file<em>;<\/em><\/span><\/li>\n<li><span style=\"color: #282828;\">another one will be an light bulb (will receive data from node-Red) and will be flashed with&nbsp;<em>Zigbee_Light_Bulb.ino<\/em>&nbsp;example file.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To do this, we have to install Arduino IDE on Mixtile Edge 2 kit (using s<strong>udo apt install arduino<\/strong>&nbsp;in Linux CLI) and then will configure for using ESP32 with info from&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/randomnerdtutorials.com\/installing-the-esp32-board-in-arduino-ide-windows-instructions\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here&quot;,&quot;href&quot;:&quot;https:\/\/randomnerdtutorials.com\/installing-the-esp32-board-in-arduino-ide-windows-instructions\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">here<\/a><\/span>.<\/span><\/p>\n\t\t\n<style>\n#text-3559043745 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-849966984\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Now, We are ready to flash both ESP32 boards. First, we will flash the temp sensor example. Then, We continue with second board, used as Light Bulb.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Obs: be sure that the settings for boards are following these options:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">Before Compile\/Verify, select the correct board:<\/span>&nbsp;<span style=\"font-size: 120%;\"><code>Tools -&gt; Board<\/code><\/span>.<\/li>\n<li><span style=\"color: #282828;\">Select the End device Zigbee mode:<\/span>&nbsp;<span style=\"font-size: 120%;\"><code>Tools -&gt; Zigbee mode: Zigbee ED (end device)<\/code><\/span><\/li>\n<li><span style=\"color: #282828;\">Select Partition Scheme for Zigbee:<\/span>&nbsp;<span style=\"font-size: 120%;\"><code>Tools -&gt; Partition Scheme: Zigbee 4MB with spiffs<\/code><\/span><\/li>\n<li><span style=\"color: #282828;\">Select the COM port:<\/span>&nbsp;<span style=\"font-size: 120%;\"><code>Tools -&gt; Port: xxx<\/code><\/span>&nbsp;<span style=\"color: #282828;\">where the<\/span>&nbsp;<span style=\"font-size: 120%;\"><code>xxx<\/code><\/span>&nbsp;<span style=\"color: #282828;\">is the detected COM port.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Details about this&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/github.com\/espressif\/arduino-esp32\/tree\/master\/libraries\/ESP32\/examples\/Zigbee\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here&quot;,&quot;href&quot;:&quot;https:\/\/github.com\/espressif\/arduino-esp32\/tree\/master\/libraries\/ESP32\/examples\/Zigbee&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">here<\/a><\/span>.<\/span><\/p>\n\t\t\n<style>\n#text-849966984 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-107044533\" class=\"col medium-8 small-12 large-8\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-1908745337\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row\"  id=\"row-81601690\">\n\n\n\t<div id=\"col-1741477436\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"857\" height=\"700\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-1.png?resize=857%2C700&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-1.png?w=857&amp;ssl=1 857w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-1.png?resize=490%2C400&amp;ssl=1 490w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-1.png?resize=768%2C627&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-1.png?resize=50%2C41&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-1.png?resize=15%2C12&amp;ssl=1 15w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-1.png?resize=600%2C490&amp;ssl=1 600w\" sizes=\"(max-width: 857px) 100vw, 857px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/3 \u00b7 Temperature sensor example<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1460707551\">\n\n\n\t<div id=\"col-1293635893\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"860\" height=\"583\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-2.png?resize=860%2C583&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-2.png?w=860&amp;ssl=1 860w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-2.png?resize=590%2C400&amp;ssl=1 590w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-2.png?resize=768%2C521&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-2.png?resize=50%2C34&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-2.png?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-2.png?resize=600%2C407&amp;ssl=1 600w\" sizes=\"(max-width: 860px) 100vw, 860px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/3 \u00b7 Light Bulb example<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-692242570\">\n\n\n\t<div id=\"col-1478210010\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"858\" height=\"590\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-3.png?resize=858%2C590&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-3.png?w=858&amp;ssl=1 858w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-3.png?resize=582%2C400&amp;ssl=1 582w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-3.png?resize=768%2C528&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-3.png?resize=50%2C34&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-3.png?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-3.png?resize=600%2C413&amp;ssl=1 600w\" sizes=\"(max-width: 858px) 100vw, 858px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>3\/3 \u00b7 Flash settings<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-1908745337 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-107044533 > .col-inner {\n  margin: 0px 0px -50px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-457218202\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-1604266253\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\">In this moment we are ready to add these two end devices in Zigbee2Mqtt using Mixtile Edge 2 kit as coordinator.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Start Zigbee2Mqtt (or check if is started already):<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\">cd <span class=\"hljs-regexp\" style=\"color: #993366;\">\/userdata\/<\/span>zigbee2mqtt\/<\/span><br><span style=\"font-size: 110%;\">npm start<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-1604266253 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1789372087\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\">Power up the ESP32-C6 used as temperature sensor and ESp32-C6 used as Light Bulb; go to in browser and open Zigbee2mqtt UI. Here We will find (after few seconds), two devices:<\/span><\/p>\n\t\t\n<style>\n#text-1789372087 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"329\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-4.png?resize=1020%2C329&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-4.png?w=1204&amp;ssl=1 1204w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-4.png?resize=800%2C258&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-4.png?resize=768%2C247&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-4.png?resize=50%2C16&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-4.png?resize=18%2C6&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-4.png?resize=600%2C193&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Both ESP32-C6 devices recognized and added in Zigbee2Mqtt<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-3084348604\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\">OBS: the IEEE address is unique for each ESP32-C6 chip and act like an MAC address. In Zigbee2mqtt UI is a tab named Friendly name; from here We will give a more friendly name for devices added instead using the MAC address. We can see also the network components and other device properties.<\/span><\/p>\n\t\t\n<style>\n#text-3084348604 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"97\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?resize=1020%2C97&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?w=1434&amp;ssl=1 1434w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?resize=800%2C76&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?resize=1400%2C133&amp;ssl=1 1400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?resize=768%2C73&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?resize=50%2C5&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?resize=18%2C2&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-5.png?resize=600%2C57&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>ESP32 Arduino devices named<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-3020520010\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\"><strong>IMPORTANT:<\/strong> There is something that We have to add in&nbsp;<em>database.db<\/em>&nbsp;file from \/userdata.zigbee2mqtt\/data in order to make the example Light_Bulb to work. By default, the Zigbee2mqtt can not read the Zigbee Model and Zigbee manufacturer from theESp32 that act as light Bulb (I assume that the SW installed on ESP32 not sent these info) and We have to add them manually. For that, open the file&nbsp;<em>database.db<\/em>&nbsp;\u3068<\/span><\/p>\n\t\t\n<style>\n#text-3020520010 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1407277953\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\">cd <span class=\"hljs-regexp\" style=\"color: #993366;\">\/userdata\/<\/span>zigbee2mqtt<span class=\"hljs-regexp\">\/data\/<\/span><\/span><br><span style=\"font-size: 110%;\">sudo nano database.db<\/span><\/code><\/pre>\n<p><span style=\"color: #282828;\">and modify the &#8220;manufName&#8221; and &#8220;modelId&#8221; the same as for the first End Device, like here:<\/span><\/p>\n\t\t\n<style>\n#text-1407277953 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"52\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-6.png?resize=1020%2C52&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-6.png?w=1246&amp;ssl=1 1246w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-6.png?resize=800%2C41&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-6.png?resize=768%2C39&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-6.png?resize=50%2C3&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-6.png?resize=18%2C1&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-6.png?resize=600%2C31&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Light bulb modification in database<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-619626452\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">This is only available for the example from Arduino IDE used for this test!!!<\/span><\/p>\n<p><span style=\"color: #282828;\"><strong>OBS:<\/strong> after the modification was done in Zigbee2mqtt database, it is necessary to stop and start the Zigbee2mqtt application; for that, use the following commands in cli:<\/span><\/p>\n<pre class=\"hljs crmsh\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> systemctl <span class=\"hljs-literal\" style=\"color: #993366;\">stop<\/span> zigbee2mqtt --&gt; used to <span class=\"hljs-literal\" style=\"color: #993366;\">stop<\/span> application<\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> systemctl <span class=\"hljs-literal\" style=\"color: #993366;\">start<\/span> zigbee2mqtt --&gt; used to <span class=\"hljs-literal\" style=\"color: #993366;\">start<\/span> application<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-619626452 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3947670639\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Additional, this can be used to restart the zigbee2mqtt application:<\/span><\/p>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> systemctl restart zigbee2mqtt<\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To verify if Zigbee2mqtt is running, type this in cli:<\/span><\/p>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> systemctl status zigbee2mqtt<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3947670639 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1393273611\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\">In case that Zigbee2mqtt was set to start automatically with the PC and the stop and start commands was used to update the database, then use this to be sure that application will start after these modifications<\/span><\/p>\n<pre class=\"hljs routeros\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> systemctl <span class=\"hljs-builtin-name\">enable<\/span> zigbee2mqtt<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-1393273611 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2633490152\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>OBS<\/strong>: I see that the ESP32C6 used with Arduino example for lamp (<em>Zigbee_Light_Bulb.ino<\/em>) is not very stable in time and, after few hours is not responding to commands; to get back in the network, sometimes I need to reset it but for most of the times I need to delete it from Zigbee network and pair again. I see that the developers of Arduino Zigbee examples used in Arduino IDE will update soon the libraries and examples for ESP32 and, until then, I will use it as it is.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>\u91cd\u8981<\/strong>: files used to flash an ESP32 with Zigbee bulb and temperature sensor, from Arduino IDE are attached. From what I see, these examples was removed from ESP32 example (from Arduino for ESP32 examples) and will be updated with a new implementation, with new examples; see&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/github.com\/espressif\/arduino-esp32\/tree\/master\/libraries\/ESP32\/examples\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here&quot;,&quot;href&quot;:&quot;https:\/\/github.com\/espressif\/arduino-esp32\/tree\/master\/libraries\/ESP32\/examples&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">here<\/a><\/span>&nbsp;the link to github.<\/span><\/p>\n\t\t\n<style>\n#text-2633490152 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1509640579\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<p style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>B.<\/strong>&nbsp;Connect commercial sensors, Tuya temperature sensors and Sonoff button, to Zigbee2mqtt (follow the instruction from sensor manual); after few seconds after the sensor is powered up, he new entry is displayed in Zigbee2mqtt Devices window:<\/span><\/p>\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"52\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?resize=1020%2C52&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?w=1421&amp;ssl=1 1421w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?resize=800%2C41&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?resize=1400%2C72&amp;ssl=1 1400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?resize=768%2C39&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?resize=50%2C3&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?resize=18%2C1&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-7.png?resize=600%2C31&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Tuya sensor in Zigbee2mgtt Sevices window<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>OBS:<\/strong> before any operation to add new devices in the Zigbee network, the network should be &#8220;opened&#8221; to add devices; to do that, press on &#8220;Permit join&#8221; button from Zigbee2mqtt main screen; this operation is also available anytime when will add a new device in the networl:<\/span><\/p>\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1011\" height=\"126\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-8.jpg?resize=1011%2C126&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-8.jpg?w=1011&amp;ssl=1 1011w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-8.jpg?resize=800%2C100&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-8.jpg?resize=768%2C96&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-8.jpg?resize=50%2C6&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-8.jpg?resize=18%2C2&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-8.jpg?resize=600%2C75&amp;ssl=1 600w\" sizes=\"(max-width: 1011px) 100vw, 1011px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Activate add in network for Zigbee devices<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>\u6ce8\uff1a<\/strong> this option, &#8220;Permit join&#8221; is enabled for a limited period of time (aprox 4.2 minutes):<\/span><\/p>\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"71\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-9.png?resize=1020%2C71&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-9.png?w=1051&amp;ssl=1 1051w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-9.png?resize=800%2C56&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-9.png?resize=768%2C53&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-9.png?resize=50%2C3&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-9.png?resize=18%2C1&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-9.png?resize=600%2C42&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Timer for &#8220;Permit all&#8221; option<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">These two commercial sensors, Tuya and Sonoff, displayed inZigbee2Mqtt Dashboard:<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-484375480\" class=\"col medium-10 small-12 large-10\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-1962904537\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row\"  id=\"row-8900617\">\n\n\n\t<div id=\"col-718474482\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1008\" height=\"373\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-10.png?resize=1008%2C373&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-10.png?w=1008&amp;ssl=1 1008w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-10.png?resize=800%2C296&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-10.png?resize=768%2C284&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-10.png?resize=50%2C19&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-10.png?resize=18%2C7&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-10.png?resize=600%2C222&amp;ssl=1 600w\" sizes=\"(max-width: 1008px) 100vw, 1008px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/2 \u00b7 Commercial sensors displayed in Dashboard<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-337941812\">\n\n\n\t<div id=\"col-2124648495\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"144\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?resize=1020%2C144&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?w=1412&amp;ssl=1 1412w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?resize=800%2C113&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?resize=1400%2C198&amp;ssl=1 1400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?resize=768%2C109&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?resize=50%2C7&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?resize=18%2C3&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-11.png?resize=600%2C85&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/2 \u00b7 Market sensors<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-1962904537 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-484375480 > .col-inner {\n  margin: 0px 0px -50px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1581784684\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>C.<\/strong>&nbsp;Connect end-devices based on CC2530. To do that, I followed indication from this&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/ptvo.info\/zigbee-configurable-firmware-features\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;site&quot;,&quot;href&quot;:&quot;https:\/\/ptvo.info\/zigbee-configurable-firmware-features\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">site<\/a><\/span>&nbsp;and I configured three CC2530 Zigbee dev boards as a following: one switch, one lamp and one DHT11 sensor.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To flash the CC2530 Zigbee modules hex files, CC Debuger hardware programmer should be used with specific software from Texas Instruments; see&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/ptvo.info\/how-to-select-and-flash-cc2530-144\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;here&quot;,&quot;href&quot;:&quot;https:\/\/ptvo.info\/how-to-select-and-flash-cc2530-144\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">here<\/a><\/span>&nbsp;all details. Files used for configuration and hex files for each module will be find in attachment section.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Connections for CC2530 devices:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">CC2530 switch: the switch is connected between P07 and GND and control LED is connected bewteeb P10 and GND;<\/span><\/li>\n<li><span style=\"color: #282828;\">CC2530 lamp: the lamp (actually is an green LED) is connected between P07 and GND and control LED is connected bewteen P10 and GNG;<\/span><\/li>\n<li><span style=\"color: #282828;\">CC2530 DHT11 sensor: the sensor is connected to P06, Vcc and GND (from DHT11) to VIN and GNS (from CC2530 board) and control LED is connected bewteen P10 and GND;<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>OBS:<\/strong> all devices created with CC25320 dev board and&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/ptvo.info\/zigbee-configurable-firmware-features\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;this application&quot;,&quot;href&quot;:&quot;https:\/\/ptvo.info\/zigbee-configurable-firmware-features\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">this application<\/a><\/span>&nbsp;will be reported in Zigbee2mqtt as connected to power supply instead battery and can not use the low power management; this can be used but only in payd verssion; see details in the application&nbsp;<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/ptvo.info\/zigbee-configurable-firmware-features\/premium\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;site&quot;,&quot;href&quot;:&quot;https:\/\/ptvo.info\/zigbee-configurable-firmware-features\/premium\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">site<\/a><\/span>.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">More devices will be added to the Zigbee network during the project.<\/span><\/p>\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"144\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?resize=1020%2C144&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?w=1418&amp;ssl=1 1418w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?resize=800%2C113&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?resize=1400%2C197&amp;ssl=1 1400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?resize=768%2C108&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?resize=50%2C7&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?resize=18%2C3&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-12.png?resize=600%2C85&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>CC2530 devices<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-413292771\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">For the moment, my Zigbee network contain 8 devices: 2 buttons, 2 temperature sensors and two lamps. Sonoff button control only ESP32-lamp and CC2530 button control both ESP32-lamp and CC2530_lamp. Of course, this configuration can be easy changed from Node-Red.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The final Zigbee network look like this:<\/span><\/p>\n\t\t\n<style>\n#text-413292771 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-873930552\" class=\"col medium-10 small-12 large-10\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-797234677\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row\"  id=\"row-764164501\">\n\n\n\t<div id=\"col-1475274648\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"752\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?resize=1020%2C752&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?w=1227&amp;ssl=1 1227w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?resize=542%2C400&amp;ssl=1 542w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?resize=1085%2C800&amp;ssl=1 1085w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?resize=768%2C566&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?resize=50%2C37&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-13.png?resize=600%2C443&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/3 \u00b7 Zigbee devices<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1254827921\">\n\n\n\t<div id=\"col-2064965981\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"586\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?resize=1020%2C586&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?w=1527&amp;ssl=1 1527w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?resize=696%2C400&amp;ssl=1 696w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?resize=1391%2C800&amp;ssl=1 1391w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?resize=768%2C442&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?resize=50%2C29&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?resize=18%2C10&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-14.png?resize=600%2C345&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/3 \u00b7 Zigbee map<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1131569468\">\n\n\n\t<div id=\"col-2001962014\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"506\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?resize=1020%2C506&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?w=1525&amp;ssl=1 1525w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?resize=800%2C397&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?resize=1400%2C694&amp;ssl=1 1400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?resize=768%2C381&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?resize=50%2C25&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?resize=18%2C9&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/3-15.png?resize=600%2C297&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>3\/3 \u00b7 Zigbee logs<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-797234677 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-873930552 > .col-inner {\n  margin: 0px 0px -50px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row align-center\"  id=\"row-545568368\">\n\n\n\t<div id=\"col-525597285\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">4. Connect Node-Red and Zigbee2Mqtt<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Information from end-devices are received by the Zigbee2mqtt as following, using topics; below is a log from Zigbee2mqtt where We eill find the broker, topic and parameters::<\/span><\/p>\n\t<div id=\"text-1433189078\" class=\"text\">\n\t\t\n\n<pre class=\"hljs apache\"><code><span class=\"hljs-attribute\" style=\"color: #ed1c24;\"><span style=\"font-size: 110%;\">Info<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-attribute\">2024<\/span>-<span class=\"hljs-number\">09<\/span>-<span class=\"hljs-number\">20<\/span> <span class=\"hljs-number\">20<\/span>:<span class=\"hljs-number\">40<\/span>:<span class=\"hljs-number\">27<\/span><\/span><br \/><span style=\"font-size: 110%;\">z<span class=\"hljs-number\">2<\/span>m:mqtt: MQTT publish: topic 'zigbee<span class=\"hljs-number\">2<\/span>mqtt\/Tuya-temp-sensor', payload '{<span class=\"hljs-string\" style=\"color: #ff6600;\">\"battery\"<\/span>:<span class=\"hljs-number\" style=\"color: #00a859;\">100<\/span>,<span class=\"hljs-string\" style=\"color: #ff6600;\">\"humidity\"<\/span>:<span class=\"hljs-number\" style=\"color: #00a859;\">26<\/span>,<span class=\"hljs-string\" style=\"color: #ff6600;\">\"humidity_calibration\"<\/span>:<span class=\"hljs-number\" style=\"color: #00a859;\">0<\/span>,<span class=\"hljs-string\" style=\"color: #ff6600;\">\"linkquality\"<\/span>:<span class=\"hljs-number\" style=\"color: #00a859;\">212<\/span>,<span class=\"hljs-string\" style=\"color: #ff6600;\">\"temperature\"<\/span>:<span style=\"color: #00a859;\"><span class=\"hljs-number\">31<\/span>.<span class=\"hljs-number\">6<\/span><\/span>,<span class=\"hljs-string\" style=\"color: #ff6600;\">\"temperature_calibration\"<\/span>:<span class=\"hljs-number\" style=\"color: #00a859;\">0<\/span>,<span class=\"hljs-string\" style=\"color: #ff6600;\">\"temperature_unit\"<\/span>:<span class=\"hljs-string\" style=\"color: #ff6600;\">\"celsius\"<\/span>}'<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-1433189078 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"font-size: 120%;\"><code>\u3067<\/code><\/span>&nbsp;<span style=\"color: #282828;\">this case mqtt topic is &#8220;<\/span><span style=\"font-size: 120%;\"><code>zigbee2mqtt\/Tuya-temp-sensor<\/code><\/span><span style=\"color: #282828;\">&#8220;; so, this topic should be used in Node-Red to read the data from this end-device:<\/span><\/p>\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"202\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-1.png?resize=1020%2C202&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-1.png?w=1064&amp;ssl=1 1064w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-1.png?resize=800%2C159&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-1.png?resize=768%2C152&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-1.png?resize=50%2C10&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-1.png?resize=18%2C4&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-1.png?resize=600%2C119&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Confic tpoic from Zigbee2mgtt in Node-Red<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-2137690500\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>\u6ce8\uff1a&nbsp;<\/strong><em>Mqtt In<\/em>&nbsp;broker should contain Server settings as localhost:1883, only in case that both Zigbee2mqtt and Node-Red runs on the same machine (this is my case!).<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">At the end, the Node-Red config and UI should look like this:<\/span><\/p>\n\t\t\n<style>\n#text-2137690500 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1533190061\" class=\"col medium-10 small-12 large-10\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-230490560\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row\"  id=\"row-1282380760\">\n\n\n\t<div id=\"col-1699327505\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"985\" height=\"577\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-2.png?resize=985%2C577&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-2.png?w=985&amp;ssl=1 985w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-2.png?resize=683%2C400&amp;ssl=1 683w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-2.png?resize=768%2C450&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-2.png?resize=50%2C29&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-2.png?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-2.png?resize=600%2C351&amp;ssl=1 600w\" sizes=\"(max-width: 985px) 100vw, 985px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/2 \u00b7 Node-Red config<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-331419334\">\n\n\n\t<div id=\"col-55820857\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"476\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-3.png?resize=1020%2C476&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-3.png?w=1064&amp;ssl=1 1064w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-3.png?resize=800%2C374&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-3.png?resize=768%2C359&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-3.png?resize=50%2C23&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-3.png?resize=18%2C8&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/4-3.png?resize=600%2C280&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/2 \u00b7 Node-Red UI<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-230490560 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1533190061 > .col-inner {\n  margin: 0px 0px -50px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-275651396\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-2546057983\" class=\"text\">\n\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">5. Create weather station with prediction<br><\/span><\/h3>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">This is the second part of the Smart Home hub: creating a weather station and predicting what clothes and accessories should be worn outside the home, based on the sensor reading.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In order to predict the recommendation for what should I use when I will go outside, I will use a simple machine learning algorithm, called logistic regression model.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The weather station used in this project is based on 2 ESP32-C6 devices connected together through BLE and another ESP32 used to send data to Mixtile Edge 2 Kit. All the data from the sensors will be stored on sql database and ther the ML model will use these data for prediction.<\/span><\/p>\n\t\t\n<style>\n#text-2546057983 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3509281108\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>A<\/strong>. Create weather station. To do that, We use the following components to send the sensor data to sql database:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\"><span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/www.dfrobot.com\/product-2778.html\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;Beetle ESP32 C6 Mini&quot;,&quot;href&quot;:&quot;https:\/\/www.dfrobot.com\/product-2778.html&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">Beetle ESP32 C6 Mini<\/a><\/span>: act as BLE server; retrieve data from BME280 and LTR390 sensors and send them to another ESP32, that act as client;<\/span><\/li>\n<li><span style=\"color: #282828;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #282828;\" href=\"https:\/\/www.dfrobot.com\/product-2771.html\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;FireBeetle ESP32-C6&quot;,&quot;href&quot;:&quot;https:\/\/www.dfrobot.com\/product-2771.html&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\"><span style=\"color: #00aae7;\">FireBeetle ESP32-C6<\/span><\/a>: act as client for BLE server; receive data from external unit, do some calculations and display them on local<span style=\"color: #00aae7;\">&nbsp;<a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/www.dfrobot.com\/product-2071.html\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;Fermion: 2.0u0026#34; 320x240 IPS TFT LCD Display&quot;,&quot;href&quot;:&quot;https:\/\/www.dfrobot.com\/product-2071.html&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">Fermion: 2.0&#8243; 320&#215;240 IPS TFT LCD Display<\/a><\/span>&nbsp;and send them to another ESP32 that act as a bridge between FireBeetle ESP32-C6 and Mixtile;<\/span><\/li>\n<li><span style=\"color: #282828;\">ESP32 DevKit1&nbsp;<a class=\"hckui__typography__linkBlue\" style=\"color: #282828;\" href=\"https:\/\/www.espressif.com\/en\/support\/download\/at?keys=\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;flashed &quot;,&quot;href&quot;:&quot;https:\/\/www.espressif.com\/en\/support\/download\/at?keys=&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\"><span style=\"color: #00aae7;\">flashed&nbsp;<\/span><\/a>with latest sw from Espresiff that contain support for MQTT and AT commands.<\/span><\/li>\n<\/ul>\n\t\t\n<style>\n#text-3509281108 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2422186734\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">OBS: I used this solution because there was not enough space on Beetle ESP32-C6 or FireBeetle ESP32-C6 for BLE libraries and MQTT libraries. The third ESP32 receive data through Serial2, connect to local WiFi network, create the MQTT packets and send them to Mixtile, all these based on AT commands.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Files used for BLE server and client are available in download section.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Note: for upload the code for BLE server and client use the instruction from manufacturer page (DFRobot).<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Schematic of weather station:<\/span><\/p>\n\t\t\n<style>\n#text-2422186734 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:85%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"381\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=1020%2C381&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?w=2560&amp;ssl=1 2560w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=800%2C298&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=1400%2C522&amp;ssl=1 1400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=768%2C286&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=50%2C19&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=1536%2C573&amp;ssl=1 1536w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=2048%2C764&amp;ssl=1 2048w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=18%2C7&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-1-scaled.jpg?resize=600%2C224&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Weather station schematic<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-416179058\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\">Working: the external unit will wait until the client (indoor unit) connects and then will start to send the environmental data with a periodicity at 30 seconds. The indoor unit read data, make some calculation and then will update the TFT only if the data from the last reading is changed; this is done to reduce flickering cause of rapidly updating of TFT; moreover, the data used to update the TFT will be sent over WiFi in MQTT format to Mixtile Edge 2 kit. This is done using another ESP32 with AT commands.<\/span><\/p>\n\t\t\n<style>\n#text-416179058 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1097924752\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>B.<\/strong>\u00a0Create a database for sensor data. For that, I will use SQLite database. To install SQLite, type this in console:<\/span><\/p>\n<pre class=\"hljs apache\"><code><span style=\"font-size: 110%;\"><span class=\"hljs-attribute\" style=\"color: #ed1c24;\">\u3059\u3069<\/span> apt update<\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> apt install sqlite<span class=\"hljs-number\">3<\/span><\/span><\/code><\/pre>\n\t\t\n<style>\n#text-1097924752 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-361949817\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To verify if SQLite is installed, type this in console:<\/span><\/p>\n<pre class=\"hljs ada\"><span style=\"font-size: 110%;\"><code>sqlite <span class=\"hljs-comment\" style=\"color: #993366;\">--version<\/span><\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The answer should be like this:<\/span><\/p>\n\t\t\n<style>\n#text-361949817 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:80%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"565\" height=\"37\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-2.png?resize=565%2C37&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-2.png?w=565&amp;ssl=1 565w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-2.png?resize=50%2C3&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-2.png?resize=18%2C1&amp;ssl=1 18w\" sizes=\"(max-width: 565px) 100vw, 565px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Weather station schematic<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-2582019860\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, create a database used to store the data from weather sensors. In Debian console, type:<\/span><\/p>\n<pre class=\"hljs stata\"><code><span class=\"hljs-keyword\" style=\"color: #ed1c24;\"><span style=\"font-size: 110%;\">cd<\/span><\/span><span style=\"font-size: 110%;\"> userdata\/sqlite<\/span><br \/><span style=\"font-size: 110%;\">sqlite3 sensor_data.<\/span><span class=\"hljs-keyword\"><span style=\"font-size: 110%; color: #ed1c24;\">db<\/span><\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">This command will create a database named sensor_data. Now, we will create a table with data; for that, we will use the Debian cli and SQL console to create the table:<\/span><\/p>\n\t\t\n<style>\n#text-2582019860 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2105282571\" class=\"text\">\n\t\t\n\n<pre class=\"hljs sql\"><code><span style=\"font-size: 110%;\">mpopa<span class=\"hljs-variable\">@mixtile<\/span>:<span class=\"hljs-operator\">~<\/span>$ sqlite3 sensor_data.db<\/span><br \/><span style=\"font-size: 110%;\">SQLite version <span style=\"color: #993366;\"><span class=\"hljs-number\">3.34<\/span><span class=\"hljs-number\">.1<\/span> <span class=\"hljs-number\">2021<\/span><span class=\"hljs-number\">-01<\/span><span class=\"hljs-number\">-20<\/span><\/span> <span class=\"hljs-number\" style=\"color: #993366;\">14<\/span>:<span class=\"hljs-number\" style=\"color: #993366;\">10<\/span>:<span class=\"hljs-number\" style=\"color: #993366;\">07<\/span><\/span><br \/><span style=\"font-size: 110%;\">Enter \".help\" <span class=\"hljs-keyword\">for<\/span> usage hints.<\/span><br \/><span style=\"font-size: 110%;\">sqlite<span class=\"hljs-operator\">&gt;<\/span> <span style=\"color: #ed1c24;\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span><\/span> readings (<\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> id <span class=\"hljs-type\" style=\"color: #ff9900;\">INTEGER<\/span> <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">PRIMARY<\/span> KEY AUTOINCREMENT,<\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> temperature <span class=\"hljs-type\" style=\"color: #ff9900;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> himidity <span class=\"hljs-type\" style=\"color: #ff9900;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> pressure <span class=\"hljs-type\" style=\"color: #ff9900;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> \u30e9\u30a4\u30c8 <span class=\"hljs-type\" style=\"color: #ff9900;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> uv_level <span class=\"hljs-type\" style=\"color: #ff9900;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> <span class=\"hljs-type\">timestamp<\/span> DATETIME <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">default<\/span> <span class=\"hljs-built_in\" style=\"color: #ff9900;\">CURRENT_TIMESTAMP <\/span><\/span><br \/><span style=\"font-size: 110%;\">   ...<span class=\"hljs-operator\">&gt;<\/span> );<\/span><br \/><span style=\"font-size: 110%;\">sqlite<\/span><span class=\"hljs-operator\"><span style=\"font-size: 110%;\">&gt;<\/span><\/span><\/code><\/pre>\n\t\t\n<style>\n#text-2105282571 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3900967632\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Verify if the table is created typing &#8220;.tables&#8221; in above console:<\/span><\/p>\n<pre class=\"hljs jboss-cli\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ff9900;\">sqlite&gt;<\/span> <span class=\"hljs-string\">.tables<\/span><\/span><br \/><span class=\"hljs-string\" style=\"font-size: 110%;\">readings<\/span><br \/><span style=\"font-size: 110%; color: #ff9900;\"><span class=\"hljs-string\">sqlite<\/span>&gt;<\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"font-size: 110%;\"><code>To<\/code><\/span><span style=\"color: #282828;\">\u00a0view all column names from one table, type this in sqlite3 console:<\/span><\/p>\n\t\t\n<style>\n#text-3900967632 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3259630428\" class=\"text\">\n\t\t\n\n<pre class=\"hljs reasonml\"><code><span style=\"font-size: 110%;\">PRAGMA table<span class=\"hljs-constructor\">_info<span style=\"color: #ff9900;\">(<span class=\"hljs-params\">tabel_name<\/span>)<\/span><\/span>;<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\">\u3067<\/span> my case:<\/span><br \/><span style=\"font-size: 110%;\">PRAGMA table<span class=\"hljs-constructor\">_info<span style=\"color: #ff9900;\">(<span class=\"hljs-params\">readings<\/span>)<\/span><\/span>;<\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The result should look like this:<\/span><\/p>\n\t\t\n<style>\n#text-3259630428 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:40%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"268\" height=\"104\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-3.png?resize=268%2C104&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-3.png?w=268&amp;ssl=1 268w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-3.png?resize=50%2C19&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-3.png?resize=18%2C7&amp;ssl=1 18w\" sizes=\"(max-width: 268px) 100vw, 268px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>PRAGMA command<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-134918315\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To exit from sql console, type &#8220;.end&#8221; in sql console:<\/span><\/p>\n<pre class=\"hljs elixir\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ff9900;\">sqlite&gt;<\/span> .tables<\/span> <br \/><span style=\"font-size: 110%;\"><span style=\"color: #ff9900;\">sqlite&gt;<\/span> .exit<\/span><br \/><span style=\"font-size: 110%;\">mpopa<span class=\"hljs-variable\">@mixtile<\/span><span class=\"hljs-symbol\">:<span style=\"color: #ff9900;\">~<\/span><\/span><span style=\"color: #ff9900;\">$<\/span><\/span><\/code><\/pre>\n\t\t\n<style>\n#text-134918315 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-884768804\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Before configure Node-Red to use the database, I will move it to a partition with available space, in my case \/home\/mpopa\/userdata\/ and I will change the permissions:<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> mkdir -p <span class=\"hljs-regexp\">\/home\/m<\/span>popa<span class=\"hljs-regexp\">\/userdata\/<\/span>sqlite<\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> mv <span class=\"hljs-regexp\">\/home\/m<\/span>popa<span class=\"hljs-regexp\">\/sensor_data.db \/<\/span>home<span class=\"hljs-regexp\">\/mpopa\/u<\/span>serdata<span class=\"hljs-regexp\">\/sqlite\/<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> chown -R mpopa:mpopa <span class=\"hljs-regexp\">\/home\/m<\/span>popa<span class=\"hljs-regexp\">\/userdata\/<\/span>sqlite<span class=\"hljs-regexp\">\/sensor_data.db <\/span><\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> chmod 644 \/<\/span>home<span class=\"hljs-regexp\">\/mpopa\/u<\/span>serdata<span class=\"hljs-regexp\">\/sqlite\/<\/span>sensor_data.db<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-884768804 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3086080294\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Now, we have the database created.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>OBS:<\/strong> I observer that one column name was entered with the wrong name; for that I should enter in sqlite console and sent this command to correct the name:<\/span><\/p>\n<pre class=\"hljs sql\"><code><span style=\"font-size: 110%;\">mpopa<span class=\"hljs-variable\">@mixtile<\/span>:<span class=\"hljs-operator\">~<\/span>$ sqlite3 sensor_data.db<\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\"><span class=\"hljs-keyword\">ALTER<\/span> <span class=\"hljs-keyword\">TABLE<\/span><\/span> readings RENAME <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">COLUMN<\/span> himidity <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">TO<\/span> humidity<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-3086080294 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1901522611\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">OBS: in case there are null records in the database, they can be deleted as follows (where &#8220;column_name&#8221; can be the name of column; in my case: temperature, humidity,&#8230;):<\/span><\/p>\n<pre class=\"hljs pgsql\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\"><span class=\"hljs-keyword\">DELETE<\/span> <span class=\"hljs-keyword\">FROM<\/span><\/span> readings <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">WHERE<\/span> <span class=\"hljs-built_in\" style=\"color: #339966;\">column_name<\/span> <span style=\"color: #ed1c24;\"><span class=\"hljs-keyword\">IS<\/span> <span class=\"hljs-keyword\">NULL<\/span><\/span>;<\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">If you want to delete all records from the database, use the following command in sqlite console ( this command will delete all records but will keep the index):<\/span><\/p>\n<pre class=\"hljs gradle\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\"><span class=\"hljs-keyword\">DELETE<\/span> <span class=\"hljs-keyword\">FROM<\/span><\/span> readings;<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-1901522611 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1474461402\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">If you want to delete the recordings and reset the record index, you need to delete the table and then to recreate with the same structure; command to delete the whole table:<\/span><\/p>\n<pre class=\"hljs pgsql\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\"><span class=\"hljs-keyword\">DROP<\/span> <span class=\"hljs-keyword\">TABLE<\/span> <span class=\"hljs-keyword\">IF<\/span> <span class=\"hljs-keyword\">exists<\/span><\/span> readings;<\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">If you want to see the data from readings table in sqlite cli, type the following command in sqlite console:<\/span><\/p>\n<pre class=\"hljs n1ql\"><span style=\"font-size: 110%;\"><code><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">SELECT<\/span> * <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">FROM<\/span> readings;<\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">These are the recorded data in database, in sqlite cli:<\/span><\/p>\n\t\t\n<style>\n#text-1474461402 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:40%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"323\" height=\"169\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-4.png?resize=323%2C169&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-4.png?w=323&amp;ssl=1 323w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-4.png?resize=50%2C26&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-4.png?resize=18%2C9&amp;ssl=1 18w\" sizes=\"(max-width: 323px) 100vw, 323px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>PRAGMA command<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1285081280\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-2709432752\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>C.&nbsp;<\/strong>Connect database with Node-Red.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">First step is to install&nbsp;<em>node-red-node-sqlite<\/em>&nbsp;package from Node-Red palette:<\/span><\/p>\n\t\t\n<style>\n#text-2709432752 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:75%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"707\" height=\"218\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-5.png?resize=707%2C218&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-5.png?w=707&amp;ssl=1 707w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-5.png?resize=50%2C15&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-5.png?resize=18%2C6&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-5.png?resize=600%2C185&amp;ssl=1 600w\" sizes=\"(max-width: 707px) 100vw, 707px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>sqlite package for Node-Red<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-3985042541\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, create a new flow, add all the necessary nodes and create an UI, like in these pictures:<\/span><\/p>\n\t\t\n<style>\n#text-3985042541 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-946237382\" class=\"col medium-9 small-12 large-9\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-1034845449\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row\"  id=\"row-740581551\">\n\n\n\t<div id=\"col-397449629\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"996\" height=\"457\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-6.png?resize=996%2C457&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-6.png?w=996&amp;ssl=1 996w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-6.png?resize=800%2C367&amp;ssl=1 800w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-6.png?resize=768%2C352&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-6.png?resize=50%2C23&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-6.png?resize=18%2C8&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-6.png?resize=600%2C275&amp;ssl=1 600w\" sizes=\"(max-width: 996px) 100vw, 996px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/2 \u00b7 Weather station Ul<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1911326967\">\n\n\n\t<div id=\"col-542869636\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"997\" height=\"634\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-7.png?resize=997%2C634&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-7.png?w=997&amp;ssl=1 997w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-7.png?resize=629%2C400&amp;ssl=1 629w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-7.png?resize=768%2C488&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-7.png?resize=50%2C32&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-7.png?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-7.png?resize=600%2C382&amp;ssl=1 600w\" sizes=\"(max-width: 997px) 100vw, 997px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/2 \u00b7 Weather station nodes<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-1034845449 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-946237382 > .col-inner {\n  margin: 0px 0px -50px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-33163454\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-488190473\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The data came from external unit through MQTT messages, as follows:<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\"><span style=\"color: #993366;\">weather<\/span><span class=\"hljs-regexp\"><span style=\"color: #993366;\">\/<\/span>temperature<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\" style=\"color: #993366;\">weather\/<\/span>humidity<\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #993366;\">weather<\/span><span class=\"hljs-regexp\"><span style=\"color: #993366;\">\/<\/span>pressure<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\" style=\"color: #993366;\">weather\/<\/span>\u30e9\u30a4\u30c8<\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #993366;\">weather\/<\/span>uv_level<\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">All these are connected to MQTT IN nodes.\u00a0<strong><em>The chain from sensors to Mixtile are part of another project that will be documented soon.<\/em><\/strong><\/span><\/p>\n\t\t\n<style>\n#text-488190473 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-441073916\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The code for function node is this (should be write in tab &#8220;On Message&#8221;):<\/span><\/p>\n<pre class=\"hljs actionscript\"><code><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">var<\/span> temperature = msg.payload[<span class=\"hljs-string\" style=\"color: #ff6600;\">\"weather\/temperature\"<\/span>];<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">var<\/span> humidity    = msg.payload[<span class=\"hljs-string\" style=\"color: #ff6600;\">\"weather\/humidity\"<\/span>];<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">var<\/span> pressure    = msg.payload[<span class=\"hljs-string\" style=\"color: #ff6600;\">\"weather\/pressureAtm\"<\/span>];<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">var<\/span> light       = msg.payload[<span class=\"hljs-string\" style=\"color: #ff6600;\">\"weather\/light\"<\/span>];<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">var<\/span> uv_level    = msg.payload[<span class=\"hljs-string\" style=\"color: #ff6600;\">\"weather\/UVsensor\"<\/span>]<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">if<\/span> (temperature === <span class=\"hljs-literal\" style=\"color: #993366;\">undefined<\/span> || humidity === <span class=\"hljs-literal\" style=\"color: #993366;\">undefined<\/span> || pressure === <span class=\"hljs-literal\" style=\"color: #993366;\">undefined<\/span> || light === <span class=\"hljs-literal\" style=\"color: #993366;\">undefined<\/span> || uv_level === <span class=\"hljs-literal\" style=\"color: #993366;\">undefined<\/span>) {<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">return<\/span> { payload: <span class=\"hljs-string\" style=\"color: #ff6600;\">\"Temp or humi or press or light or UV undefined\"<\/span>}<\/span><br \/><span style=\"font-size: 110%;\">}<\/span><br \/><span style=\"font-size: 110%;\">msg.params = [temperature, humidity, pressure, light, uv_level];<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">return<\/span> msg;<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-441073916 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2551509485\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The code for SQLIte node is this:<\/span><\/p>\n<pre class=\"hljs ruby\"><code><span style=\"font-size: 110%;\">INSERT INTO readings (temperature, humidity, pressure, light, uv_level, timestamp) VALUES (<span style=\"color: #ff6600;\"><span class=\"hljs-string\">?,<\/span> <span class=\"hljs-string\">?,<\/span> <span class=\"hljs-string\">?,<\/span> <span class=\"hljs-string\">?,<\/span> <span class=\"hljs-string\">?,<\/span><\/span> DATETIME(<span class=\"hljs-string\" style=\"color: #ff6600;\">'now'<\/span>, <span class=\"hljs-string\" style=\"color: #ff6600;\">'localtime'<\/span>));<\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The data will be recorded in database with 1 minute rate.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>OBS:<\/strong> the whole flow code for Node-Red will be available soon, in download section.<\/span><\/p>\n\t\t\n<style>\n#text-2551509485 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-388566531\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>D.<\/strong>\u00a0Installing Python<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Python is used to crate scripts that will configure the ML model. To install Python, we have to follow these steps:<\/span><\/p>\n<pre class=\"hljs vim\"><code><span style=\"font-size: 110%; color: #ed1c24;\">\u3059\u3069<\/span> <span style=\"font-size: 110%;\">update<\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> apt install python3<\/span><br \/><span style=\"font-size: 110%;\">\u30d1\u30a4\u30bd\u30f33 <span style=\"color: #993366;\">--<span class=\"hljs-keyword\">version<\/span><\/span> --&gt; <span class=\"hljs-keyword\">\u3078\u306e<\/span> verify the installed <\/span><span class=\"hljs-keyword\"><span style=\"font-size: 110%; color: #993366;\">version<\/span><\/span><\/code><\/pre>\n\t\t\n<style>\n#text-388566531 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3258966458\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, install pip:<\/span><\/p>\n<pre class=\"hljs vim\"><code><span style=\"font-size: 110%; color: #ed1c24;\">\u3059\u3069<\/span> <span style=\"font-size: 110%;\">apt install <span class=\"hljs-keyword\">\u30d1\u30a4\u30bd\u30f33<\/span>-pip<\/span><br \/><span style=\"font-size: 110%;\">pip3 <span style=\"color: #993366;\">--<span class=\"hljs-keyword\">version<\/span><\/span> --&gt; <span class=\"hljs-keyword\">\u3078\u306e<\/span> verify the installed <span class=\"hljs-keyword\" style=\"color: #993366;\">version<\/span><\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Installed version on my setup:<\/span><\/p>\n\t\t\n<style>\n#text-3258966458 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:51%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"396\" height=\"75\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-8.png?resize=396%2C75&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-8.png?w=396&amp;ssl=1 396w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-8.png?resize=50%2C9&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-8.png?resize=18%2C3&amp;ssl=1 18w\" sizes=\"(max-width: 396px) 100vw, 396px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Python3 and pip version<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-3222924454\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, install libraries used to work with machine learning, especially with logistic regression model:<\/span><\/p>\n<pre class=\"hljs jboss-cli\"><code><span class=\"hljs-keyword\" style=\"font-size: 110%; color: #ed1c24;\">cd<\/span> <span class=\"hljs-string\" style=\"font-size: 110%; color: #ff6600;\">\/userdata<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-string\" style=\"color: #ff6600;\">mkdir<\/span> For_ML<\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">cd<\/span> <span class=\"hljs-string\" style=\"color: #ff6600;\">\/userdata\/For_ML<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-string\" style=\"color: #ff6600;\">\u30d4\u30c3\u30d7<\/span> install <span class=\"hljs-params\">--target=<\/span>. pandas scikit-learn numpy<\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, create two python files: one used to create and insert a new table,\u00a0<em>recommandations<\/em>\u00a0and another to populate with 5000 values that will be used to train the model. These two tables will be available in Download section after testing.<\/span><\/p>\n\t\t\n<style>\n#text-3222924454 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3443376249\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Structure of\u00a0<em>recommandations<\/em>\u00a0tables is this:<\/span><\/p>\n<pre class=\"hljs sql\"><code><span class=\"hljs-keyword\" style=\"font-size: 110%; color: #ed1c24;\">CREATE <\/span><span style=\"font-size: 110%;\"><span class=\"hljs-keyword\" style=\"color: #ed1c24;\">TABLE<\/span> recommandations (<\/span><br \/><span style=\"font-size: 110%;\">\tid <span class=\"hljs-type\" style=\"color: #ff6600;\">INTEGER<\/span> <span class=\"hljs-keyword\" style=\"color: #ed1c24;\">PRIMARY<\/span> KEY AUTOINCREMENT,<\/span><br \/><span style=\"font-size: 110%;\">\ttemperature <span class=\"hljs-type\" style=\"color: #ff6600;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">\thumidity <span class=\"hljs-type\" style=\"color: #ff6600;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">\tpressure <span class=\"hljs-type\" style=\"color: #ff6600;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">\t\u30e9\u30a4\u30c8 <span class=\"hljs-type\" style=\"color: #ff6600;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">\tuv_level <span class=\"hljs-type\" style=\"color: #ff6600;\">REAL<\/span>,<\/span><br \/><span style=\"font-size: 110%;\">\trecommandation TEXT<\/span><br \/><span style=\"font-size: 110%;\">);<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-3443376249 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3158398637\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, itstall the following libraries used for create a logistic regression model:<\/span><\/p>\n<pre class=\"hljs mipsasm\"><span style=\"font-size: 110%;\"><code>\u30d4\u30c3\u30d7 <span class=\"hljs-keyword\"><span style=\"color: #ff6600;\">install<\/span> <\/span>pandas <span class=\"hljs-keyword\" style=\"color: #ff6600;\">scikit-learn <\/span>numpy<\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In my case, I used other path to install all these libraries, on \/userdata partition:<\/span><\/p>\n\t\t\n<style>\n#text-3158398637 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3541960812\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%; color: #ed1c24;\">mkdir<\/span> <span style=\"font-size: 110%;\"><span class=\"hljs-regexp\">\/userdata\/<\/span>For_ML<span class=\"hljs-regexp\">\/<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">cd<\/span> \/u<\/span>serdata<span class=\"hljs-regexp\">\/For_ML\/<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u30d4\u30c3\u30d7<\/span> install --target=. pandas scikit-learn numpy<\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, install joblib library, used to save the trained model<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%; color: #ed1c24;\">mkdir<\/span> <span style=\"font-size: 110%;\"><span class=\"hljs-regexp\">\/userdata\/<\/span>For_ML<span class=\"hljs-regexp\">\/<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">cd<\/span> \/u<\/span>serdata<span class=\"hljs-regexp\">\/For_ML\/<\/span><\/span><br \/><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u30d4\u30c3\u30d7<\/span> install --target=. joblib<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-3541960812 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1356790330\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, create 3 python files:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">create_table_recommandations.py --> used to create table used for training model;<\/span><\/li>\n<li><span style=\"color: #282828;\">insert_training_data.py --> used to insert data in the table created above;<\/span><\/li>\n<li><span style=\"color: #282828;\">train_model.py --> used to train the logistic regression model;<\/span><\/li>\n<li><span style=\"color: #282828;\">predict_from_readings.py --> used to run the model to predict the clothing and accessories.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In sqlite database, we will have now 2 tables:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">readings &#8211; used to record the real data from sensors;<\/span><\/li>\n<li><span style=\"color: #282828;\">recommandations &#8211; used to train the logistic regression model.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">This is the database structure, now:<\/span><\/p>\n\t\t\n<style>\n#text-1356790330 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:47%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"366\" height=\"77\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-9.png?resize=366%2C77&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-9.png?w=366&amp;ssl=1 366w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-9.png?resize=50%2C11&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-9.png?resize=18%2C4&amp;ssl=1 18w\" sizes=\"(max-width: 366px) 100vw, 366px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>database tables<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-1087357589\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, we have to fill the table recommandations with data that will be used for train the model; this will be done using &#8220;insert_training_data.py &#8220;. This script will fill 5000 records in the tables, based on the 15 rules created between the sensors.<\/span><\/p>\n\t\t\n<style>\n#text-1087357589 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-953065507\" class=\"col medium-6 small-12 large-6\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-1040100055\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row\"  id=\"row-1834657133\">\n\n\n\t<div id=\"col-896184182\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"293\" height=\"42\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-10.png?resize=293%2C42&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-10.png?w=293&amp;ssl=1 293w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-10.png?resize=50%2C7&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-10.png?resize=18%2C3&amp;ssl=1 18w\" sizes=\"(max-width: 293px) 100vw, 293px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/2 \u00b7 Display data from recommandation table<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-760083983\">\n\n\n\t<div id=\"col-1791231193\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"471\" height=\"101\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-11.png?resize=471%2C101&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-11.png?w=471&amp;ssl=1 471w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-11.png?resize=50%2C11&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-11.png?resize=18%2C4&amp;ssl=1 18w\" sizes=\"(max-width: 471px) 100vw, 471px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/2 \u00b7 Data in recommandation training table<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-1040100055 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-953065507 > .col-inner {\n  margin: 0px 0px -60px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-943209615\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-2310837032\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, We will train the model using train_model.py. This operation take few seconds and the best result, in this case is 66.7%. Fot the moment I will take this value as best value for the training data and training rules.<\/span><\/p>\n\t\t\n<style>\n#text-2310837032 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:75%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"681\" height=\"131\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-12.png?resize=681%2C131&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-12.png?w=681&amp;ssl=1 681w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-12.png?resize=50%2C10&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-12.png?resize=18%2C3&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-12.png?resize=600%2C115&amp;ssl=1 600w\" sizes=\"(max-width: 681px) 100vw, 681px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Model accuracy<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-760945853\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">At the end, this script will save the model with the name &#8220;model.pkl&#8221;, in the same director (in my care, in \/userdata\/For_ML\/):<\/span><\/p>\n\t\t\n<style>\n#text-760945853 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:55%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"714\" height=\"468\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-13.png?resize=714%2C468&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-13.png?w=714&amp;ssl=1 714w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-13.png?resize=610%2C400&amp;ssl=1 610w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-13.png?resize=50%2C33&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-13.png?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-13.png?resize=600%2C393&amp;ssl=1 600w\" sizes=\"(max-width: 714px) 100vw, 714px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Model location<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-4261784558\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Next, the forth script, &#8220;predict_from_readings.py&#8221; is used to predict what clothes and accessories to wear based on real data from &#8220;readings&#8221; table. This script will be applied only to the last recorded data and will be triggered at 15 minutes or at request from Node-Red.<\/span><\/p>\n\t\t\n<style>\n#text-4261784558 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:55%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"442\" height=\"81\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-14.png?resize=442%2C81&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-14.png?w=442&amp;ssl=1 442w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-14.png?resize=50%2C9&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-14.png?resize=18%2C3&amp;ssl=1 18w\" sizes=\"(max-width: 442px) 100vw, 442px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Prediction result<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-2106011274\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Now, we have to setup Node-Red to receive the prediction value from Machine Learning model. The &#8220;predict_from_readings.py&#8221; is set to send the prediction result to Node-Red over http, on \/localhost:1880\/recommendation link (see this in script). In Node-red We have to add 3 nodes:<\/span><\/p>\n\t\t\n<style>\n#text-2106011274 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:40%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"465\" height=\"226\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-15.png?resize=465%2C226&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-15.png?w=465&amp;ssl=1 465w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-15.png?resize=50%2C24&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-15.png?resize=18%2C9&amp;ssl=1 18w\" sizes=\"(max-width: 465px) 100vw, 465px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>http in node in Node-Red<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:50%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"573\" height=\"279\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-16.png?resize=573%2C279&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-16.png?w=573&amp;ssl=1 573w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-16.png?resize=50%2C24&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-16.png?resize=18%2C9&amp;ssl=1 18w\" sizes=\"(max-width: 573px) 100vw, 573px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Response function<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:75%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"775\" height=\"165\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-17.png?resize=775%2C165&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-17.png?w=775&amp;ssl=1 775w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-17.png?resize=768%2C164&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-17.png?resize=50%2C11&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-17.png?resize=18%2C4&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-17.png?resize=600%2C128&amp;ssl=1 600w\" sizes=\"(max-width: 775px) 100vw, 775px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Node-Red http send-receive config<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-3350933319\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In this moment We have configured the communication between ML and Node-Red. Next steps are: create an automatic request for predictions, add manual request for prediction and interpretation of recommendations in Node-Red.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Create an automatic request for prediction in Node-Red. To do that add the following nodes in Node-Red:<\/span><\/p>\n\t\t\n<style>\n#text-3350933319 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:75%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"766\" height=\"166\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-18.png?resize=766%2C166&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-18.png?w=766&amp;ssl=1 766w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-18.png?resize=50%2C11&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-18.png?resize=18%2C4&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-18.png?resize=600%2C130&amp;ssl=1 600w\" sizes=\"(max-width: 766px) 100vw, 766px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Manual and automatic trigger for prediction<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-2557093717\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Now, the ML is finished, the Node-red configuration is finished and the Node-Red UI should look like this:<\/span><\/p>\n\t\t\n<style>\n#text-2557093717 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:60%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"975\" height=\"690\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-19.png?resize=975%2C690&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-19.png?w=975&amp;ssl=1 975w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-19.png?resize=565%2C400&amp;ssl=1 565w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-19.png?resize=768%2C544&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-19.png?resize=50%2C35&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-19.png?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/5-19.png?resize=600%2C425&amp;ssl=1 600w\" sizes=\"(max-width: 975px) 100vw, 975px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Weather station Ul with prediction<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row align-center\"  id=\"row-1087777951\">\n\n\n\t<div id=\"col-2123925967\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-319747750\" class=\"text\">\n\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">6. Video demonstration<\/span><\/h3>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In this part will be presented some video that demonstrate how this project is working in real life.<\/span><\/p>\n\t\t\n<style>\n#text-319747750 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-2123925967 > .col-inner {\n  margin: 0px 0px -30px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-2103498727\" class=\"col medium-9 small-12 large-9\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-385132945\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>A<\/strong>. Video with weather station prototype working; here, the external unit (in the left side of the video) wait until the client is connected (in the right side of the video) and then will send the environmental data with a rate at 30 seconds:<\/span><\/p>\n\t\t\n<style>\n#text-385132945 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<div class=\"video video-fit mb\" style=\"padding-top:56.25%;\"><iframe loading=\"lazy\" title=\"Weather station with BLE\" width=\"1020\" height=\"574\" src=\"https:\/\/www.youtube.com\/embed\/T24RwtEVr2A?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><\/div>\n\n<p><span style=\"font-size: 90%;\">Video with weather station prototype working<\/span><\/p>\n\t<div id=\"text-212648780\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\"><strong>B<\/strong>. Video with implementation of weather station with prediction for what should I wear and what accessories should I have when I go out:<\/span><\/p>\n\t\t\n<style>\n#text-212648780 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<div class=\"video video-fit mb\" style=\"padding-top:56.25%;\"><p><iframe loading=\"lazy\" title=\"Weather station interface\" width=\"1020\" height=\"574\" src=\"https:\/\/www.youtube.com\/embed\/68kaEnAb18w?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><\/p>\n<\/div>\n\n<p><span style=\"font-size: 90%;\">Video with weather station interface<\/span><\/p>\n\t<div id=\"text-126056221\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\"><strong>C<\/strong>. Video with all Zigbee devices connected to Mixtile Edge2 kit (this video also has sound to exemplify in the interdata from None-Red the fact that the buttons are pressed):<\/span><\/p>\n\t\t\n<style>\n#text-126056221 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<div class=\"video video-fit mb\" style=\"padding-top:56.25%;\"><p><iframe loading=\"lazy\" title=\"Zigbee devices\" width=\"1020\" height=\"574\" src=\"https:\/\/www.youtube.com\/embed\/_Oa3mIKkKyo?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><\/p>\n<\/div>\n\n<p><span style=\"font-size: 90%;\">Video with Zigbee devices &#8211; with sound!!!<\/span><\/p>\n\t<div id=\"text-1517717823\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\"><strong>D.<\/strong>&nbsp;Video with Node-Red and Zigbee2mqtt UI:<\/span><\/p>\n\t\t\n<style>\n#text-1517717823 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<div class=\"video video-fit mb\" style=\"padding-top:56.25%;\"><p><iframe loading=\"lazy\" title=\"Zigbee network\" width=\"1020\" height=\"574\" src=\"https:\/\/www.youtube.com\/embed\/5yP3QylOFfY?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><\/p>\n<\/div>\n\n<p><span style=\"font-size: 90%;\">Video with Node-Red and Zigbee interface<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-708009637\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">7. Next steps<\/span><\/h3>\n\t<div id=\"text-2776383410\" class=\"text\">\n\t\t\n\n<section id=\"story\">\n<div class=\"project-story collapsible-section collapsed hljs-active hljs-monokai\">\n<p><span style=\"color: #282828;\">This chapter contain the next steps that can be used to improve and groth the Zigbee network and, maybe Z-Wave network, on one hand and Weather station on the other hand; and, of cource, add LoRa board to Mixtile Edge 2 kit and create a sensor and devices network usoing this protocol. Let;s take one by one.<\/span><\/p>\n<\/div>\n<\/section>\n\t\t\n<style>\n#text-2776383410 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3114273722\" class=\"text\">\n\t\t\n\n<section id=\"story\">\n<div class=\"project-story collapsible-section collapsed hljs-active hljs-monokai\">\n<ol>\n<li><span style=\"color: #282828;\">Zigbee network: add more devices, as: window sensors, water leak detectors, PIR detectors, devices for actuating curtains, energy meters (for electrical energy, for water consumption); some of them can be created using ESP32-C6 or CC2530 or similar boards;<\/span><\/li>\n<li class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Z-Wave network: this network is more stable than Zigbee and WiFi because operate on lower frequencies: 908.42 band in the U.S. and the 868.42 MHz band in Europe; but all devices need a license so, the devices are a little bit expensive comparing with Zigbee or WiFi;<\/span><\/li>\n<li class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Weather station: add more sensors, like: wind sensor, rain sensor, storm sensor; create a specific care that can be used outside, even on the exterior of the balcony in blocks of flats; moreover create a more complex ML algorithm for prediction;<\/span><\/li>\n<li class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Create cases for external unit (BLE Server) and for internal unit (client + TFT and ESP32 bridge).<\/span><\/li>\n<li class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">LoRa network: for LoRa, I ordered some devices and adapters that operate in EU frequencies range and actually this will be the first next step to develop for this project.<\/span><\/li>\n<li class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Integration with Datacake to be able to view data and operate various devices remotely; here, some small steps are already done;<\/span><\/li>\n<li class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Migrate the power supply to solar panel and battery; this is almost done; what remain is to find a location and connect the Mixtile Edge 2 kit to power solar inverter.<\/span><\/li>\n<\/ol>\n<\/div>\n<\/section>\n\t\t\n<style>\n#text-3114273722 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1194978501\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-1441067803\" class=\"text\">\n\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">8. Troubleshooting<\/span><\/h3>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 100%; color: #000000;\">Modification of OS partitions to have space for applications<\/span><\/h3>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In this part will be presented some video that demonstrate how this project is working in real life.<\/span><\/p>\n\t\t\n<style>\n#text-1441067803 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:40%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"325\" height=\"158\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-1.png?resize=325%2C158&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-1.png?w=325&amp;ssl=1 325w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-1.png?resize=50%2C24&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-1.png?resize=18%2C9&amp;ssl=1 18w\" sizes=\"(max-width: 325px) 100vw, 325px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>Almost no space on \/dev\/root partition<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-2250897411\" class=\"text\">\n\t\t\n\n<section id=\"story\">\n<div class=\"project-story collapsible-section collapsed hljs-active hljs-monokai\">\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">In this case, I have 2 options:<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">1. I ask Mixtile how to solve the space issue;<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">2. Move some folders from \/dev\/root partition to the larger one, \/userdata<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">For option 1, Mixtile offered me a new Debian image with the new partitions resized; but flashing of this new image will erase all the settings that I have made until now;<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">For option 2 (more challengi<\/span>ng&#8230;), first I located the larger folders from the system with command:<\/p>\n<pre class=\"hljs gml\"><span style=\"font-size: 110%;\"><code>sudo du -h --<span class=\"hljs-built_in\" style=\"color: #993366;\">max<\/span>-<span class=\"hljs-symbol\" style=\"color: #ed1c24;\">depth<\/span>=<span class=\"hljs-number\"><span style=\"color: #ff6600;\">1<\/span><\/span><\/code><\/span><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The result is this:<\/span><\/p>\n<\/div>\n<\/section>\n\t\t\n<style>\n#text-2250897411 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:40%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"280\" height=\"194\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-2.png?resize=280%2C194&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-2.png?w=280&amp;ssl=1 280w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-2.png?resize=50%2C35&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-2.png?resize=18%2C12&amp;ssl=1 18w\" sizes=\"(max-width: 280px) 100vw, 280px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>List with large folders from the system<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-275105528\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Then, I moved the following folders to \/userdata and I created for each folder an symbolic link:<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>a.\/var\/cache\/apt&nbsp;<\/strong>moved to&nbsp;<strong>\/userdata<\/strong>&nbsp;(send one commnad at the time):<\/span><\/p>\n\t\t\n<style>\n#text-275105528 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-561160065\" class=\"text\">\n\t\t\n\n<pre class=\"hljs gradle\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> mv <span class=\"hljs-regexp\">\/var\/<\/span>cache<span class=\"hljs-regexp\">\/apt userdata\/<\/span>apt_cache     <span style=\"color: #00a859;\">--&gt; move the folder<\/span><\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> ln -s <span class=\"hljs-regexp\">\/userdata\/<\/span>apt_cache <span class=\"hljs-regexp\">\/var\/<\/span>cache<span class=\"hljs-regexp\">\/apt <span style=\"color: #00a859;\">--&gt; create the symbolic link<\/span><\/span><\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> chown -R root:root \/u<\/span>serdata<span class=\"hljs-regexp\">\/apt_cache   <span style=\"color: #00a859;\">--&gt; set permisions<\/span><\/span><\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> chmod -R 755 \/u<\/span>serdata\/apt_cache         <span style=\"color: #00a859;\">--&gt; set permitions <\/span><\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> systemctl restart apt=daily.service      <span style=\"color: #00a859;\">--&gt; restart the service <span class=\"hljs-keyword\">for<\/span> apt<\/span><\/span><br><br><span style=\"font-size: 110%;\">optional, after that, send <span class=\"hljs-keyword\">this<\/span> to rebuild all necessary files in <span class=\"hljs-keyword\">new<\/span> location:<\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> apt-get update<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-561160065 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-3381943219\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>b.\/opt<\/strong>&nbsp;moved to&nbsp;<strong>\/userdata:<\/strong><\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> mv opt <span class=\"hljs-regexp\">\/userdata\/<\/span>opt  <span style=\"color: #00a859;\">--&gt; move the folder<\/span><\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> mount --bind <span class=\"hljs-regexp\">\/userdata\/<\/span>opt <span class=\"hljs-regexp\">\/opt <span style=\"color: #00a859;\">--&gt; mount the folder<\/span> \/u<\/span>serdata<span class=\"hljs-regexp\">\/opt instead \/<\/span>opt<\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\">\/userdata\/<\/span>opt <span class=\"hljs-regexp\">\/opt none bind 0 0 <span style=\"color: #00a859;\">--&gt; add this line in file<\/span> \/<\/span>etc\/fstab<\/span><\/code><\/pre>\n\t\t\n<style>\n#text-3381943219 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2407482727\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To modify the file&nbsp;<strong>fstab<\/strong>&nbsp;\u3088\u308a&nbsp;<strong>\/etc\/fstab<\/strong>, send these commands:<\/span><\/p>\n<pre class=\"hljs vim\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> mount -<span class=\"hljs-keyword\">o<\/span> remount,rw \/  <span style=\"color: #00a859;\">--&gt; <span class=\"hljs-keyword\">make<\/span> \u305d\u306e <span class=\"hljs-keyword\">files<\/span> writable<\/span><\/span><br><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">\u3059\u3069<\/span> nano \/etc\/fstab        <span style=\"color: #00a859;\">--&gt; <span class=\"hljs-keyword\">\u30aa\u30fc\u30d7\u30f3<\/span> <span class=\"hljs-keyword\">file<\/span> fstab <span class=\"hljs-keyword\">\u3078\u306e<\/span> <\/span><\/span><span class=\"hljs-keyword\"><span style=\"font-size: 110%; color: #00a859;\">edit<\/span><\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The result:<\/span><\/p>\n\t\t\n<style>\n#text-2407482727 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:65%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"490\" height=\"321\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-3.png?resize=490%2C321&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-3.png?w=490&amp;ssl=1 490w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-3.png?resize=50%2C33&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-3.png?resize=18%2C12&amp;ssl=1 18w\" sizes=\"(max-width: 490px) 100vw, 490px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>File fstab modified<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\t<div id=\"text-4176664073\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>c. \/Downloads<\/strong>&nbsp;moved to&nbsp;<strong>\/userdata:<\/strong><\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">mv<\/span> ~<span class=\"hljs-regexp\">\/Downloads \/u<\/span>serdata<span class=\"hljs-regexp\">\/Downloads    <span style=\"color: #00a859;\">--&gt; move the folder<\/span><\/span><\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">ln -s<\/span> \/u<\/span>serdata<span class=\"hljs-regexp\">\/downloads ~\/<\/span>Downloads <span style=\"color: #00a859;\">--&gt; create the symbolic link<\/span><\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>d. \/Arduino<\/strong>&nbsp;moved to&nbsp;<em><strong>\/userdata<\/strong><\/em>&nbsp;(this is specific for Arduino IDE):<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">mv<\/span> <span class=\"hljs-regexp\">\/home\/m<\/span>popa<span class=\"hljs-regexp\">\/Arduino \/u<\/span>serdata<span class=\"hljs-regexp\">\/Arduino    <span style=\"color: #00a859;\">--&gt; move the folder<\/span><\/span><\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">ln -s<\/span> \/u<\/span>serdata<span class=\"hljs-regexp\">\/Arduino \/<\/span>home<span class=\"hljs-regexp\">\/mpopa\/<\/span>Arduino <span style=\"color: #00a859;\">--&gt; create the symbolic link<\/span><\/span><\/code><\/pre>\n\t\t\n<style>\n#text-4176664073 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-1111732470\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>e. \/.arduino15<\/strong>&nbsp;moved to&nbsp;<strong>\/userdata<\/strong>&nbsp;(this is specific for Arduino IDE):<\/span><\/p>\n<pre class=\"hljs awk\"><code><span style=\"font-size: 110%;\"><span style=\"color: #ed1c24;\">mv<\/span> <span class=\"hljs-regexp\">\/home\/m<\/span>popa<span class=\"hljs-regexp\">\/.arduino15 \/u<\/span>serdata<span class=\"hljs-regexp\">\/.arduino15    <span style=\"color: #00a859;\">--&gt; move the folder<\/span><\/span><\/span><br><span style=\"font-size: 110%;\"><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">ln -s<\/span> \/u<\/span>serdata<span class=\"hljs-regexp\">\/.arduino15 \/<\/span>home<span class=\"hljs-regexp\">\/mpopa\/<\/span>.arduino15 <span style=\"color: #00a859;\">--&gt; create the symbolic link<\/span><\/span><\/code><\/pre>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\"><strong>Obs&nbsp;here:<\/strong> the folder.arduino15 is hidden; for that I have to go in \/hone\/mpopa and, from UI, selected View and Show Hidden Files.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">Now, the folder \/userdata and the space on \/dev\/root should look like this:<\/span><\/p>\n\t\t\n<style>\n#text-1111732470 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1585030087\" class=\"col medium-8 small-12 large-8\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-957442546\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n<div class=\"row align-center\"  id=\"row-284379749\">\n\n\n\t<div id=\"col-930659076\" class=\"col medium-7 small-12 large-7\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"280\" height=\"194\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-4.png?resize=280%2C194&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-4.png?w=280&amp;ssl=1 280w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-4.png?resize=50%2C35&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-4.png?resize=18%2C12&amp;ssl=1 18w\" sizes=\"(max-width: 280px) 100vw, 280px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>1\/2 \u00b7 New space created on root<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1911645237\">\n\n\n\t<div id=\"col-823814016\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" >\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"792\" height=\"284\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-5.png?resize=792%2C284&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-5.png?w=792&amp;ssl=1 792w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-5.png?resize=768%2C275&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-5.png?resize=50%2C18&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-5.png?resize=18%2C6&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/8-5.png?resize=600%2C215&amp;ssl=1 600w\" sizes=\"(max-width: 792px) 100vw, 792px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" style=\"padding:0px 0px 10px 0px;\">\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<p>2\/2 \u00b7 userdata folder with the new folders<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-957442546 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1585030087 > .col-inner {\n  margin: 0px 0px -60px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1199449252\">\n\n\n\t<div id=\"col-1202086800\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">Schematics<\/span><\/h3>\n<hr>\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1202086800 > .col-inner {\n  margin: 0px 0px -30px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1664599764\" class=\"col medium-10 small-12 large-10\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">Schematic of weather station<\/span><\/h3>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1099744033\" class=\"col medium-2 small-12 large-2\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<a rel=\"noopener noreferrer\" href=\"https:\/\/www.mixtile.com\/ja\/app\/uploads\/Schematic-of-weather-station.zip\/\" target=\"_blank\" class=\"button primary is-outline expand\"  style=\"border-radius:99px;\">\n    <span>\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/span>\n  <\/a>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1099744033 > .col-inner {\n  padding: 0px 0px 0px 0px;\n  margin: -14px 0px -20px 0px;\n}\n@media (min-width:550px) {\n  #col-1099744033 > .col-inner {\n    margin: 10px 0px -10px 0px;\n  }\n}\n<\/style>\n\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1644902417\">\n\n\n\t<div id=\"col-1750899712\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">\u30b3\u30fc\u30c9<\/span><\/h3>\n<hr>\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1750899712 > .col-inner {\n  margin: 0px 0px -30px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-2136968417\" class=\"col medium-5 small-12 large-5\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<ul>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">Schematic of weather station <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">JSON<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">Arduino Zigbee bulb example for ESP32 <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">C\/C++<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">Arduino Zigbee temperature sensor example for ESP32 <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">C\/C++<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">CC2530 Switch <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">Plain text<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">CC2530 Lamp <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">Plain text<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">CC2530 DHT11 sensor <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">Plain text<\/span><\/span><\/li>\n<\/ul>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-707540053\" class=\"col medium-5 small-12 large-5\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<ul>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">Node-red Weather station flow <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">JSON<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">create_table_recommeandation <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">Python<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">insert_training_data <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">Python<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">train_mode. <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">Python<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">predict_from_readings <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">Python<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">BLE client <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">C\/C++<\/span><\/span><\/li>\n<li style=\"font-weight: 600; text-align: left;\"><span style=\"color: #282828;\">BLE server <span class=\"hckui__typography__bodyS hckui__typography__pebble\" style=\"color: #c0c0c0;\">C\/C++<\/span><\/span><\/li>\n<\/ul>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-943092912\" class=\"col medium-2 small-12 large-2\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<a rel=\"noopener noreferrer\" href=\"https:\/\/www.mixtile.com\/ja\/app\/uploads\/Code_Smarthome_Project_Mihai.zip\/\" target=\"_blank\" class=\"button primary is-outline expand\"  style=\"border-radius:99px;\">\n    <span>\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/span>\n  <\/a>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-943092912 > .col-inner {\n  padding: 0px 0px 0px 0px;\n  margin: -14px 0px -20px 0px;\n}\n@media (min-width:550px) {\n  #col-943092912 > .col-inner {\n    margin: 100px 0px -10px 0px;\n  }\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-875161557\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">\u30af\u30ec\u30b8\u30c3\u30c8<br \/><\/span><\/h3>\n<hr>\n<div class=\"row\"  id=\"row-641495138\">\n\n\n\t<div id=\"col-1537058325\" class=\"col medium-10 small-12 large-10\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n  <div class=\"icon-box testimonial-box icon-box-left text-left is-large\">\n                <div class=\"icon-box-img testimonial-image circle\" style=\"width: 90px\">\n              <img width=\"280\" height=\"280\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?resize=280%2C280&amp;ssl=1\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?w=500&amp;ssl=1 500w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?resize=400%2C400&amp;ssl=1 400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?resize=280%2C280&amp;ssl=1 280w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?resize=50%2C50&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?resize=12%2C12&amp;ssl=1 12w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/Poza-MPopa-2024-selfie-500px.webp?resize=100%2C100&amp;ssl=1 100w\" sizes=\"(max-width: 280px) 100vw, 280px\" \/>        <\/div>\n                <div class=\"icon-box-text p-last-0\">\n            \t\t\t\t<div class=\"testimonial-text line-height-small italic test_text first-reset last-reset is-italic\">\n            \n\n<h3 class=\"hckui__typography__h3\"><span style=\"color: #00aae7;\"><strong>Mihai Popa<\/strong><\/span><\/h3>\n<p>I am working as a test engineer for navigation systems in auto industry. I am passionate about science, loT, ML, MCU programming, and SF movies.<\/p>\n\n          <\/div>\n          <div class=\"testimonial-meta pt-half\">\n             <strong class=\"testimonial-name test_name\"><\/strong>\n                          <span class=\"testimonial-company test_company\"><\/span>\n          <\/div>\n        <\/div>\n  <\/div>\n\n  \n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n\t\t<\/div>\n\n\t\t\n<style>\n#section_1418988286 {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  min-height: 600px;\n}\n#section_1418988286 .ux-shape-divider--top svg {\n  height: 150px;\n  --divider-top-width: 100%;\n}\n#section_1418988286 .ux-shape-divider--bottom svg {\n  height: 150px;\n  --divider-width: 100%;\n}\n<\/style>\n\t<\/section>\n\t\n\n\n<style>@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;600;900&display=swap');<\/style>","protected":false},"excerpt":{"rendered":"","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-blank.php","meta":{"spay_email":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build Smart Home System with Node-RED | Mixtile<\/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:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build Smart Home System with Node-RED | Mixtile\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/\" \/>\n<meta property=\"og:site_name\" content=\"Mixtile\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-16T08:46:46+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"29 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/#organization\",\"name\":\"Mixtile Limited\",\"url\":\"https:\/\/www.mixtile.com\/ja\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/#logo\",\"inLanguage\":\"ja\",\"url\":\"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg\",\"contentUrl\":\"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg\",\"caption\":\"Mixtile Limited\"},\"image\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/#website\",\"url\":\"https:\/\/www.mixtile.com\/ja\/\",\"name\":\"Mixtile\",\"description\":\"Hardware for IoT Solutions\",\"publisher\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.mixtile.com\/ja\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/#webpage\",\"url\":\"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/\",\"name\":\"Build Smart Home System with Node-RED | Mixtile\",\"isPartOf\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/#website\"},\"datePublished\":\"2024-10-11T09:17:25+00:00\",\"dateModified\":\"2024-10-16T08:46:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.mixtile.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build Smart Home System with Node-RED\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Build Smart Home System with Node-RED | Mixtile","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:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/","og_locale":"ja_JP","og_type":"article","og_title":"Build Smart Home System with Node-RED | Mixtile","og_url":"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/","og_site_name":"Mixtile","article_modified_time":"2024-10-16T08:46:46+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"29 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.mixtile.com\/ja\/#organization","name":"Mixtile Limited","url":"https:\/\/www.mixtile.com\/ja\/","sameAs":[],"logo":{"@type":"ImageObject","@id":"https:\/\/www.mixtile.com\/ja\/#logo","inLanguage":"ja","url":"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg","contentUrl":"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg","caption":"Mixtile Limited"},"image":{"@id":"https:\/\/www.mixtile.com\/ja\/#logo"}},{"@type":"WebSite","@id":"https:\/\/www.mixtile.com\/ja\/#website","url":"https:\/\/www.mixtile.com\/ja\/","name":"Mixtile","description":"Hardware for IoT Solutions","publisher":{"@id":"https:\/\/www.mixtile.com\/ja\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mixtile.com\/ja\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/#webpage","url":"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/","name":"Build Smart Home System with Node-RED | Mixtile","isPartOf":{"@id":"https:\/\/www.mixtile.com\/ja\/#website"},"datePublished":"2024-10-11T09:17:25+00:00","dateModified":"2024-10-16T08:46:46+00:00","breadcrumb":{"@id":"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mixtile.com\/ja\/build-smart-home-system-with-node-red\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mixtile.com\/"},{"@type":"ListItem","position":2,"name":"Build Smart Home System with Node-RED"}]}]}},"_links":{"self":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages\/7164"}],"collection":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/comments?post=7164"}],"version-history":[{"count":134,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages\/7164\/revisions"}],"predecessor-version":[{"id":7422,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages\/7164\/revisions\/7422"}],"wp:attachment":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/media?parent=7164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}