<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reference on karl</title><link>https://karlquinsland.com/categories/reference/</link><description>Recent content in Reference on karl</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 14 Aug 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://karlquinsland.com/categories/reference/index.xml" rel="self" type="application/rss+xml"/><item><title>Dynamic timers in ESPHome</title><link>https://karlquinsland.com/esphome-dynamic-timer/</link><pubDate>Sun, 14 Aug 2022 00:00:00 +0000</pubDate><guid>https://karlquinsland.com/esphome-dynamic-timer/</guid><description>&lt;!-- markdownlint-disable-file MD002 --&gt;
&lt;p&gt;As much as I love the &lt;a href="https://esphome.io/" target="_blank" rel="noopener noreffer "&gt;ESPHome&lt;/a&gt; project, there are some features that seem like they&amp;rsquo;d be essential in an embedded/IoT firmware sdk yet their implementation remain left as an exercise to the user.
This post is about one of those &amp;ldquo;Wait, that&amp;rsquo;s not built in?! &lt;em&gt;How&lt;/em&gt; old is this project?&amp;rdquo; features: timers.&lt;/p&gt;
&lt;h2 id="esphome-timers-and-you"&gt;ESPHome, Timers and You&lt;/h2&gt;
&lt;p&gt;To be clear, ESPHome &lt;em&gt;does&lt;/em&gt; &lt;a href="https://github.com/esphome/feature-requests/issues/84#issuecomment-469678382" target="_blank" rel="noopener noreffer "&gt;have all of the primitives needed&lt;/a&gt; to build &lt;em&gt;basic&lt;/em&gt; timers.
You can get basic non-blocking pauses in automations with the &lt;a href="https://esphome.io/guides/automations.html#delay-action" target="_blank" rel="noopener noreffer "&gt;&lt;code&gt;delay:&lt;/code&gt;&lt;/a&gt; action.&lt;/p&gt;</description></item><item><title>Using ESPHome with the Treatlife DS03</title><link>https://karlquinsland.com/treatlife-ds03-esphome/</link><pubDate>Thu, 09 Jun 2022 00:00:00 +0000</pubDate><guid>https://karlquinsland.com/treatlife-ds03-esphome/</guid><description>&lt;div class="details admonition tip open"&gt;
 &lt;div class="details-summary admonition-title"&gt;
 &lt;i class="icon fas fa-lightbulb fa-fw" aria-hidden="true"&gt;&lt;/i&gt;Post depreciation notice&lt;i class="details-icon fas fa-angle-right fa-fw" aria-hidden="true"&gt;&lt;/i&gt;
 &lt;/div&gt;
 &lt;div class="details-content"&gt;
 &lt;div class="admonition-content"&gt;This is an update to the &lt;a href="https://karlquinsland.com/treatlife-ds03-tasmota-autoconfig-with-homeassistant/" rel=""&gt;&lt;code&gt;Fixing Home Assistant discovery with Tasmota on the Treatlife DS03&lt;/code&gt; post&lt;/a&gt;.&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;h1 id="tasmota-reliability"&gt;Tasmota reliability&lt;/h1&gt;
&lt;p&gt;A few months ago, I started to notice some bizarre behavior with the DS03 ceiling fan controllers that I had previously flashed with Tasmota.
Very regularly, the devices would crash and reboot! I almost never noticed unless I was explicitly looking at the uptime / boot count graphs for the devices but every once in a while, the device would reboot &lt;em&gt;right as I was trying to control it remotely&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Fixing Home Assistant discovery with Tasmota on the Treatlife DS03</title><link>https://karlquinsland.com/treatlife-ds03-tasmota-autoconfig-with-homeassistant/</link><pubDate>Wed, 12 May 2021 00:00:00 +0000</pubDate><guid>https://karlquinsland.com/treatlife-ds03-tasmota-autoconfig-with-homeassistant/</guid><description>&lt;div class="details admonition warning open"&gt;
 &lt;div class="details-summary admonition-title"&gt;
 &lt;i class="icon fas fa-exclamation-triangle fa-fw" aria-hidden="true"&gt;&lt;/i&gt;Update&lt;i class="details-icon fas fa-angle-right fa-fw" aria-hidden="true"&gt;&lt;/i&gt;
 &lt;/div&gt;
 &lt;div class="details-content"&gt;
 &lt;div class="admonition-content"&gt;This post is now deprecated. It has been superseded by &lt;a href="https://karlquinsland.com/treatlife-ds03-esphome/" rel=""&gt;&lt;code&gt;Using ESPHome with the Treatlife DS03&lt;/code&gt;&lt;/a&gt; from 2022-06.&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; (2021-10-22): Tasmota 9.5.0 has been superseded by the new &lt;a href="https://github.com/arendst/Tasmota/releases/tag/v10.0.0" target="_blank" rel="noopener noreffer "&gt;Tasmota 10.0.0 release&lt;/a&gt;. This release works perfectly with the rules/automation outlined below; you no longer need to avoid the problematic 9.5 release with the DS03. I am extremely grateful to every one of the people that contributes to the Tasmota project to keep it improving!&lt;/p&gt;</description></item><item><title>Two Tasmota rules</title><link>https://karlquinsland.com/two-tasmota-rules/</link><pubDate>Fri, 20 Nov 2020 00:00:00 +0000</pubDate><guid>https://karlquinsland.com/two-tasmota-rules/</guid><description>&lt;!-- markdownlint-disable-file MD002 MD001--&gt;
&lt;p&gt;&lt;a href="https://tasmota.github.io/" target="_blank" rel="noopener noreffer "&gt;Tasmota&lt;/a&gt; is an incredibly powerful alternative/open source firmware for the ever popular Espressif family of WiFi equipped microcontrollers.
This does not need to be another post espousing it&amp;rsquo;s many awesome qualities, so just trust me on this; Tasmota is AWESOME.&lt;/p&gt;
&lt;p&gt;Tasmota supports user configurable &lt;a href="https://tasmota.github.io/docs/Rules/" target="_blank" rel="noopener noreffer "&gt;rules&lt;/a&gt; which are simple commands wired into various device triggers.
In short; a device running Tasmota gains some autonomy to react to events without needing to report the event to, and wait for commands from, a remote server.&lt;/p&gt;</description></item><item><title>Systemd Resolved With Consul Agent</title><link>https://karlquinsland.com/systemd-resolved-with-consul-agent/</link><pubDate>Tue, 21 Jul 2020 00:00:00 +0000</pubDate><guid>https://karlquinsland.com/systemd-resolved-with-consul-agent/</guid><description>&lt;p&gt;I pieced this technique together a while back and created a gist for it. I&amp;rsquo;m creating &lt;em&gt;this&lt;/em&gt; post as a pointer to that gist so I have something that&amp;rsquo;s a bit easier to reference and refer others to.&lt;/p&gt;
&lt;p&gt;And i want to test out the &lt;a href="https://gohugo.io/content-management/shortcodes/#gist" target="_blank" rel="noopener noreffer "&gt;hugo shortcode for embedding a gist&lt;/a&gt; :smirk:.&lt;/p&gt;
&lt;p&gt;The really short version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a dedicated interface that can only be accessed from the local system&lt;/li&gt;
&lt;li&gt;Bind the consul-agent&amp;rsquo;s DNS service to this local only interface&lt;/li&gt;
&lt;li&gt;Tell &lt;a href="https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html" target="_blank" rel="noopener noreffer "&gt;&lt;code&gt;systemd-resolved&lt;/code&gt;&lt;/a&gt; that all hostnames with the &lt;code&gt;.consul&lt;/code&gt; TLD can be resolved via a DNS server on this local interface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No need to disable &lt;code&gt;resolved&lt;/code&gt; and replace it with dnsmasq :smile:&lt;/p&gt;</description></item></channel></rss>