<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://thehelpfulidiot.com/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https://thehelpfulidiot.com</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>
            This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to learn more and get started. It's free.
        </tabi:about_feeds>
        <tabi:visit_the_site>
            Visit website
        </tabi:visit_the_site>
        <tabi:recent_posts>
            Recent posts
        </tabi:recent_posts>
        <tabi:last_updated_on>
            Updated on $DATE
        </tabi:last_updated_on>
        <tabi:default_theme></tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>The Helpful Idiot</tabi:current_section>
    </tabi:metadata><link rel="extra-stylesheet" href="https://thehelpfulidiot.com/skins/teal.css?h=bd19e558a52d678a50de" /><title>The Helpful Idiot</title>
        <subtitle>Idiots don&#39;t have time for cable management.</subtitle>
    <link href="https://thehelpfulidiot.com/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://thehelpfulidiot.com" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2026-10-05T00:00:00+00:00</updated><id>https://thehelpfulidiot.com/atom.xml</id><entry xml:lang="en">
        <title>Cleaning Up Six Years of Home Assistant with Claude</title>
        <published>2026-10-05T00:00:00+00:00</published>
        <updated>2026-10-05T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/cleaning-up-six-years-of-home-assistant-with-claude/" type="text/html"/>
        <id>https://thehelpfulidiot.com/cleaning-up-six-years-of-home-assistant-with-claude/</id>
        <summary type="html">How I took a Home Assistant install with 421 automations, a few security holes and a lot of polling, put it in Git, and cleaned it up with Claude Code without breaking anything my family relies on.</summary>
        </entry><entry xml:lang="en">
        <title>Rewriting My Home Assistant Dashboards in Plain HTML</title>
        <published>2026-10-04T00:00:00+00:00</published>
        <updated>2026-10-04T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/rewriting-my-home-assistant-dashboards-in-plain-html/" type="text/html"/>
        <id>https://thehelpfulidiot.com/rewriting-my-home-assistant-dashboards-in-plain-html/</id>
        <summary type="html">The Lovelace dashboards on the wall tablets around my house were slow and kept reloading, so Claude and I replaced them with small HTML and JavaScript pages that talk to Home Assistant over one websocket. Here&#39;s what they look like and how they work.</summary>
        </entry><entry xml:lang="en">
        <title>Goodbye WordPress, Hello Zola</title>
        <published>2026-10-03T00:00:00+00:00</published>
        <updated>2026-10-03T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/goodbye-wordpress-hello-zola/" type="text/html"/>
        <id>https://thehelpfulidiot.com/goodbye-wordpress-hello-zola/</id>
        <summary type="html">Why I moved this blog from a WordPress container to a static Zola site, how the posts got converted straight out of the database, and what broke along the way.</summary>
        </entry><entry xml:lang="en">
        <title>Making an Automatic Email Backup (Updated 9/15/2024)</title>
        <published>2024-09-15T00:00:00+00:00</published>
        <updated>2024-09-16T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/making-an-automatic-email-backup-updated-9-15-2024/" type="text/html"/>
        <id>https://thehelpfulidiot.com/making-an-automatic-email-backup-updated-9-15-2024/</id>
        <summary type="html">A new version of the mbsync and Dovecot Docker images, now with Solr full-text search for fast IMAP searches.</summary>
        </entry><entry xml:lang="en">
        <title>Nextcloud Docker with Nginx Proxy Manager</title>
        <published>2024-03-31T00:00:00+00:00</published>
        <updated>2024-04-09T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/nextcloud-docker-with-nginx-proxy-manager/" type="text/html"/>
        <id>https://thehelpfulidiot.com/nextcloud-docker-with-nginx-proxy-manager/</id>
        <summary type="html">Running the php-fpm Nextcloud Docker image directly behind Nginx Proxy Manager, without a second nginx container.</summary>
        </entry><entry xml:lang="en">
        <title>Fully Local Universal Remote Control with Home Assistant</title>
        <published>2024-02-11T00:00:00+00:00</published>
        <updated>2024-04-09T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/fully-local-universal-remote-control-with-home-assistant/" type="text/html"/>
        <id>https://thehelpfulidiot.com/fully-local-universal-remote-control-with-home-assistant/</id>
        <summary type="html">Replacing a discontinued Logitech Harmony with a cheap Bluetooth remote, a Python event listener, and Home Assistant automations, with no cloud involved.</summary>
        </entry><entry xml:lang="en">
        <title>Create a FREE public endpoint for self-hosted services using Oracle Cloud and OPNsense</title>
        <published>2022-09-15T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/create-a-free-public-endpoint-for-self-hosted-services-using-oracle-cloud-and-opnsense/" type="text/html"/>
        <id>https://thehelpfulidiot.com/create-a-free-public-endpoint-for-self-hosted-services-using-oracle-cloud-and-opnsense/</id>
        <summary type="html">Using an always-free Oracle Cloud VM and a WireGuard tunnel to OPNsense to expose self-hosted services publicly without opening ports at home.</summary>
        </entry><entry xml:lang="en">
        <title>Making an Automatic Email Backup - Part 3</title>
        <published>2022-06-22T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/making-an-automatic-email-backup-part-3/" type="text/html"/>
        <id>https://thehelpfulidiot.com/making-an-automatic-email-backup-part-3/</id>
        <summary type="html">Repackaging the mbsync and Dovecot setup from Parts 1 and 2 into a pair of Docker images, configured entirely through environment variables.</summary>
        </entry><entry xml:lang="en">
        <title>Integrating XMCOSY+ Outdoor String Lights with Home Assistant Locally</title>
        <published>2022-06-17T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/integrating-xmcosy-outdoor-string-lights-with-home-assistant-locally/" type="text/html"/>
        <id>https://thehelpfulidiot.com/integrating-xmcosy-outdoor-string-lights-with-home-assistant-locally/</id>
        <summary type="html">Running XMCOSY+ outdoor string lights fully locally with Local Tuya, template lights and Node-RED, keeping colors, scenes and brightness.</summary>
        </entry><entry xml:lang="en">
        <title>Custom 3D Printed Mount for Fire Tablet (2015)</title>
        <published>2021-11-26T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/custom-3d-printed-mount-for-fire-tablet-2015/" type="text/html"/>
        <id>https://thehelpfulidiot.com/custom-3d-printed-mount-for-fire-tablet-2015/</id>
        <summary type="html">Designing and 3D printing a wall mount for a 2015 Amazon Fire tablet as a Home Assistant dashboard, with the cord hidden in the wall. STL included.</summary>
        </entry><entry xml:lang="en">
        <title>UPDATE 2: A Wired Sonoff Zigbee Alternative</title>
        <published>2021-10-18T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/update-2-a-wired-sonoff-zigbee-alternative/" type="text/html"/>
        <id>https://thehelpfulidiot.com/update-2-a-wired-sonoff-zigbee-alternative/</id>
        <summary type="html">Pairing Zigbee devices caused the ZB-GW03 to reboot under Zigbee2Tasmota. The unofficial tasmota32-zigbeebridge firmware fixes it.</summary>
        </entry><entry xml:lang="en">
        <title>UPDATE: A Wired Sonoff Zigbee Alternative</title>
        <published>2021-10-15T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/update-a-wired-sonoff-zigbee-alternative/" type="text/html"/>
        <id>https://thehelpfulidiot.com/update-a-wired-sonoff-zigbee-alternative/</id>
        <summary type="html">A pair of Tasmota rules that work around the ZB-GW03 failing to reconnect to Home Assistant&#39;s ZHA after a power loss.</summary>
        </entry><entry xml:lang="en">
        <title>Making an Automatic Email Backup - Part 2</title>
        <published>2021-10-09T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/making-an-automatic-email-backup-part-2/" type="text/html"/>
        <id>https://thehelpfulidiot.com/making-an-automatic-email-backup-part-2/</id>
        <summary type="html">Adding self-signed SSL certificates to Dovecot and installing Roundcube, so the local mail archive is reachable from any browser on the network.</summary>
        </entry><entry xml:lang="en">
        <title>Making an Automatic Email Backup - Part 1</title>
        <published>2021-10-04T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/making-an-automatic-email-backup/" type="text/html"/>
        <id>https://thehelpfulidiot.com/making-an-automatic-email-backup/</id>
        <summary type="html">Automatically backing up a remote IMAP mailbox to a home server with mbsync, then serving the archive locally with Dovecot so any mail client can read it.</summary>
        </entry><entry xml:lang="en">
        <title>Controlling Home Assistant with an Old Remote</title>
        <published>2021-10-03T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/controlling-home-assistant-with-an-old-remote/" type="text/html"/>
        <id>https://thehelpfulidiot.com/controlling-home-assistant-with-an-old-remote/</id>
        <summary type="html">Using a Flirc USB IR receiver to turn old infrared remotes into Home Assistant controllers via keyboard events.</summary>
        </entry><entry xml:lang="en">
        <title>How to Use Zigbee2Tasmota with Home Assistant</title>
        <published>2021-10-02T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/how-to-use-zigbee2tasmota-with-home-assistant/" type="text/html"/>
        <id>https://thehelpfulidiot.com/how-to-use-zigbee2tasmota-with-home-assistant/</id>
        <summary type="html">Using a Tasmota Zigbee coordinator directly with Zigbee2Tasmota and MQTT in Home Assistant, instead of ZHA or Zigbee2MQTT.</summary>
        </entry><entry xml:lang="en">
        <title>Playing a sound directly from Home Assistant Operating System</title>
        <published>2021-10-02T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/playing-a-sound-directly-from-home-assistant-operating-system/" type="text/html"/>
        <id>https://thehelpfulidiot.com/playing-a-sound-directly-from-home-assistant-operating-system/</id>
        <summary type="html">Playing a door chime through a speaker plugged into the Home Assistant box itself, using the VLC add-on over telnet.</summary>
        </entry><entry xml:lang="en">
        <title>A Wired Sonoff Zigbee Alternative</title>
        <published>2021-09-29T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/a-wired-sonoff-zigbee-alternative/" type="text/html"/>
        <id>https://thehelpfulidiot.com/a-wired-sonoff-zigbee-alternative/</id>
        <summary type="html">Compiling and flashing Tasmota onto the EACHEN eWeLink ZB-GW03, an ESP32-based Zigbee bridge with Ethernet, for a wired coordinator that works with ZHA or Zigbee2MQTT.</summary>
        </entry><entry xml:lang="en">
        <title>About</title>
        <published>2021-09-29T00:00:00+00:00</published>
        <updated>2021-09-29T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/about/" type="text/html"/>
        <id>https://thehelpfulidiot.com/about/</id>
        <summary type="html">A self-hosting and home automation blog by an ophthalmologist: OPNsense, Home Assistant, Proxmox and Docker, learned the hard way.</summary>
        </entry><entry xml:lang="en">
        <title>The Birth of a Smart Home</title>
        <published>2021-09-29T00:00:00+00:00</published>
        <updated>2024-04-15T00:00:00+00:00</updated>
        <author>
            <name>thehelpfulidiot</name>
        </author>
        <link rel="alternate" href="https://thehelpfulidiot.com/hello-world/" type="text/html"/>
        <id>https://thehelpfulidiot.com/hello-world/</id>
        <summary type="html">How a couple of smart plugs turned into a Proxmox server, VLANs, and a fully self-hosted smart home: the network behind this blog.</summary>
        </entry>
</feed>
