<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>simplyexplained.com</title>
    <description>Personal blog of Xavier Decuyper. In-depth, technical blog posts, and Simply Explained videos.</description>
    <link>https://simplyexplained.com</link>
    <image>
      <url>https://simplyexplained.com/assets/img/logo-rounded.svg</url>
      <title>simplyexplained.com</title>
      <link>https://simplyexplained.com</link>
    </image>

    <lastBuildDate>Wed, 12 Jan 2022 09:43:16 GMT</lastBuildDate>
    <atom:link href="https://simplyexplained.com/rss.xml" rel="self" type="application/rss+xml" />

    <item>
            <title><![CDATA[Converting a Tuya Thermostat to ESPHome]]></title>
            <link>https://simplyexplained.com/blog/converting-tuya-thermostat-to-esphome/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/converting-tuya-thermostat-to-esphome/</guid>
            <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Smart Home]]></category>
                    <category><![CDATA[Tuya]]></category>
                    <category><![CDATA[BK7231N]]></category><media:content url="https://simplyexplained.com/uploads/2026-03-converting-tuya-thermostat-to-esphome/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I bought a cheap Chinese thermostat to control an infrared heating panel in my office. It ticked all the boxes except one: it's a Tuya device which requires a cloud connection. That's a big no-no for me. So I ripped it apart, soldered some leads onto the PCB and flashed ESPHome onto it. Here's how that went.
                    
                        <img src="https://simplyexplained.com/uploads/2026-03-converting-tuya-thermostat-to-esphome//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Bringing Foam Monsters to Life: How I Wrote and Illustrated a Children's Book Using AI]]></title>
            <link>https://simplyexplained.com/blog/how-i-wrote-and-illustrated-a-childrens-book-using-ai/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/how-i-wrote-and-illustrated-a-childrens-book-using-ai/</guid>
            <pubDate>Wed, 12 Feb 2025 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Parenting]]></category><media:content url="https://simplyexplained.com/uploads/2025-02-how-i-wrote-childrens-book-with-ai/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I've always wanted to write a book. It's been on my bucket list for several years, but I never got around to it. Last summer I had a revelation: my kids love being read to, so why don't I write a story for them?

Here's how I approached writing a children's book and how I used AI to illustrate it.
                    
                        <img src="https://simplyexplained.com/uploads/2025-02-how-i-wrote-childrens-book-with-ai//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[How I Built an NFC Movie Library for my Kids]]></title>
            <link>https://simplyexplained.com/blog/how-i-built-an-nfc-movie-library-for-my-kids/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/how-i-built-an-nfc-movie-library-for-my-kids/</guid>
            <pubDate>Tue, 14 Nov 2023 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Plex]]></category>
                    <category><![CDATA[NFC]]></category>
                    <category><![CDATA[Parenting]]></category><media:content url="https://simplyexplained.com/uploads/2023-11-how-i-built-nfc-movie-library-for-my-kids/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    When I was a kid, my sister and I had a tower of VHS tapes we watched endlessly. Fast-forward to today, and my children's movie collection is vastly different. It's completely digital and dispersed across services. I wanted to recreate the tangible magic of my childhood for them.
                    
                        <img src="https://simplyexplained.com/uploads/2023-11-how-i-built-nfc-movie-library-for-my-kids//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Analyzing Link Rot in My Newsletter (After 31 Editions)]]></title>
            <link>https://simplyexplained.com/blog/analyzing-link-rot-in-my-newsletter/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/analyzing-link-rot-in-my-newsletter/</guid>
            <pubDate>Sat, 02 Sep 2023 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Simply Explained]]></category>
                    <category><![CDATA[Simply Explained Newsletter]]></category><media:content url="https://simplyexplained.com/uploads/2023-09-02-analyzing-link-rot-in-my-newsletter/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I've been writing [a monthly newsletter](/newsletter) for the past 2.5 years. In every edition, I link to interesting articles related to science and technology. I thought it would be interesting to analyze how many of those links are still accessible, and how many have succumbed to link rot. Let's dive in!
                    
                        <img src="https://simplyexplained.com/uploads/2023-09-02-analyzing-link-rot-in-my-newsletter//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[How I Use Alfred to Search My Obsidian Notes Faster (with Spotlight!)]]></title>
            <link>https://simplyexplained.com/blog/how-i-use-alfred-to-search-obsidian-notes/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/how-i-use-alfred-to-search-obsidian-notes/</guid>
            <pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Obsidian]]></category>
                    <category><![CDATA[Alfred]]></category><media:content url="https://simplyexplained.com/uploads/2023-03-how-i-use-alfred-to-search-obsidian-notes/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    In this post, I’ll show you how I integrated Obsidian into Alfred so I can search my vault from anywhere on my Mac. I just open Alfred, type “note” followed by my query, and see my search results. Hit enter and the correct note opens in Obsidian. Easy and quick!
                    
                        <img src="https://simplyexplained.com/uploads/2023-03-how-i-use-alfred-to-search-obsidian-notes//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Year in review: 2022]]></title>
            <link>https://simplyexplained.com/blog/year-in-review-2022/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/year-in-review-2022/</guid>
            <pubDate>Wed, 11 Jan 2023 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Yearly review]]></category>
                    <category><![CDATA[YouTube channel]]></category><content:encoded>
                <![CDATA[
                    Every new year I reflect on the previous year and set new goals. I'm focusing primarily on my YouTube channel and newsletter, but there are personal reflections in here as well. Last year was an off year for me, and I'm gearing up to make up for lost time in 2023.
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Smart lights behind a wall switch (Shelly, Z-Wave, ESPHome)]]></title>
            <link>https://simplyexplained.com/blog/smart-lights-behind-wall-switch/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/smart-lights-behind-wall-switch/</guid>
            <pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Shelly]]></category><media:content url="https://simplyexplained.com/uploads/2022-10-smart-lights-behind-wall-switchthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Using smart light bulbs means you can no longer use your physical wall switches because the bulbs need constant power. I think that's pretty dumb. Using a physical switch can be way faster than using an app to control the lights.

Here's how you can put an in-wall module (like a Shelly, or a similar Z-Wave module) between the switch and bulb so that you can use both in harmony.
                    
                        <img src="https://simplyexplained.com/uploads/2022-10-smart-lights-behind-wall-switch/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Serverless Anagram Solver with Cloudflare R2 and Pages]]></title>
            <link>https://simplyexplained.com/blog/serverless-anagram-solver-with-cloudflare-r2-and-pages/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/serverless-anagram-solver-with-cloudflare-r2-and-pages/</guid>
            <pubDate>Sat, 10 Sep 2022 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Anagram solver]]></category>
                    <category><![CDATA[Cloudflare]]></category>
                    <category><![CDATA[Cloudflare Pages]]></category>
                    <category><![CDATA[Cloudflare Workers]]></category><media:content url="https://simplyexplained.com/uploads/2022-09-serverless-anagram-solverthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Six years ago, I reworked my anagram solver so it would run on top of AWS Lambda and DynamoDB. However, this year I realized I didn't need server-side code or a database at all. I could make it completely static by pre-computing anagram solutions.
                    
                        <img src="https://simplyexplained.com/uploads/2022-09-serverless-anagram-solver/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Integrate Home Assistant with Apple Reminders]]></title>
            <link>https://simplyexplained.com/blog/integrate-home-assistant-with-apple-reminders/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/integrate-home-assistant-with-apple-reminders/</guid>
            <pubDate>Wed, 27 Jul 2022 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category><media:content url="https://simplyexplained.com/uploads/2022-07-integrate-home-assistant-with-apple-reminders/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I recently integrated Home Assistant with Apple Reminders so that automations can create new todos. This is trickier as it sounds, because Reminders has no API that can be accessed from Home Assistant. Here's how I worked around that problem with a script, input text helper and an iOS Shortcut.
                    
                        <img src="https://simplyexplained.com/uploads/2022-07-integrate-home-assistant-with-apple-reminders//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[How WebP Images Reduced My Bandwidth Usage by 50%]]></title>
            <link>https://simplyexplained.com/blog/implementing-webp-images-on-eleventy-site/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/implementing-webp-images-on-eleventy-site/</guid>
            <pubDate>Tue, 08 Feb 2022 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Eleventy]]></category>
                    <category><![CDATA[Web Performance]]></category><media:content url="https://simplyexplained.com/uploads/2022-02-implementing-webp-images-on-eleventy-site/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Last year I migrated this website from Jekyll to Eleventy. This year, I’m finally implementing WebP images to save bandwidth and make this site even faster to load! This simple change reduced my bandwidth usage by 50% and is still backwards compatible with old devices and browsers.
                    
                        <img src="https://simplyexplained.com/uploads/2022-02-implementing-webp-images-on-eleventy-site//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Tracking gas usage with ESPHome, Home Assistant, and TCRT5000]]></title>
            <link>https://simplyexplained.com/blog/tracking-gas-usage-with-esphome-home-assistant-and-tcrt5000/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/tracking-gas-usage-with-esphome-home-assistant-and-tcrt5000/</guid>
            <pubDate>Wed, 19 Jan 2022 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[ESP32]]></category><media:content url="https://simplyexplained.com/uploads/2022-01-tracking-gas-usage-with-esphome-home-assistant-and-tcrt5000/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    In 2019, I built an energy monitor to keep track of our electricity consumption. Then, in 2021, [Home Assistant added an Energy Management feature](https://www.home-assistant.io/blog/2021/08/04/home-energy-management/) that keeps track of electricity and gas usage. So naturally, I had to make my gas meter smart as well.
                    
                        <img src="https://simplyexplained.com/uploads/2022-01-tracking-gas-usage-with-esphome-home-assistant-and-tcrt5000//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[My Sixth Year as YouTube Creator (statistics + retrospective)]]></title>
            <link>https://simplyexplained.com/blog/my-sixth-year-as-youtube-creator-statistics-and-retrospective/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/my-sixth-year-as-youtube-creator-statistics-and-retrospective/</guid>
            <pubDate>Fri, 07 Jan 2022 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Yearly review]]></category>
                    <category><![CDATA[YouTube channel]]></category><media:content url="https://simplyexplained.com/uploads/2022-01-my-sixth-year-as-youtube-creator-statistics-and-retrospective/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Every new year I reflect on the previous year and set new goals. Last year has been my most successful year on YouTube so far, and I'd like to share some statistics and thoughts. I will also go over how my email newsletter is doing and where I'm headed. And finally, I'll set myself some goals for 2022.
                    
                        <img src="https://simplyexplained.com/uploads/2022-01-my-sixth-year-as-youtube-creator-statistics-and-retrospective//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[EZStore: a tiny serverless datastore for IoT data (DynamoDB + Lambda)]]></title>
            <link>https://simplyexplained.com/blog/ezstore-a-tiny-serverless-data-store-for-iot-data/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/ezstore-a-tiny-serverless-data-store-for-iot-data/</guid>
            <pubDate>Tue, 04 Jan 2022 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[AWS]]></category>
                    <category><![CDATA[IoT]]></category>
                    <category><![CDATA[DynamoDB]]></category>
                    <category><![CDATA[Lambda]]></category>
                    <category><![CDATA[NoSQL]]></category><media:content url="https://simplyexplained.com/uploads/2022-01-ezstorethumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I've been working on a few IoT projects recently, and while prototyping, I need a simple but flexible data store. I just want to push data to an API and query and visualize it later on.

There are many solutions for this, but most are expensive or very limited. So I set out to build my own serverless IoT data store with 2 Lambda functions and a DynamoDB table.
                    
                        <img src="https://simplyexplained.com/uploads/2022-01-ezstore/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[ESP-IDF: Storing AWS IoT certificates in the NVS partition (for OTA)]]></title>
            <link>https://simplyexplained.com/blog/esp-idf-store-aws-iot-certificates-in-nvs-partition/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/esp-idf-store-aws-iot-certificates-in-nvs-partition/</guid>
            <pubDate>Tue, 02 Nov 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[AWS]]></category>
                    <category><![CDATA[ESP-IDF]]></category>
                    <category><![CDATA[ESP32]]></category><content:encoded>
                <![CDATA[
                    When using AWS IoT Core, most tutorials will tell you to include device certificates in your firmware. While that does work, it means you won't be able to run over-the-air updates.

In this post, I'll show how to store AWS certificates in the NVS partition. This will make it possible to deploy a single firmware update to many devices.
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[How to securely access your home network with Cloudflare Tunnel and WARP]]></title>
            <link>https://simplyexplained.com/blog/securely-access-home-network-with-Cloudflare-Tunnel-and-WARP/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/securely-access-home-network-with-Cloudflare-Tunnel-and-WARP/</guid>
            <pubDate>Wed, 20 Oct 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Cloudflare]]></category>
                    <category><![CDATA[Proxmox]]></category><media:content url="https://simplyexplained.com/uploads/2021-10-20-securely-access-home-network-with-Cloudflare-Tunnel-and-WARP/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    When Cloudflare announced that their Tunnel service would become free, I saw an opportunity to strengthen the security of my Home Assistant instance. Until now, I have been using Cloudflare's CDN to connect to my HA instance, but that required opening ports on my router and setting complicated firewall rules.

By using Cloudflare Tunnels together with Cloudflare WARP, I could close ports and access my entire home network in a much safer way. Here's how I did it.
                    
                        <img src="https://simplyexplained.com/uploads/2021-10-20-securely-access-home-network-with-Cloudflare-Tunnel-and-WARP//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[I Built a CO2 Sensor and It Terrifies Me]]></title>
            <link>https://simplyexplained.com/blog/i-built-a-co2-sensor-and-it-terrifies-me/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/i-built-a-co2-sensor-and-it-terrifies-me/</guid>
            <pubDate>Sun, 03 Oct 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[ESPHome]]></category><media:content url="https://simplyexplained.com/uploads/2021-10-03-i-built-a-co2-sensor-and-it-terrifies-me/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Governments are pushing CO2 sensors to fight the COVID-19 pandemic, but proper ventilation is equally important for our health and even our cognitive performance. 

In this blog post we'll look at a DIY CO2 sensor: how it runs ESPHome, how it integrates with Home Assistant, how it works and what safe CO2 levels are.
                    
                        <img src="https://simplyexplained.com/uploads/2021-10-03-i-built-a-co2-sensor-and-it-terrifies-me//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Filtering spam on YouTube with TensorFlow & AI]]></title>
            <link>https://simplyexplained.com/blog/filtering-spam-on-youtube-with-tensorflow-and-ai/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/filtering-spam-on-youtube-with-tensorflow-and-ai/</guid>
            <pubDate>Tue, 06 Jul 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[TensorFlow]]></category>
                    <category><![CDATA[AI]]></category>
                    <category><![CDATA[YouTube channel]]></category><media:content url="https://simplyexplained.com/uploads/2021-07-06-filtering-spam-on-youtube-with-tensorflow-and-ai/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    My YouTube channel has been attracting a lot of spammers. They try to trick people by saying they know how to profit from trading cryptocurrencies or that they can recover lost wallet keys.

I've been marking these comments as spam, thinking that YouTube would learn to recognize them, but that doesn't help. Time to take matters into my own hands and build a spam filter with TensorFlow!
                    
                        <img src="https://simplyexplained.com/uploads/2021-07-06-filtering-spam-on-youtube-with-tensorflow-and-ai//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Building a killer NAS with an old Rackable Server]]></title>
            <link>https://simplyexplained.com/blog/building-killer-nas-with-old-rackable-server/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/building-killer-nas-with-old-rackable-server/</guid>
            <pubDate>Tue, 29 Jun 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Unraid]]></category>
                    <category><![CDATA[Proxmox]]></category>
                    <category><![CDATA[Data storage]]></category><media:content url="https://simplyexplained.com/uploads/2021-06-29-building-killer-nas-with-old-rackable-server/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Like many others, I'm generating a lot of digital data. Constantly taking photos, writing scripts, taking notes, coding projects, and making videos. I'm storing all these files on Google Drive, which has been very reliable but also a bit risky. What if Google closes my account? Or loses my files?

Time to set up a NAS so I can backup my files locally!
                    
                        <img src="https://simplyexplained.com/uploads/2021-06-29-building-killer-nas-with-old-rackable-server//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[How I Structure My ESPHome Config Files]]></title>
            <link>https://simplyexplained.com/blog/how-i-structure-my-esphome-config-files/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/how-i-structure-my-esphome-config-files/</guid>
            <pubDate>Thu, 27 May 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Home Assistant]]></category><media:content url="https://simplyexplained.com/uploads/2021-05-27-how-i-structure-my-esphome-config-files/thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I'm a big fan of ESPHome. I have 24 devices running it, and I only buy new IoT devices when I know they can run ESPHome.

ESPHome is a modular firmware that you have to configure with YAML files. You define what components it should load and how it should talk to the hardware of your device (GPIO pins, LEDs, relays, sensors, Home Assistant integration...)

However, YAML files can get messy quickly. With 24 devices running, I spent a lot of time coming up with a proper structure to add new devices and change the behavior of existing ones without having to copy-paste the same things repeatedly.
                    
                        <img src="https://simplyexplained.com/uploads/2021-05-27-how-i-structure-my-esphome-config-files//thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Howto Virtualize Unraid on a Proxmox host]]></title>
            <link>https://simplyexplained.com/blog/howto-virtualize-unraid-on-proxmox-host/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/howto-virtualize-unraid-on-proxmox-host/</guid>
            <pubDate>Sat, 08 May 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Proxmox]]></category>
                    <category><![CDATA[Unraid]]></category><media:content url="https://simplyexplained.com/uploads/2021-05-08-howto-virtualize-unraid-on-proxmox-hostthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Here's how to run Unraid as a virtual machine under Proxmox. This is useful when you're already using Proxmox and if you want to use Unraid as a NAS.
                    
                        <img src="https://simplyexplained.com/uploads/2021-05-08-howto-virtualize-unraid-on-proxmox-host/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[MAX17043: Battery Monitoring Done Right (Arduino & ESP32)]]></title>
            <link>https://simplyexplained.com/blog/max17043-battery-monitoring-done-right-arduino-esp32/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/max17043-battery-monitoring-done-right-arduino-esp32/</guid>
            <pubDate>Wed, 28 Apr 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[ESP32]]></category>
                    <category><![CDATA[Arduino]]></category><media:content url="https://simplyexplained.com/uploads/2021-04-28-max17043-battery-monitoringthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Building a battery-powered IoT device? Then you'll want to monitor the battery's percentage. Here's how to do it properly.
                    
                        <img src="https://simplyexplained.com/uploads/2021-04-28-max17043-battery-monitoring/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Preventing Cumulative Layout Shifts with lazy loaded images (Eleventy + markdown-it)]]></title>
            <link>https://simplyexplained.com/blog/preventing-cumulative-layout-shifts-with-lazy-loaded-images/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/preventing-cumulative-layout-shifts-with-lazy-loaded-images/</guid>
            <pubDate>Mon, 26 Apr 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Eleventy]]></category>
                    <category><![CDATA[Web Vitals]]></category>
                    <category><![CDATA[Web Performance]]></category><content:encoded>
                <![CDATA[
                    There's nothing more annoying than a website shifting down just as you're about to click on a button or link. This is called a layout shift, and Google has declared war on them. They've added layout shifts to the Core Web Vitals, and if your website has a lot of them, [it will get penalized in the search results](https://developers.google.com/search/blog/2020/11/timing-for-page-experience).

Here's how to prevent (lazy loaded) images from triggering layout shifts.
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Migrating This Blog From Jekyll to Eleventy]]></title>
            <link>https://simplyexplained.com/blog/migrating-this-blog-from-jekyll-to-eleventy/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/migrating-this-blog-from-jekyll-to-eleventy/</guid>
            <pubDate>Sun, 18 Apr 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Eleventy]]></category>
                    <category><![CDATA[Jekyll]]></category><media:content url="https://simplyexplained.com/uploads/2021-04-18-migrating-this-blog-from-jekyll-to-eleventythumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Jekyll has been powering this site for many years now. It replaced my WordPress setup, and I haven't looked back. Over the last few months, I have become fed up with Jekyll. It's slowing me down. Time to replace it with something new and shiny!
                    
                        <img src="https://simplyexplained.com/uploads/2021-04-18-migrating-this-blog-from-jekyll-to-eleventy/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Good Home Automation Should be Boring]]></title>
            <link>https://simplyexplained.com/blog/good-home-automation-should-be-boring/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/good-home-automation-should-be-boring/</guid>
            <pubDate>Sat, 10 Apr 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[Smart Home]]></category>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Shelly]]></category><media:content url="https://simplyexplained.com/uploads/2021-04-10-good-home-automation-should-be-boringthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I'm a huge fan of Home Assistant to automate various things around the house. I often look at other people's setup for inspiration, and one thing struck me. Many people have cluttered dashboards and use Home Assistant to track just about any metric they can.

That's quite different from my setup. So, here's how I approach home automation.
                    
                        <img src="https://simplyexplained.com/uploads/2021-04-10-good-home-automation-should-be-boring/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[ESP32 Cam: cropping images on device]]></title>
            <link>https://simplyexplained.com/blog/esp32-cam-cropping-images-on-device/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/esp32-cam-cropping-images-on-device/</guid>
            <pubDate>Tue, 23 Feb 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[ESP32]]></category><media:content url="https://simplyexplained.com/uploads/2021-02-23-esp32-cam-cropping-images-on-devicethumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    The [ESP32 camera](https://www.amazon.com/gp/product/B07S5PVZKV/ref=as_li_tl?ie=UTF8&tag=savjee-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B07S5PVZKV&linkId=edec0ccdc158ed893332f501c90459a4) is the cheapest microcontroller with a built-in camera that you can buy. The [OV2640](http://www.uctronics.com/download/OV2640_DS.pdf) sensor has a max resolution of 1600x1200, but sometimes you don't need the entire image.

In this post I'll show how to crop the images on the ESP32 itself, before sending it of to your preferred (cloud) IoT service.
                    
                        <img src="https://simplyexplained.com/uploads/2021-02-23-esp32-cam-cropping-images-on-device/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Retrospective: My Fifth Year on YouTube]]></title>
            <link>https://simplyexplained.com/blog/fifth-year-on-youtube-retrospective/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/fifth-year-on-youtube-retrospective/</guid>
            <pubDate>Fri, 15 Jan 2021 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Yearly review]]></category>
                    <category><![CDATA[YouTube channel]]></category><media:content url="https://simplyexplained.com/uploads/2021-01-fifth-year-on-youtube-retrospectivethumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    For the past 4 years, I have made a habit of reflecting on the previous year and set goals for the new year. This year is no exception, but now I try to set better goals while reflecting on some personal things in life.
                    
                        <img src="https://simplyexplained.com/uploads/2021-01-fifth-year-on-youtube-retrospective/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Secure Home Assistant Access with Cloudflare and Ubiquiti Dream Machine]]></title>
            <link>https://simplyexplained.com/blog/secure-home-assistant-access-with-cloudflare-and-ubiquiti-dream-machine/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/secure-home-assistant-access-with-cloudflare-and-ubiquiti-dream-machine/</guid>
            <pubDate>Sat, 12 Dec 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[Smart Home]]></category>
                    <category><![CDATA[Ubiquiti]]></category>
                    <category><![CDATA[Cloudflare]]></category><media:content url="https://simplyexplained.com/uploads/2020-12-12-secure-home-assistant-access-with-cloudflare-and-ubiquiti-dream-machinethumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I've become increasingly reliant on Home Assistant to automate various tasks around the house. But how do you safely expose your instance to the internet for remote access?

You want to be able to log in from a remote location, but how to keep others out? This post will show how I'm using Cloudflare and the Ubiquiti Dream Machine to properly secure my setup on multiple levels.
                    
                        <img src="https://simplyexplained.com/uploads/2020-12-12-secure-home-assistant-access-with-cloudflare-and-ubiquiti-dream-machine/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Shelly 2.5 + ESPHome: potential fire hazard + fix]]></title>
            <link>https://simplyexplained.com/blog/shelly25-esphome-potential-fire-hazard-fix/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/shelly25-esphome-potential-fire-hazard-fix/</guid>
            <pubDate>Mon, 09 Nov 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Shelly]]></category><media:content url="https://simplyexplained.com/uploads/2020-11-09-shelly25-esphome-potential-fire-hazard-fixthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    If you have flashed your Shelly 2.5 with ESPHome, make sure to configure GPIO16. Otherwise, the pin will be short-circuited and cause the unit to heat up significantly, creating a potential fire hazard!
                    
                        <img src="https://simplyexplained.com/uploads/2020-11-09-shelly25-esphome-potential-fire-hazard-fix/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Impact of Adblockers on Google Analytics (vs. Plausible)]]></title>
            <link>https://simplyexplained.com/blog/impact-adblockers-on-google-analytics-vs-plausible/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/impact-adblockers-on-google-analytics-vs-plausible/</guid>
            <pubDate>Tue, 27 Oct 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator><media:content url="https://simplyexplained.com/uploads/2020-10-27-effect-adblockers-on-google-analytics-vs-plausiblethumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Adblocker usage is quickly rising, with some estimates saying that almost 25% of internet users have one installed. Not only do they block advertisements, but also analytics scripts (like Google Analytics, Matomo, etc.)

So that begs the question: what is the impact of these blockers on Google Analytics? A significant impact could mean that your analytics are underreporting the number of visitors you get. Let's investigate!
                    
                        <img src="https://simplyexplained.com/uploads/2020-10-27-effect-adblockers-on-google-analytics-vs-plausible/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Shelly 2.5: Flash ESPHome Over The Air!]]></title>
            <link>https://simplyexplained.com/blog/shelly-2.5-flash-esphome-over-the-air/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/shelly-2.5-flash-esphome-over-the-air/</guid>
            <pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[Smart Home]]></category>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Shelly]]></category><media:content url="https://simplyexplained.com/uploads/2020-09-shelly-2.5-flash-esphome-over-the-airthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    It's no secret that I'm a fan of Shelly products to automate various devices in my house. They're well built, tiny and rock solid, and best of all: compatible with ESPHome.

I flashed ESPHome onto all my Shelly 1's, but for some reason, I have issues with my Shelly 2.5 devices... Here's how I flashed ESPHome onto them over-the-air. No wires!
                    
                        <img src="https://simplyexplained.com/uploads/2020-09-shelly-2.5-flash-esphome-over-the-air/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Tuya IR Hub: control Daikin AC (Home Assistant + ESPHome)]]></title>
            <link>https://simplyexplained.com/blog/tuya-ir-hub-daikin-ac-home-assistant-esphome/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/tuya-ir-hub-daikin-ac-home-assistant-esphome/</guid>
            <pubDate>Thu, 17 Sep 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[Smart Home]]></category>
                    <category><![CDATA[ESPHome]]></category><media:content url="https://simplyexplained.com/uploads/2020-09-tuya-ir-hub-daikin-ac-home-assistant-esphomethumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    The release of [ESPHome v1.15](https://esphome.io/changelog/v1.15.0.html#changelog-version-1-15-0-september-13-2020) brought better support for infrared climate control. This was enough to finally make my YTF IR Hub useable. Here's how I flashed ESPHome onto it and how I configured it for my Daikin AC and Home Assistant.
                    
                        <img src="https://simplyexplained.com/uploads/2020-09-tuya-ir-hub-daikin-ac-home-assistant-esphome/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Building Air Quality Sensor: Luftdaten + Home Assistant]]></title>
            <link>https://simplyexplained.com/blog/air-quality-sensor-lufdaten-home-assistant/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/air-quality-sensor-lufdaten-home-assistant/</guid>
            <pubDate>Thu, 03 Sep 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[Smart Home]]></category>
                    <category><![CDATA[DIY]]></category><media:content url="https://simplyexplained.com/uploads/2020-09-03-air-quality-luftdaten-home-assistantthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Luftdaten (now Sensor Community) is a global sensor network that measures air quality around the world. Best of all: it's open-source and anyone can build a sensor.

I was very curious to see the air quality in my neighborhood, so I decided to build myself a sensor. And of course, I had to add some Savjee-sauce to it by 3D printing a baseplate for the sensor and microcontroller.
                    
                        <img src="https://simplyexplained.com/uploads/2020-09-03-air-quality-luftdaten-home-assistant/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[HEIC to JPG: Build a Quick Action with Automator]]></title>
            <link>https://simplyexplained.com/blog/heic-to-jpg-quick-action-with-automator/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/heic-to-jpg-quick-action-with-automator/</guid>
            <pubDate>Wed, 08 Jul 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Automator]]></category>
                    <category><![CDATA[macOS]]></category><media:content url="https://simplyexplained.com/uploads/2020-07-heic-to-jpg-quick-actionthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    With the release of iOS 11, Apple switched from JPG to HEIC to store your photos. The High-Efficiency Image File Format saves a lot of storage space on your devices while still maintaining your photos' quality. However, it does become problematic if you want to share those files with people or services that only support JPG.

Here's how to build your own "Quick Action" for macOS that can convert HEIC photos to regular JPG's. No coding required.
                    
                        <img src="https://simplyexplained.com/uploads/2020-07-heic-to-jpg-quick-action/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Make Your Garage Door Opener Smart: Shelly 1, ESPHome and Home Assistant]]></title>
            <link>https://simplyexplained.com/blog/make-garage-door-opener-smart-shelly-esphome-home-assistant/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/make-garage-door-opener-smart-shelly-esphome-home-assistant/</guid>
            <pubDate>Thu, 25 Jun 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[Smart Home]]></category>
                    <category><![CDATA[DIY]]></category>
                    <category><![CDATA[ESPHome]]></category>
                    <category><![CDATA[Shelly]]></category><media:content url="https://simplyexplained.com/uploads/2020-06-smart-garage-door-shelly-home-assistantthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    I've been adding more and more devices to my smart home lately, so naturally, my garage door opener had to follow. But instead of swapping it out for a new unit, I used a Shelly 1 and a cheap door contact sensor to make it smart for less than $20!

It runs ESPHome (open-source, no cloud) and integrates seamlessly with Home Assistant. Here's how I did it.
                    
                        <img src="https://simplyexplained.com/uploads/2020-06-smart-garage-door-shelly-home-assistant/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Static webhosting benchmark: AWS, Google, Firebase, Netlify, GitHub & Cloudflare]]></title>
            <link>https://simplyexplained.com/blog/benchmarking-static-website-hosting-providers/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/benchmarking-static-website-hosting-providers/</guid>
            <pubDate>Thu, 28 May 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Static webhosting]]></category><media:content url="https://simplyexplained.com/uploads/2020-05-28-benchmaring-static-website-hosting-providersthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Static websites are still a hot topic. They are fast, and they're incredibly secure because there isn't a CMS to hack. Once you build a static website, however, the question becomes: Where do I host?

In other words: what is the fastest static website hosting provider in 2020? Well, let's find out!
                    
                        <img src="https://simplyexplained.com/uploads/2020-05-28-benchmaring-static-website-hosting-providers/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Why I don't take sponsorships]]></title>
            <link>https://simplyexplained.com/blog/why-i-dont-take-sponsorships/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/why-i-dont-take-sponsorships/</guid>
            <pubDate>Wed, 20 May 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Simply Explained]]></category>
                    <category><![CDATA[YouTube channel]]></category><content:encoded>
                <![CDATA[
                    Last year I made that video in response to a sponsorship offer that I got from various VPN providers. They all told me the same thing: our service is the best way to protect your privacy, and we were hoping you could convey this message in one of your videos.

So I decided to do just that. Minus the sponsorship part. Here's why.
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Monitoring my 3D printer with a Pi Zero, Home Assistant and TinyCore Linux]]></title>
            <link>https://simplyexplained.com/blog/monitoring-3d-printer-pi-zero-home-assistant-tinycore-linux/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/monitoring-3d-printer-pi-zero-home-assistant-tinycore-linux/</guid>
            <pubDate>Mon, 20 Apr 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[DIY]]></category>
                    <category><![CDATA[Raspberry Pi]]></category>
                    <category><![CDATA[3D Printer]]></category><media:content url="https://simplyexplained.com/uploads/2020-04-20-monitoring-3d-printer-pi-zero-home-assistant-tinycore-linuxthumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    Many devices in my home have become "smart" over the last couple of months, with one big exception: my trusty 3D printer. It's a super reliable Prusa i3 MK3, but it lacks an internet connection.

So I decided to use a Pi Zero to keep track of my 3D prints and send the progress to my Home Assistant installation.
                    
                        <img src="https://simplyexplained.com/uploads/2020-04-20-monitoring-3d-printer-pi-zero-home-assistant-tinycore-linux/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[ESP32: Keep WiFi connection alive with a FreeRTOS task]]></title>
            <link>https://simplyexplained.com/blog/esp32-keep-wifi-alive-with-freertos-task/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/esp32-keep-wifi-alive-with-freertos-task/</guid>
            <pubDate>Mon, 17 Feb 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[ESP32]]></category>
                    <category><![CDATA[FreeRTOS]]></category><content:encoded>
                <![CDATA[
                    I have a few ESP32's running in my house. A few of them are running 24/7 and require an always-on WiFi connection. That's been quite tricky to implement. I used to include various checks throughout my code, but that's not scalable. 

What I need is something running in the background that is continuously monitoring my WiFi connection, regardless of what other code is running. Luckily we can use FreeRTOS on the ESP32 to do just that!
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Home Energy Monitor: V2]]></title>
            <link>https://simplyexplained.com/blog/home-energy-monitor-v2/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/home-energy-monitor-v2/</guid>
            <pubDate>Tue, 11 Feb 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[ESP32]]></category>
                    <category><![CDATA[DIY]]></category>
                    <category><![CDATA[Energy]]></category>
                    <category><![CDATA[FreeRTOS]]></category>
                    <category><![CDATA[AWS]]></category>
                    <category><![CDATA[Home Assistant]]></category>
                    <category><![CDATA[GraphQL]]></category><media:content url="https://simplyexplained.com/uploads/2020-02-11-home-energy-monitor-v2thumb_master.jpg" medium="image" /><content:encoded>
                <![CDATA[
                    My DIY home energy monitor has been running for almost a year now. It's been recording my electricity consumption every second and everything is neatly archived in my AWS account.

Still, though, there is room for improvement. It's time to look back, evaluate & improve the design. I've identified a few pain points that have to be fixed, so let's go!
                    
                        <img src="https://simplyexplained.com/uploads/2020-02-11-home-energy-monitor-v2/thumb_master.jpg" class="webfeedsFeaturedVisual">
                    
                ]]>
            </content:encoded>
        </item>
    <item>
            <title><![CDATA[Retrospective: 4 years on YouTube]]></title>
            <link>https://simplyexplained.com/blog/four-years-on-youtube/</link>
            <guid isPermaLink="true">https://simplyexplained.com/blog/four-years-on-youtube/</guid>
            <pubDate>Tue, 14 Jan 2020 00:00:00 GMT</pubDate>
            <dc:creator>Xavier Decuyper</dc:creator>
                    <category><![CDATA[Yearly review]]></category>
                    <category><![CDATA[YouTube channel]]></category><content:encoded>
                <![CDATA[
                    Every year I sit down and take a look at how my YouTube channel has been doing. I reflect, evaluate, and set goals for the coming year. This year is no exception. January 13th, 2020, marks my fourth year on YouTube. Time to do a little retrospective.
                    
                ]]>
            </content:encoded>
        </item>
    
</channel>
</rss>