diff --git a/404.html b/404.html index 517912a5..84108800 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -
smart home circle
Smart Home Circle

404

Sorry we couldn't find this page.

But dont worry, you can find plenty of other things on our homepage.

\ No newline at end of file +
smart home circle
Smart Home Circle

404

Sorry we couldn't find this page.

But dont worry, you can find plenty of other things on our homepage.

\ No newline at end of file diff --git a/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.html b/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.html index f04e265e..cedc3e5a 100644 --- a/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.html +++ b/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant" -}
smart home circle
Smart Home Circle
Published on

How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word

How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word
14 min read
Authors

In this article, we will look at how I created my voice Assistant with On-Device Wake Word detection on an ESP32 S3 using MicroWake Word to send commands to Home Assistant.

+}
\ No newline at end of file +


\ No newline at end of file diff --git a/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.html b/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.html index d60c549d..39ba4e40 100644 --- a/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.html +++ b/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant" -}
smart home circle
Smart Home Circle
Published on

How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word

How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word
11 min read
Authors

In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant.

+}
\ No newline at end of file +


\ No newline at end of file diff --git a/Setup-LG-Washer-with-Home-Assistant.html b/Setup-LG-Washer-with-Home-Assistant.html index 5438b571..18eb5f7f 100644 --- a/Setup-LG-Washer-with-Home-Assistant.html +++ b/Setup-LG-Washer-with-Home-Assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article we will look at how you can connect an LG Washer with Home Assistant using LG ThinQ integration and configure a dashboard card" -}
smart home circle
Smart Home Circle
Published on

Setup LG Washer with Home Assistant using ThinQ Integration

Setup LG Washer with Home Assistant using ThinQ Integration
7 min read
Authors

This article we will look at how you can connect an LG Washer with Home Assistant using LG ThinQ integration and configure a dashboard card.

+} \ No newline at end of file +


\ No newline at end of file diff --git a/_next/data/SpilfSKen7usQvQUAn6P3/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.json new file mode 100644 index 00000000..1773d677 --- /dev/null +++ b/_next/data/SpilfSKen7usQvQUAn6P3/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.json @@ -0,0 +1 @@ +{"pageProps":{"post":{"mdxSource":"var Component=(()=>{var h=Object.create;var t=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var r=a=>t(a,\"__esModule\",{value:!0});var y=(a,s)=>()=>(s||a((s={exports:{}}).exports,s),s.exports),g=(a,s)=>{r(a);for(var c in s)t(a,c,{get:s[c],enumerable:!0})},w=(a,s,c)=>{if(s&&typeof s==\"object\"||typeof s==\"function\")for(let n of u(s))!N.call(a,n)&&n!==\"default\"&&t(a,n,{get:()=>s[n],enumerable:!(c=m(s,n))||c.enumerable});return a},f=a=>w(r(t(a!=null?h(k(a)):{},\"default\",a&&a.__esModule&&\"default\"in a?{get:()=>a.default,enumerable:!0}:{value:a,enumerable:!0})),a);var d=y((P,o)=>{o.exports=_jsx_runtime});var v={};g(v,{default:()=>S,frontmatter:()=>_});var e=f(d()),_={title:\"How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word\",author:\"Amrut Prabhu\",categories:\"\",tags:[\"Wake Word\",\"Micro Wake Word\",\"ESP32\",\"Voice Assistant\",\"Home Assistant\"],\"photo-credits\":null,\"applaud-link\":\"2021/spring-boot-stream-kafka.json\",date:\"2024-05-23\",draft:!1,summary:\"In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant\",imageUrl:\"/static/images/2024/created-my-voice-assistant/cover.webp\",actualUrl:\"auto-generated\",customUrl:\"auto-generated\",youtubeLink:\"https://www.youtube.com/embed/aPP2alIU7Gg\"};function b(a={}){let{wrapper:s}=a.components||{};return s?(0,e.jsx)(s,Object.assign({},a,{children:(0,e.jsx)(c,{})})):c();function c(){let n=Object.assign({p:\"p\",h2:\"h2\",a:\"a\",span:\"span\",ol:\"ol\",li:\"li\",strong:\"strong\",br:\"br\",img:\"img\",ul:\"ul\",div:\"div\",table:\"table\",thead:\"thead\",tr:\"tr\",th:\"th\",tbody:\"tbody\",td:\"td\",blockquote:\"blockquote\",pre:\"pre\",code:\"code\"},a.components),{TOCInline:i,Image:l}=n;return l||p(\"Image\",!0),i||p(\"TOCInline\",!0),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(n.p,{children:\"In this article, we will look at how I created my voice Assistant with On-Device Wake Word detection on an ESP32 S3 using MicroWake Word to send commands to Home Assistant.\"}),`\n`,(0,e.jsx)(i,{toc:a.toc,asDisclosure:!0}),`\n`,(0,e.jsxs)(n.h2,{id:\"requirements\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#requirements\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Requirements\"]}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Home Assistant\"}),\" up and running.\",(0,e.jsx)(n.br,{}),`\n`,\"You can check \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-wifi-to-home-assistant-on-startup\",children:\"this\"}),\" link to see how you can install it for the first time\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESPHome\"}),\" is setup and running\",(0,e.jsx)(n.br,{}),`\n`,\"In case you have not set it up, you can look at it \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/esp32-esp8266-esphome-with-home-assistant\",children:\"here\"}),\".\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESP32 S3 N8R2 or N16R8 Dev Board\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.img,{src:\"/static/images/components/esp32-s3-n8r2.webp\",alt:\"ESP32 S3 \"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - ESP32 S3 Dev Board\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3xnA8ax\",children:(0,e.jsx)(n.strong,{children:\"Amazon - ESP32 S3 Dev Board\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Guide for ordering ESP32 N8R2 or N16R8 Board is \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"here\"})]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"4\",children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.br,{}),`\n`,\"Links to buy this:\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/inmp441-microphone.webp\",alt:\"INMP441 MICROPHONE\"})})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - INMP441 Microphone\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3GdxO7o\",children:(0,e.jsx)(n.strong,{children:\"Amazon - INMP441 Microphone\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"5\",children:[`\n`,(0,e.jsxs)(n.li,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"MAX98357A Audio Amplifier\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/MAX98357A.webp\",alt:\"MAX98357A\"})})]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - MAX98357A\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/46wKTmW\",children:(0,e.jsx)(n.strong,{children:\"Amazon - MAX98357A\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`]}),`\n`,(0,e.jsxs)(n.li,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"3-watt Speakers\"}),\" (Optional: Only required to listen to the pipeline output)\",(0,e.jsx)(n.br,{}),`\n`,\"Links to buy these.\",(0,e.jsx)(n.br,{}),`\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/3-watt-speakers.webp\",alt:\"3 watt speaker\"})})]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - 3-watt Speakers\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/49BbAJR\",children:(0,e.jsx)(n.strong,{children:\"Amazon - 3-watt Speakers\"})})}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.li,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"COB 5mm WS2812B LED Strip\"}),`\nLinks to buy these.`,(0,e.jsx)(n.br,{}),`\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DDtD9SP\",children:(0,e.jsx)(n.img,{src:\"/static/images/components/Ws2812b-cob-led-strip.webp\",alt:\"WS2812B LED Strip\"})})]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DDtD9SP\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - COB 5mm WS2812B LED Strip\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3yqR7t7\",children:(0,e.jsx)(n.strong,{children:\"Amazon - WS2812B LED Strip (Not the exact model)\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.h2,{id:\"3d-print-template-for-voice-assistant-case\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#3d-print-template-for-voice-assistant-case\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"3D Print Template For Voice Assistant Case\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"You can find the link \",(0,e.jsx)(n.a,{href:\"https://www.thingiverse.com/thing:6631205\",children:\"here\"}),\" to the STL file for 3D printing the case and the cover.\"]}),`\n`,(0,e.jsxs)(n.h2,{id:\"set-up-voice-assist-pipeline\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#set-up-voice-assist-pipeline\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Set up Voice Assist Pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"To set up voice assistant, we would need two components to create the Voice Assist pipeline in Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\": For speech-to-text\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\": For text-to-speech\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, following the below video, you have set up these components in Home Assistant using Addons.\"}),`\n`,(0,e.jsx)(\"div\",{className:\"md:w-1/2\",children:(0,e.jsx)(\"iframe\",{id:\"video\",className:\"w-full aspect-video\",src:\"https://www.youtube.com/embed/P4V2JqCmk7M\",frameBorder:\"0\",allow:\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",allowFullScreen:!0})}),`\n`,(0,e.jsx)(n.p,{children:\"You will get to see how to set up the following components that are required\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[\"And finally the entire \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"You don't need to set up the Wake Word addon, as we will use the on-device Wake Word detection with the Micro Wake Word framework\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"So make sure to watch it and set up the \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Now we will look at how we can prepare our ESP32 S3 with a microphone and 3-watt speakers.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"esp32-wiring-diagram.webp\",src:\"/static/images/2024/created-my-voice-assistant/circuit-diagram.webp\",width:\"1375\",height:\"1426\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to connect the 5v pads as shown in the diagram to enable 5v output on the 5v pin.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Here is the pin mapping table\"}),`\n`,(0,e.jsxs)(n.table,{children:[(0,e.jsx)(n.thead,{children:(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.th,{children:\"ESP32 S3 N8R2 or N16R8\"}),(0,e.jsx)(n.th,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.th,{children:\"Speaker\"}),(0,e.jsx)(n.th,{children:\"LED Strip WS2812B\"}),(0,e.jsx)(n.th,{children:\"Mute Switch\"})]})}),(0,e.jsxs)(n.tbody,{children:[(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"switch pin 1\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 10\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"switch pin 2\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Gnd\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 6\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"LRC\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 7\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"BLCK\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 8\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"DIN\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"3v3\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Vin\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 4\"}),(0,e.jsx)(n.td,{children:\"SD\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 3\"}),(0,e.jsx)(n.td,{children:\"WS\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 2\"}),(0,e.jsx)(n.td,{children:\"SCK\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"3v3\"}),(0,e.jsx)(n.td,{children:\"VDD\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{children:\"GND & L/R\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 9\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Din\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"Vin (5v)\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Vin\"}),(0,e.jsx)(n.td,{})]})]})]}),`\n`,(0,e.jsx)(n.p,{children:\"Once you have connected the microphone and the audio amplifier, let\\u2019s look at the code we must flash to the ESP32 S3 using ESPHome.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"flashing-code-to-esp32-s3-with-esphome\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#flashing-code-to-esp32-s3-with-esphome\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Flashing Code to ESP32 S3 with ESPHome\"]}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note\"}),\": I faced problems while flashing the ESP32 S3 from an M series Macbook, so I switched to a Windows system.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, you can follow these steps to flash the code required to make the ESP32 S3 work with the microphone and speakers.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Create a new device in the ESPHome dashboard by clicking on \\u201C\",(0,e.jsx)(n.strong,{children:\"New Device\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2:\"}),\" Give it a name e.g. \\u201C\",(0,e.jsx)(n.strong,{children:\"Voice Assistant\"}),\"\\u201D and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Next\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Now select ESP32 S3 from the options\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"1-select-esp32-device.webp\",src:\"/static/images/2024/on-device-wake-word/esphome-select.webp\",width:\"424\",height:\"493\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Now, click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Skip\"}),\"\\u201D and open the device card again by clicking on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Edit\"}),\"\\u201D option.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"2-edit-device.webp\",src:\"/static/images/2023/esp32-voice-assistant/2-edit-device.webp\",width:\"437\",height:\"173\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Place the following YAML code below.\"]}),`\n`,(0,e.jsx)(n.pre,{className:\"language-yaml\",children:(0,e.jsxs)(n.code,{className:\"language-yaml code-highlight\",children:[(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esphome\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"friendly_name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" ESP32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"S3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"Wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platformio_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board_build.flash_mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` dio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_boot\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esp32\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"devkitc\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"framework\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`idf\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"sdkconfig_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_64KB\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_LINE_64B\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_AUDIO_BOARD_CUSTOM\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"psram\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" octal \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Please change this to quad for N8R2 and octal for N16R8\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speed\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80MHz\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable Home Assistant API\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"api\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"encryption\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"key\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"TFpb+pBAvQIS1MVwaA7EoJ2DkpWE+79UvVro7yMyGdU=\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_connected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 50ms\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_disconnected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"logger\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ota\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esphome\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"1245211a05eef56614a2ef5a3f3e971c\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wifi\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_ssid\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_password\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable fallback hotspot (captive portal) in case wifi connection fails\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ap\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Esp32-S3-Wake-Word\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"LJfUrdJk3svP\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"captive_portal\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"button\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` restart\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Restart\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` but_rest\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"switch\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` template\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"optimistic\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"true\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"binary_sensor\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` gpio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` button01\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Mute Button\"'}),\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Physical Mute switch\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"number\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO10 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#Physical Button connected to this pin.\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"inverted\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"True\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"input\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"True\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pullup\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"True\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_press\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"switch.toggle\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esp32_rmt_led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rgb_order\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GRB\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GPIO48\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"num_leds\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rmt_channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"chipset\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` ws2812\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"On board light\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effects\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Fast Pulse\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"transition_length\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"update_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"min_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"max_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esp32_rmt_led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rgb_order\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GRB\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GPIO09\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"num_leds\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"29\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rmt_channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"chipset\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` ws2812\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Led Strip\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effects\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Fast Pulse\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"transition_length\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"update_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"min_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"max_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"addressable_scan\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Scan Effect With Custom Values\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"move_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 5ms\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"scan_width\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"10\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Audio and Voice Assistant Config \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" i2s_in \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# For microphone\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO3 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#WS \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO2 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SCK\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" i2s_speaker \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#For Speaker\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO6 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#LRC \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO7 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#BLCK\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"adc_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_din_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO4 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SD\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` left\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pdm\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"false\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_in\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"bits_per_sample\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 32bit\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"dac_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_dout_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO8 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# DIN Pin of the MAX98357A Audio Amplifier\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mono\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_wake_word_detected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!lambda\"}),` return wake_word;\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"silence_detection\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"true\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 70%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Scan Effect With Custom Values\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"model\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` hey_jarvis\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"auto_gain\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 31dBFS\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"noise_suppression_level\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"2\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"volume_multiplier\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"4.0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_stt_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_error\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wait_until\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"not\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.is_running\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]})]})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to set the PSRAM mode to octal or quad depending on the type of the board by referring to \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"this\"}),\" link.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Save\"}),\"\\u201D and then click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D on the top right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 7\"}),\": Now, click on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Manual Download\"}),\"\\u201D option and then choose \\u201C\",(0,e.jsx)(n.strong,{children:\"Modern Format\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 8\"}),\": Save the file to your computer.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 9\"}),\": Open \",(0,e.jsx)(n.a,{href:\"https://web.esphome.io\",children:\"https://web.esphome.io\"}),\". in Chrome or Edge browser.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 10\"}),\": Now connect the ESP32 S3 dev Board to the laptop and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Connect\"}),\"\\u201D and you should get a popup window like this.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"3-select-usb.webp\",src:\"/static/images/2023/esp32-voice-assistant/3-select-usb.webp\",width:\"567\",height:\"247\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 11\"}),\": Select the USB serial port for your device and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 12\"}),\": Now load the file you saved in \",(0,e.jsx)(n.strong,{children:\"Step 8\"}),\" and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"4-erasing.webp\",src:\"/static/images/2023/esp32-voice-assistant/4-erasing.webp\",width:\"314\",height:\"227\"})}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note:\"}),\" In case the board does not go from connecting to erasing after some time, you can try to put the device into flashing mode. For this, press and hold the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button, then the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, leave the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, and then finally leave the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you have now prepared your ESP32 S3 to start receiving a voice command after detecting the Wake Word.\"}),`\n`,(0,e.jsx)(n.p,{children:\"Next, we will connect it to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Connecting ESP32 S3 As Voice Assistant In Home Assistant\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Once the ESP32 S3 is flashed with the code in the above section, we will connect it to Home Assistant using the ESPHome Integration.\"}),`\n`,(0,e.jsx)(n.p,{children:\"For this, follow these steps.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Click \\u201C\",(0,e.jsx)(n.strong,{children:\"Settings\"}),\"\\u201D in Home Assistant in the left panel.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Devices & Services\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Now, if the device is already auto-discovered, you can click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Configure\"}),\"\\u201D and with this, the device is connected to Home Assistant.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"If the device is not auto-discovered, then\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Add Integration\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Search for \\u201C\",(0,e.jsx)(n.strong,{children:\"ESPhome\"}),\"\\u201D and click on it.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Add the IP address of your ESP32 S3 board that is connected to your WiFi. Keep the port number as \",(0,e.jsx)(n.strong,{children:\"6053\"}),\" and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Submit\"}),\"\\u201D\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"5-esp32-connect-home-assistant.webp\",src:\"/static/images/2023/esp32-voice-assistant/5-esp32-connect-home-assistant.webp\",width:\"431\",height:\"320\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": If you are asked to enter the encryption key then you can find that in ESPHome under the property \",(0,e.jsx)(n.code,{children:\"api: encryption: key\"}),\". Copy and paste the key in the window.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you are now done setting up the ESP32 S3 with On-Device Wake Word detection for your Voice Assistant connected to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy\",children:(0,e.jsx)(n.strong,{children:\"Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-led-strip-with-home-assistant-using-wled\",children:(0,e.jsx)(n.strong,{children:\"Control LED Strip with Home Assistant\\u200AUsing WLED\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-wifi-to-home-assistant-on-startup\",children:(0,e.jsx)(n.strong,{children:\"Connect Home Assistant to the WIFI on First Boot\"})})}),`\n`]})]})}}var S=b;function p(a,s){throw new Error(\"Expected \"+(s?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v;})();\n;return Component;","toc":[{"value":"Requirements","url":"#requirements","depth":2},{"value":"3D Print Template For Voice Assistant Case","url":"#3d-print-template-for-voice-assistant-case","depth":2},{"value":"Set up Voice Assist Pipeline","url":"#set-up-voice-assist-pipeline","depth":2},{"value":"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier","url":"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier","depth":2},{"value":"Flashing Code to ESP32 S3 with ESPHome","url":"#flashing-code-to-esp32-s3-with-esphome","depth":2},{"value":"Connecting ESP32 S3 As Voice Assistant In Home Assistant","url":"#connecting-esp32-s3-as-voice-assistant-in-home-assistant","depth":2}],"frontMatter":{"readingTime":{"text":"14 min read","minutes":13.205,"time":792300,"words":2641},"slug":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","fileName":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.md","title":"How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-05-23T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant","imageUrl":"/static/images/2024/created-my-voice-assistant/cover.webp","actualUrl":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","customUrl":"How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","youtubeLink":"https://www.youtube.com/embed/aPP2alIU7Gg"}},"authorDetails":[{"readingTime":{"text":"1 min read","minutes":0.77,"time":46200,"words":154},"slug":["default"],"fileName":"default.md","name":"Amrut Prabhu","avatar":"/static/images/avatar-small.jpg","avatarBig":"/static/images/avatar-big.jpg","occupation":"","company":"","email":"SmartHomeCircle@gmail.com","twitter":"https://twitter.com/amrutprabhu42","linkedin":"","github":"","youtube":"https://www.youtube.com/@SmartHomeCircle","customUrl":"default","actualUrl":"default","date":null}],"prev":{"title":"How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-04-04T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant","imageUrl":"/static/images/2024/on-device-wake-word/cover.webp","actualUrl":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","customUrl":"How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","youtubeLink":"https://www.youtube.com/embed/rT_q0g8dtmY","slug":"How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant"},"next":null},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/SpilfSKen7usQvQUAn6P3/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.json new file mode 100644 index 00000000..ac4477b9 --- /dev/null +++ b/_next/data/SpilfSKen7usQvQUAn6P3/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.json @@ -0,0 +1 @@ +{"pageProps":{"post":{"mdxSource":"var Component=(()=>{var h=Object.create;var t=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var o=a=>t(a,\"__esModule\",{value:!0});var y=(a,s)=>()=>(s||a((s={exports:{}}).exports,s),s.exports),g=(a,s)=>{o(a);for(var c in s)t(a,c,{get:s[c],enumerable:!0})},w=(a,s,c)=>{if(s&&typeof s==\"object\"||typeof s==\"function\")for(let n of u(s))!N.call(a,n)&&n!==\"default\"&&t(a,n,{get:()=>s[n],enumerable:!(c=m(s,n))||c.enumerable});return a},f=a=>w(o(t(a!=null?h(k(a)):{},\"default\",a&&a.__esModule&&\"default\"in a?{get:()=>a.default,enumerable:!0}:{value:a,enumerable:!0})),a);var d=y((P,r)=>{r.exports=_jsx_runtime});var v={};g(v,{default:()=>S,frontmatter:()=>_});var e=f(d()),_={title:\"How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word\",author:\"Amrut Prabhu\",categories:\"\",tags:[\"Wake Word\",\"Micro Wake Word\",\"ESP32\",\"Voice Assistant\",\"Home Assistant\"],\"photo-credits\":null,\"applaud-link\":\"2021/spring-boot-stream-kafka.json\",date:\"2024-04-04\",draft:!1,summary:\"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant\",imageUrl:\"/static/images/2024/on-device-wake-word/cover.webp\",actualUrl:\"auto-generated\",customUrl:\"auto-generated\",youtubeLink:\"https://www.youtube.com/embed/rT_q0g8dtmY\"};function b(a={}){let{wrapper:s}=a.components||{};return s?(0,e.jsx)(s,Object.assign({},a,{children:(0,e.jsx)(c,{})})):c();function c(){let n=Object.assign({p:\"p\",h2:\"h2\",a:\"a\",span:\"span\",ol:\"ol\",li:\"li\",strong:\"strong\",br:\"br\",img:\"img\",ul:\"ul\",div:\"div\",table:\"table\",thead:\"thead\",tr:\"tr\",th:\"th\",tbody:\"tbody\",td:\"td\",blockquote:\"blockquote\",pre:\"pre\",code:\"code\"},a.components),{TOCInline:i,Image:l}=n;return l||p(\"Image\",!0),i||p(\"TOCInline\",!0),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(n.p,{children:\"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant.\"}),`\n`,(0,e.jsx)(i,{toc:a.toc,asDisclosure:!0}),`\n`,(0,e.jsxs)(n.h2,{id:\"requirements\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#requirements\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Requirements\"]}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Home Assistant\"}),\" up and running.\",(0,e.jsx)(n.br,{}),`\n`,\"You can check \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-wifi-to-home-assistant-on-startup\",children:\"this\"}),\" link to see how you can install it for the first time\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESPHome\"}),\" is setup and running\",(0,e.jsx)(n.br,{}),`\n`,\"In case you have not set it up, you can look at it \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/esp32-esp8266-esphome-with-home-assistant\",children:\"here\"}),\".\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESP32 S3 N8R2 Dev Board\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.img,{src:\"/static/images/2024/on-device-wake-word/esp32-s3-n8r2.webp\",alt:\"ESP32 S3 \"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - ESP32 S3 N8R2 Dev Board\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3xnA8ax\",children:(0,e.jsx)(n.strong,{children:\"Amazon - ESP32 S3 N8R2 Dev Board\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Guide for ordering ESP32 N8R2 or N16R8 Board is \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"here\"})]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"4\",children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.br,{}),`\n`,\"Links to buy this:\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/inmp441-microphone.webp\",alt:\"INMP441 MICROPHONE\"})})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - INMP441 Microphone\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3GdxO7o\",children:(0,e.jsx)(n.strong,{children:\"Amazon - INMP441 Microphone\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"5\",children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"MAX98357A Audio Amplifier\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/MAX98357A.webp\",alt:\"MAX98357A\"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - MAX98357A\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/46wKTmW\",children:(0,e.jsx)(n.strong,{children:\"Amazon - MAX98357A\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"3-watt Speakers\"}),\" (Optional: Only required to listen to the pipeline output)\",(0,e.jsx)(n.br,{}),`\n`,\"Links to buy these.\",(0,e.jsx)(n.br,{}),`\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/3-watt-speakers.webp\",alt:\"3 watt speaker\"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - 3-watt Speakers\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/49BbAJR\",children:(0,e.jsx)(n.strong,{children:\"Amazon - 3-watt Speakers\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.h2,{id:\"set-up-voice-assist-pipeline\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#set-up-voice-assist-pipeline\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Set Up Voice Assist Pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"To set up voice assistant, we would need two components to create the Voice Assist pipeline in Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\": For speech-to-text\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\": For text-to-speech\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, following the below video, you have set up these components in Home Assistant using Addons.\"}),`\n`,(0,e.jsx)(\"div\",{className:\"md:w-1/2\",children:(0,e.jsx)(\"iframe\",{id:\"video\",className:\"w-full aspect-video\",src:\"https://www.youtube.com/embed/P4V2JqCmk7M\",frameBorder:\"0\",allow:\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",allowFullScreen:!0})}),`\n`,(0,e.jsx)(n.p,{children:\"You will get to see how to set up the following components that are required\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[\"And finally the entire \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"You don't need to set up the Wake Word addon, as we will use the on-device Wake Word detection with the Micro Wake Word framework\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"So make sure to watch it and set up the \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Now we will look at how we can prepare our ESP32 S3 with a microphone and 3-watt speakers.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"esp32-wiring-diagram.webp\",src:\"/static/images/2024/on-device-wake-word/esp32-s3-connections.webp\",width:\"1080\",height:\"1160\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to connect the 5v pads as shown in the diagram to enable 5v output on the 5v pin.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Here is the pin mapping table\"}),`\n`,(0,e.jsxs)(n.table,{children:[(0,e.jsx)(n.thead,{children:(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.th,{children:\"ESP32 S3 N8R2 or N16R8\"}),(0,e.jsx)(n.th,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.th,{children:\"Speaker\"})]})}),(0,e.jsxs)(n.tbody,{children:[(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"Vin (5v)\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Vin\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Gnd\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 6\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"LRC\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 7\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"BLCK\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 8\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"DIN\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 4\"}),(0,e.jsx)(n.td,{children:\"SD\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 3\"}),(0,e.jsx)(n.td,{children:\"WS\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 2\"}),(0,e.jsx)(n.td,{children:\"SCK\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"3v3\"}),(0,e.jsx)(n.td,{children:\"VDD\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{children:\"GND & L/R\"}),(0,e.jsx)(n.td,{})]})]})]}),`\n`,(0,e.jsx)(n.p,{children:\"Once you have connected the microphone and the audio amplifier, let\\u2019s look at the code we must flash to the ESP32 S3 using ESPHome.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"flashing-code-to-esp32-s3-with-esphome\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#flashing-code-to-esp32-s3-with-esphome\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Flashing Code to ESP32 S3 with ESPHome\"]}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note\"}),\": I faced problems while flashing the ESP32 S3 from an M series Macbook, so I switched to a Windows system.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, you can follow these steps to flash the code required to make the ESP32 S3 work with the microphone and speakers.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Create a new device in the ESPHome dashboard by clicking on \\u201C\",(0,e.jsx)(n.strong,{children:\"New Device\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2:\"}),\" Give it a name e.g. \\u201C\",(0,e.jsx)(n.strong,{children:\"Voice Assistant\"}),\"\\u201D and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Next\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Now select ESP32 S3 from the options\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"1-select-esp32-device.webp\",src:\"/static/images/2024/on-device-wake-word/esphome-select.webp\",width:\"424\",height:\"493\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Now, click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Skip\"}),\"\\u201D and open the device card again by clicking on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Edit\"}),\"\\u201D option.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"2-edit-device.webp\",src:\"/static/images/2023/esp32-voice-assistant/2-edit-device.webp\",width:\"437\",height:\"173\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Place the following YAML code below.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.a,{href:\"https://github.com/BigBobbas/esphome_firmware/blob/main/kahrendt_micro_wake_word/obww_esp32_s3_mic_and_speaker.yaml\",children:\"The original\"}),\" yaml configuration is by \",(0,e.jsx)(n.a,{href:\"https://github.com/BigBobbas/\",children:'\"_bigbobba\"'}),\" from the Home Assistant Discord Channel\"]}),`\n`,(0,e.jsx)(n.pre,{className:\"language-yaml\",children:(0,e.jsxs)(n.code,{className:\"language-yaml code-highlight\",children:[(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esphome\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"friendly_name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" ESP32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"S3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"Wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platformio_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board_build.flash_mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` dio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_boot\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esp32\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"devkitc\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"framework\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`idf\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"sdkconfig_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_64KB\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_LINE_64B\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_AUDIO_BOARD_CUSTOM\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"psram\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" quad \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# quad for N8R2 and octal for N16R8\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speed\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80MHz\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable logging\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"logger\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"hardware_uart\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` UART0\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable Home Assistant API\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"api\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"encryption\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"key\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"TFpb+pBAvQIS1MVwaA7EoJ2DkpWE+79UvVro7yMyGdU=\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_connected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 50ms\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_disconnected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ota\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esphome\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"1245211a05eef56614a2ef5a3f3e971c\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wifi\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_ssid\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_password\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable fallback hotspot (captive portal) in case wifi connection fails\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ap\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Esp32-S3-Wake-Word\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"LJfUrdJk3svP\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"captive_portal\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"button\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` restart\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Restart\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` but_rest\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"switch\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` template\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"optimistic\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"true\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esp32_rmt_led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rgb_order\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GRB\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GPIO48\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"num_leds\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rmt_channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"chipset\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` ws2812\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"on board light\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effects\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Fast Pulse\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"transition_length\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"update_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"min_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"max_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Audio and Voice Assistant Config \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_in\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO3 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#WS \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO2 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SCK\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO6 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#LRC \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO7 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#BLCK\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"adc_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_din_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO4 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SD pin on the INMP441\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` left\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pdm\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"false\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_in\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"bits_per_sample\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 32 bit\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"dac_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_dout_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO8 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# DIN Pin of the MAX98357A Audio Amplifier\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mono\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_wake_word_detected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# then:\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!lambda\"}),` return wake_word;\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 70%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"model\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` hey_jarvis\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"noise_suppression_level\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"2.0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"volume_multiplier\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"4.0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_stt_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_error\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wait_until\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"not\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.is_running\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]})]})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to set the PSRAM mode to octal or quad depending on the type of the board by referring to \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"this\"}),\" link.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Save\"}),\"\\u201D and then click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D on the top right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 7\"}),\": Now, click on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Manual Download\"}),\"\\u201D option and then choose \\u201C\",(0,e.jsx)(n.strong,{children:\"Modern Format\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 8\"}),\": Save the file to your computer.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 9\"}),\": Open \",(0,e.jsx)(n.a,{href:\"https://web.esphome.io\",children:\"https://web.esphome.io\"}),\". in Chrome or Edge browser.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 10\"}),\": Now connect the ESP32 S3 dev Board to the laptop and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Connect\"}),\"\\u201D and you should get a popup window like this.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"3-select-usb.webp\",src:\"/static/images/2023/esp32-voice-assistant/3-select-usb.webp\",width:\"567\",height:\"247\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 11\"}),\": Select the USB serial port for your device and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 12\"}),\": Now load the file you saved in \",(0,e.jsx)(n.strong,{children:\"Step 8\"}),\" and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"4-erasing.webp\",src:\"/static/images/2023/esp32-voice-assistant/4-erasing.webp\",width:\"314\",height:\"227\"})}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note:\"}),\" In case the board does not go from connecting to erasing after some time, you can try to put the device into flashing mode. For this, press and hold the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button, then the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, leave the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, and then finally leave the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you have now prepared your ESP32 S3 to start receiving a voice command after detecting the Wake Word.\"}),`\n`,(0,e.jsx)(n.p,{children:\"Next, we will connect it to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Connecting ESP32 S3 As Voice Assistant In Home Assistant\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Once the ESP32 S3 is flashed with the code in the above section, we will connect it to Home Assistant using the ESPHome Integration.\"}),`\n`,(0,e.jsx)(n.p,{children:\"For this, follow these steps.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Click \\u201C\",(0,e.jsx)(n.strong,{children:\"Settings\"}),\"\\u201D in Home Assistant in the left panel.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Devices & Services\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Now, if the device is already auto-discovered, you can click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Configure\"}),\"\\u201D and with this, the device is connected to Home Assistant.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"If the device is not auto-discovered, then\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Add Integration\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Search for \\u201C\",(0,e.jsx)(n.strong,{children:\"ESPhome\"}),\"\\u201D and click on it.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Add the IP address of your ESP32 S3 board that is connected to your WiFi. Keep the port number as \",(0,e.jsx)(n.strong,{children:\"6053\"}),\" and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Submit\"}),\"\\u201D\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"5-esp32-connect-home-assistant.webp\",src:\"/static/images/2023/esp32-voice-assistant/5-esp32-connect-home-assistant.webp\",width:\"431\",height:\"320\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": If you are asked to enter the encryption key then you can find that in ESPHome under the property \",(0,e.jsx)(n.code,{children:\"api: encryption: key\"}),\". Copy and paste the key in the window.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you are now done setting up the ESP32 S3 with On-Device Wake Word detection for your Voice Assistant connected to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/created-voice-assistant-esp32-with-wake-word-in-home-assistant\",children:(0,e.jsx)(n.strong,{children:\"My Local Voice Assistant Device\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-led-strip-with-home-assistant-using-wled\",children:(0,e.jsx)(n.strong,{children:\"Control LED Strip with Home Assistant\\u200AUsing WLED\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/add-matter-devices-to-home-assistant\",children:(0,e.jsx)(n.strong,{children:\"How I Added a Matter Device to Home Assistant\"})})}),`\n`]})]})}}var S=b;function p(a,s){throw new Error(\"Expected \"+(s?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v;})();\n;return Component;","toc":[{"value":"Requirements","url":"#requirements","depth":2},{"value":"Set Up Voice Assist Pipeline","url":"#set-up-voice-assist-pipeline","depth":2},{"value":"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier","url":"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier","depth":2},{"value":"Flashing Code to ESP32 S3 with ESPHome","url":"#flashing-code-to-esp32-s3-with-esphome","depth":2},{"value":"Connecting ESP32 S3 As Voice Assistant In Home Assistant","url":"#connecting-esp32-s3-as-voice-assistant-in-home-assistant","depth":2}],"frontMatter":{"readingTime":{"text":"11 min read","minutes":10.615,"time":636900,"words":2123},"slug":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","fileName":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.md","title":"How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-04-04T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant","imageUrl":"/static/images/2024/on-device-wake-word/cover.webp","actualUrl":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","customUrl":"How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","youtubeLink":"https://www.youtube.com/embed/rT_q0g8dtmY"}},"authorDetails":[{"readingTime":{"text":"1 min read","minutes":0.77,"time":46200,"words":154},"slug":["default"],"fileName":"default.md","name":"Amrut Prabhu","avatar":"/static/images/avatar-small.jpg","avatarBig":"/static/images/avatar-big.jpg","occupation":"","company":"","email":"SmartHomeCircle@gmail.com","twitter":"https://twitter.com/amrutprabhu42","linkedin":"","github":"","youtube":"https://www.youtube.com/@SmartHomeCircle","customUrl":"default","actualUrl":"default","date":null}],"prev":{"title":"How To Update Bootloader (EEPROM) On The Raspberry Pi","author":"Amrut Prabhu","categories":"","tags":["Raspberry Pi","bootloader","EEPROM"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-02-17T00:00:00.000Z","draft":false,"summary":"This article on how you can update the bootloader (EEPROM) on the Raspberry Pi","imageUrl":"/static/images/2024/update-bootloader/cover.jpg","actualUrl":"2024/how-to-update-bootloader-on-raspberrypi","customUrl":"how-to-update-bootloader-on-raspberrypi","youtubeLink":"","slug":"how-to-update-bootloader-on-raspberrypi"},"next":{"title":"How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-05-23T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant","imageUrl":"/static/images/2024/created-my-voice-assistant/cover.webp","actualUrl":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","customUrl":"How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","youtubeLink":"https://www.youtube.com/embed/aPP2alIU7Gg","slug":"How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/Setup-LG-Washer-with-Home-Assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/Setup-LG-Washer-with-Home-Assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/Setup-LG-Washer-with-Home-Assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/Setup-LG-Washer-with-Home-Assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/about.json b/_next/data/SpilfSKen7usQvQUAn6P3/about.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/about.json rename to _next/data/SpilfSKen7usQvQUAn6P3/about.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/add-matter-devices-to-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/add-matter-devices-to-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/add-matter-devices-to-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/add-matter-devices-to-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/air-quality-sensor-and-light-sensor-esp32-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/air-quality-sensor-and-light-sensor-esp32-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/air-quality-sensor-and-light-sensor-esp32-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/air-quality-sensor-and-light-sensor-esp32-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/change-graph-colors-in-energy-dashboard-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/change-graph-colors-in-energy-dashboard-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/change-graph-colors-in-energy-dashboard-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/change-graph-colors-in-energy-dashboard-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.json b/_next/data/SpilfSKen7usQvQUAn6P3/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.json rename to _next/data/SpilfSKen7usQvQUAn6P3/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/create-nas-with-raspberry-pi-5.json b/_next/data/SpilfSKen7usQvQUAn6P3/create-nas-with-raspberry-pi-5.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/create-nas-with-raspberry-pi-5.json rename to _next/data/SpilfSKen7usQvQUAn6P3/create-nas-with-raspberry-pi-5.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/created-voice-assistant-esp32-with-wake-word-in-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/created-voice-assistant-esp32-with-wake-word-in-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/created-voice-assistant-esp32-with-wake-word-in-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/created-voice-assistant-esp32-with-wake-word-in-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/custom-sentences-for-voice-assistant-in-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/custom-sentences-for-voice-assistant-in-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/custom-sentences-for-voice-assistant-in-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/custom-sentences-for-voice-assistant-in-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/custom-wake-word-for-voice-assistant-with-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/custom-wake-word-for-voice-assistant-with-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/custom-wake-word-for-voice-assistant-with-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/custom-wake-word-for-voice-assistant-with-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/easily-share-files-with-home-assistant-using-samba-share.json b/_next/data/SpilfSKen7usQvQUAn6P3/easily-share-files-with-home-assistant-using-samba-share.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/easily-share-files-with-home-assistant-using-samba-share.json rename to _next/data/SpilfSKen7usQvQUAn6P3/easily-share-files-with-home-assistant-using-samba-share.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/esp32-cam-esphome-with-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/esp32-cam-esphome-with-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/esp32-cam-esphome-with-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/esp32-cam-esphome-with-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/esp32-esp8266-esphome-with-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/esp32-esp8266-esphome-with-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/esp32-esp8266-esphome-with-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/esp32-esp8266-esphome-with-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/how-to-backup-home-assistant-on-google-drive.json b/_next/data/SpilfSKen7usQvQUAn6P3/how-to-backup-home-assistant-on-google-drive.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/how-to-backup-home-assistant-on-google-drive.json rename to _next/data/SpilfSKen7usQvQUAn6P3/how-to-backup-home-assistant-on-google-drive.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/how-to-connect-led-strip-with-home-assistant-using-wled.json b/_next/data/SpilfSKen7usQvQUAn6P3/how-to-connect-led-strip-with-home-assistant-using-wled.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/how-to-connect-led-strip-with-home-assistant-using-wled.json rename to _next/data/SpilfSKen7usQvQUAn6P3/how-to-connect-led-strip-with-home-assistant-using-wled.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/how-to-connect-wifi-to-home-assistant-on-startup.json b/_next/data/SpilfSKen7usQvQUAn6P3/how-to-connect-wifi-to-home-assistant-on-startup.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/how-to-connect-wifi-to-home-assistant-on-startup.json rename to _next/data/SpilfSKen7usQvQUAn6P3/how-to-connect-wifi-to-home-assistant-on-startup.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/how-to-setup-frigate-with-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/how-to-setup-frigate-with-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/how-to-setup-frigate-with-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/how-to-setup-frigate-with-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/how-to-setup-local-tuya-in-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/how-to-setup-local-tuya-in-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/how-to-setup-local-tuya-in-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/how-to-setup-local-tuya-in-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/how-to-setup-mqtt-docker-container-with-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/how-to-setup-mqtt-docker-container-with-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/how-to-setup-mqtt-docker-container-with-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/how-to-setup-mqtt-docker-container-with-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/how-to-update-bootloader-on-raspberrypi.json b/_next/data/SpilfSKen7usQvQUAn6P3/how-to-update-bootloader-on-raspberrypi.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/how-to-update-bootloader-on-raspberrypi.json rename to _next/data/SpilfSKen7usQvQUAn6P3/how-to-update-bootloader-on-raspberrypi.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/index.json b/_next/data/SpilfSKen7usQvQUAn6P3/index.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/index.json rename to _next/data/SpilfSKen7usQvQUAn6P3/index.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/install-zigbee2mqtt-with-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/install-zigbee2mqtt-with-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/install-zigbee2mqtt-with-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/install-zigbee2mqtt-with-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/moes-zigbee-smart-knob-with-homeassistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/moes-zigbee-smart-knob-with-homeassistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/moes-zigbee-smart-knob-with-homeassistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/moes-zigbee-smart-knob-with-homeassistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/page/1.json b/_next/data/SpilfSKen7usQvQUAn6P3/page/1.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/page/1.json rename to _next/data/SpilfSKen7usQvQUAn6P3/page/1.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/page/2.json b/_next/data/SpilfSKen7usQvQUAn6P3/page/2.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/page/2.json rename to _next/data/SpilfSKen7usQvQUAn6P3/page/2.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/page/3.json b/_next/data/SpilfSKen7usQvQUAn6P3/page/3.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/page/3.json rename to _next/data/SpilfSKen7usQvQUAn6P3/page/3.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/page/4.json b/_next/data/SpilfSKen7usQvQUAn6P3/page/4.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/page/4.json rename to _next/data/SpilfSKen7usQvQUAn6P3/page/4.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/page/5.json b/_next/data/SpilfSKen7usQvQUAn6P3/page/5.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/page/5.json rename to _next/data/SpilfSKen7usQvQUAn6P3/page/5.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/page/6.json b/_next/data/SpilfSKen7usQvQUAn6P3/page/6.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/page/6.json rename to _next/data/SpilfSKen7usQvQUAn6P3/page/6.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/posts.json b/_next/data/SpilfSKen7usQvQUAn6P3/posts.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/posts.json rename to _next/data/SpilfSKen7usQvQUAn6P3/posts.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/privacy.json b/_next/data/SpilfSKen7usQvQUAn6P3/privacy.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/privacy.json rename to _next/data/SpilfSKen7usQvQUAn6P3/privacy.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/projects.json b/_next/data/SpilfSKen7usQvQUAn6P3/projects.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/projects.json rename to _next/data/SpilfSKen7usQvQUAn6P3/projects.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/run-home-assistant-container-with-docker.json b/_next/data/SpilfSKen7usQvQUAn6P3/run-home-assistant-container-with-docker.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/run-home-assistant-container-with-docker.json rename to _next/data/SpilfSKen7usQvQUAn6P3/run-home-assistant-container-with-docker.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/setup-esp32-with-wake-word-in-home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/setup-esp32-with-wake-word-in-home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/setup-esp32-with-wake-word-in-home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/setup-esp32-with-wake-word-in-home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.json b/_next/data/SpilfSKen7usQvQUAn6P3/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.json rename to _next/data/SpilfSKen7usQvQUAn6P3/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/back-up.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/back-up.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/back-up.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/back-up.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/beginners.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/beginners.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/beginners.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/beginners.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/bh1750.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/bh1750.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/bh1750.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/bh1750.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/bluetooth.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/bluetooth.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/bluetooth.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/bluetooth.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/bootloader.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/bootloader.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/bootloader.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/bootloader.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/co2-sensor.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/co2-sensor.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/co2-sensor.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/co2-sensor.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/custom.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/custom.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/custom.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/custom.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/d1-mini.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/d1-mini.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/d1-mini.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/d1-mini.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/dashboard-cards.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/dashboard-cards.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/dashboard-cards.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/dashboard-cards.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/dashboards.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/dashboards.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/dashboards.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/dashboards.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/docker-compose.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/docker-compose.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/docker-compose.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/docker-compose.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/docker.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/docker.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/docker.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/docker.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/eeprom.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/eeprom.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/eeprom.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/eeprom.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/energy-dashboard.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/energy-dashboard.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/energy-dashboard.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/energy-dashboard.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/energy-graph.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/energy-graph.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/energy-graph.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/energy-graph.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/esp32-cam.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/esp32-cam.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/esp32-cam.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/esp32-cam.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/esp32.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/esp32.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/esp32.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/esp32.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/esp8266.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/esp8266.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/esp8266.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/esp8266.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/esphome.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/esphome.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/esphome.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/esphome.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/google-drive.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/google-drive.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/google-drive.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/google-drive.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/home-assistant-container.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/home-assistant-container.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/home-assistant-container.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/home-assistant-container.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/home-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/home-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/home-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/home-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/led-lights.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/led-lights.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/led-lights.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/led-lights.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/led-strip.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/led-strip.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/led-strip.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/led-strip.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/lg-washer.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/lg-washer.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/lg-washer.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/lg-washer.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/lg.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/lg.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/lg.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/lg.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/local-tuya.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/local-tuya.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/local-tuya.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/local-tuya.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/matter.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/matter.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/matter.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/matter.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/micro-wake-word.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/micro-wake-word.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/micro-wake-word.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/micro-wake-word.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/mqtt.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/mqtt.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/mqtt.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/mqtt.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/nas.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/nas.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/nas.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/nas.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/os.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/os.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/os.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/os.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/raspberry-pi-5.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/raspberry-pi-5.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/raspberry-pi-5.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/raspberry-pi-5.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/raspberry-pi.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/raspberry-pi.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/raspberry-pi.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/raspberry-pi.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/samba-share.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/samba-share.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/samba-share.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/samba-share.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/sensor.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/sensor.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/sensor.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/sensor.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/setup.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/setup.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/setup.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/setup.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/sgp30.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/sgp30.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/sgp30.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/sgp30.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/smart-device.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/smart-device.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/smart-device.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/smart-device.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/smart-plug.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/smart-plug.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/smart-plug.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/smart-plug.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/smart-wifi-plug.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/smart-wifi-plug.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/smart-wifi-plug.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/smart-wifi-plug.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/sonoff-dongle-plus.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/sonoff-dongle-plus.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/sonoff-dongle-plus.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/sonoff-dongle-plus.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/tuya.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/tuya.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/tuya.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/tuya.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/ubuntu.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/ubuntu.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/ubuntu.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/ubuntu.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/usb-microphone.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/usb-microphone.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/usb-microphone.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/usb-microphone.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/voice-assistant.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/voice-assistant.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/voice-assistant.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/voice-assistant.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/wake-word.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/wake-word.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/wake-word.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/wake-word.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/wifi.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/wifi.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/wifi.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/wifi.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/wled.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/wled.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/wled.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/wled.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/xiaomi.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/xiaomi.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/xiaomi.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/xiaomi.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/zigbee.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/zigbee.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/zigbee.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/zigbee.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/tags/zigbee2mqtt.json b/_next/data/SpilfSKen7usQvQUAn6P3/tags/zigbee2mqtt.json similarity index 100% rename from _next/data/lT8unwdGeHP99gz0zdvhW/tags/zigbee2mqtt.json rename to _next/data/SpilfSKen7usQvQUAn6P3/tags/zigbee2mqtt.json diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.json b/_next/data/lT8unwdGeHP99gz0zdvhW/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.json deleted file mode 100644 index dd2b3218..00000000 --- a/_next/data/lT8unwdGeHP99gz0zdvhW/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.json +++ /dev/null @@ -1 +0,0 @@ -{"pageProps":{"post":{"mdxSource":"var Component=(()=>{var h=Object.create;var t=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var r=a=>t(a,\"__esModule\",{value:!0});var y=(a,s)=>()=>(s||a((s={exports:{}}).exports,s),s.exports),g=(a,s)=>{r(a);for(var c in s)t(a,c,{get:s[c],enumerable:!0})},w=(a,s,c)=>{if(s&&typeof s==\"object\"||typeof s==\"function\")for(let n of u(s))!N.call(a,n)&&n!==\"default\"&&t(a,n,{get:()=>s[n],enumerable:!(c=m(s,n))||c.enumerable});return a},f=a=>w(r(t(a!=null?h(k(a)):{},\"default\",a&&a.__esModule&&\"default\"in a?{get:()=>a.default,enumerable:!0}:{value:a,enumerable:!0})),a);var d=y((P,o)=>{o.exports=_jsx_runtime});var v={};g(v,{default:()=>S,frontmatter:()=>_});var e=f(d()),_={title:\"How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word\",author:\"Amrut Prabhu\",categories:\"\",tags:[\"Wake Word\",\"Micro Wake Word\",\"ESP32\",\"Voice Assistant\",\"Home Assistant\"],\"photo-credits\":null,\"applaud-link\":\"2021/spring-boot-stream-kafka.json\",date:\"2024-05-23\",draft:!1,summary:\"In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant\",imageUrl:\"/static/images/2024/created-my-voice-assistant/cover.webp\",actualUrl:\"auto-generated\",customUrl:\"auto-generated\",youtubeLink:\"https://www.youtube.com/embed/aPP2alIU7Gg\"};function b(a={}){let{wrapper:s}=a.components||{};return s?(0,e.jsx)(s,Object.assign({},a,{children:(0,e.jsx)(c,{})})):c();function c(){let n=Object.assign({p:\"p\",h2:\"h2\",a:\"a\",span:\"span\",ol:\"ol\",li:\"li\",strong:\"strong\",br:\"br\",img:\"img\",ul:\"ul\",div:\"div\",table:\"table\",thead:\"thead\",tr:\"tr\",th:\"th\",tbody:\"tbody\",td:\"td\",blockquote:\"blockquote\",pre:\"pre\",code:\"code\"},a.components),{TOCInline:i,Image:l}=n;return l||p(\"Image\",!0),i||p(\"TOCInline\",!0),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(n.p,{children:\"In this article, we will look at how I created my voice Assistant with On-Device Wake Word detection on an ESP32 S3 using MicroWake Word to send commands to Home Assistant.\"}),`\n`,(0,e.jsx)(i,{toc:a.toc,asDisclosure:!0}),`\n`,(0,e.jsxs)(n.h2,{id:\"requirements\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#requirements\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Requirements\"]}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Home Assistant\"}),\" up and running.\",(0,e.jsx)(n.br,{}),`\n`,\"You can check \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-wifi-to-home-assistant-on-startup\",children:\"this\"}),\" link to see how you can install it for the first time\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESPHome\"}),\" is setup and running\",(0,e.jsx)(n.br,{}),`\n`,\"In case you have not set it up, you can look at it \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/esp32-esp8266-esphome-with-home-assistant\",children:\"here\"}),\".\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESP32 S3 N8R2 or N16R8 Dev Board\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.img,{src:\"/static/images/components/esp32-s3-n8r2.webp\",alt:\"ESP32 S3 \"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - ESP32 S3 Dev Board\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3xnA8ax\",children:(0,e.jsx)(n.strong,{children:\"Amazon - ESP32 S3 Dev Board\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Guide for ordering ESP32 N8R2 or N16R8 Board is \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"here\"})]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"4\",children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.br,{}),`\n`,\"Links to buy this:\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/inmp441-microphone.webp\",alt:\"INMP441 MICROPHONE\"})})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - INMP441 Microphone\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3GdxO7o\",children:(0,e.jsx)(n.strong,{children:\"Amazon - INMP441 Microphone\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"5\",children:[`\n`,(0,e.jsxs)(n.li,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"MAX98357A Audio Amplifier\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/MAX98357A.webp\",alt:\"MAX98357A\"})})]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - MAX98357A\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/46wKTmW\",children:(0,e.jsx)(n.strong,{children:\"Amazon - MAX98357A\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`]}),`\n`,(0,e.jsxs)(n.li,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"3-watt Speakers\"}),\" (Optional: Only required to listen to the pipeline output)\",(0,e.jsx)(n.br,{}),`\n`,\"Links to buy these.\",(0,e.jsx)(n.br,{}),`\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/3-watt-speakers.webp\",alt:\"3 watt speaker\"})})]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - 3-watt Speakers\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/49BbAJR\",children:(0,e.jsx)(n.strong,{children:\"Amazon - 3-watt Speakers\"})})}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.li,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"COB 5mm WS2812B LED Strip\"}),`\nLinks to buy these.`,(0,e.jsx)(n.br,{}),`\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DDtD9SP\",children:(0,e.jsx)(n.img,{src:\"/static/images/components/Ws2812b-cob-led-strip.webp\",alt:\"WS2812B LED Strip\"})})]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DDtD9SP\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - COB 5mm WS2812B LED Strip\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3yqR7t7\",children:(0,e.jsx)(n.strong,{children:\"Amazon - WS2812B LED Strip (Not the exact model)\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.h2,{id:\"3d-print-template-for-voice-assistant-case\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#3d-print-template-for-voice-assistant-case\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"3D Print Template For Voice Assistant Case\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"You can find the link \",(0,e.jsx)(n.a,{href:\"https://www.thingiverse.com/thing:6631205\",children:\"here\"}),\" to the STL file for 3D printing the case and the cover.\"]}),`\n`,(0,e.jsxs)(n.h2,{id:\"set-up-voice-assist-pipeline\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#set-up-voice-assist-pipeline\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Set up Voice Assist Pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"To set up voice assistant, we would need two components to create the Voice Assist pipeline in Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\": For speech-to-text\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\": For text-to-speech\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, following the below video, you have set up these components in Home Assistant using Addons.\"}),`\n`,(0,e.jsx)(\"div\",{className:\"md:w-1/2\",children:(0,e.jsx)(\"iframe\",{id:\"video\",className:\"w-full aspect-video\",src:\"https://www.youtube.com/embed/P4V2JqCmk7M\",frameBorder:\"0\",allow:\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",allowFullScreen:!0})}),`\n`,(0,e.jsx)(n.p,{children:\"You will get to see how to set up the following components that are required\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[\"And finally the entire \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"You don't need to set up the Wake Word addon, as we will use the on-device Wake Word detection with the Micro Wake Word framework\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"So make sure to watch it and set up the \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Now we will look at how we can prepare our ESP32 S3 with a microphone and 3-watt speakers.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"esp32-wiring-diagram.webp\",src:\"/static/images/2024/created-my-voice-assistant/circuit-diagram.webp\",width:\"1375\",height:\"1426\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to connect the 5v pads as shown in the diagram to enable 5v output on the 5v pin.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Here is the pin mapping table\"}),`\n`,(0,e.jsxs)(n.table,{children:[(0,e.jsx)(n.thead,{children:(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.th,{children:\"ESP32 S3 N8R2 or N16R8\"}),(0,e.jsx)(n.th,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.th,{children:\"Speaker\"}),(0,e.jsx)(n.th,{children:\"LED Strip WS2812B\"}),(0,e.jsx)(n.th,{children:\"Mute Switch\"})]})}),(0,e.jsxs)(n.tbody,{children:[(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"switch pin 1\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 10\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"switch pin 2\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Gnd\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 6\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"LRC\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 7\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"BLCK\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 8\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"DIN\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"3v3\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Vin\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 4\"}),(0,e.jsx)(n.td,{children:\"SD\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 3\"}),(0,e.jsx)(n.td,{children:\"WS\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 2\"}),(0,e.jsx)(n.td,{children:\"SCK\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"3v3\"}),(0,e.jsx)(n.td,{children:\"VDD\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{children:\"GND & L/R\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 9\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Din\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"Vin (5v)\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Vin\"}),(0,e.jsx)(n.td,{})]})]})]}),`\n`,(0,e.jsx)(n.p,{children:\"Once you have connected the microphone and the audio amplifier, let\\u2019s look at the code we must flash to the ESP32 S3 using ESPHome.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"flashing-code-to-esp32-s3-with-esphome\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#flashing-code-to-esp32-s3-with-esphome\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Flashing Code to ESP32 S3 with ESPHome\"]}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note\"}),\": I faced problems while flashing the ESP32 S3 from an M series Macbook, so I switched to a Windows system.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, you can follow these steps to flash the code required to make the ESP32 S3 work with the microphone and speakers.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Create a new device in the ESPHome dashboard by clicking on \\u201C\",(0,e.jsx)(n.strong,{children:\"New Device\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2:\"}),\" Give it a name e.g. \\u201C\",(0,e.jsx)(n.strong,{children:\"Voice Assistant\"}),\"\\u201D and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Next\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Now select ESP32 S3 from the options\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"1-select-esp32-device.webp\",src:\"/static/images/2024/on-device-wake-word/esphome-select.webp\",width:\"424\",height:\"493\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Now, click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Skip\"}),\"\\u201D and open the device card again by clicking on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Edit\"}),\"\\u201D option.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"2-edit-device.webp\",src:\"/static/images/2023/esp32-voice-assistant/2-edit-device.webp\",width:\"437\",height:\"173\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Place the following YAML code below.\"]}),`\n`,(0,e.jsx)(n.pre,{className:\"language-yaml\",children:(0,e.jsxs)(n.code,{className:\"language-yaml code-highlight\",children:[(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esphome\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"friendly_name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" ESP32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"S3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"Wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platformio_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board_build.flash_mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` dio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_boot\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esp32\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"devkitc\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"framework\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`idf\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"sdkconfig_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_64KB\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_LINE_64B\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_AUDIO_BOARD_CUSTOM\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"psram\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" octal \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Please change this to quad for N8R2 and octal for N16R8\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speed\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80MHz\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable Home Assistant API\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"api\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"encryption\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"key\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"TFpb+pBAvQIS1MVwaA7EoJ2DkpWE+79UvVro7yMyGdU=\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_connected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 50ms\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_disconnected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"logger\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ota\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"1245211a05eef56614a2ef5a3f3e971c\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wifi\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_ssid\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_password\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable fallback hotspot (captive portal) in case wifi connection fails\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ap\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Esp32-S3-Wake-Word\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"LJfUrdJk3svP\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"captive_portal\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"button\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` restart\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Restart\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` but_rest\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"switch\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` template\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"optimistic\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"true\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"binary_sensor\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` gpio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` button01\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Mute Button\"'}),\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Physical Mute switch\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"number\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO10 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#Physical Button connected to this pin.\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"inverted\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"True\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"input\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"True\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pullup\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"True\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_press\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"switch.toggle\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esp32_rmt_led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rgb_order\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GRB\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GPIO48\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"num_leds\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rmt_channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"chipset\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` ws2812\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"On board light\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effects\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Fast Pulse\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"transition_length\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"update_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"min_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"max_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esp32_rmt_led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rgb_order\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GRB\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GPIO09\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"num_leds\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"29\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rmt_channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"chipset\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` ws2812\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Led Strip\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effects\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Fast Pulse\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"transition_length\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"update_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"min_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"max_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"addressable_scan\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Scan Effect With Custom Values\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"move_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 5ms\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"scan_width\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"10\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Audio and Voice Assistant Config \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" i2s_in \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# For microphone\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO3 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#WS \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO2 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SCK\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" i2s_speaker \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#For Speaker\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO6 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#LRC \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO7 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#BLCK\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"adc_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_din_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO4 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SD\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` left\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pdm\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"false\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_in\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"bits_per_sample\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 32bit\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"dac_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_dout_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO8 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# DIN Pin of the MAX98357A Audio Amplifier\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mono\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_wake_word_detected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!lambda\"}),` return wake_word;\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"silence_detection\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"true\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 70%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Scan Effect With Custom Values\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"model\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` hey_jarvis\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"auto_gain\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 31dBFS\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"noise_suppression_level\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"2\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"volume_multiplier\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"4.0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_stt_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_error\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wait_until\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"not\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.is_running\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]})]})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to set the PSRAM mode to octal or quad depending on the type of the board by referring to \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"this\"}),\" link.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Save\"}),\"\\u201D and then click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D on the top right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 7\"}),\": Now, click on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Manual Download\"}),\"\\u201D option and then choose \\u201C\",(0,e.jsx)(n.strong,{children:\"Modern Format\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 8\"}),\": Save the file to your computer.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 9\"}),\": Open \",(0,e.jsx)(n.a,{href:\"https://web.esphome.io\",children:\"https://web.esphome.io\"}),\". in Chrome or Edge browser.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 10\"}),\": Now connect the ESP32 S3 dev Board to the laptop and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Connect\"}),\"\\u201D and you should get a popup window like this.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"3-select-usb.webp\",src:\"/static/images/2023/esp32-voice-assistant/3-select-usb.webp\",width:\"567\",height:\"247\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 11\"}),\": Select the USB serial port for your device and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 12\"}),\": Now load the file you saved in \",(0,e.jsx)(n.strong,{children:\"Step 8\"}),\" and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"4-erasing.webp\",src:\"/static/images/2023/esp32-voice-assistant/4-erasing.webp\",width:\"314\",height:\"227\"})}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note:\"}),\" In case the board does not go from connecting to erasing after some time, you can try to put the device into flashing mode. For this, press and hold the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button, then the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, leave the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, and then finally leave the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you have now prepared your ESP32 S3 to start receiving a voice command after detecting the Wake Word.\"}),`\n`,(0,e.jsx)(n.p,{children:\"Next, we will connect it to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Connecting ESP32 S3 As Voice Assistant In Home Assistant\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Once the ESP32 S3 is flashed with the code in the above section, we will connect it to Home Assistant using the ESPHome Integration.\"}),`\n`,(0,e.jsx)(n.p,{children:\"For this, follow these steps.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Click \\u201C\",(0,e.jsx)(n.strong,{children:\"Settings\"}),\"\\u201D in Home Assistant in the left panel.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Devices & Services\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Now, if the device is already auto-discovered, you can click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Configure\"}),\"\\u201D and with this, the device is connected to Home Assistant.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"If the device is not auto-discovered, then\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Add Integration\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Search for \\u201C\",(0,e.jsx)(n.strong,{children:\"ESPhome\"}),\"\\u201D and click on it.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Add the IP address of your ESP32 S3 board that is connected to your WiFi. Keep the port number as \",(0,e.jsx)(n.strong,{children:\"6053\"}),\" and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Submit\"}),\"\\u201D\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"5-esp32-connect-home-assistant.webp\",src:\"/static/images/2023/esp32-voice-assistant/5-esp32-connect-home-assistant.webp\",width:\"431\",height:\"320\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": If you are asked to enter the encryption key then you can find that in ESPHome under the property \",(0,e.jsx)(n.code,{children:\"api: encryption: key\"}),\". Copy and paste the key in the window.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you are now done setting up the ESP32 S3 with On-Device Wake Word detection for your Voice Assistant connected to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy\",children:(0,e.jsx)(n.strong,{children:\"Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-led-strip-with-home-assistant-using-wled\",children:(0,e.jsx)(n.strong,{children:\"Control LED Strip with Home Assistant\\u200AUsing WLED\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-wifi-to-home-assistant-on-startup\",children:(0,e.jsx)(n.strong,{children:\"Connect Home Assistant to the WIFI on First Boot\"})})}),`\n`]})]})}}var S=b;function p(a,s){throw new Error(\"Expected \"+(s?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v;})();\n;return Component;","toc":[{"value":"Requirements","url":"#requirements","depth":2},{"value":"3D Print Template For Voice Assistant Case","url":"#3d-print-template-for-voice-assistant-case","depth":2},{"value":"Set up Voice Assist Pipeline","url":"#set-up-voice-assist-pipeline","depth":2},{"value":"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier","url":"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier","depth":2},{"value":"Flashing Code to ESP32 S3 with ESPHome","url":"#flashing-code-to-esp32-s3-with-esphome","depth":2},{"value":"Connecting ESP32 S3 As Voice Assistant In Home Assistant","url":"#connecting-esp32-s3-as-voice-assistant-in-home-assistant","depth":2}],"frontMatter":{"readingTime":{"text":"14 min read","minutes":13.165,"time":789900,"words":2633},"slug":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","fileName":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant.md","title":"How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-05-23T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant","imageUrl":"/static/images/2024/created-my-voice-assistant/cover.webp","actualUrl":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","customUrl":"How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","youtubeLink":"https://www.youtube.com/embed/aPP2alIU7Gg"}},"authorDetails":[{"readingTime":{"text":"1 min read","minutes":0.77,"time":46200,"words":154},"slug":["default"],"fileName":"default.md","name":"Amrut Prabhu","avatar":"/static/images/avatar-small.jpg","avatarBig":"/static/images/avatar-big.jpg","occupation":"","company":"","email":"SmartHomeCircle@gmail.com","twitter":"https://twitter.com/amrutprabhu42","linkedin":"","github":"","youtube":"https://www.youtube.com/@SmartHomeCircle","customUrl":"default","actualUrl":"default","date":null}],"prev":{"title":"How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-04-04T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant","imageUrl":"/static/images/2024/on-device-wake-word/cover.webp","actualUrl":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","customUrl":"How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","youtubeLink":"https://www.youtube.com/embed/rT_q0g8dtmY","slug":"How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant"},"next":null},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/lT8unwdGeHP99gz0zdvhW/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.json b/_next/data/lT8unwdGeHP99gz0zdvhW/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.json deleted file mode 100644 index 9c9d713f..00000000 --- a/_next/data/lT8unwdGeHP99gz0zdvhW/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.json +++ /dev/null @@ -1 +0,0 @@ -{"pageProps":{"post":{"mdxSource":"var Component=(()=>{var h=Object.create;var t=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var o=a=>t(a,\"__esModule\",{value:!0});var y=(a,s)=>()=>(s||a((s={exports:{}}).exports,s),s.exports),g=(a,s)=>{o(a);for(var c in s)t(a,c,{get:s[c],enumerable:!0})},w=(a,s,c)=>{if(s&&typeof s==\"object\"||typeof s==\"function\")for(let n of u(s))!N.call(a,n)&&n!==\"default\"&&t(a,n,{get:()=>s[n],enumerable:!(c=m(s,n))||c.enumerable});return a},f=a=>w(o(t(a!=null?h(k(a)):{},\"default\",a&&a.__esModule&&\"default\"in a?{get:()=>a.default,enumerable:!0}:{value:a,enumerable:!0})),a);var d=y((P,r)=>{r.exports=_jsx_runtime});var v={};g(v,{default:()=>S,frontmatter:()=>_});var e=f(d()),_={title:\"How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word\",author:\"Amrut Prabhu\",categories:\"\",tags:[\"Wake Word\",\"Micro Wake Word\",\"ESP32\",\"Voice Assistant\",\"Home Assistant\"],\"photo-credits\":null,\"applaud-link\":\"2021/spring-boot-stream-kafka.json\",date:\"2024-04-04\",draft:!1,summary:\"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant\",imageUrl:\"/static/images/2024/on-device-wake-word/cover.webp\",actualUrl:\"auto-generated\",customUrl:\"auto-generated\",youtubeLink:\"https://www.youtube.com/embed/rT_q0g8dtmY\"};function b(a={}){let{wrapper:s}=a.components||{};return s?(0,e.jsx)(s,Object.assign({},a,{children:(0,e.jsx)(c,{})})):c();function c(){let n=Object.assign({p:\"p\",h2:\"h2\",a:\"a\",span:\"span\",ol:\"ol\",li:\"li\",strong:\"strong\",br:\"br\",img:\"img\",ul:\"ul\",div:\"div\",table:\"table\",thead:\"thead\",tr:\"tr\",th:\"th\",tbody:\"tbody\",td:\"td\",blockquote:\"blockquote\",pre:\"pre\",code:\"code\"},a.components),{TOCInline:i,Image:l}=n;return l||p(\"Image\",!0),i||p(\"TOCInline\",!0),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(n.p,{children:\"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant.\"}),`\n`,(0,e.jsx)(i,{toc:a.toc,asDisclosure:!0}),`\n`,(0,e.jsxs)(n.h2,{id:\"requirements\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#requirements\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Requirements\"]}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Home Assistant\"}),\" up and running.\",(0,e.jsx)(n.br,{}),`\n`,\"You can check \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-wifi-to-home-assistant-on-startup\",children:\"this\"}),\" link to see how you can install it for the first time\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESPHome\"}),\" is setup and running\",(0,e.jsx)(n.br,{}),`\n`,\"In case you have not set it up, you can look at it \",(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/esp32-esp8266-esphome-with-home-assistant\",children:\"here\"}),\".\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"ESP32 S3 N8R2 Dev Board\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.img,{src:\"/static/images/2024/on-device-wake-word/esp32-s3-n8r2.webp\",alt:\"ESP32 S3 \"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DFopt57\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - ESP32 S3 N8R2 Dev Board\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3xnA8ax\",children:(0,e.jsx)(n.strong,{children:\"Amazon - ESP32 S3 N8R2 Dev Board\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Guide for ordering ESP32 N8R2 or N16R8 Board is \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"here\"})]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"4\",children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.br,{}),`\n`,\"Links to buy this:\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/inmp441-microphone.webp\",alt:\"INMP441 MICROPHONE\"})})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_Dmn2PyR\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - INMP441 Microphone\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/3GdxO7o\",children:(0,e.jsx)(n.strong,{children:\"Amazon - INMP441 Microphone\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`,(0,e.jsxs)(n.ol,{start:\"5\",children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"MAX98357A Audio Amplifier\"}),(0,e.jsx)(n.br,{}),`\n`,`Links to buy this:\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/MAX98357A.webp\",alt:\"MAX98357A\"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DdyIFTH\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - MAX98357A\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/46wKTmW\",children:(0,e.jsx)(n.strong,{children:\"Amazon - MAX98357A\"})})}),`\n`]}),`\n`,(0,e.jsx)(\"br\",{}),`\n`]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"3-watt Speakers\"}),\" (Optional: Only required to listen to the pipeline output)\",(0,e.jsx)(n.br,{}),`\n`,\"Links to buy these.\",(0,e.jsx)(n.br,{}),`\n`,(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.img,{src:\"/static/images/2023/esp32-voice-assistant/3-watt-speakers.webp\",alt:\"3 watt speaker\"})}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://s.click.aliexpress.com/e/_DBDIScT\",children:(0,e.jsx)(n.strong,{children:\"AliExpress - 3-watt Speakers\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://amzn.to/49BbAJR\",children:(0,e.jsx)(n.strong,{children:\"Amazon - 3-watt Speakers\"})})}),`\n`]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.h2,{id:\"set-up-voice-assist-pipeline\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#set-up-voice-assist-pipeline\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Set Up Voice Assist Pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"To set up voice assistant, we would need two components to create the Voice Assist pipeline in Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\": For speech-to-text\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\": For text-to-speech\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, following the below video, you have set up these components in Home Assistant using Addons.\"}),`\n`,(0,e.jsx)(\"div\",{className:\"md:w-1/2\",children:(0,e.jsx)(\"iframe\",{id:\"video\",className:\"w-full aspect-video\",src:\"https://www.youtube.com/embed/P4V2JqCmk7M\",frameBorder:\"0\",allow:\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",allowFullScreen:!0})}),`\n`,(0,e.jsx)(n.p,{children:\"You will get to see how to set up the following components that are required\"}),`\n`,(0,e.jsxs)(n.ol,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Whisper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Piper\"}),\" Addon\"]}),`\n`,(0,e.jsxs)(n.li,{children:[\"And finally the entire \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"You don't need to set up the Wake Word addon, as we will use the on-device Wake Word detection with the Micro Wake Word framework\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"So make sure to watch it and set up the \",(0,e.jsx)(n.strong,{children:\"Voice Assist\"}),\" pipeline\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Now we will look at how we can prepare our ESP32 S3 with a microphone and 3-watt speakers.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"esp32-wiring-diagram.webp\",src:\"/static/images/2024/on-device-wake-word/esp32-s3-connections.webp\",width:\"1080\",height:\"1160\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to connect the 5v pads as shown in the diagram to enable 5v output on the 5v pin.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Here is the pin mapping table\"}),`\n`,(0,e.jsxs)(n.table,{children:[(0,e.jsx)(n.thead,{children:(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.th,{children:\"ESP32 S3 N8R2 or N16R8\"}),(0,e.jsx)(n.th,{children:\"INMP441 Microphone\"}),(0,e.jsx)(n.th,{children:\"Speaker\"})]})}),(0,e.jsxs)(n.tbody,{children:[(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"Vin (5v)\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Vin\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"Gnd\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 6\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"LRC\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 7\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"BLCK\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 8\"}),(0,e.jsx)(n.td,{}),(0,e.jsx)(n.td,{children:\"DIN\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 4\"}),(0,e.jsx)(n.td,{children:\"SD\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 3\"}),(0,e.jsx)(n.td,{children:\"WS\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GPIO 2\"}),(0,e.jsx)(n.td,{children:\"SCK\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"3v3\"}),(0,e.jsx)(n.td,{children:\"VDD\"}),(0,e.jsx)(n.td,{})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:\"GND\"}),(0,e.jsx)(n.td,{children:\"GND & L/R\"}),(0,e.jsx)(n.td,{})]})]})]}),`\n`,(0,e.jsx)(n.p,{children:\"Once you have connected the microphone and the audio amplifier, let\\u2019s look at the code we must flash to the ESP32 S3 using ESPHome.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"flashing-code-to-esp32-s3-with-esphome\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#flashing-code-to-esp32-s3-with-esphome\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Flashing Code to ESP32 S3 with ESPHome\"]}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note\"}),\": I faced problems while flashing the ESP32 S3 from an M series Macbook, so I switched to a Windows system.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Now, you can follow these steps to flash the code required to make the ESP32 S3 work with the microphone and speakers.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Create a new device in the ESPHome dashboard by clicking on \\u201C\",(0,e.jsx)(n.strong,{children:\"New Device\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2:\"}),\" Give it a name e.g. \\u201C\",(0,e.jsx)(n.strong,{children:\"Voice Assistant\"}),\"\\u201D and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Next\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Now select ESP32 S3 from the options\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"1-select-esp32-device.webp\",src:\"/static/images/2024/on-device-wake-word/esphome-select.webp\",width:\"424\",height:\"493\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Now, click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Skip\"}),\"\\u201D and open the device card again by clicking on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Edit\"}),\"\\u201D option.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"2-edit-device.webp\",src:\"/static/images/2023/esp32-voice-assistant/2-edit-device.webp\",width:\"437\",height:\"173\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Place the following YAML code below.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.a,{href:\"https://github.com/BigBobbas/esphome_firmware/blob/main/kahrendt_micro_wake_word/obww_esp32_s3_mic_and_speaker.yaml\",children:\"The original\"}),\" yaml configuration is by \",(0,e.jsx)(n.a,{href:\"https://github.com/BigBobbas/\",children:'\"_bigbobba\"'}),\" from the Home Assistant Discord Channel\"]}),`\n`,(0,e.jsx)(n.pre,{className:\"language-yaml\",children:(0,e.jsxs)(n.code,{className:\"language-yaml code-highlight\",children:[(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esphome\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"friendly_name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" ESP32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"S3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"Wake\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`word\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platformio_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board_build.flash_mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` dio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_boot\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"esp32\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"board\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp32\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"s3\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\"devkitc\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"framework\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" esp\",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),`idf\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"sdkconfig_options\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_64KB\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_ESP32S3_DATA_CACHE_LINE_64B\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"CONFIG_AUDIO_BOARD_CUSTOM\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"y\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"psram\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" quad \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# quad for N8R2 and octal for N16R8\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speed\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 80MHz\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable logging\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"logger\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"hardware_uart\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` UART0\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable Home Assistant API\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"api\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"encryption\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"key\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"TFpb+pBAvQIS1MVwaA7EoJ2DkpWE+79UvVro7yMyGdU=\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_connected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 50ms\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_client_disconnected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ota\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"1245211a05eef56614a2ef5a3f3e971c\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wifi\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_ssid\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!secret\"}),` wifi_password\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Enable fallback hotspot (captive portal) in case wifi connection fails\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ap\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"ssid\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Esp32-S3-Wake-Word\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"password\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"LJfUrdJk3svP\"'}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"captive_portal\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"button\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` restart\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Restart\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` but_rest\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"switch\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` template\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mute\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"optimistic\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"true\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.stop\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"delay\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 2s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` esp32_rmt_led_strip\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rgb_order\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GRB\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` GPIO48\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"num_leds\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"1\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"rmt_channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"chipset\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` ws2812\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"on board light\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effects\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pulse\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"name\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token string\",children:'\"Fast Pulse\"'}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"transition_length\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"update_interval\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0.5s\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"min_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 0%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"max_brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 100%\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# Audio and Voice Assistant Config \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_in\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO3 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#WS \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO2 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SCK\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_lrclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO6 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#LRC \"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_bclk_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO7 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#BLCK\"}),`\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"adc_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_din_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO4 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"#SD pin on the INMP441\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"channel\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` left\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"pdm\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token boolean important\",children:\"false\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_in\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"bits_per_sample\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 32 bit\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"platform\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_audio\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_audio_id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` i2s_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"dac_type\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` external\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"i2s_dout_pin\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" GPIO8 \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# DIN Pin of the MAX98357A Audio Amplifier\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"mode\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` mono\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:`\n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_wake_word_detected\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token comment\",children:\"# then:\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wake_word\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token tag\",children:\"!lambda\"}),` return wake_word;\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_on\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"red\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"green\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 30%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"blue\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 70%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"brightness\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` 60%\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"effect\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` fast pulse \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"model\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` hey_jarvis\n`]}),(0,e.jsx)(n.span,{className:\"code-line\",children:` \n`}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"id\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"microphone\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_mic\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"noise_suppression_level\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"2.0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"volume_multiplier\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),\" \",(0,e.jsx)(n.span,{className:\"token number\",children:\"4.0\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"speaker\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` va_speaker\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_stt_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_error\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"on_end\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"then\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"light.turn_off\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` led_ww\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"wait_until\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"not\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"voice_assistant.is_running\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),`\n`]}),(0,e.jsxs)(n.span,{className:\"code-line\",children:[\" \",(0,e.jsx)(n.span,{className:\"token punctuation\",children:\"-\"}),\" \",(0,e.jsx)(n.span,{className:\"token key atrule\",children:\"micro_wake_word.start\"}),(0,e.jsx)(n.span,{className:\"token punctuation\",children:\":\"}),` \n`]})]})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Important:\"}),\" You need to set the PSRAM mode to octal or quad depending on the type of the board by referring to \",(0,e.jsx)(n.a,{href:\"https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information\",children:\"this\"}),\" link.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Save\"}),\"\\u201D and then click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D on the top right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 7\"}),\": Now, click on the \\u201C\",(0,e.jsx)(n.strong,{children:\"Manual Download\"}),\"\\u201D option and then choose \\u201C\",(0,e.jsx)(n.strong,{children:\"Modern Format\"}),\"\\u201D.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 8\"}),\": Save the file to your computer.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 9\"}),\": Open \",(0,e.jsx)(n.a,{href:\"https://web.esphome.io\",children:\"https://web.esphome.io\"}),\". in Chrome or Edge browser.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 10\"}),\": Now connect the ESP32 S3 dev Board to the laptop and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Connect\"}),\"\\u201D and you should get a popup window like this.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"3-select-usb.webp\",src:\"/static/images/2023/esp32-voice-assistant/3-select-usb.webp\",width:\"567\",height:\"247\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 11\"}),\": Select the USB serial port for your device and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 12\"}),\": Now load the file you saved in \",(0,e.jsx)(n.strong,{children:\"Step 8\"}),\" and click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Install\"}),\"\\u201D.\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"4-erasing.webp\",src:\"/static/images/2023/esp32-voice-assistant/4-erasing.webp\",width:\"314\",height:\"227\"})}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Note:\"}),\" In case the board does not go from connecting to erasing after some time, you can try to put the device into flashing mode. For this, press and hold the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button, then the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, leave the \",(0,e.jsx)(n.strong,{children:\"Reset\"}),\" button, and then finally leave the \",(0,e.jsx)(n.strong,{children:\"Boot\"}),\" button.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you have now prepared your ESP32 S3 to start receiving a voice command after detecting the Wake Word.\"}),`\n`,(0,e.jsx)(n.p,{children:\"Next, we will connect it to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:[(0,e.jsx)(n.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#connecting-esp32-s3-as-voice-assistant-in-home-assistant\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Connecting ESP32 S3 As Voice Assistant In Home Assistant\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Once the ESP32 S3 is flashed with the code in the above section, we will connect it to Home Assistant using the ESPHome Integration.\"}),`\n`,(0,e.jsx)(n.p,{children:\"For this, follow these steps.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 1\"}),\": Click \\u201C\",(0,e.jsx)(n.strong,{children:\"Settings\"}),\"\\u201D in Home Assistant in the left panel.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 2\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Devices & Services\"}),\"\\u201D\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Now, if the device is already auto-discovered, you can click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Configure\"}),\"\\u201D and with this, the device is connected to Home Assistant.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"If the device is not auto-discovered, then\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 3\"}),\": Click on \\u201C\",(0,e.jsx)(n.strong,{children:\"Add Integration\"}),\"\\u201D in the bottom right-hand corner.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 4\"}),\": Search for \\u201C\",(0,e.jsx)(n.strong,{children:\"ESPhome\"}),\"\\u201D and click on it.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 5\"}),\": Add the IP address of your ESP32 S3 board that is connected to your WiFi. Keep the port number as \",(0,e.jsx)(n.strong,{children:\"6053\"}),\" and click \\u201C\",(0,e.jsx)(n.strong,{children:\"Submit\"}),\"\\u201D\"]}),`\n`,(0,e.jsx)(n.div,{children:(0,e.jsx)(l,{alt:\"5-esp32-connect-home-assistant.webp\",src:\"/static/images/2023/esp32-voice-assistant/5-esp32-connect-home-assistant.webp\",width:\"431\",height:\"320\"})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Step 6\"}),\": If you are asked to enter the encryption key then you can find that in ESPHome under the property \",(0,e.jsx)(n.code,{children:\"api: encryption: key\"}),\". Copy and paste the key in the window.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"With this, you are now done setting up the ESP32 S3 with On-Device Wake Word detection for your Voice Assistant connected to Home Assistant.\"}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/created-voice-assistant-esp32-with-wake-word-in-home-assistant\",children:(0,e.jsx)(n.strong,{children:\"My Local Voice Assistant Device\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/how-to-connect-led-strip-with-home-assistant-using-wled\",children:(0,e.jsx)(n.strong,{children:\"Control LED Strip with Home Assistant\\u200AUsing WLED\"})})}),`\n`,(0,e.jsx)(n.li,{children:(0,e.jsx)(n.a,{href:\"https://smarthomecircle.com/add-matter-devices-to-home-assistant\",children:(0,e.jsx)(n.strong,{children:\"How I Added a Matter Device to Home Assistant\"})})}),`\n`]})]})}}var S=b;function p(a,s){throw new Error(\"Expected \"+(s?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v;})();\n;return Component;","toc":[{"value":"Requirements","url":"#requirements","depth":2},{"value":"Set Up Voice Assist Pipeline","url":"#set-up-voice-assist-pipeline","depth":2},{"value":"Circuit Diagram for ESP32 S3 With INMP441 Microphone & MAX98357A Audio Amplifier","url":"#circuit-diagram-for-esp32-s3-with-inmp441-microphone--max98357a-audio-amplifier","depth":2},{"value":"Flashing Code to ESP32 S3 with ESPHome","url":"#flashing-code-to-esp32-s3-with-esphome","depth":2},{"value":"Connecting ESP32 S3 As Voice Assistant In Home Assistant","url":"#connecting-esp32-s3-as-voice-assistant-in-home-assistant","depth":2}],"frontMatter":{"readingTime":{"text":"11 min read","minutes":10.575,"time":634500,"words":2115},"slug":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","fileName":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant.md","title":"How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-04-04T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant","imageUrl":"/static/images/2024/on-device-wake-word/cover.webp","actualUrl":"2024/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","customUrl":"How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant","youtubeLink":"https://www.youtube.com/embed/rT_q0g8dtmY"}},"authorDetails":[{"readingTime":{"text":"1 min read","minutes":0.77,"time":46200,"words":154},"slug":["default"],"fileName":"default.md","name":"Amrut Prabhu","avatar":"/static/images/avatar-small.jpg","avatarBig":"/static/images/avatar-big.jpg","occupation":"","company":"","email":"SmartHomeCircle@gmail.com","twitter":"https://twitter.com/amrutprabhu42","linkedin":"","github":"","youtube":"https://www.youtube.com/@SmartHomeCircle","customUrl":"default","actualUrl":"default","date":null}],"prev":{"title":"How To Update Bootloader (EEPROM) On The Raspberry Pi","author":"Amrut Prabhu","categories":"","tags":["Raspberry Pi","bootloader","EEPROM"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-02-17T00:00:00.000Z","draft":false,"summary":"This article on how you can update the bootloader (EEPROM) on the Raspberry Pi","imageUrl":"/static/images/2024/update-bootloader/cover.jpg","actualUrl":"2024/how-to-update-bootloader-on-raspberrypi","customUrl":"how-to-update-bootloader-on-raspberrypi","youtubeLink":"","slug":"how-to-update-bootloader-on-raspberrypi"},"next":{"title":"How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word","author":"Amrut Prabhu","categories":"","tags":["Wake Word","Micro Wake Word","ESP32","Voice Assistant","Home Assistant"],"photo-credits":null,"applaud-link":"2021/spring-boot-stream-kafka.json","date":"2024-05-23T00:00:00.000Z","draft":false,"summary":"In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant","imageUrl":"/static/images/2024/created-my-voice-assistant/cover.webp","actualUrl":"2024/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","customUrl":"How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant","youtubeLink":"https://www.youtube.com/embed/aPP2alIU7Gg","slug":"How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant"}},"__N_SSG":true} \ No newline at end of file diff --git a/_next/static/lT8unwdGeHP99gz0zdvhW/_buildManifest.js b/_next/static/SpilfSKen7usQvQUAn6P3/_buildManifest.js similarity index 100% rename from _next/static/lT8unwdGeHP99gz0zdvhW/_buildManifest.js rename to _next/static/SpilfSKen7usQvQUAn6P3/_buildManifest.js diff --git a/_next/static/lT8unwdGeHP99gz0zdvhW/_middlewareManifest.js b/_next/static/SpilfSKen7usQvQUAn6P3/_middlewareManifest.js similarity index 100% rename from _next/static/lT8unwdGeHP99gz0zdvhW/_middlewareManifest.js rename to _next/static/SpilfSKen7usQvQUAn6P3/_middlewareManifest.js diff --git a/_next/static/SpilfSKen7usQvQUAn6P3/_ssgManifest.js b/_next/static/SpilfSKen7usQvQUAn6P3/_ssgManifest.js new file mode 100644 index 00000000..6b9aa8a7 --- /dev/null +++ b/_next/static/SpilfSKen7usQvQUAn6P3/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set(["\u002Fposts","\u002F","\u002Fabout","\u002Fprivacy","\u002Ftags","\u002Fprojects","\u002Fpage\u002F[page]","\u002Ftags\u002F[tag]","\u002F[slug]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/_next/static/lT8unwdGeHP99gz0zdvhW/_ssgManifest.js b/_next/static/lT8unwdGeHP99gz0zdvhW/_ssgManifest.js deleted file mode 100644 index 3eb990d6..00000000 --- a/_next/static/lT8unwdGeHP99gz0zdvhW/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set(["\u002Ftags","\u002F","\u002Fprojects","\u002Fabout","\u002Fprivacy","\u002Fposts","\u002Fpage\u002F[page]","\u002F[slug]","\u002Ftags\u002F[tag]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/about.html b/about.html index 74edbb60..e6a6d0f3 100644 --- a/about.html +++ b/about.html @@ -1,7 +1,7 @@ -About | Smart Home Circle
smart home circle
Smart Home Circle

About

avatar

Amrut Prabhu

Hi there,

+About | Smart Home Circle

About

avatar

Amrut Prabhu

Hi there,

I am Amrut and if you want to get on board with learning about home automation and building smart homes then you are at the right place.

I like to explore various topics in home automation and smart devices. It fascinates me what endless opportunities are there to make your home smarter every day.

Home Assistant is my main source for doing all my automation. I monitor my house with various sensors and complex automation scenarios.

If you want to get in touch with me or have any feedback about my writing, don't hesitate to contact me on Twitter

Follow me on Twitter to learn more about how you can make your home smarter every day.

-

For business related queries : smarthomecircle@gmail.com

\ No newline at end of file +

For business related queries : smarthomecircle@gmail.com

\ No newline at end of file diff --git a/add-matter-devices-to-home-assistant.html b/add-matter-devices-to-home-assistant.html index 93819c7b..c7068528 100644 --- a/add-matter-devices-to-home-assistant.html +++ b/add-matter-devices-to-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will be looking at how we can connect Matter-enabled devices to Home Assistant" -}
smart home circle
Smart Home Circle
Published on

How I Added a Matter Device to Home Assistant - Step By Step Guide

How I Added a Matter Device to Home Assistant - Step By Step Guide
5 min read
Authors

In this article, we will be looking at how we can connect Matter-enabled devices to Home Assistant.

+}
Published on

How I Added a Matter Device to Home Assistant - Step By Step Guide

How I Added a Matter Device to Home Assistant - Step By Step Guide
5 min read
Authors

In this article, we will be looking at how we can connect Matter-enabled devices to Home Assistant.

Table of Contents

Pre-Requisites

    @@ -108,4 +108,4 @@

    10-matter-device-in-home-assistant

Fixing Failure While Connecting to Home Assistant

In case you are facing issues while connecting the device to Home Assistant, you will have to make sure you have IPv6 enabled in the network settings.

-

For this click on "Settings", then "System", then click on "Network". Here you must have IPv6 set to "Automatic".



\ No newline at end of file +

For this click on "Settings", then "System", then click on "Network". Here you must have IPv6 set to "Automatic".



\ No newline at end of file diff --git a/air-quality-sensor-and-light-sensor-esp32-home-assistant.html b/air-quality-sensor-and-light-sensor-esp32-home-assistant.html index d46b7c16..5c46097c 100644 --- a/air-quality-sensor-and-light-sensor-esp32-home-assistant.html +++ b/air-quality-sensor-and-light-sensor-esp32-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will be looking at how we can connect SGP30 CO2 (Carbon Dioxide) sensor and BH17450 Light sensor to Home Assistant" -}
smart home circle
Smart Home Circle
Published on

How I Built My Own Air Quality Monitor With Light Sensor For Home Assistant - Step By Step Guide

How I Built My Own Air Quality Monitor With Light Sensor For Home Assistant - Step By Step Guide
5 min read
Authors

In this article, we will be looking at how we can monitor CO2 (Carbon Dioxide) with SGP30 sensor and add a light sensor BH17450 to Home Assistant.

+}
\ No newline at end of file +


\ No newline at end of file diff --git a/change-graph-colors-in-energy-dashboard-home-assistant.html b/change-graph-colors-in-energy-dashboard-home-assistant.html index e205681e..a0f4a756 100644 --- a/change-graph-colors-in-energy-dashboard-home-assistant.html +++ b/change-graph-colors-in-energy-dashboard-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how you can change colors for your energy graph in the energy dashboard of Home Assistant." -}
smart home circle
Smart Home Circle
Published on

How To Change Graph Colors in Energy Dashboard In Home Assistant

How To Change Graph Colors in Energy Dashboard In Home Assistant
2 min read
Authors

In this article, we will look at how you can change colors for your energy graph in the energy dashboard of Home Assistant.

+}
Published on

How To Change Graph Colors in Energy Dashboard In Home Assistant

How To Change Graph Colors in Energy Dashboard In Home Assistant
2 min read
\ No newline at end of file +


\ No newline at end of file diff --git a/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.html b/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.html index 9a52d24c..3f7dc5cf 100644 --- a/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.html +++ b/connect-automate-tuya-zigbee-smart-scene-switch-with-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "This article will explore how we can connect and automate the Tuya Zigbee 4 Button Smart Scene Switch with Home Assistant" -}
smart home circle
Smart Home Circle
Published on

Connect & Automate Tuya Zigbee Smart Scene Switch To Home Assistant

Connect & Automate Tuya Zigbee Smart Scene Switch To Home Assistant
4 min read
Authors

This article will explore how we can connect and automate the Tuya Zigbee 4 Button Smart Scene Switch with Home Assistant.

+}
\ No newline at end of file +


\ No newline at end of file diff --git a/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.html b/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.html index 06393b6d..6354d306 100644 --- a/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.html +++ b/connect-bluetooth-devices-to-home-assistant-with-bluetooth-proxy.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will explore how we can setup a Bluetooth Proxy to connect Bluetooth devices with Home Assistant" -}
smart home circle
Smart Home Circle
Published on

How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy

How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy
3 min read
Authors

In this article, we will explore how we can create a Bluetooth proxy with ESP32 to connect Bluetooth devices to Home Assistant

+}
Published on

How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy

How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy
3 min read
\ No newline at end of file +


\ No newline at end of file diff --git a/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.html b/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.html index 2d619f0b..d95bfcdf 100644 --- a/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.html +++ b/connect-xiaomi-temperature-and-humidity-bluetooth-sensor-to-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how we can connect the Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant" -}
smart home circle
Smart Home Circle
Published on

Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant
4 min read
Authors

In this article, we will explore how we can connect the Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

+}
Published on

Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant
4 min read
\ No newline at end of file +


\ No newline at end of file diff --git a/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.html b/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.html index f96ff1c8..2204ed33 100644 --- a/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.html +++ b/connect-zigbee-device-using-sonoff-zigbee-3-dongle-plus-to-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will be looking at how we can connect Zigbee Devices using Sonoff Zigbee 3.0 USB Dongle Plus to Home Assistant." -}
smart home circle
Smart Home Circle
Published on

Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide

Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide
4 min read
Authors

In this article, we will be looking at how we can connect Zigbee Devices using Sonoff Zigbee 3.0 USB Dongle Plus to Home Assistant.

+}
Published on

Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide

Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide
4 min read
\ No newline at end of file +


\ No newline at end of file diff --git a/create-nas-with-raspberry-pi-5.html b/create-nas-with-raspberry-pi-5.html index aa827823..a06d8b7b 100644 --- a/create-nas-with-raspberry-pi-5.html +++ b/create-nas-with-raspberry-pi-5.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will create a NAS (network attached storage) usign a Raspberry Pi 5. This guide is also meant Raspberry Pi 4 and 3B" -}
smart home circle
Smart Home Circle
Published on

How to Create a NAS with Raspberry Pi 5

How to Create a NAS with Raspberry Pi 5
9 min read
Authors

In this article, we will look at how you can create NAS (Network Attached Storage) with a Raspberry Pi also known as Pi NAS.

+}
Published on

How to Create a NAS with Raspberry Pi 5

How to Create a NAS with Raspberry Pi 5
9 min read
\ No newline at end of file +


\ No newline at end of file diff --git a/created-voice-assistant-esp32-with-wake-word-in-home-assistant.html b/created-voice-assistant-esp32-with-wake-word-in-home-assistant.html index e0191586..a9ecf57e 100644 --- a/created-voice-assistant-esp32-with-wake-word-in-home-assistant.html +++ b/created-voice-assistant-esp32-with-wake-word-in-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how I created my voice assistant device to send commands to Home Assistant using Wake Word" -}
smart home circle
Smart Home Circle
Published on

My Local Voice Assistant Device With Wake Word In Home Assistant

My Local Voice Assistant Device With Wake Word In Home Assistant
13 min read
Authors

In this article, we will look at how I created my voice assistant device to send commands to Home Assistant using Wake Word.

+}
Published on

My Local Voice Assistant Device With Wake Word In Home Assistant

My Local Voice Assistant Device With Wake Word In Home Assistant
13 min read
\ No newline at end of file +


\ No newline at end of file diff --git a/custom-sentences-for-voice-assistant-in-home-assistant.html b/custom-sentences-for-voice-assistant-in-home-assistant.html index 615c562b..0d635101 100644 --- a/custom-sentences-for-voice-assistant-in-home-assistant.html +++ b/custom-sentences-for-voice-assistant-in-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will explore how we can create custom sentences for your voice assistant in for Home Assistant" -}
smart home circle
Smart Home Circle
Published on

Custom Sentences For Voice Assistant In Home Assistant

Custom Sentences For Voice Assistant In Home Assistant
4 min read
Authors

Table of Contents
+}
\ No newline at end of file +


\ No newline at end of file diff --git a/custom-wake-word-for-voice-assistant-with-home-assistant.html b/custom-wake-word-for-voice-assistant-with-home-assistant.html index 86e4521a..ac8bd18c 100644 --- a/custom-wake-word-for-voice-assistant-with-home-assistant.html +++ b/custom-wake-word-for-voice-assistant-with-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will explore how we can create a custom wake word for our voice assistant to invoke Home Assistant" -}
smart home circle
Smart Home Circle
Published on

How to Create Custom Wake Word For Your Voice Assistant In Home Assistant

How to Create Custom Wake Word For Your Voice Assistant In Home Assistant
5 min read
Authors

In this article, we will explore how we can create a custom wake word for our voice assistant to invoke Home Assistant

+}
Published on

How to Create Custom Wake Word For Your Voice Assistant In Home Assistant

How to Create Custom Wake Word For Your Voice Assistant In Home Assistant
5 min read
\ No newline at end of file +


\ No newline at end of file diff --git a/easily-share-files-with-home-assistant-using-samba-share.html b/easily-share-files-with-home-assistant-using-samba-share.html index 792942c0..1e57771e 100644 --- a/easily-share-files-with-home-assistant-using-samba-share.html +++ b/easily-share-files-with-home-assistant-using-samba-share.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will explore how we can share files with Home Assistant OS" -}
smart home circle
Smart Home Circle
Published on

How to Easily Share Files With Home Assistant OS with Samba Share

How to Easily Share Files With Home Assistant OS with Samba Share
3 min read
Authors

In this article, we will explore how we can share files with Home Assistant OS.

+}
Published on

How to Easily Share Files With Home Assistant OS with Samba Share

How to Easily Share Files With Home Assistant OS with Samba Share
3 min read
Authors

In this article, we will explore how we can share files with Home Assistant OS.

We will make use of Samba Share to allow Home Assistant folders to be accessed as network volumes from another computer.

Table of Contents

Requirements

@@ -76,4 +76,4 @@

Setup Zigbee2Mqtt with Home Assistant
  • Control LED Strip with Home Assistant Using WLED
  • How I Added a Matter Device to Home Assistant
  • -



    \ No newline at end of file +


    \ No newline at end of file diff --git a/esp32-cam-esphome-with-home-assistant.html b/esp32-cam-esphome-with-home-assistant.html index 0a3d150d..2e66dde6 100644 --- a/esp32-cam-esphome-with-home-assistant.html +++ b/esp32-cam-esphome-with-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will be looking at how we can actually connect ESP32 CAM with Home Assistant" -}
    smart home circle
    Smart Home Circle
    Published on

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide
    3 min read
    Authors

    In this article, we will be looking at how we can actually connect ESP32 CAM with Home Assistant.

    +}
    Published on

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide
    3 min read
    Authors

    In this article, we will be looking at how we can actually connect ESP32 CAM with Home Assistant.

    Table of Contents

    ESP32 CAM Configuration

    Open ESP Home, then click on “New device”, give it a name, and then select “ESP32".

    @@ -79,4 +79,4 @@

    Now, here select the camera and select the live option.

    -

    Save it and you will see the live view on the dashboard.


    \ No newline at end of file +

    Save it and you will see the live view on the dashboard.



    \ No newline at end of file diff --git a/esp32-esp8266-esphome-with-home-assistant.html b/esp32-esp8266-esphome-with-home-assistant.html index 01087ee6..56611aaa 100644 --- a/esp32-esp8266-esphome-with-home-assistant.html +++ b/esp32-esp8266-esphome-with-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article we will look into how we can setup ESP32 / ESP8266 with ESP Home and Home Assistant" -}
    smart home circle
    Smart Home Circle
    Published on

    How I Setup ESP32/ESP8266 With ESP Home and Home Assistant OS And Container - Step By Step Guide

    How I Setup ESP32/ESP8266 With ESP Home and Home Assistant OS And Container - Step By Step Guide
    4 min read
    Authors

    Table of Contents
    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/how-to-backup-home-assistant-on-google-drive.html b/how-to-backup-home-assistant-on-google-drive.html index 27b2a523..6eef46cd 100644 --- a/how-to-backup-home-assistant-on-google-drive.html +++ b/how-to-backup-home-assistant-on-google-drive.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how we can take automated backups of Home Assistant on Google Drive." -}
    smart home circle
    Smart Home Circle
    Published on

    How To Backup Home Assistant On Google Drive

    How To Backup Home Assistant On Google Drive
    3 min read
    Authors

    Table of Contents
    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/how-to-connect-led-strip-with-home-assistant-using-wled.html b/how-to-connect-led-strip-with-home-assistant-using-wled.html index 9eaf22d5..22806257 100644 --- a/how-to-connect-led-strip-with-home-assistant-using-wled.html +++ b/how-to-connect-led-strip-with-home-assistant-using-wled.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how you can control an LED strip with Home Assistant using WLED." -}
    smart home circle
    Smart Home Circle
    Published on

    How to Control LED Strip with Home Assistant Using WLED — Step-By-Step Guide

    How to Control LED Strip with Home Assistant Using WLED — Step-By-Step Guide
    3 min read
    Authors

    In this article, we will look at how you can control an LED strip with Home Assistant using WLED.

    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/how-to-connect-wifi-to-home-assistant-on-startup.html b/how-to-connect-wifi-to-home-assistant-on-startup.html index e259628a..480f1e35 100644 --- a/how-to-connect-wifi-to-home-assistant-on-startup.html +++ b/how-to-connect-wifi-to-home-assistant-on-startup.html @@ -29,7 +29,7 @@ } }, "description": "In this article we will look into how we can install Home Assistant OS and connect it to the Wifi on boot up." -}
    smart home circle
    Smart Home Circle
    Published on

    How to Install Home Assistant and Connect to WIFI on Raspberry PI

    How to Install Home Assistant and Connect to WIFI on Raspberry PI
    5 min read
    Authors

    This article is a step-by-step guide on installing Home Assistant on a Raspberry PI and connecting to WIFI on boot up.

    +}
    Published on

    How to Install Home Assistant and Connect to WIFI on Raspberry PI

    How to Install Home Assistant and Connect to WIFI on Raspberry PI
    5 min read
    Authors

    This article is a step-by-step guide on installing Home Assistant on a Raspberry PI and connecting to WIFI on boot up.

    Table of Contents

    Installing Home Assistant On Raspberry PI.

    To install this Home Assistant OS on your SD card, you will need to follow the following steps

    @@ -150,4 +150,4 @@

    http://homeassistant.local:8123
     

    -

    You can always follow the step-by-step guide in the Youtube video mentioned above.


    \ No newline at end of file +

    You can always follow the step-by-step guide in the Youtube video mentioned above.



    \ No newline at end of file diff --git a/how-to-setup-frigate-with-home-assistant.html b/how-to-setup-frigate-with-home-assistant.html index 61b0522a..7472d56c 100644 --- a/how-to-setup-frigate-with-home-assistant.html +++ b/how-to-setup-frigate-with-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will be looking at how we configure Frigate to detect object and then connect it to Home Assistant to receive notification." -}
    smart home circle
    Smart Home Circle
    Published on

    How I Setup ESP32 Cam with Frigate And Home Assistant To Detect Objects — Step-By-Step Guide

    How I Setup ESP32 Cam with Frigate And Home Assistant To Detect Objects — Step-By-Step Guide
    8 min read
    Authors


    In this article, we will be looking at how we configure Frigate to detect object and then connect it to Home Assistant to receive notification.

    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/how-to-setup-local-tuya-in-home-assistant.html b/how-to-setup-local-tuya-in-home-assistant.html index 2c102f61..e55e1756 100644 --- a/how-to-setup-local-tuya-in-home-assistant.html +++ b/how-to-setup-local-tuya-in-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will be looking at how we control Tuya Devices Locally using Local Tuya." -}
    smart home circle
    Smart Home Circle
    Published on

    How To Setup Local Tuya With Home Assistant

    How To Setup Local Tuya With Home Assistant
    6 min read
    Authors

    In this article, we will be looking at how we control Tuya Devices Locally using Local Tuya.

    +} \ No newline at end of file +


    \ No newline at end of file diff --git a/how-to-setup-mqtt-docker-container-with-home-assistant.html b/how-to-setup-mqtt-docker-container-with-home-assistant.html index f1dc057b..5ce3f975 100644 --- a/how-to-setup-mqtt-docker-container-with-home-assistant.html +++ b/how-to-setup-mqtt-docker-container-with-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will be looking at how we configure Frigate to detect object and then connect it to Home Assistant to receive notification." -}
    smart home circle
    Smart Home Circle
    Published on

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide
    5 min read
    Authors

    In this article, we will be looking at how we configure MQTT Broker as a Home Assistant Addon or run at as a Docker Container.

    +}
    Published on

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide
    5 min read
    Authors

    In this article, we will be looking at how we configure MQTT Broker as a Home Assistant Addon or run at as a Docker Container.

    Table of Contents

    Running MQTT broker as a Home Assistant Addon

    Running an MQTT broker as an add-on in Home Assistant is possible only in Home Assistant OS.

    @@ -118,4 +118,4 @@

    Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus
  • How I Built My Own Air Quality Monitor With Light Sensor For Home Assistant
  • How I Added a Matter Device to Home Assistant
  • -



    \ No newline at end of file +


    \ No newline at end of file diff --git a/how-to-update-bootloader-on-raspberrypi.html b/how-to-update-bootloader-on-raspberrypi.html index 0832f56c..599a7d86 100644 --- a/how-to-update-bootloader-on-raspberrypi.html +++ b/how-to-update-bootloader-on-raspberrypi.html @@ -29,7 +29,7 @@ } }, "description": "This article on how you can update the bootloader (EEPROM) on the Raspberry Pi" -}
    smart home circle
    Smart Home Circle
    Published on

    How To Update Bootloader (EEPROM) On The Raspberry Pi

    How To Update Bootloader (EEPROM) On The Raspberry Pi
    2 min read
    Authors
    Table of Contents
    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/index.html b/index.html index b75a0e9c..043aa3ba 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles about everything related to smart home. Here we explore what are the various ways we can integrated smart devices to Home Assistant and much more.

    Articles

    \ No newline at end of file +Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles about everything related to smart home. Here we explore what are the various ways we can integrated smart devices to Home Assistant and much more.

    Articles

    \ No newline at end of file diff --git a/install-zigbee2mqtt-with-home-assistant.html b/install-zigbee2mqtt-with-home-assistant.html index e9d1f5b2..c7a43413 100644 --- a/install-zigbee2mqtt-with-home-assistant.html +++ b/install-zigbee2mqtt-with-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will look at how you can set up a Zigbee2Mqtt with Home Assistant" -}
    smart home circle
    Smart Home Circle
    Published on

    How to Setup Zigbee2Mqtt with Home Assistant — Step By Step Guide

    How to Setup Zigbee2Mqtt with Home Assistant — Step By Step Guide
    6 min read
    Authors

    In this article, we will look at how you can set up a Zigbee2Mqtt with Home Assistant

    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/moes-zigbee-smart-knob-with-homeassistant.html b/moes-zigbee-smart-knob-with-homeassistant.html index 4e446293..e87f77dd 100644 --- a/moes-zigbee-smart-knob-with-homeassistant.html +++ b/moes-zigbee-smart-knob-with-homeassistant.html @@ -29,7 +29,7 @@ } }, "description": "In this article, we will explore the new MOES Zigbee Smart Knob and connect it to Home Assistant ZHA and Zigbee2MQTT" -}
    smart home circle
    Smart Home Circle
    Published on

    MOES Zigbee Smart Knob

    MOES Zigbee Smart Knob
    4 min read
    Authors

    In this article, we will explore the new MOES Zigbee Smart Knob and connect it to Home Assistant ZHA and Zigbee2MQTT.

    +}
    Published on

    MOES Zigbee Smart Knob

    MOES Zigbee Smart Knob
    4 min read
    Authors

    In this article, we will explore the new MOES Zigbee Smart Knob and connect it to Home Assistant ZHA and Zigbee2MQTT.

    We will also look at some of the automation blueprints to automate your light and media player with this smart knob.

    Table of Contents

    Requirements

    @@ -103,4 +103,4 @@

    Control LED Strip with Home Assistant Using WLED
  • How I Added a Matter Device to Home Assistant
  • -



    \ No newline at end of file +


    \ No newline at end of file diff --git a/page/1.html b/page/1.html index 02ecf4c5..6897f1fb 100644 --- a/page/1.html +++ b/page/1.html @@ -1 +1 @@ -Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file +Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file diff --git a/page/2.html b/page/2.html index 9ba7c842..012be9b2 100644 --- a/page/2.html +++ b/page/2.html @@ -1 +1 @@ -Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file +Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file diff --git a/page/3.html b/page/3.html index b6b2b3da..7d85c15a 100644 --- a/page/3.html +++ b/page/3.html @@ -1 +1 @@ -Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file +Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file diff --git a/page/4.html b/page/4.html index a94f7829..0f206ac6 100644 --- a/page/4.html +++ b/page/4.html @@ -1 +1 @@ -Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file +Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file diff --git a/page/5.html b/page/5.html index e44cc3b9..dfe4065d 100644 --- a/page/5.html +++ b/page/5.html @@ -1 +1 @@ -Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file +Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file diff --git a/page/6.html b/page/6.html index 82035c64..00136099 100644 --- a/page/6.html +++ b/page/6.html @@ -1 +1 @@ -Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file +Home | Smart Home Circle
    smart home circle
    Smart Home Circle

    Articles

    \ No newline at end of file diff --git a/posts.html b/posts.html index 60ef9142..d9846c9f 100644 --- a/posts.html +++ b/posts.html @@ -1 +1 @@ -All Posts | Smart Home Circle
    smart home circle
    Smart Home Circle

    All Posts


    2024


    2023


    \ No newline at end of file +All Posts | Smart Home Circle
    smart home circle
    Smart Home Circle

    All Posts


    2024


    2023


    \ No newline at end of file diff --git a/privacy.html b/privacy.html index 9ef5ee97..41873683 100644 --- a/privacy.html +++ b/privacy.html @@ -26,7 +26,7 @@ "url": "https://smarthomecircle.com/static/images/favicons/icon.png" } } -}
    smart home circle
    Smart Home Circle
    Published on

    Privacy Policy

    Last Modified: June 15, 2023

    +}
    Published on

    Privacy Policy

    Last Modified: June 15, 2023


    https://SmartHomeCircle.com (hereinafter referred to as Service) is operated by Amrut Prabhu. To be compliant with data protection regulations, such as European General Data Protection Regulation, I’m required to explain to you everything about which personal data this Service is collecting, with whom it’s shared, and the reasons behind it.

    This page informs you of our policies regarding the collection, use, and disclosure of personal data when you use this Service and the choices you have associated with that data.

    @@ -139,4 +139,4 @@

    Contact Us

    -

    In case you have anything to ask about the privacy policy you can contact me at smarthomecircle@gmail.com

    Stop Collecting Usage Data
    \ No newline at end of file +

    In case you have anything to ask about the privacy policy you can contact me at smarthomecircle@gmail.com

    Stop Collecting Usage Data
    \ No newline at end of file diff --git a/projects.html b/projects.html index dabcf7b1..9b617abc 100644 --- a/projects.html +++ b/projects.html @@ -1 +1 @@ -Projects - Amrut Prabhu | Smart Home Circle
    smart home circle
    Smart Home Circle

    Projects

    Showcase your projects with a hero image (16 x 9)

    How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word

    How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word

    In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant

    How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word

    How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word

    In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant

    How To Update Bootloader (EEPROM) On The Raspberry Pi

    How To Update Bootloader (EEPROM) On The Raspberry Pi

    This article on how you can update the bootloader (EEPROM) on the Raspberry Pi

    How To Backup Home Assistant On Google Drive

    How To Backup Home Assistant On Google Drive

    In this article, we will look at how we can take automated backups of Home Assistant on Google Drive.

    How to Create a NAS with Raspberry Pi 5

    How to Create a NAS with Raspberry Pi 5

    In this article, we will create a NAS (network attached storage) usign a Raspberry Pi 5. This guide is also meant Raspberry Pi 4 and 3B

    Connect & Automate Tuya Zigbee Smart Scene Switch To Home Assistant

    Connect & Automate Tuya Zigbee Smart Scene Switch To Home Assistant

    This article will explore how we can connect and automate the Tuya Zigbee 4 Button Smart Scene Switch with Home Assistant

    Custom Sentences For Voice Assistant In Home Assistant

    Custom Sentences For Voice Assistant In Home Assistant

    In this article, we will explore how we can create custom sentences for your voice assistant in for Home Assistant

    Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

    Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

    In this article, we will look at how we can connect the Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

    How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy

    How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy

    In this article, we will explore how we can setup a Bluetooth Proxy to connect Bluetooth devices with Home Assistant

    How to Create Custom Wake Word For Your Voice Assistant In Home Assistant

    How to Create Custom Wake Word For Your Voice Assistant In Home Assistant

    In this article, we will explore how we can create a custom wake word for our voice assistant to invoke Home Assistant

    How to Easily Share Files With Home Assistant OS with Samba Share

    How to Easily Share Files With Home Assistant OS with Samba Share

    In this article, we will explore how we can share files with Home Assistant OS

    MOES Zigbee Smart Knob

    MOES Zigbee Smart Knob

    In this article, we will explore the new MOES Zigbee Smart Knob and connect it to Home Assistant ZHA and Zigbee2MQTT

    My Local Voice Assistant Device With Wake Word In Home Assistant

    My Local Voice Assistant Device With Wake Word In Home Assistant

    In this article, we will look at how I created my voice assistant device to send commands to Home Assistant using Wake Word

    Setup LG Washer with Home Assistant using ThinQ Integration

    Setup LG Washer with Home Assistant using ThinQ Integration

    In this article we will look at how you can connect an LG Washer with Home Assistant using LG ThinQ integration and configure a dashboard card

    ESP32 as a Local Voice Assistant With Wake Word In Home Assistant

    ESP32 as a Local Voice Assistant With Wake Word In Home Assistant

    This article will look at how to setup an ESP32 as local voice assistant and use Wake word to invoke Home Assistant devices

    Setup Local Voice Assistant In Home Assistant Using USB Microphone - Docker Containers Setup Guide

    Setup Local Voice Assistant In Home Assistant Using USB Microphone - Docker Containers Setup Guide

    This article will look at how you can set up voice assistance with Home Assistant and invoke Home Assistant devices using a USB microphone.

    How to Control LED Strip with Home Assistant Using WLED — Step-By-Step Guide

    How to Control LED Strip with Home Assistant Using WLED — Step-By-Step Guide

    In this article, we will look at how you can control an LED strip with Home Assistant using WLED.

    How to Setup Zigbee2Mqtt with Home Assistant — Step By Step Guide

    How to Setup Zigbee2Mqtt with Home Assistant — Step By Step Guide

    In this article, we will look at how you can set up a Zigbee2Mqtt with Home Assistant

    How To Change Graph Colors in Energy Dashboard In Home Assistant

    How To Change Graph Colors in Energy Dashboard In Home Assistant

    In this article, we will look at how you can change colors for your energy graph in the energy dashboard of Home Assistant.

    How I Setup ESP32 Cam with Frigate And Home Assistant To Detect Objects — Step-By-Step Guide

    How I Setup ESP32 Cam with Frigate And Home Assistant To Detect Objects — Step-By-Step Guide

    In this article, we will be looking at how we configure Frigate to detect object and then connect it to Home Assistant to receive notification.

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide

    In this article, we will be looking at how we configure Frigate to detect object and then connect it to Home Assistant to receive notification.

    How To Setup Local Tuya With Home Assistant

    How To Setup Local Tuya With Home Assistant

    In this article, we will be looking at how we control Tuya Devices Locally using Local Tuya.

    Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide

    Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can connect Zigbee Devices using Sonoff Zigbee 3.0 USB Dongle Plus to Home Assistant.

    How I Built My Own Air Quality Monitor With Light Sensor For Home Assistant - Step By Step Guide

    How I Built My Own Air Quality Monitor With Light Sensor For Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can connect SGP30 CO2 (Carbon Dioxide) sensor and BH17450 Light sensor to Home Assistant

    How I Added a Matter Device to Home Assistant - Step By Step Guide

    How I Added a Matter Device to Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can connect Matter-enabled devices to Home Assistant

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can actually connect ESP32 CAM with Home Assistant

    How I Setup ESP32/ESP8266 With ESP Home and Home Assistant OS And Container - Step By Step Guide

    How I Setup ESP32/ESP8266 With ESP Home and Home Assistant OS And Container - Step By Step Guide

    In this article we will look into how we can setup ESP32 / ESP8266 with ESP Home and Home Assistant

    How to Run Home Assistant Container with Docker

    How to Run Home Assistant Container with Docker

    In this article we will look into how we can run Home Assistant Container with Docker

    How to Install Home Assistant and Connect to WIFI on Raspberry PI

    How to Install Home Assistant and Connect to WIFI on Raspberry PI

    In this article we will look into how we can install Home Assistant OS and connect it to the Wifi on boot up.

    \ No newline at end of file +Projects - Amrut Prabhu | Smart Home Circle
    smart home circle
    Smart Home Circle

    Projects

    Showcase your projects with a hero image (16 x 9)

    How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word

    How I Created My Voice Assistant With On-Device Wake Word Detection On ESP32 Using Micro Wake Word

    In this article, we will look at how I created my Voice Assistant with an ESP32 S3 with on-device Wake Word detection using MicroWake Word to send commands to Home Assistant

    How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word

    How To Setup On-Device Wake Word Detection For Voice Assistant using Micro Wake Word

    In this article, we will look at how we can set up an ESP32 S3 with on-device Wake Word detection using MicroWake Word for your Voice Assistant to send commands to Home Assistant

    How To Update Bootloader (EEPROM) On The Raspberry Pi

    How To Update Bootloader (EEPROM) On The Raspberry Pi

    This article on how you can update the bootloader (EEPROM) on the Raspberry Pi

    How To Backup Home Assistant On Google Drive

    How To Backup Home Assistant On Google Drive

    In this article, we will look at how we can take automated backups of Home Assistant on Google Drive.

    How to Create a NAS with Raspberry Pi 5

    How to Create a NAS with Raspberry Pi 5

    In this article, we will create a NAS (network attached storage) usign a Raspberry Pi 5. This guide is also meant Raspberry Pi 4 and 3B

    Connect & Automate Tuya Zigbee Smart Scene Switch To Home Assistant

    Connect & Automate Tuya Zigbee Smart Scene Switch To Home Assistant

    This article will explore how we can connect and automate the Tuya Zigbee 4 Button Smart Scene Switch with Home Assistant

    Custom Sentences For Voice Assistant In Home Assistant

    Custom Sentences For Voice Assistant In Home Assistant

    In this article, we will explore how we can create custom sentences for your voice assistant in for Home Assistant

    Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

    Connect Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

    In this article, we will look at how we can connect the Xiaomi Temperature and Humidity (LYWSD03MMC) Bluetooth Sensor to Home Assistant

    How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy

    How to Connect Bluetooth Devices to Home Assistant with Bluetooth Proxy

    In this article, we will explore how we can setup a Bluetooth Proxy to connect Bluetooth devices with Home Assistant

    How to Create Custom Wake Word For Your Voice Assistant In Home Assistant

    How to Create Custom Wake Word For Your Voice Assistant In Home Assistant

    In this article, we will explore how we can create a custom wake word for our voice assistant to invoke Home Assistant

    How to Easily Share Files With Home Assistant OS with Samba Share

    How to Easily Share Files With Home Assistant OS with Samba Share

    In this article, we will explore how we can share files with Home Assistant OS

    MOES Zigbee Smart Knob

    MOES Zigbee Smart Knob

    In this article, we will explore the new MOES Zigbee Smart Knob and connect it to Home Assistant ZHA and Zigbee2MQTT

    My Local Voice Assistant Device With Wake Word In Home Assistant

    My Local Voice Assistant Device With Wake Word In Home Assistant

    In this article, we will look at how I created my voice assistant device to send commands to Home Assistant using Wake Word

    Setup LG Washer with Home Assistant using ThinQ Integration

    Setup LG Washer with Home Assistant using ThinQ Integration

    In this article we will look at how you can connect an LG Washer with Home Assistant using LG ThinQ integration and configure a dashboard card

    ESP32 as a Local Voice Assistant With Wake Word In Home Assistant

    ESP32 as a Local Voice Assistant With Wake Word In Home Assistant

    This article will look at how to setup an ESP32 as local voice assistant and use Wake word to invoke Home Assistant devices

    Setup Local Voice Assistant In Home Assistant Using USB Microphone - Docker Containers Setup Guide

    Setup Local Voice Assistant In Home Assistant Using USB Microphone - Docker Containers Setup Guide

    This article will look at how you can set up voice assistance with Home Assistant and invoke Home Assistant devices using a USB microphone.

    How to Control LED Strip with Home Assistant Using WLED — Step-By-Step Guide

    How to Control LED Strip with Home Assistant Using WLED — Step-By-Step Guide

    In this article, we will look at how you can control an LED strip with Home Assistant using WLED.

    How to Setup Zigbee2Mqtt with Home Assistant — Step By Step Guide

    How to Setup Zigbee2Mqtt with Home Assistant — Step By Step Guide

    In this article, we will look at how you can set up a Zigbee2Mqtt with Home Assistant

    How To Change Graph Colors in Energy Dashboard In Home Assistant

    How To Change Graph Colors in Energy Dashboard In Home Assistant

    In this article, we will look at how you can change colors for your energy graph in the energy dashboard of Home Assistant.

    How I Setup ESP32 Cam with Frigate And Home Assistant To Detect Objects — Step-By-Step Guide

    How I Setup ESP32 Cam with Frigate And Home Assistant To Detect Objects — Step-By-Step Guide

    In this article, we will be looking at how we configure Frigate to detect object and then connect it to Home Assistant to receive notification.

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide

    How I Setup MQTT Broker Docker Container Or Addon In Home Assistant — Step-By-Step Guide

    In this article, we will be looking at how we configure Frigate to detect object and then connect it to Home Assistant to receive notification.

    How To Setup Local Tuya With Home Assistant

    How To Setup Local Tuya With Home Assistant

    In this article, we will be looking at how we control Tuya Devices Locally using Local Tuya.

    Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide

    Connect Zigbee Plug Using Sonoff Zigbee 3.0 USB Dongle Plus To Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can connect Zigbee Devices using Sonoff Zigbee 3.0 USB Dongle Plus to Home Assistant.

    How I Built My Own Air Quality Monitor With Light Sensor For Home Assistant - Step By Step Guide

    How I Built My Own Air Quality Monitor With Light Sensor For Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can connect SGP30 CO2 (Carbon Dioxide) sensor and BH17450 Light sensor to Home Assistant

    How I Added a Matter Device to Home Assistant - Step By Step Guide

    How I Added a Matter Device to Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can connect Matter-enabled devices to Home Assistant

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide

    How I Setup ESP32 CAM With ESP Home and Home Assistant - Step By Step Guide

    In this article, we will be looking at how we can actually connect ESP32 CAM with Home Assistant

    How I Setup ESP32/ESP8266 With ESP Home and Home Assistant OS And Container - Step By Step Guide

    How I Setup ESP32/ESP8266 With ESP Home and Home Assistant OS And Container - Step By Step Guide

    In this article we will look into how we can setup ESP32 / ESP8266 with ESP Home and Home Assistant

    How to Run Home Assistant Container with Docker

    How to Run Home Assistant Container with Docker

    In this article we will look into how we can run Home Assistant Container with Docker

    How to Install Home Assistant and Connect to WIFI on Raspberry PI

    How to Install Home Assistant and Connect to WIFI on Raspberry PI

    In this article we will look into how we can install Home Assistant OS and connect it to the Wifi on boot up.

    \ No newline at end of file diff --git a/run-home-assistant-container-with-docker.html b/run-home-assistant-container-with-docker.html index bbf3b3ad..a2d429a5 100644 --- a/run-home-assistant-container-with-docker.html +++ b/run-home-assistant-container-with-docker.html @@ -29,7 +29,7 @@ } }, "description": "In this article we will look into how we can run Home Assistant Container with Docker" -}
    smart home circle
    Smart Home Circle
    Published on

    How to Run Home Assistant Container with Docker

    How to Run Home Assistant Container with Docker
    3 min read
    Authors

    Table of Contents
    +}
    \ No newline at end of file +

    With this, you are now running Home Assistant Container using Docker Compose.



    \ No newline at end of file diff --git a/setup-esp32-with-wake-word-in-home-assistant.html b/setup-esp32-with-wake-word-in-home-assistant.html index 94e50508..95778901 100644 --- a/setup-esp32-with-wake-word-in-home-assistant.html +++ b/setup-esp32-with-wake-word-in-home-assistant.html @@ -29,7 +29,7 @@ } }, "description": " This article will look at how to setup an ESP32 as local voice assistant and use Wake word to invoke Home Assistant devices" -}
    smart home circle
    Smart Home Circle
    Published on

    ESP32 as a Local Voice Assistant With Wake Word In Home Assistant

    ESP32 as a Local Voice Assistant With Wake Word In Home Assistant
    8 min read
    Authors

    In this article, we will look at how we can set up an ESP32 with a microphone as a Voice Assistant to send commands to Home Assistant using a Wake Word.

    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.html b/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.html index e4c33d6a..2f82573c 100644 --- a/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.html +++ b/setup-voice-assistant-with-home-assistant-using-docker-usb-microphone.html @@ -29,7 +29,7 @@ } }, "description": " This article will look at how you can set up voice assistance with Home Assistant and invoke Home Assistant devices using a USB microphone." -}
    smart home circle
    Smart Home Circle
    Published on

    Setup Local Voice Assistant In Home Assistant Using USB Microphone - Docker Containers Setup Guide

    Setup Local Voice Assistant In Home Assistant Using USB Microphone - Docker Containers Setup Guide
    6 min read
    Authors

    This article will look at how you can set up voice assistance with Home Assistant and invoke Home Assistant devices using a USB microphone.

    +}
    \ No newline at end of file +


    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index fc7ed253..791309a5 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -24,6 +24,30 @@ https://smarthomecircle.com/tags + + https://smarthomecircle.com/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant + + + + https://smarthomecircle.com/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant + + + + https://smarthomecircle.com/create-nas-with-raspberry-pi-5 + + + + https://smarthomecircle.com/how-to-backup-home-assistant-on-google-drive + + + + https://smarthomecircle.com/how-to-update-bootloader-on-raspberrypi + + https://smarthomecircle.com/Setup-LG-Washer-with-Home-Assistant @@ -132,30 +156,6 @@ > - - https://smarthomecircle.com/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant - - - - https://smarthomecircle.com/How-to-setup-on-device-wake-word-for-voice-assistant-home-assistant - - - - https://smarthomecircle.com/create-nas-with-raspberry-pi-5 - - - - https://smarthomecircle.com/how-to-backup-home-assistant-on-google-drive - - - - https://smarthomecircle.com/how-to-update-bootloader-on-raspberrypi - - https://smarthomecircle.com/tags/back-up diff --git a/tags.html b/tags.html index 95466129..8308cf3d 100644 --- a/tags.html +++ b/tags.html @@ -1 +1 @@ -Tags | Smart Home Circle
    \ No newline at end of file +Tags | Smart Home Circle
    \ No newline at end of file diff --git a/tags/back-up.html b/tags/back-up.html index af7f221b..f6260e1f 100644 --- a/tags/back-up.html +++ b/tags/back-up.html @@ -1 +1 @@ -Back up | Smart Home Circle
    smart home circle
    Smart Home Circle

    Back up

    \ No newline at end of file +Back up | Smart Home Circle
    smart home circle
    Smart Home Circle

    Back up

    \ No newline at end of file diff --git a/tags/beginners.html b/tags/beginners.html index 46e27dab..7887a4f1 100644 --- a/tags/beginners.html +++ b/tags/beginners.html @@ -1 +1 @@ -Beginners | Smart Home Circle
    \ No newline at end of file +Beginners | Smart Home Circle
    \ No newline at end of file diff --git a/tags/bh1750.html b/tags/bh1750.html index 641673fb..b44e0324 100644 --- a/tags/bh1750.html +++ b/tags/bh1750.html @@ -1 +1 @@ -Bh1750 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Bh1750

    \ No newline at end of file +Bh1750 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Bh1750

    \ No newline at end of file diff --git a/tags/bluetooth.html b/tags/bluetooth.html index 22da8746..5a4764d2 100644 --- a/tags/bluetooth.html +++ b/tags/bluetooth.html @@ -1 +1 @@ -Bluetooth | Smart Home Circle
    smart home circle
    Smart Home Circle

    Bluetooth

    \ No newline at end of file +Bluetooth | Smart Home Circle
    smart home circle
    Smart Home Circle

    Bluetooth

    \ No newline at end of file diff --git a/tags/bootloader.html b/tags/bootloader.html index e65fd82f..47e705fe 100644 --- a/tags/bootloader.html +++ b/tags/bootloader.html @@ -1 +1 @@ -Bootloader | Smart Home Circle
    smart home circle
    Smart Home Circle

    Bootloader

    \ No newline at end of file +Bootloader | Smart Home Circle
    smart home circle
    Smart Home Circle

    Bootloader

    \ No newline at end of file diff --git a/tags/co2-sensor.html b/tags/co2-sensor.html index f8eef811..2ed50dd1 100644 --- a/tags/co2-sensor.html +++ b/tags/co2-sensor.html @@ -1 +1 @@ -Co2 sensor | Smart Home Circle
    smart home circle
    Smart Home Circle

    Co2 sensor

    \ No newline at end of file +Co2 sensor | Smart Home Circle
    smart home circle
    Smart Home Circle

    Co2 sensor

    \ No newline at end of file diff --git a/tags/custom.html b/tags/custom.html index a65a82ce..62ad5087 100644 --- a/tags/custom.html +++ b/tags/custom.html @@ -1 +1 @@ -Custom | Smart Home Circle
    smart home circle
    Smart Home Circle

    Custom

    \ No newline at end of file +Custom | Smart Home Circle
    smart home circle
    Smart Home Circle

    Custom

    \ No newline at end of file diff --git a/tags/d1-mini.html b/tags/d1-mini.html index 149332f6..d11f0d2f 100644 --- a/tags/d1-mini.html +++ b/tags/d1-mini.html @@ -1 +1 @@ -D1 mini | Smart Home Circle
    smart home circle
    Smart Home Circle

    D1 mini

    \ No newline at end of file +D1 mini | Smart Home Circle
    smart home circle
    Smart Home Circle

    D1 mini

    \ No newline at end of file diff --git a/tags/dashboard-cards.html b/tags/dashboard-cards.html index ceb13d29..536c99d7 100644 --- a/tags/dashboard-cards.html +++ b/tags/dashboard-cards.html @@ -1 +1 @@ -Dashboard cards | Smart Home Circle
    smart home circle
    Smart Home Circle

    Dashboard cards

    \ No newline at end of file +Dashboard cards | Smart Home Circle
    smart home circle
    Smart Home Circle

    Dashboard cards

    \ No newline at end of file diff --git a/tags/dashboards.html b/tags/dashboards.html index 1aafafe5..cdcf138f 100644 --- a/tags/dashboards.html +++ b/tags/dashboards.html @@ -1 +1 @@ -Dashboards | Smart Home Circle
    smart home circle
    Smart Home Circle

    Dashboards

    \ No newline at end of file +Dashboards | Smart Home Circle
    smart home circle
    Smart Home Circle

    Dashboards

    \ No newline at end of file diff --git a/tags/docker-compose.html b/tags/docker-compose.html index ea14c254..a1cce5aa 100644 --- a/tags/docker-compose.html +++ b/tags/docker-compose.html @@ -1 +1 @@ -Docker compose | Smart Home Circle
    \ No newline at end of file +Docker compose | Smart Home Circle
    \ No newline at end of file diff --git a/tags/docker.html b/tags/docker.html index 8bc879f0..61ea4e13 100644 --- a/tags/docker.html +++ b/tags/docker.html @@ -1 +1 @@ -Docker | Smart Home Circle
    smart home circle
    Smart Home Circle

    Docker

    \ No newline at end of file +Docker | Smart Home Circle
    smart home circle
    Smart Home Circle

    Docker

    \ No newline at end of file diff --git a/tags/eeprom.html b/tags/eeprom.html index b89ffd4e..26f02ae0 100644 --- a/tags/eeprom.html +++ b/tags/eeprom.html @@ -1 +1 @@ -Eeprom | Smart Home Circle
    smart home circle
    Smart Home Circle

    Eeprom

    \ No newline at end of file +Eeprom | Smart Home Circle
    smart home circle
    Smart Home Circle

    Eeprom

    \ No newline at end of file diff --git a/tags/energy-dashboard.html b/tags/energy-dashboard.html index 094c69d9..ccaabec7 100644 --- a/tags/energy-dashboard.html +++ b/tags/energy-dashboard.html @@ -1 +1 @@ -Energy dashboard | Smart Home Circle
    smart home circle
    Smart Home Circle

    Energy dashboard

    \ No newline at end of file +Energy dashboard | Smart Home Circle
    smart home circle
    Smart Home Circle

    Energy dashboard

    \ No newline at end of file diff --git a/tags/energy-graph.html b/tags/energy-graph.html index 4591fe5c..5c7366b5 100644 --- a/tags/energy-graph.html +++ b/tags/energy-graph.html @@ -1 +1 @@ -Energy graph | Smart Home Circle
    smart home circle
    Smart Home Circle

    Energy graph

    \ No newline at end of file +Energy graph | Smart Home Circle
    smart home circle
    Smart Home Circle

    Energy graph

    \ No newline at end of file diff --git a/tags/esp32-cam.html b/tags/esp32-cam.html index 6dfbd6ac..3e3983df 100644 --- a/tags/esp32-cam.html +++ b/tags/esp32-cam.html @@ -1 +1 @@ -Esp32 cam | Smart Home Circle
    smart home circle
    Smart Home Circle

    Esp32 cam

    \ No newline at end of file +Esp32 cam | Smart Home Circle
    smart home circle
    Smart Home Circle

    Esp32 cam

    \ No newline at end of file diff --git a/tags/esp32.html b/tags/esp32.html index c5b457fd..5eefdbfe 100644 --- a/tags/esp32.html +++ b/tags/esp32.html @@ -1 +1 @@ -Esp32 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Esp32

    \ No newline at end of file +Esp32 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Esp32

    \ No newline at end of file diff --git a/tags/esp8266.html b/tags/esp8266.html index fcdf9748..696e8455 100644 --- a/tags/esp8266.html +++ b/tags/esp8266.html @@ -1 +1 @@ -Esp8266 | Smart Home Circle
    \ No newline at end of file +Esp8266 | Smart Home Circle
    \ No newline at end of file diff --git a/tags/esphome.html b/tags/esphome.html index 433a97bc..47e32941 100644 --- a/tags/esphome.html +++ b/tags/esphome.html @@ -1 +1 @@ -Esphome | Smart Home Circle
    smart home circle
    Smart Home Circle

    Esphome

    \ No newline at end of file +Esphome | Smart Home Circle
    smart home circle
    Smart Home Circle

    Esphome

    \ No newline at end of file diff --git a/tags/google-drive.html b/tags/google-drive.html index 0597a2ad..8d9e97e5 100644 --- a/tags/google-drive.html +++ b/tags/google-drive.html @@ -1 +1 @@ -Google drive | Smart Home Circle
    smart home circle
    Smart Home Circle

    Google drive

    \ No newline at end of file +Google drive | Smart Home Circle
    smart home circle
    Smart Home Circle

    Google drive

    \ No newline at end of file diff --git a/tags/home-assistant-container.html b/tags/home-assistant-container.html index e7a41e1a..9aa71779 100644 --- a/tags/home-assistant-container.html +++ b/tags/home-assistant-container.html @@ -1 +1 @@ -Home assistant container | Smart Home Circle
    \ No newline at end of file +Home assistant container | Smart Home Circle
    \ No newline at end of file diff --git a/tags/home-assistant.html b/tags/home-assistant.html index b480fcb0..b7ffe3e2 100644 --- a/tags/home-assistant.html +++ b/tags/home-assistant.html @@ -1 +1 @@ -Home assistant | Smart Home Circle
    smart home circle
    Smart Home Circle

    Home assistant

    \ No newline at end of file +Home assistant | Smart Home Circle
    smart home circle
    Smart Home Circle

    Home assistant

    \ No newline at end of file diff --git a/tags/led-lights.html b/tags/led-lights.html index b28de063..e0bcb11b 100644 --- a/tags/led-lights.html +++ b/tags/led-lights.html @@ -1 +1 @@ -Led lights | Smart Home Circle
    \ No newline at end of file +Led lights | Smart Home Circle
    \ No newline at end of file diff --git a/tags/led-strip.html b/tags/led-strip.html index e2d6824a..dded01e5 100644 --- a/tags/led-strip.html +++ b/tags/led-strip.html @@ -1 +1 @@ -Led strip | Smart Home Circle
    \ No newline at end of file +Led strip | Smart Home Circle
    \ No newline at end of file diff --git a/tags/lg-washer.html b/tags/lg-washer.html index 4301e495..b52eba90 100644 --- a/tags/lg-washer.html +++ b/tags/lg-washer.html @@ -1 +1 @@ -Lg washer | Smart Home Circle
    smart home circle
    Smart Home Circle

    Lg washer

    \ No newline at end of file +Lg washer | Smart Home Circle
    smart home circle
    Smart Home Circle

    Lg washer

    \ No newline at end of file diff --git a/tags/lg.html b/tags/lg.html index b8022584..ac0aeea0 100644 --- a/tags/lg.html +++ b/tags/lg.html @@ -1 +1 @@ -Lg | Smart Home Circle
    smart home circle
    Smart Home Circle

    Lg

    \ No newline at end of file +Lg | Smart Home Circle
    smart home circle
    Smart Home Circle

    Lg

    \ No newline at end of file diff --git a/tags/local-tuya.html b/tags/local-tuya.html index 69186ee7..fab6569f 100644 --- a/tags/local-tuya.html +++ b/tags/local-tuya.html @@ -1 +1 @@ -Local tuya | Smart Home Circle
    smart home circle
    Smart Home Circle

    Local tuya

    \ No newline at end of file +Local tuya | Smart Home Circle
    smart home circle
    Smart Home Circle

    Local tuya

    \ No newline at end of file diff --git a/tags/matter.html b/tags/matter.html index 72963045..75bca6df 100644 --- a/tags/matter.html +++ b/tags/matter.html @@ -1 +1 @@ -Matter | Smart Home Circle
    smart home circle
    Smart Home Circle

    Matter

    \ No newline at end of file +Matter | Smart Home Circle
    smart home circle
    Smart Home Circle

    Matter

    \ No newline at end of file diff --git a/tags/micro-wake-word.html b/tags/micro-wake-word.html index 3315ced3..39925af1 100644 --- a/tags/micro-wake-word.html +++ b/tags/micro-wake-word.html @@ -1 +1 @@ -Micro wake word | Smart Home Circle
    smart home circle
    Smart Home Circle

    Micro wake word

    \ No newline at end of file +Micro wake word | Smart Home Circle
    smart home circle
    Smart Home Circle

    Micro wake word

    \ No newline at end of file diff --git a/tags/mqtt.html b/tags/mqtt.html index b5484304..fa8605e5 100644 --- a/tags/mqtt.html +++ b/tags/mqtt.html @@ -1 +1 @@ -Mqtt | Smart Home Circle
    smart home circle
    Smart Home Circle

    Mqtt

    \ No newline at end of file +Mqtt | Smart Home Circle
    smart home circle
    Smart Home Circle

    Mqtt

    \ No newline at end of file diff --git a/tags/nas.html b/tags/nas.html index 130cf195..6f7c31bb 100644 --- a/tags/nas.html +++ b/tags/nas.html @@ -1 +1 @@ -Nas | Smart Home Circle
    smart home circle
    Smart Home Circle

    Nas

    \ No newline at end of file +Nas | Smart Home Circle
    smart home circle
    Smart Home Circle

    Nas

    \ No newline at end of file diff --git a/tags/os.html b/tags/os.html index 68cb8cbc..066ea185 100644 --- a/tags/os.html +++ b/tags/os.html @@ -1 +1 @@ -Os | Smart Home Circle
    smart home circle
    Smart Home Circle

    Os

    \ No newline at end of file +Os | Smart Home Circle
    smart home circle
    Smart Home Circle

    Os

    \ No newline at end of file diff --git a/tags/raspberry-pi-5.html b/tags/raspberry-pi-5.html index 25b8ac6a..3b4f98d5 100644 --- a/tags/raspberry-pi-5.html +++ b/tags/raspberry-pi-5.html @@ -1 +1 @@ -Raspberry pi 5 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Raspberry pi 5

    \ No newline at end of file +Raspberry pi 5 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Raspberry pi 5

    \ No newline at end of file diff --git a/tags/raspberry-pi.html b/tags/raspberry-pi.html index 0a45ac4f..2905e607 100644 --- a/tags/raspberry-pi.html +++ b/tags/raspberry-pi.html @@ -1 +1 @@ -Raspberry pi | Smart Home Circle
    smart home circle
    Smart Home Circle

    Raspberry pi

    \ No newline at end of file +Raspberry pi | Smart Home Circle
    smart home circle
    Smart Home Circle

    Raspberry pi

    \ No newline at end of file diff --git a/tags/samba-share.html b/tags/samba-share.html index 1bc03a2e..ccd22bcf 100644 --- a/tags/samba-share.html +++ b/tags/samba-share.html @@ -1 +1 @@ -Samba share | Smart Home Circle
    \ No newline at end of file +Samba share | Smart Home Circle
    \ No newline at end of file diff --git a/tags/sensor.html b/tags/sensor.html index 152e5963..2f97822e 100644 --- a/tags/sensor.html +++ b/tags/sensor.html @@ -1 +1 @@ -Sensor | Smart Home Circle
    smart home circle
    Smart Home Circle

    Sensor

    \ No newline at end of file +Sensor | Smart Home Circle
    smart home circle
    Smart Home Circle

    Sensor

    \ No newline at end of file diff --git a/tags/setup.html b/tags/setup.html index 675605a5..007ce8bb 100644 --- a/tags/setup.html +++ b/tags/setup.html @@ -1 +1 @@ -Setup | Smart Home Circle
    smart home circle
    Smart Home Circle

    Setup

    \ No newline at end of file +Setup | Smart Home Circle
    smart home circle
    Smart Home Circle

    Setup

    \ No newline at end of file diff --git a/tags/sgp30.html b/tags/sgp30.html index 7c74298c..f78a8cbf 100644 --- a/tags/sgp30.html +++ b/tags/sgp30.html @@ -1 +1 @@ -Sgp30 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Sgp30

    \ No newline at end of file +Sgp30 | Smart Home Circle
    smart home circle
    Smart Home Circle

    Sgp30

    \ No newline at end of file diff --git a/tags/smart-device.html b/tags/smart-device.html index a233c127..62391cf7 100644 --- a/tags/smart-device.html +++ b/tags/smart-device.html @@ -1 +1 @@ -Smart device | Smart Home Circle
    smart home circle
    Smart Home Circle

    Smart device

    \ No newline at end of file +Smart device | Smart Home Circle
    smart home circle
    Smart Home Circle

    Smart device

    \ No newline at end of file diff --git a/tags/smart-plug.html b/tags/smart-plug.html index e418bf4b..78ffa582 100644 --- a/tags/smart-plug.html +++ b/tags/smart-plug.html @@ -1 +1 @@ -Smart plug | Smart Home Circle
    smart home circle
    Smart Home Circle

    Smart plug

    \ No newline at end of file +Smart plug | Smart Home Circle
    smart home circle
    Smart Home Circle

    Smart plug

    \ No newline at end of file diff --git a/tags/smart-wifi-plug.html b/tags/smart-wifi-plug.html index e0651d24..3e51f7e8 100644 --- a/tags/smart-wifi-plug.html +++ b/tags/smart-wifi-plug.html @@ -1 +1 @@ -Smart wifi plug | Smart Home Circle
    smart home circle
    Smart Home Circle

    Smart wifi plug

    \ No newline at end of file +Smart wifi plug | Smart Home Circle
    smart home circle
    Smart Home Circle

    Smart wifi plug

    \ No newline at end of file diff --git a/tags/sonoff-dongle-plus.html b/tags/sonoff-dongle-plus.html index 3d84b847..ce17aedd 100644 --- a/tags/sonoff-dongle-plus.html +++ b/tags/sonoff-dongle-plus.html @@ -1 +1 @@ -Sonoff dongle plus | Smart Home Circle
    smart home circle
    Smart Home Circle

    Sonoff dongle plus

    \ No newline at end of file +Sonoff dongle plus | Smart Home Circle
    smart home circle
    Smart Home Circle

    Sonoff dongle plus

    \ No newline at end of file diff --git a/tags/tuya.html b/tags/tuya.html index 036d3638..35e0d4df 100644 --- a/tags/tuya.html +++ b/tags/tuya.html @@ -1 +1 @@ -Tuya | Smart Home Circle
    smart home circle
    Smart Home Circle

    Tuya

    \ No newline at end of file +Tuya | Smart Home Circle
    smart home circle
    Smart Home Circle

    Tuya

    \ No newline at end of file diff --git a/tags/ubuntu.html b/tags/ubuntu.html index 2d82572b..9bd5752f 100644 --- a/tags/ubuntu.html +++ b/tags/ubuntu.html @@ -1 +1 @@ -Ubuntu | Smart Home Circle
    \ No newline at end of file +Ubuntu | Smart Home Circle
    \ No newline at end of file diff --git a/tags/usb-microphone.html b/tags/usb-microphone.html index b28bf653..77a4d554 100644 --- a/tags/usb-microphone.html +++ b/tags/usb-microphone.html @@ -1 +1 @@ -Usb microphone | Smart Home Circle
    smart home circle
    Smart Home Circle

    Usb microphone

    \ No newline at end of file +Usb microphone | Smart Home Circle
    smart home circle
    Smart Home Circle

    Usb microphone

    \ No newline at end of file diff --git a/tags/voice-assistant.html b/tags/voice-assistant.html index 520ef351..6b11a39f 100644 --- a/tags/voice-assistant.html +++ b/tags/voice-assistant.html @@ -1 +1 @@ -Voice assistant | Smart Home Circle
    smart home circle
    Smart Home Circle

    Voice assistant

    \ No newline at end of file +Voice assistant | Smart Home Circle
    smart home circle
    Smart Home Circle

    Voice assistant

    \ No newline at end of file diff --git a/tags/wake-word.html b/tags/wake-word.html index 02c65302..99438f31 100644 --- a/tags/wake-word.html +++ b/tags/wake-word.html @@ -1 +1 @@ -Wake word | Smart Home Circle
    smart home circle
    Smart Home Circle

    Wake word

    \ No newline at end of file +Wake word | Smart Home Circle
    smart home circle
    Smart Home Circle

    Wake word

    \ No newline at end of file diff --git a/tags/wifi.html b/tags/wifi.html index 1e81308c..e35b680c 100644 --- a/tags/wifi.html +++ b/tags/wifi.html @@ -1 +1 @@ -Wifi | Smart Home Circle
    smart home circle
    Smart Home Circle

    Wifi

    \ No newline at end of file +Wifi | Smart Home Circle
    smart home circle
    Smart Home Circle

    Wifi

    \ No newline at end of file diff --git a/tags/wled.html b/tags/wled.html index a79210ab..035881f3 100644 --- a/tags/wled.html +++ b/tags/wled.html @@ -1 +1 @@ -Wled | Smart Home Circle
    \ No newline at end of file +Wled | Smart Home Circle
    \ No newline at end of file diff --git a/tags/xiaomi.html b/tags/xiaomi.html index c1fd90ad..2ba0dca0 100644 --- a/tags/xiaomi.html +++ b/tags/xiaomi.html @@ -1 +1 @@ -Xiaomi | Smart Home Circle
    smart home circle
    Smart Home Circle

    Xiaomi

    \ No newline at end of file +Xiaomi | Smart Home Circle
    smart home circle
    Smart Home Circle

    Xiaomi

    \ No newline at end of file diff --git a/tags/zigbee.html b/tags/zigbee.html index 2138c53e..5d9ff325 100644 --- a/tags/zigbee.html +++ b/tags/zigbee.html @@ -1 +1 @@ -Zigbee | Smart Home Circle
    smart home circle
    Smart Home Circle

    Zigbee

    \ No newline at end of file +Zigbee | Smart Home Circle
    smart home circle
    Smart Home Circle

    Zigbee

    \ No newline at end of file diff --git a/tags/zigbee2mqtt.html b/tags/zigbee2mqtt.html index 71f6857d..93c3ffc9 100644 --- a/tags/zigbee2mqtt.html +++ b/tags/zigbee2mqtt.html @@ -1 +1 @@ -Zigbee2mqtt | Smart Home Circle
    \ No newline at end of file +Zigbee2mqtt | Smart Home Circle
    \ No newline at end of file