<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>esphome &#8211; AADSIT.COM</title>
	<atom:link href="https://aadsit.com/tag/esphome/feed/" rel="self" type="application/rss+xml" />
	<link>https://aadsit.com</link>
	<description>Homelab, Selfhosting, 3D and More</description>
	<lastBuildDate>Sat, 18 Jan 2025 17:55:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>LED Storm Cloud</title>
		<link>https://aadsit.com/designs/58/</link>
					<comments>https://aadsit.com/designs/58/#respond</comments>
		
		<dc:creator><![CDATA[AADSIT]]></dc:creator>
		<pubDate>Mon, 20 Mar 2023 19:14:52 +0000</pubDate>
				<category><![CDATA[Designs]]></category>
		<category><![CDATA[esphome]]></category>
		<category><![CDATA[homeassistant]]></category>
		<category><![CDATA[homelab]]></category>
		<guid isPermaLink="false">https://aadsit.com/?p=58</guid>

					<description><![CDATA[<p>I often find projects opportunities that I say are &#8220;for my wife&#8221; but really are just an excuse to [&#8230;]</p>
<p>&lt;p&gt;The post <a rel="nofollow" href="https://aadsit.com/designs/58/">LED Storm Cloud</a> first appeared on <a rel="nofollow" href="https://aadsit.com">AADSIT.COM</a>.&lt;/p&gt;</p>
]]></description>
										<content:encoded><![CDATA[
<p>I often find projects opportunities that I say are &#8220;for my wife&#8221; but really are just an excuse to have fun making something. In this case I have been intersted in making an LED storm cloud for a while, and decided it was time to go for it. </p>



<p>I had seen Youtube videos of people glueing LEDs to their ceiling or jammed inside paper lanterns, gluing cotton all over it, and calling it good. The effects can be pretty nice but I wanted something smarter. While I&#8217;m pretty happy with the end result of this project, if I was to do this again I would design 3D printed spheres instead of using paper lanterns to simplify things. </p>



<p>Hardware:</p>



<ul class="wp-block-list">
<li>WS2811 12v LED Strip (2-3 meters, prices vary)</li>



<li>ESP8266 ( $3-$5 on AliExpress, I usually use D1 Minis) (1/18/2025: I&#8217;ve almost exclusively switched to ESP32s with enough RAM for OTA updates. HomeAssistant allows ESP32s to host a Bluetooth proxy which makes coverage significantly better)
<ul class="wp-block-list">
<li>Any ESP32 or ESP-01 will also work, but ESP-01 will not usually have enough memory for OTA updates. </li>
</ul>
</li>



<li>1x 12v Power Supply with standard size Barrel Plug</li>



<li>Others:
<ul class="wp-block-list">
<li>A 12v to 5v adapter </li>



<li>12v female barrel plug</li>



<li>5v+ capacitor </li>



<li>6&#8243; paper lanterns (I got a 10 pack on Amazon for under 10 dollars). </li>
</ul>
</li>
</ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="990" height="491" src="https://aadsit.com/wp-content/uploads/2023/03/image-16.jpg" alt="" class="wp-image-61" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-16.jpg 990w, https://aadsit.com/wp-content/uploads/2023/03/image-16-300x149.jpg 300w, https://aadsit.com/wp-content/uploads/2023/03/image-16-768x381.jpg 768w" sizes="(max-width: 990px) 100vw, 990px" /><figcaption class="wp-element-caption">WS2811 LEDs come in various lengths, waterproof ratings, densities. </figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="594" height="400" src="https://aadsit.com/wp-content/uploads/2023/03/image-17.jpg" alt="" class="wp-image-62" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-17.jpg 594w, https://aadsit.com/wp-content/uploads/2023/03/image-17-300x202.jpg 300w" sizes="(max-width: 594px) 100vw, 594px" /><figcaption class="wp-element-caption">ESP8266</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="398" height="280" src="https://aadsit.com/wp-content/uploads/2023/03/image-18.jpg" alt="" class="wp-image-63" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-18.jpg 398w, https://aadsit.com/wp-content/uploads/2023/03/image-18-300x211.jpg 300w" sizes="(max-width: 398px) 100vw, 398px" /><figcaption class="wp-element-caption">A generic step down regulator; 10 for $4 on AliExpress. </figcaption></figure>
</div>
</div>



<p><strong>Printables:</strong></p>



<p>There are two main components in my design: The interlocking mount that holds the paper lanterns and LEDs, and the controller box. The ZIP has two different lids for the controller box as I like to make my designs modular. </p>



<p></p>



<div class="wp-block-file"><a id="wp-block-file--media-e2cda334-ef9d-412e-a4f9-462c4e756b70" href="https://aadsit.com/wp-content/uploads/2023/03/LED-Cloud-Base.zip">LED Cloud Base</a><a href="https://aadsit.com/wp-content/uploads/2023/03/LED-Cloud-Base.zip" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-e2cda334-ef9d-412e-a4f9-462c4e756b70"><strong>Download STL Files</strong></a></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="613" height="410" src="https://aadsit.com/wp-content/uploads/2023/03/image-19.jpg" alt="" class="wp-image-68" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-19.jpg 613w, https://aadsit.com/wp-content/uploads/2023/03/image-19-300x201.jpg 300w" sizes="(max-width: 613px) 100vw, 613px" /><figcaption class="wp-element-caption">As usual I recommend using custom support settings and making the infill as light as possible. There are a lot of supports around the center structure. </figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="412" height="269" src="https://aadsit.com/wp-content/uploads/2023/03/image-20.jpg" alt="" class="wp-image-69" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-20.jpg 412w, https://aadsit.com/wp-content/uploads/2023/03/image-20-300x196.jpg 300w" sizes="(max-width: 412px) 100vw, 412px" /></figure>
</div>
</div>



<p><strong>Construction:</strong></p>



<p>After printing 5 of the mounts and making adjustments as I went I set to screwing, and later gluing, them together. This created a fairly sturdy structure to mount everything to before attaching the paper lanterns to the mount&#8217;s hooks and running LEDs throughout. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="935" height="463" src="https://aadsit.com/wp-content/uploads/2023/03/image-22.jpg" alt="" class="wp-image-76" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-22.jpg 935w, https://aadsit.com/wp-content/uploads/2023/03/image-22-300x149.jpg 300w, https://aadsit.com/wp-content/uploads/2023/03/image-22-768x380.jpg 768w" sizes="(max-width: 935px) 100vw, 935px" /><figcaption class="wp-element-caption">You can see the first two prints had issues with tabs, resulting in breakages. </figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="848" height="512" src="https://aadsit.com/wp-content/uploads/2023/03/image-23.jpg" alt="" class="wp-image-78" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-23.jpg 848w, https://aadsit.com/wp-content/uploads/2023/03/image-23-300x181.jpg 300w, https://aadsit.com/wp-content/uploads/2023/03/image-23-768x464.jpg 768w" sizes="(max-width: 848px) 100vw, 848px" /></figure>



<p>My workspace is limited, so I chose to use an old painting to protect our mini fridge.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="893" height="435" src="https://aadsit.com/wp-content/uploads/2023/03/image-24.jpg" alt="" class="wp-image-79" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-24.jpg 893w, https://aadsit.com/wp-content/uploads/2023/03/image-24-300x146.jpg 300w, https://aadsit.com/wp-content/uploads/2023/03/image-24-768x374.jpg 768w" sizes="(max-width: 893px) 100vw, 893px" /><figcaption class="wp-element-caption">Top View; I did not bother taking photos of the gluing process. </figcaption></figure>
</div>
</div>



<p>At this point I spent some time working on the controller; I had pieces on order but had to wait for the right power adapters to come in. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-4 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="526" height="585" src="https://aadsit.com/wp-content/uploads/2023/03/image-26.jpg" alt="" class="wp-image-81" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-26.jpg 526w, https://aadsit.com/wp-content/uploads/2023/03/image-26-270x300.jpg 270w" sizes="(max-width: 526px) 100vw, 526px" /><figcaption class="wp-element-caption">While not necessary, I chose to use a PCB to add header pins to the power supply for easy changes and addition. </figcaption></figure>



<p></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="565" height="419" src="https://aadsit.com/wp-content/uploads/2023/03/image-27.jpg" alt="" class="wp-image-82" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-27.jpg 565w, https://aadsit.com/wp-content/uploads/2023/03/image-27-300x222.jpg 300w" sizes="(max-width: 565px) 100vw, 565px" /><figcaption class="wp-element-caption">The controller box was mounted on the back side of the cloud. </figcaption></figure>



<p>You might notice that the controller box is bright blue; it turns out that Pin 4 on this board controls the status LED and should NOT be used for the LED strip pin if you sleep in the same room. </p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="698" height="309" src="https://aadsit.com/wp-content/uploads/2023/03/image-28.jpg" alt="" class="wp-image-83" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-28.jpg 698w, https://aadsit.com/wp-content/uploads/2023/03/image-28-300x133.jpg 300w" sizes="(max-width: 698px) 100vw, 698px" /></figure>



<p>Shot of a &#8220;strike&#8221;. </p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-5 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="643" height="627" src="https://aadsit.com/wp-content/uploads/2023/03/image-30.jpg" alt="" class="wp-image-86" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-30.jpg 643w, https://aadsit.com/wp-content/uploads/2023/03/image-30-300x293.jpg 300w" sizes="(max-width: 643px) 100vw, 643px" /><figcaption class="wp-element-caption">A white power cable extension tidies up the look.</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="757" height="486" src="https://aadsit.com/wp-content/uploads/2023/03/image-31.jpg" alt="" class="wp-image-87" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-31.jpg 757w, https://aadsit.com/wp-content/uploads/2023/03/image-31-300x193.jpg 300w" sizes="(max-width: 757px) 100vw, 757px" /></figure>
</div>
</div>



<p><strong>Code:</strong></p>



<p>Right now I am getting the best effect out of Twinkle and Fireworks, but it&#8217;s my intention to write several Node-Red automations that will randomly change the color to regular lightning colors during the flashes, as well as set brightness and color for normal bedroom ambiance throughout the day. </p>



<p></p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>esphome:
  name: "ledcloud"

esp8266:
  board: d1_mini

# Enable Home Assistant API
api:
  encryption:
    key: "123456789123456789123456789123456789123456789"

ota:
  password: "1234567891423456789123456789"

wifi:
  ssid: !secret wifi_ssid5
  password: !secret wifi_password5

# Enable logging
logger:

status_led:
  pin:
    number: D0
    inverted: true

light:
  - platform: neopixelbus
    type: BRG
    variant: WS2812
    pin: D3
    num_leds: 60
    name: "LED Cloud"
    effects:
      - addressable_color_wipe:
      - addressable_color_wipe:
          name: Color Wipe Effect With Custom Values
          colors:
            - red: 100%
              green: 100%
              blue: 100%
              num_leds: 1
            - red: 0%
              green: 0%
              blue: 0%
              num_leds: 1
          add_led_interval: 100ms
          reverse: false
      - addressable_twinkle:
      - addressable_twinkle:
          name: Twinkle Effect With Custom Values
          twinkle_probability: 5%
          progress_interval: 4ms
      - pulse:
      - pulse:
          name: "Fast Pulse"
          transition_length: 0.5s
          update_interval: 0.5s
      - pulse:
          name: "Slow Pulse"
          # transition_length: 1s      # defaults to 1s
          update_interval: 2s
      - flicker:
      - flicker:
          name: Flicker Effect With Custom Values
          alpha: 95%
          intensity: 1.5%
      - addressable_fireworks:
      - addressable_fireworks:
          name: Fireworks Effect With Custom Values
          update_interval: 32ms
          spark_probability: 10%
          use_random_color: false
          fade_out_rate: 120</code></pre>



<p><strong>Coming up in Part 2:</strong></p>



<p>One of my intentions with this project was to include a real lightning detector; this would be a great addition to my unnecessary HomeAssistant sensors and create the potential for real-time lightning strike simulations during storms; something I know my wife would enjoy. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="481" height="452" src="https://aadsit.com/wp-content/uploads/2023/03/image-32.jpg" alt="" class="wp-image-88" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-32.jpg 481w, https://aadsit.com/wp-content/uploads/2023/03/image-32-300x282.jpg 300w" sizes="(max-width: 481px) 100vw, 481px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>I purchased a JMCU AS3935 Lighting Sensor and configured it for I2C communication, per ESPHome&#8217;s documentation and other online resources. Unfortunately I either have a faulty unit, or the I2C protocol on this device (as reported by some online) is not following the standard and is unreliable; the same setup worked with another I2C device so it&#8217;s hard to tell. </p>



<p></p>
</div>
</div>



<p><s>I intend to sort out the issues with the live lightning detector as well as add my own automations for part 2, and complete the writeup with several example videos.</s> </p>



<p>1/18/2025: We ended up moving before this could be revisited as we needed more space for our growing family, and while this project gave us a very unique and enjoyable bit of color we ultimately put this in the garage before scrapping the project. The best effects we found were to use the Fireworks mode with a yellowish tint, with Node-Red randomly switching to Blue or even Red for a split second to provide some extra flair. I hope to revisit this someday, maybe even on a larger scale for our daughter! </p>



<p></p>
<p>&lt;p&gt;The post <a rel="nofollow" href="https://aadsit.com/designs/58/">LED Storm Cloud</a> first appeared on <a rel="nofollow" href="https://aadsit.com">AADSIT.COM</a>.&lt;/p&gt;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aadsit.com/designs/58/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>HomeAssistant Aquarium Temperature Sensor</title>
		<link>https://aadsit.com/designs/7/</link>
					<comments>https://aadsit.com/designs/7/#respond</comments>
		
		<dc:creator><![CDATA[Aaron Johnson]]></dc:creator>
		<pubDate>Mon, 20 Mar 2023 18:08:00 +0000</pubDate>
				<category><![CDATA[Designs]]></category>
		<category><![CDATA[aquarium]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[esphome]]></category>
		<category><![CDATA[homeassistant]]></category>
		<category><![CDATA[notifications]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[temperature]]></category>
		<guid isPermaLink="false">https://aadsit.com/?p=7</guid>

					<description><![CDATA[<p>If you&#8217;re like me and love collecting data for automation, and also love filling your home with fish and [&#8230;]</p>
<p>&lt;p&gt;The post <a rel="nofollow" href="https://aadsit.com/designs/7/">HomeAssistant Aquarium Temperature Sensor</a> first appeared on <a rel="nofollow" href="https://aadsit.com">AADSIT.COM</a>.&lt;/p&gt;</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;re like me and love collecting data for automation, and also love filling your home with fish and plants, you&#8217;ve likely wondered if there is a way to connect your aquarium to HomeAssistant. </p>



<p>In this case we use ESPHome and some basic hardware with a 3D printed case to create an aquarium friendly sensor and set up some notifications. This assumes you have ESPHome set up and know the basics for creating custom devices and are able to solder; the case requires access to a 3D Printer or creativity and duct tape. </p>



<p><strong>Hardware List:</strong></p>



<ul class="wp-block-list">
<li>ESP8266 (~$3-$5 on AliExpress) 
<ul class="wp-block-list">
<li><sub>You can use an ESP8266, ESP32, or ESP-01 but this case design is for the ESP8266 on the Wemos D1 Mini board, and the ESP-01 usually does not have enough memory for OTA updates and requires an external programmer.</sub></li>
</ul>
</li>



<li>DS18B20 Temperature Sensor Kit (~$3 on AliExpress) </li>
</ul>



<p></p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://aadsit.com/wp-content/uploads/2023/03/image.jpg" alt="" class="wp-image-8" width="224" height="259"/><figcaption class="wp-element-caption"> The DS18B20 kit includes an adapter board, dupont cables, and various lengths of lead for the sensor.</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="396" height="279" src="https://aadsit.com/wp-content/uploads/2023/03/image-14.jpg" alt="" class="wp-image-48" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-14.jpg 396w, https://aadsit.com/wp-content/uploads/2023/03/image-14-300x211.jpg 300w" sizes="(max-width: 396px) 100vw, 396px" /><figcaption class="wp-element-caption">The Wemos D1 Mini without headers.</figcaption></figure>



<p></p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<p></p>



<p><strong>Code:</strong></p>



<pre class="wp-block-code"><code>#Sources: 
# https://esphome.io/components/sensor/dallas.html
esphome:
  name: "30gallon-aquarium-sensor"

esp8266:
  board: d1_mini

# Enable logging
logger:

# Example configuration entry
dallas:
  - pin: D3

# Individual sensors
sensor:
  - platform: dallas
    address: 0x85000000161dee28
    name: "30G.HOB.Sensor"

# Enable Home Assistant API
api:
  encryption:
    key: "123456789123456789123456789123456789123456789"

ota:
  password: "123456789123456789123456789"

wifi:
  ssid: !secret wifi_ssid5
  password: !secret wifi_password5
</code></pre>



<p>This uses the Dallas sensor component in ESPHome. You will likely see a different sensor address at first, which will require reprogramming. I highly recommend using the ESP8266 or ESP32 with enough memory for OTA updates because of this; it just makes life easier. </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="335" height="222" src="https://aadsit.com/wp-content/uploads/2023/03/image-7.png" alt="" class="wp-image-25" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-7.png 335w, https://aadsit.com/wp-content/uploads/2023/03/image-7-300x199.png 300w" sizes="(max-width: 335px) 100vw, 335px" /><figcaption class="wp-element-caption">The logs should show the found sensor addresses as long as the Pin is set correctly and the physical connections are correct. Use this for your sensor address. </figcaption></figure></div>


<p><strong>Case:</strong></p>



<p>I created this model in Fusion 360. The gap is large enough to fit over the lip of a normal rimmed aquarium, at least up to 30 Gallons. Larger aquariums with thicker rims may need adjustment or some reshaping with heat. </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="425" height="543" src="https://aadsit.com/wp-content/uploads/2023/03/image-8.jpg" alt="" class="wp-image-27" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-8.jpg 425w, https://aadsit.com/wp-content/uploads/2023/03/image-8-235x300.jpg 235w" sizes="(max-width: 425px) 100vw, 425px" /></figure></div></div>
</div>



<p></p>



<div class="wp-block-file"><a href="https://aadsit.com/wp-content/uploads/2023/03/Aquarium-Sensor.zip" class="wp-block-file__button wp-element-button" download>DOWNLOAD Aquarium Sensor Case STLs</a></div>



<p>I use a Creality Ender 3 Pro, a budget friendly printer which does decently with PLA but not great with ABS without a cover of some sort. My cases were all printed with regular PLA. </p>



<p>I recommend orienting the base face down and reducing the support settings; in Cura you can open Settings Visibility and enable more Support options, reducing the density for example. Because of the weird angles this has been the best printing option I have found without cutting off the sensor neck. Every printer is different though so it may take some adjustments to get the best result for you.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="687" src="https://aadsit.com/wp-content/uploads/2023/03/image-9-1024x687.jpg" alt="" class="wp-image-29" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-9-1024x687.jpg 1024w, https://aadsit.com/wp-content/uploads/2023/03/image-9-300x201.jpg 300w, https://aadsit.com/wp-content/uploads/2023/03/image-9-768x515.jpg 768w, https://aadsit.com/wp-content/uploads/2023/03/image-9.jpg 1026w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p><strong>Putting It Together</strong></p>



<p>Once you have the hardware and case ready, remove the supports, slide the sensor up the case neck, trim the cables, and wire everything up. I chose to dip my sensor/neck in liquid silicone to water proof things. Once everything is jammed in there you the USB port should line up with the opening, providing enough space for a USB cable to power the device. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="301" height="432" src="https://aadsit.com/wp-content/uploads/2023/03/image-1.jpg" alt="" class="wp-image-36" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-1.jpg 301w, https://aadsit.com/wp-content/uploads/2023/03/image-1-209x300.jpg 209w" sizes="(max-width: 301px) 100vw, 301px" /><figcaption class="wp-element-caption">The ESP8266 fits snuggly in the bottom section while the sensor connection board fits in the top. Custom dupont cables would cleanup this look if you have the tools to make them. </figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="671" height="710" src="https://aadsit.com/wp-content/uploads/2023/03/image-15.jpg" alt="" class="wp-image-52" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-15.jpg 671w, https://aadsit.com/wp-content/uploads/2023/03/image-15-284x300.jpg 284w" sizes="(max-width: 671px) 100vw, 671px" /><figcaption class="wp-element-caption">This silver test version makes it easier to see the black silicone-coated tip, reducing the chances of moisture making it&#8217;s way up to the electronics. <br>Also a snail. </figcaption></figure>



<p></p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-10 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="355" height="427" src="https://aadsit.com/wp-content/uploads/2023/03/image-4.jpg" alt="" class="wp-image-39" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-4.jpg 355w, https://aadsit.com/wp-content/uploads/2023/03/image-4-249x300.jpg 249w" sizes="(max-width: 355px) 100vw, 355px" /><figcaption class="wp-element-caption">At first I had a name on the front; it rarely printed clearly so I removed it. </figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="410" height="414" src="https://aadsit.com/wp-content/uploads/2023/03/image-3.jpg" alt="" class="wp-image-38" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-3.jpg 410w, https://aadsit.com/wp-content/uploads/2023/03/image-3-297x300.jpg 297w, https://aadsit.com/wp-content/uploads/2023/03/image-3-150x150.jpg 150w" sizes="(max-width: 410px) 100vw, 410px" /><figcaption class="wp-element-caption">&#8220;Temp-Thing&#8221; in action. </figcaption></figure>
</div>
</div>



<p><strong>Home Assistant</strong></p>



<p>At this point you should be able to connect it to HomeAssistant, add it to your dashboards, whatever you will do. </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="456" height="336" src="https://aadsit.com/wp-content/uploads/2023/03/image-6.jpg" alt="" class="wp-image-41" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-6.jpg 456w, https://aadsit.com/wp-content/uploads/2023/03/image-6-300x221.jpg 300w" sizes="(max-width: 456px) 100vw, 456px" /></figure></div>


<p>I also set up a warning notification if the temperatures in my tanks go out of range. I use Node-Red like this:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="958" height="117" src="https://aadsit.com/wp-content/uploads/2023/03/image-10.png" alt="" class="wp-image-42" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-10.png 958w, https://aadsit.com/wp-content/uploads/2023/03/image-10-300x37.png 300w, https://aadsit.com/wp-content/uploads/2023/03/image-10-768x94.png 768w" sizes="(max-width: 958px) 100vw, 958px" /></figure>



<p>I have a maintenance button that will turn off notification checks for an hour and a half; if I&#8217;m doing water changes I don&#8217;t want notifications. </p>



<pre class="wp-block-code"><code>var states = global.get('homeassistant.homeAssistant.states');
var temp5G = states&#91;"sensor.5g_hob_sensor_2"].state;
var temp10G = states&#91;"sensor.10g_hob_sensor"].state;
var temp30G = states&#91;"sensor.30g_hob_sensor"].state;
//Values
var warningHighTemp = 80.5;
var warningLowTemp = 75;
var emergencyHighTemp = 82;
var emergencyLowTemp = 72;
msg.payload = "";

//temp10G = 40; //override test


if (temp5G &lt; emergencyLowTemp || temp5G &gt; emergencyHighTemp) {
    msg.payload = msg.payload + "Emergency, 5 Gallon aquarium is out of range! " + temp5G + " degrees!";
} else if (temp10G &lt; emergencyLowTemp || temp10G &gt; emergencyHighTemp) {
    msg.payload = msg.payload + "Emergency, 10 Gallon aquarium is out of range! " + temp10G + " degrees!";
} else if (temp30G &lt; emergencyLowTemp || temp30G &gt; emergencyHighTemp) {
    msg.payload = msg.payload + "Emergency, 30 Gallon aquarium is out of range! " + temp30G + " degrees!";
} else if (temp5G &lt; warningLowTemp || temp5G &gt; warningHighTemp) {
    msg.payload = msg.payload + "Warning, 5 Gallon aquarium is out of range! " + temp5G + " degrees!";
} else if (temp10G &lt; warningLowTemp || temp10G &gt; warningHighTemp) {
    msg.payload = msg.payload + "Warning, 10 Gallon aquarium is out of range! " + temp10G + " degrees!";
} else if (temp30G &lt; warningLowTemp || temp30G &gt; warningHighTemp) {
    msg.payload = msg.payload + "Warning, 30 Gallon aquarium is out of range! " + temp30G + " degrees!";
} else
    msg.payload = "All good!"

return msg;
</code></pre>



<p>I haven&#8217;t taken a coding class in over a decade and learning to optimize my functions hasn&#8217;t been a priority, so don&#8217;t judge. The long story short is that every few minutes (if Maintenance is off) the JavaScript function checks each tank&#8217;s temperature against the lows and highs I have set with the above code. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-11 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="401" height="148" src="https://aadsit.com/wp-content/uploads/2023/03/image-12.png" alt="" class="wp-image-45" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-12.png 401w, https://aadsit.com/wp-content/uploads/2023/03/image-12-300x111.png 300w" sizes="(max-width: 401px) 100vw, 401px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="369" height="266" src="https://aadsit.com/wp-content/uploads/2023/03/image-13.png" alt="" class="wp-image-46" srcset="https://aadsit.com/wp-content/uploads/2023/03/image-13.png 369w, https://aadsit.com/wp-content/uploads/2023/03/image-13-300x216.png 300w" sizes="(max-width: 369px) 100vw, 369px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>It passes the results to a switch which ignores the &#8220;All good!&#8221; message, directs warnings to a Push notification link, and Emergencies to a Push notification link as well as a function that will pass the message to the Google Nest Minis we have in every room that has detected occupancy, ensuring that emergencies will wake us up or other. TTS will announce exactly what tank and temperature set off the warning. Triggers prevent the notifications from occurring constantly once activated.</p>
</div>
</div>



<p></p>



<p>If you haven&#8217;t switched to Node Red yet, I highly recommend it; the ability to link automations alone is worth it. </p>



<p>That&#8217;s really all there is to it. Please do not take this design and and try to sell it online, STLs are protected by copyright and eventually I&#8217;ll figure out the right disclaimer to add. </p>
<p>&lt;p&gt;The post <a rel="nofollow" href="https://aadsit.com/designs/7/">HomeAssistant Aquarium Temperature Sensor</a> first appeared on <a rel="nofollow" href="https://aadsit.com">AADSIT.COM</a>.&lt;/p&gt;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aadsit.com/designs/7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
