<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Self-Hosting | Antoine Weill--Duflos</title>
    <link>https://antoine.weill-duflos.fr/en/tag/self-hosting/</link>
      <atom:link href="https://antoine.weill-duflos.fr/en/tag/self-hosting/index.xml" rel="self" type="application/rss+xml" />
    <description>Self-Hosting</description>
    <generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sun, 31 May 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://antoine.weill-duflos.fr/media/icon_hu_d686267daab28486.png</url>
      <title>Self-Hosting</title>
      <link>https://antoine.weill-duflos.fr/en/tag/self-hosting/</link>
    </image>
    
    <item>
      <title>OpenNeato Home Assistant Integration</title>
      <link>https://antoine.weill-duflos.fr/en/project/openneato/</link>
      <pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate>
      <guid>https://antoine.weill-duflos.fr/en/project/openneato/</guid>
      <description>&lt;p&gt;When Neato&amp;rsquo;s parent company Vorwerk shut down the cloud, perfectly good Botvac robot vacuums lost their app, their scheduling, and even parts of their error handling. &lt;a href=&#34;https://github.com/renjfk/OpenNeato&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;OpenNeato&lt;/a&gt; (the upstream project) brings them back with a small &lt;strong&gt;ESP32 wired to the robot&amp;rsquo;s debug serial port&lt;/strong&gt;, serving a local web UI over WiFi with no cloud, no app, and no account.&lt;/p&gt;
&lt;p&gt;My contribution is the &lt;strong&gt;Home Assistant&lt;/strong&gt; side. I run a &lt;a href=&#34;https://github.com/Leicas/OpenNeato&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fork&lt;/a&gt; whose reason for existing is a &lt;strong&gt;HACS-installable custom integration&lt;/strong&gt;: it discovers the bridge on the LAN and exposes the robot as a first-class Home Assistant device, with no YAML.&lt;/p&gt;
&lt;p&gt;The integration polls the bridge&amp;rsquo;s local HTTP API every 5 seconds and gives you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;vacuum&lt;/strong&gt; entity (start/stop/pause/dock/locate/spot, battery, status, fan-speed presets, errors).&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;camera&lt;/strong&gt; entity that renders the &lt;strong&gt;LIDAR cleaning map&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sensors&lt;/strong&gt; for battery diagnostics (cycle count, voltage, temperature), brush and vacuum motor speeds, WiFi, and cleaning stats.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Switches and buttons&lt;/strong&gt; for motors and manual controls.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 bridge firmware, web UI, and flash tool are the upstream project&amp;rsquo;s work; the firmware changes in my fork are minor endpoints to feed the integration. The result: my own Neato D6 now works at least as well as it did on the cloud, with more telemetry than the original app ever exposed.&lt;/p&gt;
&lt;p&gt;Full write-up: &lt;a href=&#34;../../post/openneato/&#34;&gt;Bringing a bricked Neato back to life&lt;/a&gt;. Both projects are open source under the MIT license.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
