<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Coffee on William Floyd (high-quality images)</title>
    <link>https://w-floyd.com/tags/coffee/</link>
    <description>Recent content in Coffee on William Floyd</description>
    <generator>Hugo</generator><language>en</language><managingEditor>William Floyd</managingEditor><webMaster>William Floyd</webMaster><lastBuildDate>Sun, 05 Jul 2020 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://w-floyd.com/tags/coffee/index.hi.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>DIY &#39;Smart&#39; Coffee Maker</title>
      <link>https://w-floyd.com/2020/07/coffee/</link>
      <pubDate>Sun, 05 Jul 2020 00:00:00 +0000</pubDate><author>William Floyd</author>
      <guid>https://w-floyd.com/2020/07/coffee/</guid><description>&lt;p&gt;I have recently (last couple months) been getting into home automation, specifically using Home Assistant.&#xA;I also wanted to get a coffee maker that used K-Cups.&#xA;Thus the goal was born - to get a coffee maker working with Home Assistant, such that I could automate it to fit my morning routine.&lt;/p&gt;&#xA;&lt;p&gt;I first searched for new coffee makers, looking to see what the easiest ones would be to hack into and automate.&#xA;I got so far as adding a sleek new brand name model to my Amazon cart, but thankfully reason and frugality prevailed!&#xA;Instead, I opted to swing by the local Goodwill the next day, to see what secondhand options might be available.&#xA;As luck would have it, I found a no-frills, single button coffee maker for the princely sum of $4, and I was on my merry way.&lt;/p&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-3024.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-1280.avif 1280w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-1296.avif 1296w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-1728.avif 1728w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-1920.avif 1920w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-2160.avif 2160w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-2560.avif 2560w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-2592.avif 2592w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-3024.avif 3024w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-400.avif 400w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-432.avif 432w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-640.avif 640w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-864.avif 864w, https://w-floyd.com/2020/07/coffee/media/20200610_204856-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;The Spoils of Goodwill&#34; title=&#34;The Spoils of Goodwill&#34; width=&#34;3024&#34; height=&#34;4032&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Later that evening, opening the black box up (thankfully I had the correct triangular screwdriver head), I found very easily hackable innards.&lt;/p&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-4032.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-1280.avif 1280w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-1296.avif 1296w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-1728.avif 1728w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-1920.avif 1920w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-2160.avif 2160w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-2560.avif 2560w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-2592.avif 2592w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-3840.avif 3840w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-400.avif 400w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-4032.avif 4032w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-432.avif 432w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-640.avif 640w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-864.avif 864w, https://w-floyd.com/2020/07/coffee/media/20200610_205351-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;Poor lighting is the worst...&#34; title=&#34;Poor lighting is the worst...&#34; width=&#34;4032&#34; height=&#34;3024&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;p&gt;The control board (&lt;a href=&#34;media/20200610_205847-3024.avif&#34; &gt;front&lt;/a&gt;, &lt;a href=&#34;media/20200610_205841-3024.avif&#34; &gt;back&lt;/a&gt;) is very simple - two buttons in parallel, an LED, and a couple resistors.&#xA;I&amp;rsquo;m not quite sure what the logic is upstream (it un/latches on each press), but the buttons short to ground, and this is something I can work with.&#xA;The control board has wires for ground, signal, and 5V, in that order.&lt;/p&gt;&#xA;&lt;p&gt;The ordeal of hacking into the thing, and my missteps trying to do so, is rather boring really, but it produced this:&lt;/p&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-3024.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-1280.avif 1280w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-1296.avif 1296w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-1728.avif 1728w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-1920.avif 1920w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-2160.avif 2160w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-2560.avif 2560w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-2592.avif 2592w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-3024.avif 3024w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-400.avif 400w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-432.avif 432w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-640.avif 640w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-864.avif 864w, https://w-floyd.com/2020/07/coffee/media/20200702_120309-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;Interception!&#34; title=&#34;Interception!&#34; width=&#34;3024&#34; height=&#34;4032&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-3024.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-1280.avif 1280w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-1296.avif 1296w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-1728.avif 1728w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-1920.avif 1920w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-2160.avif 2160w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-2560.avif 2560w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-2592.avif 2592w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-3024.avif 3024w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-400.avif 400w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-432.avif 432w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-640.avif 640w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-864.avif 864w, https://w-floyd.com/2020/07/coffee/media/20200702_120302-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;Perfboard&#34; title=&#34;Perfboard&#34; width=&#34;3024&#34; height=&#34;4032&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-3024.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-1280.avif 1280w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-1296.avif 1296w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-1728.avif 1728w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-1920.avif 1920w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-2160.avif 2160w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-2560.avif 2560w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-2592.avif 2592w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-3024.avif 3024w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-400.avif 400w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-432.avif 432w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-640.avif 640w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-864.avif 864w, https://w-floyd.com/2020/07/coffee/media/20200702_120328-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;D1 Mini&#34; title=&#34;D1 Mini&#34; width=&#34;3024&#34; height=&#34;4032&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;p&gt;The brains I added was a Wemos D1 Mini (thanks, Aliexpress!), with a 3.3V&amp;lt;-&amp;gt;5V converter between to sense when the coffee maker is on, and also turn on a mosfet to short the button to ground.&#xA;I initially had issues with the coffee maker turning on whenever I plugged the D1 Mini in, but a pulldown resistor solved this.&lt;/p&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-3024.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-1280.avif 1280w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-1296.avif 1296w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-1728.avif 1728w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-1920.avif 1920w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-2160.avif 2160w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-2560.avif 2560w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-2592.avif 2592w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-3024.avif 3024w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-400.avif 400w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-432.avif 432w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-640.avif 640w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-864.avif 864w, https://w-floyd.com/2020/07/coffee/media/20200702_120334-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;External USB Plug&#34; title=&#34;External USB Plug&#34; width=&#34;3024&#34; height=&#34;4032&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;p&gt;I also opted for an external USB plug - this allows me to possibly reflash this without opening the enclosure, and also meant I did not need to splice into the mains line inside, which I was reluctant to do.&lt;/p&gt;&#xA;&lt;p&gt;I initially flashed and programmed the coffee maker with Tasmota, but almost immediately opted to use ESPHome instead.&#xA;I like Tasmota and ESPHome, I was just able to get more fine control of the setup using ESPHome in this instance, especially concerning the button logic.&lt;/p&gt;&#xA;&lt;p&gt;The (important) code is as follows:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;binary_sensor&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#f92672&#34;&gt;platform&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;gpio&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;device_class&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;power&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;internal&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;id&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;power_on&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;pin&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;D2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;switch&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#f92672&#34;&gt;platform&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;gpio&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;pin&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;D1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;id&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;relay&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;restore_mode&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;ALWAYS_OFF&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#f92672&#34;&gt;platform&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;template&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Coffee Maker&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;icon&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mdi:coffee-maker&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;lambda&lt;/span&gt;: |-&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      if (id(power_on).state) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        return true;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      } else {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        return false;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      }&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;turn_on_action&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;switch.turn_on&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;relay&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;delay&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;50ms&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;switch.turn_off&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;relay&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;turn_off_action&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;switch.turn_on&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;relay&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;delay&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;50ms&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;switch.turn_off&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;relay&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The beauty of the way in which I can detect signals and simulate a button press is that ESPHome senses when I use the physical button, and updates accordingly.&#xA;I can use the coffee maker absolutely as normal, the &amp;lsquo;Smart&amp;rsquo; part of it is optional.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;The rest of my setup using this coffee maker is somewhat outside the scope of this post, but it includes using Tasker on my phone to run a &amp;lsquo;Wakeup&amp;rsquo; automation on Home Assistant, which will - along with turning on my bed-head lamp, and switching my monitor on before putting it to sleep - check if I turned on a &amp;lsquo;Morning Coffee&amp;rsquo; user input.&#xA;If I remembered to prep my coffee the night before, and turned on the switch, I will wake up to a hot cup of coffee (or, the sound of a coffee-in-progress).&#xA;I can also command Alexa and Google Assistant to do my bidding and make me a coffee.&#xA;At least someone does what I want&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Truly, we are living in the future.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
