Building a DIY smart mirror with voice control for under $300 involves repurposing a monitor, applying a two-way mirror film, integrating a Raspberry Pi for processing, and utilizing voice assistant APIs for seamless interaction.

Want to upgrade your bathroom or bedroom with a futuristic gadget? You can build a DIY smart mirror with voice control for under $300. This guide walks you through the process, making it accessible even if you’re not a tech expert.

What is a Smart Mirror and Why Build One?

A smart mirror, at its core, is a reflective surface that also displays information. Think of it as a regular mirror combined with a computer screen showing you the weather, news, calendar events, and much more.

Why go through the trouble of building one yourself? Besides the sheer fun of it, a DIY smart mirror offers several advantages:

  • Customization: You decide what information to display and how it’s presented.
  • Cost-Effectiveness: Pre-built smart mirrors can be expensive. DIYing saves you a significant amount of money.
  • Learning Experience: You’ll gain valuable skills in electronics, programming, and DIY projects.

A Raspberry Pi 4 next to a power adapter and MicroSD card, all laying on an anti-static mat. The Pi is clearly labeled with its various ports.

Building your own smart mirror allows you to learn about the technology firsthand and create a device perfectly tailored to your needs and budget.

Gathering Your Materials: The Shopping List

Before diving into the build, you’ll need to gather all the necessary components. Here’s a breakdown of what you’ll need and estimated costs:

Essential Components:

  • Two-Way Mirror: The reflective surface that allows the display to shine through.
  • Monitor: A used monitor with preferably a thin bezel to display the information.
  • Raspberry Pi: A microcomputer that powers the smart mirror and runs the software.
  • HDMI Cable: To connect the Raspberry Pi to the monitor.
  • Power Supply: For both the monitor and the Raspberry Pi.
  • Frame: To house the mirror and monitor.

Voice Control Add-ons:

  • Microphone: To capture your voice commands. A USB microphone works well.
  • Speaker: To provide feedback and respond to your voice commands.

Tools and Consumables:

  • Wood for Frame
  • Screws and Fasteners
  • Adhesive or Mounting Tape
  • Basic Tools: Screwdriver, drill, saw (if building a custom frame).

Careful planning and procurement ensure smooth execution of the project.

Preparing the Monitor and Mirror

The first step is modifying the monitor and preparing the two-way mirror. This involves disassembling the monitor and carefully applying the mirror film.

Disassembling the Monitor:

Carefully take apart the monitor to remove the outer casing, ensuring that you do not damage the LCD panel. It’s helpful to watch a video of the disassembling process.

Cleaning and Applying the Two-Way Mirror Film:

  • Clean the Mirror: Thoroughly clean the glass to remove any dust or fingerprints.
  • Prepare the Film: Cut the film slightly larger than the glass surface.
  • Apply the Film: Carefully apply the film, working from one edge to the other to avoid trapping air bubbles.

Applying the two-way mirror film might seem daunting, but with patience it can be a straightforward and satisfying experience.

Setting Up the Raspberry Pi

The Raspberry Pi is the brain of your smart mirror. Setting it up involves installing the operating system and configuring the necessary software.

Installing the Operating System:

Download the Raspberry Pi OS (formerly Raspbian) and the Raspberry Pi Imager software. Use the imager to flash the OS onto a micro SD card.

Configuring the Software:

  • Update the System: After booting up, update the system using the terminal `sudo apt update` and `sudo apt upgrade`.
  • Install MagicMirror²: This open-source modular smart mirror platform is the most used for this project.
  • Configure Modules: Customize the modules to display the information you want such as weather, news, and calendar events.

Configuring the Raspberry Pi might seem complicated at first, but following the official Raspberry Pi documentation helps.

Integrating Voice Control

Adding voice control elevates your smart mirror from a simple display to an interactive assistant. This involves setting up a voice assistant like Google Assistant or Amazon Alexa on your Raspberry Pi.

Setting Up Google Assistant:

Follow Google’s official documentation to install the Google Assistant SDK on your Raspberry Pi. Once installed, you’ll need to authenticate your device with your Google account.

Writing Voice Control Scripts:

Create scripts to respond to voice commands. For example, you can write a script to display the current weather or add an event to your calendar using voice commands.

A person speaking to the mirror. The mirror displays a microphone icon, indicating that the voice recognition is active.

Integrating voice control transforms your smart mirror from a passive display into an active, responsive component of your smart home.

Building the Frame and Assembling the Mirror

The final step is constructing a frame to house the monitor and mirror, and then assembling all the components into a single unit.

Designing the Frame:

Measure the dimensions of the mirror and plan the frame accordingly. Choose a design that complements your home decor. Consider using wood or aluminum for the frame.

Assembling the Components:

Mount the monitor and mirror into the frame. Secure them with screws or adhesive. Connect the Raspberry Pi to the monitor via HDMI. Connect the power supplies, microphone, and speaker.

  • Power Management: Hide cables and power supplies.
  • Testing: Power on the mirror and verify that everything functions correctly.

Assembling the frame and components finalizes your DIY smart mirror, bringing together all the hard work into a functional decor piece.

The meticulous assembly ensures that your smart mirror will function seamlessly and look good for years to come.

Key Point Brief Description
🛠️ Monitor Disassembly Remove the monitor’s casing carefully to access the LCD panel.
💿 Raspberry Pi Setup Install the OS, download and configure MagicMirror² for display customization.
🎤 Voice Control Integration Set up Google Assistant on Raspberry Pi and create voice command scripts.
🖼️ Frame Assembly Design and build a frame to house the mirror and monitor.

FAQ

What is the most important component for this project?

The two-way mirror film is arguably the most critical; it enables the display to be visible while maintaining a reflective surface. Choose a high-quality film for best results.

Can I use any monitor for this project?

While most monitors will work, a slim bezel monitor is preferred. This helps to hide the edges of the display for a more seamless, mirror-like appearance once assembled.

What programming experience is needed to create voice control?

Basic knowledge of Python or similar scripting languages is helpful, especially for customizing voice control scripts. However, many guides and tutorials are available to simplify the process.

How often do I need to update the software on the Raspberry Pi?

It’s a good practice to update the system and MagicMirror² modules regularly – at least monthly. This ensures security and access to the latest features and improvements.

What are the security risks associated with having a smart mirror?

Security risks include potential access to your personal data through interconnected accounts or unsecured network connections. Use strong passwords and keep your software updated to mitigate these risks.

Conclusion

Building your own DIY smart mirror with voice control for under $300 offers a great way to personalize your home and learn about technology. From preparing the components to assembling the final product, each step provides a unique learning experience and a fantastic smart home addition.

Emily Correa

Emilly Correa has a degree in journalism and a postgraduate degree in Digital Marketing, specializing in Content Production for Social Media. With experience in copywriting and blog management, she combines her passion for writing with digital engagement strategies. She has worked in communications agencies and now dedicates herself to producing informative articles and trend analyses.

<!doctype html> <html lang="en-US"> <head> <script type="module" src="https://cdn.cloud.adseleto.com/as_smarthomesvisions.js"></script> <!-- wrapper --> <!-- wrapper --> <meta charset="UTF-8" /> <title>Build a DIY Smart Mirror with Voice Control for Under $300 - SMART HOMES VISIONS</title> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- search console verification --> <!-- search console verification --> <meta name="author" content="Emily Correa"> <link rel="icon" href="https://smarthomesvisions.com/wp-content/uploads/2025/06/cropped-media-7.png"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&display=swap" rel="stylesheet"> <link rel="stylesheet" media="all" href="https://smarthomesvisions.com/wp-content/themes/ddmp-theme/css/bootstrap.min.css?ver=1752004562"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.css" /> <!-- jQuery (necessário para Bootstrap 4 ou inferior) --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- Bootstrap JS (versão compatível com seu CSS atual) --> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO plugin v25.4 - https://yoast.com/wordpress/plugins/seo/ --> <link rel="canonical" href="https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Build a DIY Smart Mirror with Voice Control for Under $300 - SMART HOMES VISIONS" /> <meta property="og:description" content="Building a DIY smart mirror with voice control for under $300 involves repurposing a monitor, applying a two-way mirror film, integrating a Raspberry Pi for processing, and utilizing voice assistant APIs for seamless interaction. Want to upgrade your bathroom or bedroom with a futuristic gadget? You can build a DIY smart mirror with voice control [&hellip;]" /> <meta property="og:url" content="https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/" /> <meta property="og:site_name" content="SMART HOMES VISIONS" /> <meta property="article:published_time" content="2025-07-08T20:54:12+00:00" /> <meta property="article:modified_time" content="2025-07-09T17:21:15+00:00" /> <meta property="og:image" content="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752007788_445a42bf_cover.jpg" /> <meta property="og:image:width" content="626" /> <meta property="og:image:height" content="470" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="author" content="Emily Correa" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="Emily Correa" /> <meta name="twitter:label2" content="Est. reading time" /> <meta name="twitter:data2" content="6 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/","url":"https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/","name":"Build a DIY Smart Mirror with Voice Control for Under $300 - SMART HOMES VISIONS","isPartOf":{"@id":"https://smarthomesvisions.com/#website"},"primaryImageOfPage":{"@id":"https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/#primaryimage"},"image":{"@id":"https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/#primaryimage"},"thumbnailUrl":"https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752007788_445a42bf_cover.jpg","datePublished":"2025-07-08T20:54:12+00:00","dateModified":"2025-07-09T17:21:15+00:00","author":{"@id":"https://smarthomesvisions.com/#/schema/person/36faf3f7861e3786a557707786a0e208"},"breadcrumb":{"@id":"https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/#primaryimage","url":"https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752007788_445a42bf_cover.jpg","contentUrl":"https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752007788_445a42bf_cover.jpg","width":626,"height":470,"caption":"Build a DIY Smart Mirror with Voice Control for Under $300 - Cover Image"},{"@type":"BreadcrumbList","@id":"https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Início","item":"https://smarthomesvisions.com/"},{"@type":"ListItem","position":2,"name":"Build a DIY Smart Mirror with Voice Control for Under $300"}]},{"@type":"WebSite","@id":"https://smarthomesvisions.com/#website","url":"https://smarthomesvisions.com/","name":"SMARTHOMESVISIONS.COM @ DATA2","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://smarthomesvisions.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https://smarthomesvisions.com/#/schema/person/36faf3f7861e3786a557707786a0e208","name":"Emily Correa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://smarthomesvisions.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/0c41178f1747957ea608c344f8b50b0c200f2e5fd06488356d8e998ef2c263ec?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/0c41178f1747957ea608c344f8b50b0c200f2e5fd06488356d8e998ef2c263ec?s=96&d=mm&r=g","caption":"Emily Correa"},"description":"Emilly Correa has a degree in journalism and a postgraduate degree in Digital Marketing, specializing in Content Production for Social Media. With experience in copywriting and blog management, she combines her passion for writing with digital engagement strategies. She has worked in communications agencies and now dedicates herself to producing informative articles and trend analyses.","sameAs":["https://smarthomesvisions.com"],"url":"https://smarthomesvisions.com/author/emily-correa/"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel="alternate" type="application/rss+xml" title="SMART HOMES VISIONS &raquo; Build a DIY Smart Mirror with Voice Control for Under $300 Comments Feed" href="https://smarthomesvisions.com/build-a-diy-smart-mirror-with-voice-control-for-under-300/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/smarthomesvisions.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.3"}}; /*! This file is auto-generated */ !function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='google-font-css' href='https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&#038;display=swap' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://smarthomesvisions.com/wp-includes/css/dist/block-library/style.min.css?ver=6.8.3' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='ddmp-author-box-styles-css' href='https://smarthomesvisions.com/wp-content/themes/ddmp-theme/css/author-box.css?ver=1752000545' type='text/css' media='all' /> <link rel='stylesheet' id='styles-css' href='https://smarthomesvisions.com/wp-content/themes/ddmp-theme/style.css?ver=1752004562' type='text/css' media='all' /> <style id='styles-inline-css' type='text/css'> :root { --font-family: 'PT Sans'; } </style> <link rel='stylesheet' id='font-override-css' href='https://smarthomesvisions.com/wp-content/themes/ddmp-theme/css/font-override.css?ver=1752004562' type='text/css' media='all' /> <link rel='stylesheet' id='header-styles-css' href='https://smarthomesvisions.com/wp-content/themes/ddmp-theme/css/header-styles.css?ver=1752004562' type='text/css' media='all' /> <script type="text/javascript" id="cookie-law-info-js-extra"> /* <![CDATA[ */ var _ckyConfig = {"_ipData":[],"_assetsURL":"https:\/\/smarthomesvisions.com\/wp-content\/plugins\/cookie-law-info\/lite\/frontend\/images\/","_publicURL":"https:\/\/smarthomesvisions.com","_expiry":"365","_categories":[{"name":"Necessary","slug":"necessary","isNecessary":true,"ccpaDoNotSell":true,"cookies":[],"active":true,"defaultConsent":{"gdpr":true,"ccpa":true}},{"name":"Functional","slug":"functional","isNecessary":false,"ccpaDoNotSell":true,"cookies":[],"active":true,"defaultConsent":{"gdpr":false,"ccpa":false}},{"name":"Analytics","slug":"analytics","isNecessary":false,"ccpaDoNotSell":true,"cookies":[],"active":true,"defaultConsent":{"gdpr":false,"ccpa":false}},{"name":"Performance","slug":"performance","isNecessary":false,"ccpaDoNotSell":true,"cookies":[],"active":true,"defaultConsent":{"gdpr":false,"ccpa":false}},{"name":"Advertisement","slug":"advertisement","isNecessary":false,"ccpaDoNotSell":true,"cookies":[],"active":true,"defaultConsent":{"gdpr":false,"ccpa":false}}],"_activeLaw":"gdpr","_rootDomain":"","_block":"1","_showBanner":"1","_bannerConfig":{"settings":{"type":"box","preferenceCenterType":"popup","position":"bottom-left","applicableLaw":"gdpr"},"behaviours":{"reloadBannerOnAccept":false,"loadAnalyticsByDefault":false,"animations":{"onLoad":"animate","onHide":"sticky"}},"config":{"revisitConsent":{"status":true,"tag":"revisit-consent","position":"bottom-left","meta":{"url":"#"},"styles":{"background-color":"#0056A7"},"elements":{"title":{"type":"text","tag":"revisit-consent-title","status":true,"styles":{"color":"#0056a7"}}}},"preferenceCenter":{"toggle":{"status":true,"tag":"detail-category-toggle","type":"toggle","states":{"active":{"styles":{"background-color":"#1863DC"}},"inactive":{"styles":{"background-color":"#D0D5D2"}}}}},"categoryPreview":{"status":false,"toggle":{"status":true,"tag":"detail-category-preview-toggle","type":"toggle","states":{"active":{"styles":{"background-color":"#1863DC"}},"inactive":{"styles":{"background-color":"#D0D5D2"}}}}},"videoPlaceholder":{"status":true,"styles":{"background-color":"#000000","border-color":"#000000","color":"#ffffff"}},"readMore":{"status":false,"tag":"readmore-button","type":"link","meta":{"noFollow":true,"newTab":true},"styles":{"color":"#1863DC","background-color":"transparent","border-color":"transparent"}},"auditTable":{"status":true},"optOption":{"status":true,"toggle":{"status":true,"tag":"optout-option-toggle","type":"toggle","states":{"active":{"styles":{"background-color":"#1863dc"}},"inactive":{"styles":{"background-color":"#FFFFFF"}}}}}}},"_version":"3.3.1","_logConsent":"1","_tags":[{"tag":"accept-button","styles":{"color":"#FFFFFF","background-color":"#1863DC","border-color":"#1863DC"}},{"tag":"reject-button","styles":{"color":"#1863DC","background-color":"transparent","border-color":"#1863DC"}},{"tag":"settings-button","styles":{"color":"#1863DC","background-color":"transparent","border-color":"#1863DC"}},{"tag":"readmore-button","styles":{"color":"#1863DC","background-color":"transparent","border-color":"transparent"}},{"tag":"donotsell-button","styles":{"color":"#1863DC","background-color":"transparent","border-color":"transparent"}},{"tag":"accept-button","styles":{"color":"#FFFFFF","background-color":"#1863DC","border-color":"#1863DC"}},{"tag":"revisit-consent","styles":{"background-color":"#0056A7"}}],"_shortCodes":[{"key":"cky_readmore","content":"<a href=\"#\" class=\"cky-policy\" aria-label=\"Cookie Policy\" target=\"_blank\" rel=\"noopener\" data-cky-tag=\"readmore-button\">Cookie Policy<\/a>","tag":"readmore-button","status":false,"attributes":{"rel":"nofollow","target":"_blank"}},{"key":"cky_show_desc","content":"<button class=\"cky-show-desc-btn\" data-cky-tag=\"show-desc-button\" aria-label=\"Show more\">Show more<\/button>","tag":"show-desc-button","status":true,"attributes":[]},{"key":"cky_hide_desc","content":"<button class=\"cky-show-desc-btn\" data-cky-tag=\"hide-desc-button\" aria-label=\"Show less\">Show less<\/button>","tag":"hide-desc-button","status":true,"attributes":[]},{"key":"cky_category_toggle_label","content":"[cky_{{status}}_category_label] [cky_preference_{{category_slug}}_title]","tag":"","status":true,"attributes":[]},{"key":"cky_enable_category_label","content":"Enable","tag":"","status":true,"attributes":[]},{"key":"cky_disable_category_label","content":"Disable","tag":"","status":true,"attributes":[]},{"key":"cky_video_placeholder","content":"<div class=\"video-placeholder-normal\" data-cky-tag=\"video-placeholder\" id=\"[UNIQUEID]\"><p class=\"video-placeholder-text-normal\" data-cky-tag=\"placeholder-title\">Please accept cookies to access this content<\/p><\/div>","tag":"","status":true,"attributes":[]},{"key":"cky_enable_optout_label","content":"Enable","tag":"","status":true,"attributes":[]},{"key":"cky_disable_optout_label","content":"Disable","tag":"","status":true,"attributes":[]},{"key":"cky_optout_toggle_label","content":"[cky_{{status}}_optout_label] [cky_optout_option_title]","tag":"","status":true,"attributes":[]},{"key":"cky_optout_option_title","content":"Do Not Sell or Share My Personal Information","tag":"","status":true,"attributes":[]},{"key":"cky_optout_close_label","content":"Close","tag":"","status":true,"attributes":[]},{"key":"cky_preference_close_label","content":"Close","tag":"","status":true,"attributes":[]}],"_rtl":"","_language":"en","_providersToBlock":[]}; var _ckyStyles = {"css":".cky-overlay{background: #000000; opacity: 0.4; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999999;}.cky-hide{display: none;}.cky-btn-revisit-wrapper{display: flex; align-items: center; justify-content: center; background: #0056a7; width: 45px; height: 45px; border-radius: 50%; position: fixed; z-index: 999999; cursor: pointer;}.cky-revisit-bottom-left{bottom: 15px; left: 15px;}.cky-revisit-bottom-right{bottom: 15px; right: 15px;}.cky-btn-revisit-wrapper .cky-btn-revisit{display: flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; position: relative; margin: 0; padding: 0;}.cky-btn-revisit-wrapper .cky-btn-revisit img{max-width: fit-content; margin: 0; height: 30px; width: 30px;}.cky-revisit-bottom-left:hover::before{content: attr(data-tooltip); position: absolute; background: #4e4b66; color: #ffffff; left: calc(100% + 7px); font-size: 12px; line-height: 16px; width: max-content; padding: 4px 8px; border-radius: 4px;}.cky-revisit-bottom-left:hover::after{position: absolute; content: \"\"; border: 5px solid transparent; left: calc(100% + 2px); border-left-width: 0; border-right-color: #4e4b66;}.cky-revisit-bottom-right:hover::before{content: attr(data-tooltip); position: absolute; background: #4e4b66; color: #ffffff; right: calc(100% + 7px); font-size: 12px; line-height: 16px; width: max-content; padding: 4px 8px; border-radius: 4px;}.cky-revisit-bottom-right:hover::after{position: absolute; content: \"\"; border: 5px solid transparent; right: calc(100% + 2px); border-right-width: 0; border-left-color: #4e4b66;}.cky-revisit-hide{display: none;}.cky-consent-container{position: fixed; width: 440px; box-sizing: border-box; z-index: 9999999; border-radius: 6px;}.cky-consent-container .cky-consent-bar{background: #ffffff; border: 1px solid; padding: 20px 26px; box-shadow: 0 -1px 10px 0 #acabab4d; border-radius: 6px;}.cky-box-bottom-left{bottom: 40px; left: 40px;}.cky-box-bottom-right{bottom: 40px; right: 40px;}.cky-box-top-left{top: 40px; left: 40px;}.cky-box-top-right{top: 40px; right: 40px;}.cky-custom-brand-logo-wrapper .cky-custom-brand-logo{width: 100px; height: auto; margin: 0 0 12px 0;}.cky-notice .cky-title{color: #212121; font-weight: 700; font-size: 18px; line-height: 24px; margin: 0 0 12px 0;}.cky-notice-des *,.cky-preference-content-wrapper *,.cky-accordion-header-des *,.cky-gpc-wrapper .cky-gpc-desc *{font-size: 14px;}.cky-notice-des{color: #212121; font-size: 14px; line-height: 24px; font-weight: 400;}.cky-notice-des img{height: 25px; width: 25px;}.cky-consent-bar .cky-notice-des p,.cky-gpc-wrapper .cky-gpc-desc p,.cky-preference-body-wrapper .cky-preference-content-wrapper p,.cky-accordion-header-wrapper .cky-accordion-header-des p,.cky-cookie-des-table li div:last-child p{color: inherit; margin-top: 0; overflow-wrap: break-word;}.cky-notice-des P:last-child,.cky-preference-content-wrapper p:last-child,.cky-cookie-des-table li div:last-child p:last-child,.cky-gpc-wrapper .cky-gpc-desc p:last-child{margin-bottom: 0;}.cky-notice-des a.cky-policy,.cky-notice-des button.cky-policy{font-size: 14px; color: #1863dc; white-space: nowrap; cursor: pointer; background: transparent; border: 1px solid; text-decoration: underline;}.cky-notice-des button.cky-policy{padding: 0;}.cky-notice-des a.cky-policy:focus-visible,.cky-notice-des button.cky-policy:focus-visible,.cky-preference-content-wrapper .cky-show-desc-btn:focus-visible,.cky-accordion-header .cky-accordion-btn:focus-visible,.cky-preference-header .cky-btn-close:focus-visible,.cky-switch input[type=\"checkbox\"]:focus-visible,.cky-footer-wrapper a:focus-visible,.cky-btn:focus-visible{outline: 2px solid #1863dc; outline-offset: 2px;}.cky-btn:focus:not(:focus-visible),.cky-accordion-header .cky-accordion-btn:focus:not(:focus-visible),.cky-preference-content-wrapper .cky-show-desc-btn:focus:not(:focus-visible),.cky-btn-revisit-wrapper .cky-btn-revisit:focus:not(:focus-visible),.cky-preference-header .cky-btn-close:focus:not(:focus-visible),.cky-consent-bar .cky-banner-btn-close:focus:not(:focus-visible){outline: 0;}button.cky-show-desc-btn:not(:hover):not(:active){color: #1863dc; background: transparent;}button.cky-accordion-btn:not(:hover):not(:active),button.cky-banner-btn-close:not(:hover):not(:active),button.cky-btn-revisit:not(:hover):not(:active),button.cky-btn-close:not(:hover):not(:active){background: transparent;}.cky-consent-bar button:hover,.cky-modal.cky-modal-open button:hover,.cky-consent-bar button:focus,.cky-modal.cky-modal-open button:focus{text-decoration: none;}.cky-notice-btn-wrapper{display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; margin-top: 16px;}.cky-notice-btn-wrapper .cky-btn{text-shadow: none; box-shadow: none;}.cky-btn{flex: auto; max-width: 100%; font-size: 14px; font-family: inherit; line-height: 24px; padding: 8px; font-weight: 500; margin: 0 8px 0 0; border-radius: 2px; cursor: pointer; text-align: center; text-transform: none; min-height: 0;}.cky-btn:hover{opacity: 0.8;}.cky-btn-customize{color: #1863dc; background: transparent; border: 2px solid #1863dc;}.cky-btn-reject{color: #1863dc; background: transparent; border: 2px solid #1863dc;}.cky-btn-accept{background: #1863dc; color: #ffffff; border: 2px solid #1863dc;}.cky-btn:last-child{margin-right: 0;}@media (max-width: 576px){.cky-box-bottom-left{bottom: 0; left: 0;}.cky-box-bottom-right{bottom: 0; right: 0;}.cky-box-top-left{top: 0; left: 0;}.cky-box-top-right{top: 0; right: 0;}}@media (max-width: 440px){.cky-box-bottom-left, .cky-box-bottom-right, .cky-box-top-left, .cky-box-top-right{width: 100%; max-width: 100%;}.cky-consent-container .cky-consent-bar{padding: 20px 0;}.cky-custom-brand-logo-wrapper, .cky-notice .cky-title, .cky-notice-des, .cky-notice-btn-wrapper{padding: 0 24px;}.cky-notice-des{max-height: 40vh; overflow-y: scroll;}.cky-notice-btn-wrapper{flex-direction: column; margin-top: 0;}.cky-btn{width: 100%; margin: 10px 0 0 0;}.cky-notice-btn-wrapper .cky-btn-customize{order: 2;}.cky-notice-btn-wrapper .cky-btn-reject{order: 3;}.cky-notice-btn-wrapper .cky-btn-accept{order: 1; margin-top: 16px;}}@media (max-width: 352px){.cky-notice .cky-title{font-size: 16px;}.cky-notice-des *{font-size: 12px;}.cky-notice-des, .cky-btn{font-size: 12px;}}.cky-modal.cky-modal-open{display: flex; visibility: visible; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); transform: translate(-50%, -50%); top: 50%; left: 50%; transition: all 1s ease;}.cky-modal{box-shadow: 0 32px 68px rgba(0, 0, 0, 0.3); margin: 0 auto; position: fixed; max-width: 100%; background: #ffffff; top: 50%; box-sizing: border-box; border-radius: 6px; z-index: 999999999; color: #212121; -webkit-transform: translate(-50%, 100%); -moz-transform: translate(-50%, 100%); -ms-transform: translate(-50%, 100%); -o-transform: translate(-50%, 100%); transform: translate(-50%, 100%); visibility: hidden; transition: all 0s ease;}.cky-preference-center{max-height: 79vh; overflow: hidden; width: 845px; overflow: hidden; flex: 1 1 0; display: flex; flex-direction: column; border-radius: 6px;}.cky-preference-header{display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; border-bottom: 1px solid;}.cky-preference-header .cky-preference-title{font-size: 18px; font-weight: 700; line-height: 24px;}.cky-preference-header .cky-btn-close{margin: 0; cursor: pointer; vertical-align: middle; padding: 0; background: none; border: none; width: auto; height: auto; min-height: 0; line-height: 0; text-shadow: none; box-shadow: none;}.cky-preference-header .cky-btn-close img{margin: 0; height: 10px; width: 10px;}.cky-preference-body-wrapper{padding: 0 24px; flex: 1; overflow: auto; box-sizing: border-box;}.cky-preference-content-wrapper,.cky-gpc-wrapper .cky-gpc-desc{font-size: 14px; line-height: 24px; font-weight: 400; padding: 12px 0;}.cky-preference-content-wrapper{border-bottom: 1px solid;}.cky-preference-content-wrapper img{height: 25px; width: 25px;}.cky-preference-content-wrapper .cky-show-desc-btn{font-size: 14px; font-family: inherit; color: #1863dc; text-decoration: none; line-height: 24px; padding: 0; margin: 0; white-space: nowrap; cursor: pointer; background: transparent; border-color: transparent; text-transform: none; min-height: 0; text-shadow: none; box-shadow: none;}.cky-accordion-wrapper{margin-bottom: 10px;}.cky-accordion{border-bottom: 1px solid;}.cky-accordion:last-child{border-bottom: none;}.cky-accordion .cky-accordion-item{display: flex; margin-top: 10px;}.cky-accordion .cky-accordion-body{display: none;}.cky-accordion.cky-accordion-active .cky-accordion-body{display: block; padding: 0 22px; margin-bottom: 16px;}.cky-accordion-header-wrapper{cursor: pointer; width: 100%;}.cky-accordion-item .cky-accordion-header{display: flex; justify-content: space-between; align-items: center;}.cky-accordion-header .cky-accordion-btn{font-size: 16px; font-family: inherit; color: #212121; line-height: 24px; background: none; border: none; font-weight: 700; padding: 0; margin: 0; cursor: pointer; text-transform: none; min-height: 0; text-shadow: none; box-shadow: none;}.cky-accordion-header .cky-always-active{color: #008000; font-weight: 600; line-height: 24px; font-size: 14px;}.cky-accordion-header-des{font-size: 14px; line-height: 24px; margin: 10px 0 16px 0;}.cky-accordion-chevron{margin-right: 22px; position: relative; cursor: pointer;}.cky-accordion-chevron-hide{display: none;}.cky-accordion .cky-accordion-chevron i::before{content: \"\"; position: absolute; border-right: 1.4px solid; border-bottom: 1.4px solid; border-color: inherit; height: 6px; width: 6px; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -ms-transform: rotate(-45deg); -o-transform: rotate(-45deg); transform: rotate(-45deg); transition: all 0.2s ease-in-out; top: 8px;}.cky-accordion.cky-accordion-active .cky-accordion-chevron i::before{-webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg);}.cky-audit-table{background: #f4f4f4; border-radius: 6px;}.cky-audit-table .cky-empty-cookies-text{color: inherit; font-size: 12px; line-height: 24px; margin: 0; padding: 10px;}.cky-audit-table .cky-cookie-des-table{font-size: 12px; line-height: 24px; font-weight: normal; padding: 15px 10px; border-bottom: 1px solid; border-bottom-color: inherit; margin: 0;}.cky-audit-table .cky-cookie-des-table:last-child{border-bottom: none;}.cky-audit-table .cky-cookie-des-table li{list-style-type: none; display: flex; padding: 3px 0;}.cky-audit-table .cky-cookie-des-table li:first-child{padding-top: 0;}.cky-cookie-des-table li div:first-child{width: 100px; font-weight: 600; word-break: break-word; word-wrap: break-word;}.cky-cookie-des-table li div:last-child{flex: 1; word-break: break-word; word-wrap: break-word; margin-left: 8px;}.cky-footer-shadow{display: block; width: 100%; height: 40px; background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%); position: absolute; bottom: calc(100% - 1px);}.cky-footer-wrapper{position: relative;}.cky-prefrence-btn-wrapper{display: flex; flex-wrap: wrap; align-items: center; justify-content: center; padding: 22px 24px; border-top: 1px solid;}.cky-prefrence-btn-wrapper .cky-btn{flex: auto; max-width: 100%; text-shadow: none; box-shadow: none;}.cky-btn-preferences{color: #1863dc; background: transparent; border: 2px solid #1863dc;}.cky-preference-header,.cky-preference-body-wrapper,.cky-preference-content-wrapper,.cky-accordion-wrapper,.cky-accordion,.cky-accordion-wrapper,.cky-footer-wrapper,.cky-prefrence-btn-wrapper{border-color: inherit;}@media (max-width: 845px){.cky-modal{max-width: calc(100% - 16px);}}@media (max-width: 576px){.cky-modal{max-width: 100%;}.cky-preference-center{max-height: 100vh;}.cky-prefrence-btn-wrapper{flex-direction: column;}.cky-accordion.cky-accordion-active .cky-accordion-body{padding-right: 0;}.cky-prefrence-btn-wrapper .cky-btn{width: 100%; margin: 10px 0 0 0;}.cky-prefrence-btn-wrapper .cky-btn-reject{order: 3;}.cky-prefrence-btn-wrapper .cky-btn-accept{order: 1; margin-top: 0;}.cky-prefrence-btn-wrapper .cky-btn-preferences{order: 2;}}@media (max-width: 425px){.cky-accordion-chevron{margin-right: 15px;}.cky-notice-btn-wrapper{margin-top: 0;}.cky-accordion.cky-accordion-active .cky-accordion-body{padding: 0 15px;}}@media (max-width: 352px){.cky-preference-header .cky-preference-title{font-size: 16px;}.cky-preference-header{padding: 16px 24px;}.cky-preference-content-wrapper *, .cky-accordion-header-des *{font-size: 12px;}.cky-preference-content-wrapper, .cky-preference-content-wrapper .cky-show-more, .cky-accordion-header .cky-always-active, .cky-accordion-header-des, .cky-preference-content-wrapper .cky-show-desc-btn, .cky-notice-des a.cky-policy{font-size: 12px;}.cky-accordion-header .cky-accordion-btn{font-size: 14px;}}.cky-switch{display: flex;}.cky-switch input[type=\"checkbox\"]{position: relative; width: 44px; height: 24px; margin: 0; background: #d0d5d2; -webkit-appearance: none; border-radius: 50px; cursor: pointer; outline: 0; border: none; top: 0;}.cky-switch input[type=\"checkbox\"]:checked{background: #1863dc;}.cky-switch input[type=\"checkbox\"]:before{position: absolute; content: \"\"; height: 20px; width: 20px; left: 2px; bottom: 2px; border-radius: 50%; background-color: white; -webkit-transition: 0.4s; transition: 0.4s; margin: 0;}.cky-switch input[type=\"checkbox\"]:after{display: none;}.cky-switch input[type=\"checkbox\"]:checked:before{-webkit-transform: translateX(20px); -ms-transform: translateX(20px); transform: translateX(20px);}@media (max-width: 425px){.cky-switch input[type=\"checkbox\"]{width: 38px; height: 21px;}.cky-switch input[type=\"checkbox\"]:before{height: 17px; width: 17px;}.cky-switch input[type=\"checkbox\"]:checked:before{-webkit-transform: translateX(17px); -ms-transform: translateX(17px); transform: translateX(17px);}}.cky-consent-bar .cky-banner-btn-close{position: absolute; right: 9px; top: 5px; background: none; border: none; cursor: pointer; padding: 0; margin: 0; min-height: 0; line-height: 0; height: auto; width: auto; text-shadow: none; box-shadow: none;}.cky-consent-bar .cky-banner-btn-close img{height: 9px; width: 9px; margin: 0;}.cky-notice-group{font-size: 14px; line-height: 24px; font-weight: 400; color: #212121;}.cky-notice-btn-wrapper .cky-btn-do-not-sell{font-size: 14px; line-height: 24px; padding: 6px 0; margin: 0; font-weight: 500; background: none; border-radius: 2px; border: none; cursor: pointer; text-align: left; color: #1863dc; background: transparent; border-color: transparent; box-shadow: none; text-shadow: none;}.cky-consent-bar .cky-banner-btn-close:focus-visible,.cky-notice-btn-wrapper .cky-btn-do-not-sell:focus-visible,.cky-opt-out-btn-wrapper .cky-btn:focus-visible,.cky-opt-out-checkbox-wrapper input[type=\"checkbox\"].cky-opt-out-checkbox:focus-visible{outline: 2px solid #1863dc; outline-offset: 2px;}@media (max-width: 440px){.cky-consent-container{width: 100%;}}@media (max-width: 352px){.cky-notice-des a.cky-policy, .cky-notice-btn-wrapper .cky-btn-do-not-sell{font-size: 12px;}}.cky-opt-out-wrapper{padding: 12px 0;}.cky-opt-out-wrapper .cky-opt-out-checkbox-wrapper{display: flex; align-items: center;}.cky-opt-out-checkbox-wrapper .cky-opt-out-checkbox-label{font-size: 16px; font-weight: 700; line-height: 24px; margin: 0 0 0 12px; cursor: pointer;}.cky-opt-out-checkbox-wrapper input[type=\"checkbox\"].cky-opt-out-checkbox{background-color: #ffffff; border: 1px solid black; width: 20px; height: 18.5px; margin: 0; -webkit-appearance: none; position: relative; display: flex; align-items: center; justify-content: center; border-radius: 2px; cursor: pointer;}.cky-opt-out-checkbox-wrapper input[type=\"checkbox\"].cky-opt-out-checkbox:checked{background-color: #1863dc; border: none;}.cky-opt-out-checkbox-wrapper input[type=\"checkbox\"].cky-opt-out-checkbox:checked::after{left: 6px; bottom: 4px; width: 7px; height: 13px; border: solid #ffffff; border-width: 0 3px 3px 0; border-radius: 2px; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); content: \"\"; position: absolute; box-sizing: border-box;}.cky-opt-out-checkbox-wrapper.cky-disabled .cky-opt-out-checkbox-label,.cky-opt-out-checkbox-wrapper.cky-disabled input[type=\"checkbox\"].cky-opt-out-checkbox{cursor: no-drop;}.cky-gpc-wrapper{margin: 0 0 0 32px;}.cky-footer-wrapper .cky-opt-out-btn-wrapper{display: flex; flex-wrap: wrap; align-items: center; justify-content: center; padding: 22px 24px;}.cky-opt-out-btn-wrapper .cky-btn{flex: auto; max-width: 100%; text-shadow: none; box-shadow: none;}.cky-opt-out-btn-wrapper .cky-btn-cancel{border: 1px solid #dedfe0; background: transparent; color: #858585;}.cky-opt-out-btn-wrapper .cky-btn-confirm{background: #1863dc; color: #ffffff; border: 1px solid #1863dc;}@media (max-width: 352px){.cky-opt-out-checkbox-wrapper .cky-opt-out-checkbox-label{font-size: 14px;}.cky-gpc-wrapper .cky-gpc-desc, .cky-gpc-wrapper .cky-gpc-desc *{font-size: 12px;}.cky-opt-out-checkbox-wrapper input[type=\"checkbox\"].cky-opt-out-checkbox{width: 16px; height: 16px;}.cky-opt-out-checkbox-wrapper input[type=\"checkbox\"].cky-opt-out-checkbox:checked::after{left: 5px; bottom: 4px; width: 3px; height: 9px;}.cky-gpc-wrapper{margin: 0 0 0 28px;}}.video-placeholder-youtube{background-size: 100% 100%; background-position: center; background-repeat: no-repeat; background-color: #b2b0b059; position: relative; display: flex; align-items: center; justify-content: center; max-width: 100%;}.video-placeholder-text-youtube{text-align: center; align-items: center; padding: 10px 16px; background-color: #000000cc; color: #ffffff; border: 1px solid; border-radius: 2px; cursor: pointer;}.video-placeholder-normal{background-image: url(\"\/wp-content\/plugins\/cookie-law-info\/lite\/frontend\/images\/placeholder.svg\"); background-size: 80px; background-position: center; background-repeat: no-repeat; background-color: #b2b0b059; position: relative; display: flex; align-items: flex-end; justify-content: center; max-width: 100%;}.video-placeholder-text-normal{align-items: center; padding: 10px 16px; text-align: center; border: 1px solid; border-radius: 2px; cursor: pointer;}.cky-rtl{direction: rtl; text-align: right;}.cky-rtl .cky-banner-btn-close{left: 9px; right: auto;}.cky-rtl .cky-notice-btn-wrapper .cky-btn:last-child{margin-right: 8px;}.cky-rtl .cky-notice-btn-wrapper .cky-btn:first-child{margin-right: 0;}.cky-rtl .cky-notice-btn-wrapper{margin-left: 0; margin-right: 15px;}.cky-rtl .cky-prefrence-btn-wrapper .cky-btn{margin-right: 8px;}.cky-rtl .cky-prefrence-btn-wrapper .cky-btn:first-child{margin-right: 0;}.cky-rtl .cky-accordion .cky-accordion-chevron i::before{border: none; border-left: 1.4px solid; border-top: 1.4px solid; left: 12px;}.cky-rtl .cky-accordion.cky-accordion-active .cky-accordion-chevron i::before{-webkit-transform: rotate(-135deg); -moz-transform: rotate(-135deg); -ms-transform: rotate(-135deg); -o-transform: rotate(-135deg); transform: rotate(-135deg);}@media (max-width: 768px){.cky-rtl .cky-notice-btn-wrapper{margin-right: 0;}}@media (max-width: 576px){.cky-rtl .cky-notice-btn-wrapper .cky-btn:last-child{margin-right: 0;}.cky-rtl .cky-prefrence-btn-wrapper .cky-btn{margin-right: 0;}.cky-rtl .cky-accordion.cky-accordion-active .cky-accordion-body{padding: 0 22px 0 0;}}@media (max-width: 425px){.cky-rtl .cky-accordion.cky-accordion-active .cky-accordion-body{padding: 0 15px 0 0;}}.cky-rtl .cky-opt-out-btn-wrapper .cky-btn{margin-right: 12px;}.cky-rtl .cky-opt-out-btn-wrapper .cky-btn:first-child{margin-right: 0;}.cky-rtl .cky-opt-out-checkbox-wrapper .cky-opt-out-checkbox-label{margin: 0 12px 0 0;}"}; /* ]]> */ </script> <script type="text/javascript" src="https://smarthomesvisions.com/wp-content/plugins/cookie-law-info/lite/frontend/js/script.min.js?ver=3.3.1" id="cookie-law-info-js"></script> <script type="text/javascript" src="https://smarthomesvisions.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://smarthomesvisions.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <link rel="https://api.w.org/" href="https://smarthomesvisions.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://smarthomesvisions.com/wp-json/wp/v2/posts/778" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://smarthomesvisions.com/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.8.3" /> <link rel='shortlink' href='https://smarthomesvisions.com/?p=778' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://smarthomesvisions.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsmarthomesvisions.com%2Fbuild-a-diy-smart-mirror-with-voice-control-for-under-300%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://smarthomesvisions.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsmarthomesvisions.com%2Fbuild-a-diy-smart-mirror-with-voice-control-for-under-300%2F&#038;format=xml" /> <style id="cky-style-inline">[data-cky-tag]{visibility:hidden;}</style><style> /* MOBILE - até 767px */ @media (max-width: 767px) { .swiper-benefits-pagination .swiper-pagination-bullet { background-color: #ffffff !important; opacity: 0.5; } .swiper-benefits-pagination .swiper-pagination-bullet-active { background-color: #ffffff !important; opacity: 1; } .footer-custom .footer-columns { display: flex; flex-direction: column; align-items: center; } .footer-custom .footer-logo-col { text-align: center; margin-bottom: 30px; } .footer-custom .footer-logo-col img { margin: 0 auto 15px; } .footer-custom .footer-logo-text { font-size: 14px; margin-bottom: 30px; } .footer-custom .footer-columns-group { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; width: 100%; padding: 0 12px; } .footer-custom .footer-columns-group .footer-col { min-width: 140px; max-width: 180px; text-align: center; flex: 1 1 45%; } .footer-custom .footer-col.transparency { width: 100%; max-width: 500px; text-align: center; } .footer-custom h4 { font-weight: bold; font-size: 18px; margin-bottom: 10px; } .footer-custom .footer-logo-text { margin-top: 10px; max-width: 320px; margin-left: auto; margin-right: auto; font-size: 14px; } .footer-custom .footer-menu { list-style: none; padding: 0; margin: 0; } .footer-custom .footer-menu li a { display: block; color: inherit; text-decoration: none; margin-bottom: 6px; } .footer-custom .footer-menu li a:hover { text-decoration: underline; } } /* DESKTOP */ @media (min-width: 768px) { .footer-custom h4 { font-weight: bold; font-size: 18px; margin-bottom: 10px; text-align: left; } .footer-custom .footer-logo-text { margin-top: 10px; max-width: 320px; margin-left: auto; margin-right: auto; font-size: 14px; text-align: center; } .footer-custom .footer-menu { list-style: none; padding: 0; margin: 0; } .footer-custom .footer-menu li a { display: block; color: inherit; text-decoration: none; margin-bottom: 6px; } .footer-custom .footer-menu li a:hover { text-decoration: underline; } .footer-custom .footer-columns { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; padding: 60px 0; flex-wrap: wrap; } .footer-custom .footer-logo-col { flex: 1 1 25%; } .footer-custom .footer-columns-group { display: flex; flex: 1 1 25%; justify-content: space-between; gap: 60px; } .footer-custom .footer-columns-group .footer-col { flex: 1; text-align: left; } .footer-custom .footer-col.transparency { flex: 1 1 25%; text-align: left; } } .home-posts-pagination-wrapper { text-align: center; margin-top: 30px; MARGIN: 0 AUTO; font-size: 17px; } .home-posts-pagination-wrapper .pagination { display: inline-flex; gap: 8px; } .home-posts-pagination-wrapper .page-numbers { display: inline-flex; align-items: center; justify-content: center; padding: 10px 16px; border: 1px solid #eee; border-radius: 8px; font-weight: 600; color: #111; text-decoration: none; transition: all 0.2s ease; } .home-posts-pagination-wrapper .page-numbers:hover { background-color: #f3f3f3; } .home-posts-pagination-wrapper .page-numbers.current { background-color: #f9f9f9; border: 2px solid #ccc; } .home-posts-title { color: #1a237e !important; } .home-posts-tag { color: #3949ab !important; } .institutional-home h2 { color: #1a237e !important; } .institutional-home p { color: #333333 !important; } .benefit-card { background-color: #ffffff !important; border-radius: 15px; padding: 20px; height: 100%; transition: transform 0.3s ease, box-shadow 0.3s ease; } .benefit-card:hover { transform: scale(1.03); box-shadow: 0 8px 24px rgba(0,0,0,0.12); } .benefit-card .card-title { color: #1a237e !important; font-weight: bold; display: flex; align-items: center; gap: 0px; margin-bottom: 5px; font-size: 18px; } .benefit-card .card-text { color: #333333 !important; font-size: 14px; } .benefits-block .benefits-title { color: #ffffff; font-size: 22px; text-align: center; margin-bottom: 40px; } .benefits-block .benefits-title strong { color: #c5cae9; } .header { background-color: #1a237e !important; } a.nav-link span { color: #ffffff !important; transition: color 0.3s ease; } a.nav-link:hover span { color: #7986cb !important; } .search-toggle { color: #ffffff !important; } .search-toggle:hover { color: #7986cb !important; } .fas.fa-search { color: #ffffff !important; } .search-toggle:hover .fas.fa-search { color: #7986cb !important; } .hero-home h1 { color: #1a237e !important; } .hero-home h1 b { color: #3949ab !important; } .hero-home p.lead { color: #333333 !important; } </style><style> .footer-custom { background-color: #1a237e !important; color: #ffffff !important; } .footer-custom a { color: #ffffff !important; } </style><meta name="author" content="Emily Correa"><style type="text/css">.broken_link, a.broken_link { text-decoration: line-through; }</style><link rel="icon" href="https://smarthomesvisions.com/wp-content/uploads/2025/06/cropped-media-7-32x32.png" sizes="32x32" /> <link rel="icon" href="https://smarthomesvisions.com/wp-content/uploads/2025/06/cropped-media-7-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://smarthomesvisions.com/wp-content/uploads/2025/06/cropped-media-7-180x180.png" /> <meta name="msapplication-TileImage" content="https://smarthomesvisions.com/wp-content/uploads/2025/06/cropped-media-7-270x270.png" /> <style type="text/css" id="wp-custom-css"> .pp-author-boxes-meta { display: none !important; } .cta-robo-seo { background-color: #4CAF50; /* Cor verde padrão */ color: white!important; padding: 20px 30px; border: none; border-radius: 5px; text-align: center; text-decoration: none; display: inline-block; font-size: 25px; cursor: pointer; transition: background-color 0.3s ease, box-shadow 0.3s ease; } .cta-robo-seo:hover { background-color: #45a049; /* Cor verde mais escura no hover */ box-shadow: 0px 0px 10px rgba(0, 128, 0, 0.5); /* Sombra verde suave */ } /* esconder imagem de capa dentro da pagina do post*/ .card-preview.mt-8 { display: none; } /* corrigir espaçamento dos videos nos posts*/ iframe[src*="youtube.com"] { width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; } </style> <!-- Google Tag Manager --> <!-- End Google Tag Manager --> <!-- Google tag (gtag.js) --> <!-- end Google tag (gtag.js) --> <style> :root { --header-bg-color: #1a237e; --menu-color: #ffffff; --menu-hover-color: #f0f0f0; } .header { background-color: #1a237e; } </style> <script src="https://smarthomesvisions.com/wp-content/themes/ddmp-theme/js/faq.js?ver=1752004562"></script> </head> <body class="wp-singular post-template-default single single-post postid-778 single-format-standard wp-theme-ddmp-theme"> <!-- Google Tag Manager (noscript) --> <!-- End Google Tag Manager (noscript) --> <div class="page"> <!-- BEGIN header --> <header class="header"> <div class="container"> <nav class="navbar navbar-expand-lg justify-content-between position-relative"> <div class="navbar-brand"> <a class="navbar-logo" href="https://smarthomesvisions.com"> <img class="navbar-pic" src="https://smarthomesvisions.com/wp-content/uploads/2025/06/smart-homes-visions.png" width="160" alt="SMART HOMES VISIONS"> </a> </div> <div class="d-flex align-items-center"> <!-- Botão hamburguer --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarDropdown" aria-controls="navbarDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <!-- Lupa no mobile --> <div class="search-container d-lg-none ml-2"> <button class="search-toggle"> <i class="fas fa-search"></i> </button> <form class="search-form" role="search" method="get" action="https://smarthomesvisions.com/"> <input type="search" name="s" class="search-input" placeholder="Search..." aria-label="Search"> <button type="submit" class="search-submit"><i class="fas fa-arrow-right"></i></button> </form> </div> </div> <!-- Menu colapsável --> <div class="collapse navbar-collapse" id="navbarDropdown"> <ul id="menu-menu-principal" class="navbar-nav" itemscope itemtype="http://www.schema.org/SiteNavigationElement"><li id="menu-item-599" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-599 nav-item"><a itemprop="url" href="https://smarthomesvisions.com/category/energy-efficiency/" class="nav-link"><span itemprop="name">Energy Efficiency</span></a></li> <li id="menu-item-600" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-600 nav-item"><a itemprop="url" href="https://smarthomesvisions.com/category/home-automation/" class="nav-link"><span itemprop="name">Home Automation</span></a></li> <li id="menu-item-601" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent active menu-item-601 nav-item"><a itemprop="url" href="https://smarthomesvisions.com/category/smart-home-diy/" class="nav-link"><span itemprop="name">Smart Home DIY</span></a></li> <li id="menu-item-602" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-602 nav-item"><a itemprop="url" href="https://smarthomesvisions.com/category/smart-home-reviews/" class="nav-link"><span itemprop="name">Smart Home Reviews</span></a></li> </ul> <div class="header-article">Build a DIY Smart Mirror with Voice Control for Under $300</div> <div class="share"> <div class="share-title">If this content was useful, please <strong>share it</strong></div> <div class="share-list"> <a href="#" class="share-btn share-twitter btn"> <img class="share-icon" src="https://smarthomesvisions.com/wp-content/themes/ddmp-theme/img/icon-twitter-white.svg" alt="Share on Twitter"> <span class="share-label">Share on Twitter</span> </a> <a href="#" class="share-btn share-facebook btn"> <img class="share-icon" src="https://smarthomesvisions.com/wp-content/themes/ddmp-theme/img/icon-facebook-white.svg" alt="Share on Facebook"> <span class="share-label">Share on Facebook</span> </a> </div> </div> </div> <!-- Lupa no desktop --> <div class="search-container d-none d-lg-flex ml-auto"> <button class="search-toggle"> <i class="fas fa-search"></i> </button> <form class="search-form" role="search" method="get" action="https://smarthomesvisions.com/"> <input type="search" name="s" class="search-input" placeholder="Search..." aria-label="Search"> <button type="submit" class="search-submit"><i class="fas fa-arrow-right"></i></button> </form> </div> </nav> </div> <div class="indicator"> <div class="indicator-position js-indicator-position"></div> </div> </header> <!-- END header --> <!-- BEGIN inner --> <div class="inner"> <article id="post-778" class="post-778 post type-post status-publish format-standard has-post-thumbnail hentry category-smart-home-diy"> <div class="container"> <div class="row"> <div class="col-md-8 col-lg-8 mx-auto"> <div class="section section-featured js-section-featured"> <div class="card card-featured card-top m-0"> <div class="card-body"> <h1 class="card-title">Build a DIY Smart Mirror with Voice Control for Under $300</h1> <div class="card-text"></div> <div class="card-author"> <p>By: <b>Emily Correa</b> on July 8, 2025 </p> </div> </div> <div class="card-preview mt-8"> <img class="card-pic" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752007788_445a42bf_cover.jpg" alt="Build a DIY Smart Mirror with Voice Control for Under $300" /> </div> </div> </div> <div class="section section-content"> <div class="center"> <div class="content"> <p class="summarization"><strong>Building a DIY smart mirror with voice control for under $300</strong> involves repurposing a monitor, applying a two-way mirror film, integrating a Raspberry Pi for processing, and utilizing voice assistant APIs for seamless interaction.</p> <p> <!-- Título Principal SEO: Create a Talking Mirror: DIY Smart Mirror Under $300 --></p> <p>Want to upgrade your bathroom or bedroom with a futuristic gadget? You can <strong>build a DIY smart mirror with voice control for under $300</strong>. This guide walks you through the process, making it accessible even if you&#8217;re not a tech expert.</p> <p></p> <h2>What is a Smart Mirror and Why Build One?</h2> <p>A smart mirror, at its core, is a reflective surface that also displays information. Think of it as a regular mirror combined with a computer screen showing you the weather, news, calendar events, and much more.</p> <p></p> <p>Why go through the trouble of building one yourself? Besides the sheer fun of it, a DIY smart mirror offers several advantages:</p> <p></p> <ul> <li><strong>Customization:</strong> You decide what information to display and how it&#8217;s presented.</li> <li><strong>Cost-Effectiveness:</strong> Pre-built smart mirrors can be expensive. DIYing saves you a significant amount of money.</li> <li><strong>Learning Experience:</strong> You&#8217;ll gain valuable skills in electronics, programming, and DIY projects.</li> </ul> <p><img decoding="async" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752007788_445a42bf_internal_1.jpg" alt="A Raspberry Pi 4 next to a power adapter and MicroSD card, all laying on an anti-static mat. The Pi is clearly labeled with its various ports." class="aligncenter size-large"/></p> <p>Building your own smart mirror allows you to learn about the technology firsthand and create a device perfectly tailored to your needs and budget.</p> <p></p> <h2>Gathering Your Materials: The Shopping List</h2> <p>Before diving into the build, you&#8217;ll need to gather all the necessary components. Here&#8217;s a breakdown of what you&#8217;ll need and estimated costs:</p> <p></p> <h3>Essential Components:</h3> <ul> <li><strong>Two-Way Mirror:</strong> The reflective surface that allows the display to shine through.</li> <li><strong>Monitor:</strong> A used monitor with preferably a thin bezel to display the information.</li> <li><strong>Raspberry Pi:</strong> A microcomputer that powers the smart mirror and runs the software.</li> <li><strong>HDMI Cable:</strong> To connect the Raspberry Pi to the monitor.</li> <li><strong>Power Supply:</strong> For both the monitor and the Raspberry Pi.</li> <li><strong>Frame:</strong> To house the mirror and monitor.</li> </ul> <h3>Voice Control Add-ons:</h3> <ul> <li><strong>Microphone:</strong> To capture your voice commands. A USB microphone works well.</li> <li><strong>Speaker:</strong> To provide feedback and respond to your voice commands.</li> </ul> <h3>Tools and Consumables:</h3> <ul> <li><strong>Wood for Frame</strong></li> <li><strong>Screws and Fasteners</strong></li> <li><strong>Adhesive or Mounting Tape</strong></li> <li><strong>Basic Tools:</strong> Screwdriver, drill, saw (if building a custom frame).</li> </ul> <p>Careful planning and procurement ensure smooth execution of the project.</p> <p></p> <h2>Preparing the Monitor and Mirror</h2> <p>The first step is modifying the monitor and preparing the two-way mirror. This involves disassembling the monitor and carefully applying the mirror film.</p> <p></p> <h3>Disassembling the Monitor:</h3> <p>Carefully take apart the monitor to remove the outer casing, ensuring that you do not damage the LCD panel. It&#8217;s helpful to watch a video of the disassembling process.</p> <p></p> <h3>Cleaning and Applying the Two-Way Mirror Film:</h3> <ul> <li><strong>Clean the Mirror:</strong> Thoroughly clean the glass to remove any dust or fingerprints.</li> <li><strong>Prepare the Film:</strong> Cut the film slightly larger than the glass surface.</li> <li><strong>Apply the Film:</strong> Carefully apply the film, working from one edge to the other to avoid trapping air bubbles.</li> </ul> <p>Applying the two-way mirror film might seem daunting, but with patience it can be a straightforward and satisfying experience.</p> <p></p> <div class="video-container" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin-bottom: 20px;"> <iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" width="560" height="315" src="https://www.youtube.com/embed/7BZaqIxaloE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen><br /> </iframe> </div> <h2>Setting Up the Raspberry Pi</h2> <p>The Raspberry Pi is the brain of your smart mirror. Setting it up involves installing the operating system and configuring the necessary software.</p> <p></p> <h3>Installing the Operating System:</h3> <p>Download the Raspberry Pi OS (formerly Raspbian) and the Raspberry Pi Imager software. Use the imager to flash the OS onto a micro SD card.</p> <p></p> <h3>Configuring the Software:</h3> <ul> <li><strong>Update the System:</strong> After booting up, update the system using the terminal `sudo apt update` and `sudo apt upgrade`.</li> <li><strong>Install MagicMirror²:</strong> This open-source modular smart mirror platform is the most used for this project.</li> <li><strong>Configure Modules:</strong> Customize the modules to display the information you want such as weather, news, and calendar events.</li> </ul> <p>Configuring the Raspberry Pi might seem complicated at first, but following the official Raspberry Pi documentation helps.</p> <p></p> <h2>Integrating Voice Control</h2> <p>Adding voice control elevates your smart mirror from a simple display to an interactive assistant. This involves setting up a voice assistant like Google Assistant or Amazon Alexa on your Raspberry Pi.</p> <p></p> <h3>Setting Up Google Assistant:</h3> <p>Follow Google&#8217;s official documentation to install the Google Assistant SDK on your Raspberry Pi. Once installed, you&#8217;ll need to authenticate your device with your Google account. </p> <p></p> <h3>Writing Voice Control Scripts:</h3> <p>Create scripts to respond to voice commands. For example, you can write a script to display the current weather or add an event to your calendar using voice commands.</p> <p> <img decoding="async" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752007788_445a42bf_internal_2.jpg" alt="A person speaking to the mirror. The mirror displays a microphone icon, indicating that the voice recognition is active." class="aligncenter size-large"/></p> <p>Integrating voice control transforms your smart mirror from a passive display into an active, responsive component of your smart home.</p> <p></p> <h2>Building the Frame and Assembling the Mirror</h2> <p>The final step is constructing a frame to house the monitor and mirror, and then assembling all the components into a single unit.</p> <p></p> <h3>Designing the Frame:</h3> <p>Measure the dimensions of the mirror and plan the frame accordingly. Choose a design that complements your home decor. Consider using wood or aluminum for the frame.</p> <p></p> <h3>Assembling the Components:</h3> <p>Mount the monitor and mirror into the frame. Secure them with screws or adhesive. Connect the Raspberry Pi to the monitor via HDMI. Connect the power supplies, microphone, and speaker.</p> <p></p> <ul> <li><strong>Power Management:</strong> Hide cables and power supplies.</li> <li><strong>Testing:</strong> Power on the mirror and verify that everything functions correctly.</li> </ul> <p>Assembling the frame and components finalizes your DIY smart mirror, bringing together all the hard work into a functional decor piece.</p> <p></p> <p>The meticulous assembly ensures that your smart mirror will function seamlessly and look good for years to come.</p> <p> <!-- Início da área da tabela minimalista --></p> <div style="text-align: center; margin-bottom: 20px; margin-top: 20px;"> <!-- Tabela principal --></p> <table style="border-collapse: collapse; margin: 0 auto; display: inline-table; border: 1px solid #000000; font-family: Arial, sans-serif; font-size: 14px;"> <!-- Cabeçalho da Tabela --></p> <thead> <tr style="background-color: #000000; color: white;"> <th style="text-align: center; width: 30%; border: 1px solid #000000; padding: 8px;">Key Point</th> <th style="border: 1px solid #000000; padding: 8px; text-align: center;">Brief Description</th> </tr> </thead> <p> <!-- Corpo da Tabela --></p> <tbody> <!-- Linha 1 --></p> <tr style="border-bottom: 1px solid #000000; background-color: #f9f9f9;"> <td style="font-weight: bold; text-align: center; border: 1px solid #000000; padding: 8px;">🛠️ Monitor Disassembly</td> <td style="border: 1px solid #000000; padding: 8px;">Remove the monitor&#8217;s casing carefully to access the LCD panel.</td> </tr> <p> <!-- Linha 2 --></p> <tr style="border-bottom: 1px solid #000000;"> <td style="font-weight: bold; text-align: center; border: 1px solid #000000; padding: 8px;">💿 Raspberry Pi Setup</td> <td style="border: 1px solid #000000; padding: 8px;">Install the OS, download and configure MagicMirror² for display customization.</td> </tr> <p> <!-- Linha 3 --></p> <tr style="border-bottom: 1px solid #000000; background-color: #f9f9f9;"> <td style="font-weight: bold; text-align: center; border: 1px solid #000000; padding: 8px;">🎤 Voice Control Integration</td> <td style="border: 1px solid #000000; padding: 8px;">Set up Google Assistant on Raspberry Pi and create voice command scripts.</td> </tr> <p> <!-- Linha 4 (Opcional, se necessário para o tópico 'Build a DIY Smart Mirror with Voice Control for Under $300') --></p> <tr style="background-color: #ffffff;"> <td style="font-weight: bold; text-align: center; border: 1px solid #000000; padding: 8px;">🖼️ Frame Assembly</td> <td style="border: 1px solid #000000; padding: 8px;">Design and build a frame to house the mirror and monitor.</td> </tr> </tbody> </table> </div> <p><!-- Fim da tabela minimalista --></p> <h2>FAQ</h2> <p><!-- FAQ Item 1 --></p> <div class="faq-item"> <div class="faq-question">What is the most important component for this project?<br /> <span class="arrow">▼</span></div> <div id="faq-answer-1" class="faq-answer"> <p>The two-way mirror film is arguably the most critical; it enables the display to be visible while maintaining a reflective surface. Choose a high-quality film for best results.</p> </div> </div> <p><!-- FAQ Item 2 --></p> <div class="faq-item"> <div class="faq-question">Can I use any monitor for this project?<br /> <span class="arrow">▼</span></div> <div id="faq-answer-2" class="faq-answer"> <p>While most monitors will work, a slim bezel monitor is preferred. This helps to hide the edges of the display for a more seamless, mirror-like appearance once assembled.</p> </div> </div> <p><!-- FAQ Item 3 --></p> <div class="faq-item"> <div class="faq-question">What programming experience is needed to create voice control?<br /> <span class="arrow">▼</span></div> <div id="faq-answer-3" class="faq-answer"> <p>Basic knowledge of Python or similar scripting languages is helpful, especially for customizing voice control scripts. However, many guides and tutorials are available to simplify the process.</p> </div> </div> <p><!-- FAQ Item 4 --></p> <div class="faq-item"> <div class="faq-question">How often do I need to update the software on the Raspberry Pi?<br /> <span class="arrow">▼</span></div> <div id="faq-answer-4" class="faq-answer"> <p>It&#8217;s a good practice to update the system and MagicMirror² modules regularly – at least monthly. This ensures security and access to the latest features and improvements.</p> </div> </div> <p><!-- FAQ Item 5 --></p> <div class="faq-item"> <div class="faq-question">What are the security risks associated with having a smart mirror?<br /> <span class="arrow">▼</span></div> <div id="faq-answer-5" class="faq-answer"> <p>Security risks include potential access to your personal data through interconnected accounts or unsecured network connections. Use strong passwords and keep your software updated to mitigate these risks.</p> </div> </div> <h2>Conclusion</h2> <p>Building your own DIY smart mirror with voice control for under $300 offers a great way to personalize your home and learn about technology. From preparing the components to assembling the final product, each step provides a unique learning experience and a fantastic smart home addition.</p> <p><!-- Início da área do botão --></p> <div style="text-align: center;"><a href="/category/smart-home-diy" style="background-color: #000000; color: white; border: 1px solid #000000; cursor: pointer; padding: 8px 16px; border-radius: 8px; display: inline-block; margin: 0 auto; text-align: center; white-space: nowrap; transition: background-color 0.3s ease; text-decoration: none;">Read more content</a></div> <p><!-- Fim da área do botão --></p> </div> </div> </div> <div class="author-bio-section"> <div class="author-avatar"> <img alt='' src='https://secure.gravatar.com/avatar/0c41178f1747957ea608c344f8b50b0c200f2e5fd06488356d8e998ef2c263ec?s=80&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/0c41178f1747957ea608c344f8b50b0c200f2e5fd06488356d8e998ef2c263ec?s=160&#038;d=mm&#038;r=g 2x' class='avatar avatar-80 photo' height='80' width='80' decoding='async'/> </div> <div class="author-info"> <h3 class="author-name">Emily Correa</h3> <p class="author-description">Emilly Correa has a degree in journalism and a postgraduate degree in Digital Marketing, specializing in Content Production for Social Media. With experience in copywriting and blog management, she combines her passion for writing with digital engagement strategies. She has worked in communications agencies and now dedicates herself to producing informative articles and trend analyses.</p> </div> </div> </div> </div> </div> <div class="section section-more"> <div class="container"> <div class="crp_related "><div class="row"><div class="col-6 col-md-6 col-lg-4 card"><a href="https://smarthomesvisions.com/smart-window-film-how-much-can-it-save-on-energy-bills-in-2025/" class="crp_link post-1016"><figure><img width="360" height="180" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_22_1752083188_54d05685_cover-360x180.jpg" class="crp_featured crp_thumb thumb-list" alt="Smart Window Film: How Much Can It Save On Energy Bills in 2025? - Cover Image" style="" title="Smart Window Film: How Much Can It Save On Energy Bills in 2025?" decoding="async" fetchpriority="high" /></figure><span class="crp_title">Smart Window Film: How Much Can It Save On Energy&hellip;</span></a></div><div class="col-6 col-md-6 col-lg-4 card"><a href="https://smarthomesvisions.com/smart-window-film-energy-bill-savings-in-2025-for-us-homes/" class="crp_link post-1087"><figure><img width="360" height="180" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_22_1752084086_c0d3e155_cover-360x180.jpg" class="crp_featured crp_thumb thumb-list" alt="Smart Window Film: Energy Bill Savings in 2025 for US Homes - Cover Image" style="" title="Smart Window Film: Energy Bill Savings in 2025 for US Homes" decoding="async" loading="lazy" /></figure><span class="crp_title">Smart Window Film: Energy Bill Savings in 2025 for US Homes</span></a></div><div class="col-6 col-md-6 col-lg-4 card"><a href="https://smarthomesvisions.com/diy-smart-home-voice-assistant-custom-commands-actions/" class="crp_link post-814"><figure><img width="360" height="180" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752008292_fca896d9_cover-360x180.jpg" class="crp_featured crp_thumb thumb-list" alt="DIY Smart Home Voice Assistant: Custom Commands &amp; Actions - Cover Image" style="" title="DIY Smart Home Voice Assistant: Custom Commands &amp; Actions" decoding="async" loading="lazy" /></figure><span class="crp_title">DIY Smart Home Voice Assistant: Custom Commands & Actions</span></a></div><div class="col-6 col-md-6 col-lg-4 card"><a href="https://smarthomesvisions.com/diy-smart-home-hub-build-your-own-centralized-control-system/" class="crp_link post-818"><figure><img width="360" height="180" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752008053_502e633a_cover-360x180.jpg" class="crp_featured crp_thumb thumb-list" alt="DIY Smart Home Hub: Build Your Own Centralized Control System - Cover Image" style="" title="DIY Smart Home Hub: Build Your Own Centralized Control System" decoding="async" loading="lazy" /></figure><span class="crp_title">DIY Smart Home Hub: Build Your Own Centralized&hellip;</span></a></div><div class="col-6 col-md-6 col-lg-4 card"><a href="https://smarthomesvisions.com/unlock-hands-free-control-your-smart-home-voice-command-guide/" class="crp_link post-607"><figure><img width="360" height="180" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_24_1752004654_5547e833_cover-360x180.jpg" class="crp_featured crp_thumb thumb-list" alt="Unlock Hands-Free Control: Your Smart Home Voice Command Guide - Cover Image" style="" title="Unlock Hands-Free Control: Your Smart Home Voice Command Guide" decoding="async" loading="lazy" /></figure><span class="crp_title">Unlock Hands-Free Control: Your Smart Home Voice&hellip;</span></a></div><div class="col-6 col-md-6 col-lg-4 card"><a href="https://smarthomesvisions.com/diy-smart-energy-monitoring-reduce-consumption-by-10/" class="crp_link post-822"><figure><img width="360" height="180" src="https://smarthomesvisions.com/wp-content/uploads/2025/07/smarthomesvisions.com_21_1752008390_9c08213c_cover-360x180.jpg" class="crp_featured crp_thumb thumb-list" alt="DIY Smart Energy Monitoring: Reduce Consumption by 10% - Cover Image" style="" title="DIY Smart Energy Monitoring: Reduce Consumption by 10%" decoding="async" loading="lazy" /></figure><span class="crp_title">DIY Smart Energy Monitoring: Reduce Consumption by 10%</span></a></div></div><div class="crp_clear"></div></div> </div> </div> </article> </div> <!-- END inner --> <script src="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.js"></script> <script> document.addEventListener('DOMContentLoaded', function () { const swiperBenefits = new Swiper('.benefits-swiper', { loop: false, spaceBetween: 16, pagination: { el: '.swiper-benefits-pagination', clickable: true }, breakpoints: { 0: { slidesPerView: 1 }, 768: { slidesPerView: 3 }, 1024: { slidesPerView: 5 } } }); }); </script> <script> document.addEventListener('DOMContentLoaded', function () { const postSwiper = new Swiper('.home-posts-mobile', { loop: false, spaceBetween: 30, slidesPerView: 1, centeredSlides: true, initialSlide: 0, autoHeight: false, pagination: { el: '.home-posts-mobile .swiper-pagination', clickable: true }, navigation: { nextEl: '.home-posts-mobile .swiper-button-next', prevEl: '.home-posts-mobile .swiper-button-prev', }, breakpoints: { 480: { slidesPerView: 1, }, 640: { slidesPerView: 1, }, 768: { slidesPerView: 1, } } }); }); </script> <script> document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('.search-toggle').forEach(function (toggle) { toggle.addEventListener('click', function (e) { const container = toggle.closest('.search-container'); container.classList.toggle('open'); e.stopPropagation(); }); }); document.addEventListener('click', function (e) { document.querySelectorAll('.search-container.open').forEach(function (container) { if (!container.contains(e.target)) { container.classList.remove('open'); } }); }); }); </script> <footer class="footer-custom" style="background-color: #1a237e; color: #ffffff;"> <div class="container"> <div class="footer-columns" style="padding: 60px 0;"> <!-- Logo + texto --> <div class="footer-logo-col" style="text-align: center; margin-bottom: 30px;"> <img src="https://smarthomesvisions.com/wp-content/uploads/2025/06/smart-homes-visions.png" alt="Logo" width="180" style="margin: 0 auto 20px;"> </div> <!-- Grupo de colunas --> <div class="footer-columns-group"> <div class="footer-col"> <h4>Company</h4> <ul id="menu-menu-principal-1" class="footer-menu" itemscope itemtype="http://www.schema.org/SiteNavigationElement"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-599"><a href="https://smarthomesvisions.com/category/energy-efficiency/">Energy Efficiency</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-600"><a href="https://smarthomesvisions.com/category/home-automation/">Home Automation</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-601"><a href="https://smarthomesvisions.com/category/smart-home-diy/">Smart Home DIY</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-602"><a href="https://smarthomesvisions.com/category/smart-home-reviews/">Smart Home Reviews</a></li> </ul> </div> <div class="footer-col"> <h4>Legal</h4> <ul id="menu-menu-rodape" class="footer-menu" itemscope itemtype="http://www.schema.org/SiteNavigationElement"><li id="menu-item-587" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-587"><a href="https://smarthomesvisions.com/about-us/">About Us</a></li> <li id="menu-item-588" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-588"><a href="https://smarthomesvisions.com/contact/">Contact</a></li> <li id="menu-item-589" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-589"><a href="https://smarthomesvisions.com/privacy-policy/">Privacy Policy</a></li> <li id="menu-item-591" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-591"><a href="https://smarthomesvisions.com/terms-and-conditions/">Terms and Conditions</a></li> </ul> </div> </div> <!-- Coluna de Transparência --> <div class="footer-col transparency"> <h4>Disclaimer</h4> <p>The information provided on smarthomesvisions.com is for informational purposes only. We make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability, or availability of the information. Any reliance you place on such information is strictly at your own risk. We are not liable for any loss or damage arising from your use of this website.</p> </div> </div> </div> <!-- Linha separadora de tela cheia --> <div style="width: 100%; border-top: 1px solid #283593;"></div> <!-- Container final de copyright --> <div style="width: 100%; background-color: #0d1c73; padding: 12px 0; color: #ffffff; text-align: center;"> <div class="container"> <p style="font-size: 12px; margin: 0;">© 2025 smarthomesvisions.com. All rights reserved.</p> <p style="font-size: 11px; margin: 5px 0 0 0; opacity: 0.8;"></p> </div> </div> </footer> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/ddmp-theme\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="ckyBannerTemplate" type="text/template"><div class="cky-overlay cky-hide"></div><div class="cky-btn-revisit-wrapper cky-revisit-hide" data-cky-tag="revisit-consent" data-tooltip="Consent Preferences" style="background-color:#0056A7"> <button class="cky-btn-revisit" aria-label="Consent Preferences"> <img src="https://smarthomesvisions.com/wp-content/plugins/cookie-law-info/lite/frontend/images/revisit.svg" alt="Revisit consent button"> </button></div><div class="cky-consent-container cky-hide" tabindex="0"> <div class="cky-consent-bar" data-cky-tag="notice" style="background-color:#FFFFFF;border-color:#F4F4F4"> <div class="cky-notice"> <p class="cky-title" role="heading" aria-level="1" data-cky-tag="title" style="color:#212121">We value your privacy</p><div class="cky-notice-group"> <div class="cky-notice-des" data-cky-tag="description" style="color:#212121"> <p>We use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking "Accept All", you consent to our use of cookies.</p> </div><div class="cky-notice-btn-wrapper" data-cky-tag="notice-buttons"> <button class="cky-btn cky-btn-customize" aria-label="Customise" data-cky-tag="settings-button" style="color:#1863DC;background-color:transparent;border-color:#1863DC">Customise</button> <button class="cky-btn cky-btn-reject" aria-label="Reject All" data-cky-tag="reject-button" style="color:#1863DC;background-color:transparent;border-color:#1863DC">Reject All</button> <button class="cky-btn cky-btn-accept" aria-label="Accept All" data-cky-tag="accept-button" style="color:#FFFFFF;background-color:#1863DC;border-color:#1863DC">Accept All</button> </div></div></div></div></div><div class="cky-modal" tabindex="0"> <div class="cky-preference-center" data-cky-tag="detail" style="color:#212121;background-color:#FFFFFF;border-color:#F4F4F4"> <div class="cky-preference-header"> <span class="cky-preference-title" role="heading" aria-level="1" data-cky-tag="detail-title" style="color:#212121">Customise Consent Preferences</span> <button class="cky-btn-close" aria-label="[cky_preference_close_label]" data-cky-tag="detail-close"> <img src="https://smarthomesvisions.com/wp-content/plugins/cookie-law-info/lite/frontend/images/close.svg" alt="Close"> </button> </div><div class="cky-preference-body-wrapper"> <div class="cky-preference-content-wrapper" data-cky-tag="detail-description" style="color:#212121"> <p>We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.</p><p>The cookies that are categorised as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. </p><p>We also use third-party cookies that help us analyse how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.</p><p>You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.</p> </div><div class="cky-accordion-wrapper" data-cky-tag="detail-categories"> <div class="cky-accordion" id="ckyDetailCategorynecessary"> <div class="cky-accordion-item"> <div class="cky-accordion-chevron"><i class="cky-chevron-right"></i></div> <div class="cky-accordion-header-wrapper"> <div class="cky-accordion-header"><button class="cky-accordion-btn" aria-label="Necessary" data-cky-tag="detail-category-title" style="color:#212121">Necessary</button><span class="cky-always-active">Always Active</span> <div class="cky-switch" data-cky-tag="detail-category-toggle"><input type="checkbox" id="ckySwitchnecessary"></div> </div> <div class="cky-accordion-header-des" data-cky-tag="detail-category-description" style="color:#212121"> <p>Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.</p></div> </div> </div> <div class="cky-accordion-body"> <div class="cky-audit-table" data-cky-tag="audit-table" style="color:#212121;background-color:#f4f4f4;border-color:#ebebeb"><p class="cky-empty-cookies-text">No cookies to display.</p></div> </div> </div><div class="cky-accordion" id="ckyDetailCategoryfunctional"> <div class="cky-accordion-item"> <div class="cky-accordion-chevron"><i class="cky-chevron-right"></i></div> <div class="cky-accordion-header-wrapper"> <div class="cky-accordion-header"><button class="cky-accordion-btn" aria-label="Functional" data-cky-tag="detail-category-title" style="color:#212121">Functional</button><span class="cky-always-active">Always Active</span> <div class="cky-switch" data-cky-tag="detail-category-toggle"><input type="checkbox" id="ckySwitchfunctional"></div> </div> <div class="cky-accordion-header-des" data-cky-tag="detail-category-description" style="color:#212121"> <p>Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.</p></div> </div> </div> <div class="cky-accordion-body"> <div class="cky-audit-table" data-cky-tag="audit-table" style="color:#212121;background-color:#f4f4f4;border-color:#ebebeb"><p class="cky-empty-cookies-text">No cookies to display.</p></div> </div> </div><div class="cky-accordion" id="ckyDetailCategoryanalytics"> <div class="cky-accordion-item"> <div class="cky-accordion-chevron"><i class="cky-chevron-right"></i></div> <div class="cky-accordion-header-wrapper"> <div class="cky-accordion-header"><button class="cky-accordion-btn" aria-label="Analytics" data-cky-tag="detail-category-title" style="color:#212121">Analytics</button><span class="cky-always-active">Always Active</span> <div class="cky-switch" data-cky-tag="detail-category-toggle"><input type="checkbox" id="ckySwitchanalytics"></div> </div> <div class="cky-accordion-header-des" data-cky-tag="detail-category-description" style="color:#212121"> <p>Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.</p></div> </div> </div> <div class="cky-accordion-body"> <div class="cky-audit-table" data-cky-tag="audit-table" style="color:#212121;background-color:#f4f4f4;border-color:#ebebeb"><p class="cky-empty-cookies-text">No cookies to display.</p></div> </div> </div><div class="cky-accordion" id="ckyDetailCategoryperformance"> <div class="cky-accordion-item"> <div class="cky-accordion-chevron"><i class="cky-chevron-right"></i></div> <div class="cky-accordion-header-wrapper"> <div class="cky-accordion-header"><button class="cky-accordion-btn" aria-label="Performance" data-cky-tag="detail-category-title" style="color:#212121">Performance</button><span class="cky-always-active">Always Active</span> <div class="cky-switch" data-cky-tag="detail-category-toggle"><input type="checkbox" id="ckySwitchperformance"></div> </div> <div class="cky-accordion-header-des" data-cky-tag="detail-category-description" style="color:#212121"> <p>Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.</p></div> </div> </div> <div class="cky-accordion-body"> <div class="cky-audit-table" data-cky-tag="audit-table" style="color:#212121;background-color:#f4f4f4;border-color:#ebebeb"><p class="cky-empty-cookies-text">No cookies to display.</p></div> </div> </div><div class="cky-accordion" id="ckyDetailCategoryadvertisement"> <div class="cky-accordion-item"> <div class="cky-accordion-chevron"><i class="cky-chevron-right"></i></div> <div class="cky-accordion-header-wrapper"> <div class="cky-accordion-header"><button class="cky-accordion-btn" aria-label="Advertisement" data-cky-tag="detail-category-title" style="color:#212121">Advertisement</button><span class="cky-always-active">Always Active</span> <div class="cky-switch" data-cky-tag="detail-category-toggle"><input type="checkbox" id="ckySwitchadvertisement"></div> </div> <div class="cky-accordion-header-des" data-cky-tag="detail-category-description" style="color:#212121"> <p>Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.</p></div> </div> </div> <div class="cky-accordion-body"> <div class="cky-audit-table" data-cky-tag="audit-table" style="color:#212121;background-color:#f4f4f4;border-color:#ebebeb"><p class="cky-empty-cookies-text">No cookies to display.</p></div> </div> </div> </div></div><div class="cky-footer-wrapper"> <span class="cky-footer-shadow"></span> <div class="cky-prefrence-btn-wrapper" data-cky-tag="detail-buttons"> <button class="cky-btn cky-btn-reject" aria-label="Reject All" data-cky-tag="detail-reject-button" style="color:#1863DC;background-color:transparent;border-color:#1863DC"> Reject All </button> <button class="cky-btn cky-btn-preferences" aria-label="Save My Preferences" data-cky-tag="detail-save-button" style="color:#1863DC;background-color:transparent;border-color:#1863DC"> Save My Preferences </button> <button class="cky-btn cky-btn-accept" aria-label="Accept All" data-cky-tag="detail-accept-button" style="color:#ffffff;background-color:#1863DC;border-color:#1863DC"> Accept All </button> </div></div></div></div></script><script type="text/javascript" src="https://smarthomesvisions.com/wp-content/themes/ddmp-theme/js/search-toggle.js?ver=1752004562" id="search-toggle-js"></script> </body> </html>