¶ Intro
Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.
My name is Wes.
And my name is Brent.
Hello, gentlemen. Coming up on the show today, off the shelf, just didn't cut it. So we built the tool we needed using open hardware and open source. You're going to learn the basics of how to build your own ESP32 project, whether it's for your own rig, an RV, or home automation system, or something like a smart chicken coop.
Or maybe you just love hearing about no cloud, no nonsense tech, But we've got something for you this week, and then we'll round it out with some great boosts, some picks, and a lot more. So before I go any further, let's say time-appropriate greetings to our virtual lug. Hello, Mumble Room.
Hey, Chris. Hey, where's the name? Hello.
It's a smaller, quiet listening crew and a larger on-air crew this week.
Ah, lovely.
Grated.
JupiterBroadcasting.com slash mumble if you want the details. And a big good morning to our friends at TailScale. TailScale.com slash unplug. TailScale is the easiest way to connect your devices and services to each other, wherever they are, protected by wild gold. And if you go to TailScale.com slash unplugged, you'll get it for free on 100
devices, three users, no credit card required. And then you get secure remote access to your production systems, your servers, whatever it might be, super fast. And it's privacy for every individual or every organization. And it has an intuitive, easy to use interface where you can set and manage your privacy and your rules. And it's so quick to get started. You got five minutes, you're going to get it working on three systems. They'll build out a flat mesh network called your tail net.
¶ Housekeeping
And then that tail net persists between all of those machines. Maybe it's your mobile device. It's a couple of VPSs, a VM, container app, you name it. Since I've built this out and it really changed the way I do networking, I then deployed it at Jupyter Broadcasting. So that way the backend services that are in different VPS data centers and actually one of them is in an actual data center. It's a colobox. Like, they're all communicating on this LAN.
It's so powerful, but yet safe and private. Thousands of companies like Instacart, Hugging Face, and Duolingo have all switched to Tailscale. And, of course, so many in our audience use it as well. That's right. Go check out Tailscale. Tailscale.com. Slash. Unplugged. You support the show. You get it for free up to 100 devices and three users. Not a limited time trial. And then you're really going to kick the tires with that. That's the kind of
trust they have. Check it out. tailscale.com slash unplugged. Well, we got some really good news for iOS users, which I don't think we've said that in a while. And that is Castomatic, which is one of the pinnacle of the podcasting 2.0 apps. It's just absolutely fabulous. Has version 11 shipping with live support. Now, why do we love live support so much, Wes?
Is it because we're live right now?
Yeah, there's that. It's a way to be live by just simply putting a couple of lines in an RSS feed.
And then your podcast client, if it has support like Cast-O-Matic now, it'll just show up like a regular podcast in the same place you go to listen to us.
No stinking Twitch, no stinking YouTube needed, no X, no big tech involved at all. Whatever streaming platform you want, whatever mode of streaming, video, audio, you just define it in your RSS feed and these clients read it and incorporate it just like your existing shows like Wes said. No digging around for links, no switching to another platform. You just open your podcast app and you tap play. It's so rad. And the podcasts that take advantage of this are standing out from the pack.
So Castamatic 11 is already a fantastic iOS podcasting 2.0 app. But to see Castamatic 11 now with live support is so great. I've been waiting for this for a while. You can find it at castamatic.com. It is free. I don't know if it's open source. I don't think so. But it is a fantastic app. It has iCloud Sync support. It has Gap Zapper. It has a nice automatic leveler if you have some podcasts that don't pay as much attention to their levels. Smart playlists.
I love it. And I've been waiting forever to get lit support, and it's great to see it.
Maybe boost in if you give it a try.
¶ Hot Stuff Hardware
Many years ago, I upgraded my RV, aka Lady Jupiter, aka Jupes, from a stock power system with a couple of golf batteries and a cheap inverter to a full zombie apocalypse off-grid capable machine. And ever since then, I've been trying to plug in different Linux components or different devices to try to pull metrics and organize and manage all of this. And I've built up a pretty mean system with one major problem. All that gear can overheat, especially when you need it the most.
When the system is producing a lot of power, it also produces a lot of heat. So you can imagine in the summer, that's a big problem. I've always wanted to address this, but there was not really the right product. I mean, besides trying to figure out how to physically install it and how to vent the system, I also needed a practical way to trigger it. Ideally one that doesn't require direct intervention, say while I'm driving. And I wanted something that would reliably trigger a blower.
So I wouldn't, I wouldn't have to worry about maybe it's not running or if I don't have internet, it won't start the automation. So I had all these requirements and I figured there was probably an open source angle to this because it uses DC power. It has to be able to work offline with no cloud integration. Ideally, it could be integrated into Home Assistant so I can collect metrics and do automations.
So I need something that provides data so I can see the difference of when we had it in place and used and when we're not using it. And since I'm installing it in my home, I want it to have a 10-year lifespan or longer. I don't think the perfect commercial device that's pre-built exists for this. Especially when you get into the no cloud 10-year user.
Yeah, that cuts out a lot of options, I would think.
And if I'm putting it literally in my home, like I'm mounting it to the walls or in the walls, I want it to be open source. I don't want it to be a proprietary piece of software that has like a limited lifespan.
And that you don't really understand and can fail for unknown reasons at any time, that your only option is to replace the entire thing.
And if it's a proprietary piece of equipment, it's probably no longer made.
Right.
You know, it's hard to get the exact one-to-one replacement. I want something common enough that if in six years, seven years, it dies, I can order a new one on Amazon and have it in two days. That doesn't exist. That just doesn't exist. So we had to build one. And this is the perfect introduction to ESP devices. They're low-cost, Wi-Fi and Bluetooth-enabled microcontrollers produced by, is it Espressif? How do you say their name? I never say it right.
I think you're pretty good. Espressif.
Yeah. Now, they're pretty well-known in the IoT space. And these things are, when I say affordable, I mean $9 gets you a four-pack of these things or something like that off of Amazon. I mean, affordable is ridiculous. Low power consumption, there are three volts, and you can combine them with another open source project called ESPHome, which is now part of Home Assistant, and it gives it a Home Assistant-friendly framework that makes it really easy to integrate and start setting up.
Yeah, right. You kind of have like one part, which is this like microcontrollery ecosystem. You can do stuff like what Arduino or MicroPython or Tasmodo or, you know, all kinds of different options for what you run on there. And then you compare that if you're a home assistant user with ESPHome, which makes this like very user friendly layer on top to like manage it and interface between the two.
So these little ESP32 devices, they're typically running, like Wes said, there's a several different Tasmodo, you know, but they're typically running free RTOS, which is a tiny little real-time operating system. You can even operate these things essentially bare metal, but the nice thing about free RTOS is it kind of does exactly what we need for this job. It handles task scheduling, memory management, and the interrupts, and it also is aware of the GPIO pins and their layout and all of that.
Just enough of a tiny little operating system that you can then run what you need to like get on Wi-Fi appropriately and have an API that Home Assistant can talk to but without having to reinvent the whole world or program it all yourself in C++.
And the main chip for these things, it's not much bigger than a quarter. They're really small and they're in all kinds of different pre-built packages as well. Now, did you know that Amazon bought free RTOS back in 2017?
Vaguely now i they've but i had totally forgotten.
Yeah i.
Guess that means either no one paid attention or they haven't done anything super horrible to it since.
Yeah it's still mit licensed okay great i mean it's even used on the mars rover so it's like from esp32 devices all the way up on mars um so that's pretty nice and then like wes was saying you combine that with esp home which is that open source firmware project and it gives you a simplified way to manage these like my yaml configuration for what we're about to talk about with spacing and you know clean formatting and comments 35 lines and it's with a lot of spacing and whatnot i'll put an
example link in the show notes so you use esp home to kind of get you this really simple to configure little device and it's leveraging free rtos underneath the hood, And they make it maintainable to send over-the-air updates throughout the device's life cycle.
So that's pretty killer, right? So you have to plug it in to get it flashed the first time.
Yes.
But then after that, you can just update it over the air.
Yes.
That's so great. Especially if you have a bunch of these deployed in your walls or whatever.
Yeah, and you can update all of them in one push. It does a build check first. So if the build fails, it won't flip them to production. So there's also a bit of a safety net there.
Quite insane.
And you can do things like, oh, I actually wanted to use this or change the temperature sensor sensitivity from 60 seconds to 30 seconds. You can do all that without having to physically go to the device. You can push the config. It does a build in ESPHome and then sends it all out there and boots the device. It's just really nice. And you're all doing it over your LAN, you know?
I mean, better have a good LAN.
Yeah, well, yeah, yeah. And some RAM, yeah. But it's all right there in the Home Assistant dashboard these days. You just have to get the add-on going. So for our setup, we used an ESP8266 device and a DC relay and a temperature sensor all hanging off of this ESP8266. And then we used ESPHome working with Home Assistant to configure the temperature sensor, which can trigger the blower fan automatically when the RV power system gets too hot. And then it logs all of it in Home Assistant.
Okay. So the ESP is playing both relay for the temperature sensor back to Home Assistant Central. And then it's also playing endpoint sort of like control to trigger the relay.
Yes, it triggers the relay that turns the fan on. And so these are just the perfect tools for the job. So a little recap, right? DC powered, everything's DC in this system. Offline operation, zero cloud dependency, home assistant integration for monitoring control, data logging and temperature and fan status. And depending on how we build it, which we'll get into, I think we can get a 10 plus year lifespan out of this.
So like I said, we had an ESP8266, we picked up a DHT22 temperature sensor, and we started a building. we also needed a couple of other things we needed a fan and these esps don't just run off of straight 12 volts so we had to get another component as well.
A little buck converter they call them i don't know why they're called that someone will eventually write in and tell me but that converts the 12 volt that is well pretty common in cars but also chris's rv and converts that dc directly to 5 volts which can power this little esp and the temperature sensor as well. So it does a little bit of, I don't know, electron magic for us to make it all work in a nice little package.
And we also added to our little design here, a little fuse in here. So you could, you know, these are things to consider. You're going to need to step down converter. If you're coming from 12 volt or a battery, you may want to fuse. So just those things are something to know about. And yeah, you can then, you know, sort of build to your heart's desire.
And then ultimately you need to, you need to be able to get these little ESP devices, either plugged into your home assistant or on Wi-Fi, and then you can start pushing configurations to them. So that's sort of the background. Oh, and one other thing I think you should probably know before we get into the project is these ESPs, like a Raspberry Pi, have GPIO pins on them.
And these, some of them have particular functions. So in our example, our thermostat sensor is plugged into GPIO-14, which is often labeled D5 on the board. And then we have a relay plugged into GPIO 5, which is also called D1. So there's all these pins on here and you just plug stuff into them. And then in the YAML configuration, you say on this pin, this is a sensor. And on this pin, that's a relay. And that's all you have to say.
I have to confess that originally when I looked at Raspberry Pis, I saw the little, you know, GPIO pins and thought, I'm never, ever, ever going to use those. I know some people will, but like, I'm not going to use that on my Raspberry Pi or any other device. I don't know. Why do I even need that? Everything changed this week.
Yeah. And, you know, PJ points out, and something people should be aware of, some of these pins have special functions. But the ones we used, GPIO 14 and GPIO 5, they are not tied to any special boot functions. So they don't output any expected signals at startup. They're really clean. They're good to use for sensors and relays.
So some of these general purpose input outputs have specific purposes, you're telling me?
And they do things at boot. You need to be aware of it. But generally, GPIO 14 and GPIO 5 are safe for this.
Lucky numbers.
So this, for me, and managing all this, was the really easy part because Home Assistant took care of it for me. But Wes, you took another crack at it.
Yeah, okay. So I've been doing Home Assistant, but on NixOS, knowing that I'm doing it the hard and now unsupported way. And just figuring, well, let's see what it's like. I'm reserving the option to just run it in a VM or a container later if that seems worth it for what I want to do with it.
But until then, see how far I can get. so for you guys right you're running the whole operating system right and so you have the add-on store and so esp home the like software itself not the integration but the actual dashboard and like management stuff that's just an add-on yeah.
For for a little bit of context my home assistant system in the rv is using the home assistant yellow hardware which is a cm4 based, system and has about two gigs of RAM, which can be pushing it when you're trying to do a bunch of builds for ESP Home. And one of the things you can do is you can go into the configuration for ESP Home's add-on and you can tell it to limit itself to one thread, which because you're using only one thread instead of like four, it uses less RAM, but it takes longer.
Just a little bit of context there. So yeah, I'm using it on a CM4 based system. I imagine this Nix box you're using it on is probably more powerful.
Yeah.
Yeah, I find it interesting because, Chris, you're doing the most supported way, and you might be arguably doing the least supported way, and I like that difference.
So, thankfully, ESPHome is packaged in Nix, and it has an XOS module. So you can just run it yourself, which is handy if you're trying to do troubleshooting and just want to manually flash something, just a little command you can run. But the module's pretty easy, pretty much just, you know, enable equals true.
So the main difference in the experience there is that instead of being like another thing that you go to inside the Home Assistant tab, it's like a separate tab for a service running on a separate port or, you know, put it behind a reverse proxy or whatever you want to do. Otherwise, basically the same, though, as usual with Nix, you kind of get a bit more of a look under the hood sometimes, especially if there's something goes wrong, you're troubleshooting or figuring out how to make it work.
and to do some of all of its magic, it turns out ESPHome does want to download some binaries, including some special compilers, to make all that magic work. This is done by something called Platform.io under the hood. So Nix handles this by using what's called build FHS environment, which uses bubble wrap to create a more traditional Linux FHS hierarchy environment to run that software in.
So ESPHome's not on the wiser. it's on a weird NixOS file system.
Yes, and in particular, the rando binaries it runs to try to compile your build also don't have to deal with that.
Solid solution, really.
As a result, too, the NixOS module does a good job, you could argue, enabling as much of the system dehardening stuff. You know, because if something's downloading some random binaries that's running, maybe you want it to not have to have full write over your full system or whatever.
Yeah, definitely, right.
But that caused me a little bit of an issue. I don't know if there's something that changed or just some details in the module that needs to get worked out.
But by default, it was writing to, like, var lib esp home, but was set up to use like private users for security and dynamic users and basically that meant that when it was running systemd does some bind mounts and it was adding the no exec flag so everything was working except i was getting permission denied trying to actually run the compiler to compile the.
It was essentially being overly cautious and saying you don't want to execute this.
Yes and so i figured out pretty quick i could just tell platform io to use slash temp for all the stuff and then that worked and then I did a little more work for it and I was able to modify the systemd file we'll see maybe I'll try to submit this or see what other people think but basically have a separate cache directory which is the thing systemd supports for a service so you can say like hey make a slash var slash cache just for this service so use
that for all the platform IO stuff so unlike with slash temp it won't get cleared at boot but it is in a place because it can be re-downloaded that you know systemd knows that it can get cleared if needed and then you can add something called exec paths which is an option to basically tell systemd only allow to exec things from these paths but do allow those paths so then i tell it like you know go use the slash bin from the package
to run all the esp home bits and allow the cache that i've just set up and then after that it pretty much just worked wow yeah so So then I was able to get another 8266 thing that producer Jeff kindly gave me. Yeah. Got it flashed. Worked just fine.
So you had a lot more initial setup to get it working, but you came away with a lot clearer understanding of how it works under the hood.
This is true.
And now you have that config forever. So you could always reproduce this.
Yeah.
Now, if you really want it easy, you don't need Home Assistant. You don't have to set it up like Wes did. you can actually go to web.esphome.io and do some of the initial setup right there in your web browser. The catch is it has to be Chrome because they take advantage of, like, some serial port API stuff. Right. And you do need to be in the dial-out group and have the permissions to access the USB device and all of that.
But if you have all of those prerequisites checked off, you can get these things started and dump a YAML config on there from just their hosted website at web.esphome.io. and everything runs 100% in the browser locally.
That's pretty great. Because then all you need, I mean, if you do want to even still do Home Assistant, you just have to have the integration on that side and you can add the devices.
Turns out even hardware requires a browser.
Onepassword.com slash unplugged. That's the number one password.com slash unplugged. It's all lowercase. If your employees are bypassing security to use unapproved apps that they feel they need to do their jobs, you're not alone. And fortunately, with one password extended access management, security and productivity, they don't have to be at odds anymore. You can check compliance off your list. You see, Treleka by one password inventories every app you use at your company.
Then it pre-populates app profiles and it figures out SaaS risk. Letting you manage access. Employees can request access to services and all that. And you can optimize the spend, make sure you're not using licenses that you don't need or you don't have redundant application. But the most important part, you can enforce security best practices across every app your employees use. You can manage shadow IT like contractors that just show up one day or apps you didn't know about.
You can onboard and offboard employees with a process, and you can make sure you're meeting compliance goals.
¶ Finding Common Ground
You see, Treleka by 1Password provides a complete solution for SaaS access and governance. It's just one of the ways extended access management helps teams strengthen compliance and security. Now, I love that 1Password brought really good password practices to the world, and they made that really easy. And you know 1Password's well-regarded. It's used by over 150,000 businesses out there, IBM to Slack.
And of course, now they're taking things to the next level and making the complete system with 1Password Extended Access Management. Take the first step to better security for your team by securing credentials and protecting every application, even unmanaged shadow IT. Learn more by going to 1Password.com slash unplugged. That's 1Password.com slash unplugged, all lowercase. Check it out, learn more, and support the show at 1password.com slash unplugged.
So now we get into building the actual thing well in the morning when we first got started chris and i looked at each other and we tried to divvy up the the work and uh chris was going to do the software which as you can hear was nice and simple and then i was going to get started on the hardware well it turns out that's a bit more of a challenge but we've got a good team producer jeff sent us a bunch of consults and diagrams and well years ago even taught us about these devices so we took out
a big box filled with devices from what 2023 is the last time we kind of dove into this project box and we're like oh yeah we've done this before it's not that hard it'll just take us like what an hour to put things together and we'll put esp home together and all the configs and we'll just have it up and running by noon yeah and that should be pretty easy i.
Thought we'd get lunch and then we'd probably switch gears to a separate project around 2 p.m.
Yeah, but then the first part was just figuring out where to get power from, right? You need power for all these devices, so we were going to get a little bit of power.
Well, if we're going to hook up a fan, we need power. So the first thing we're doing before we screw anything into the wall or run any ducts is making sure we have a place we can tap power into, and we need 12 volts because it's a 12-volt fan brand. I think we did that by design, right? Yeah. The only problem is to add the fan, I need to turn the light off, but I'm using the light to see what I'm doing.
We're going to steal 12 volts from a 12-volt light that's in the storage bay and tap off of that, which we've done before. Jeff's done that successfully. But yeah, then we lose light. Yeah. Maybe if you squint hard.
I wish the lighting was our biggest challenge.
I'm confused. Why didn't Brent have his headlamp on it?
I know, right?
This was pre-headlamp deployment, and it did encourage me to deploy headlamp.
He always has it on him, of course. But what really slowed us down, I think, is what kind of snags you up on all kinds of new projects where you're not familiar with the little details. All the little parts, all the little idiosyncrasies of the ecosystem.
The stuff that looks good at a high-level plan, and then you're like, oh, wait.
Like, we got an ESP board. We thought we were being so clever because we got an ESP board originally that had the ESP and two relays on it. And so like a couple of hot shots, we figured we just supply five volt voltage to this ESP and everything's going to work. And instead, when we powered it up, it did like this crazy relay dance and click, click, click, click, click. And all the lights started flashing like clearly.
And so we had to realize like, oh, no, we have to provide two separate types of power. There's there's a five volt system on the same board. And this thing's smaller than a Raspberry Pi. And then there's like a whole other like three volt or 12 volt depends on the equipment on this thing. And we didn't realize that could even be a possibility. Or, you know, for example, we'd order a lot of these parts in 2023, like Brent said. So we didn't really know what all we had.
So we were kind of making it work with what we did have and nothing was really meant to go together. The wire sizes aren't the same. The gauges aren't right. Like layer one can be a real turd when you're just trying to get started. You know, if this is something we did every weekend, I think we would have busted this out by noon.
Sometimes things just take longer than you expected. You know, I couldn't tell you. We got ourselves this fancy ESP, and maybe that wasn't the right way to go. So we went and got ourselves one of our classics that we had, and I plugged it in. It wasn't working. I plugged in the next one. It wasn't working. Four ESPs later, none of them were working. I thought, okay, maybe it's something wrong with the groups I'm in. and it turns out I needed to be in dial out.
Kept digging around trying to figure out why can't my bluefin system.
Detect this esp over usb um bad usb cable took me way too long to figure out bad usb it's always layer one chris i know so once i got the right usb cable uh we got it built we have esp home on there it's configured on our wi-fi and we have pre-configured the gpio pins jeff gave me an example config i could basically just copy and modified to my needs so this guy is ready and you've been soldering which i know you love uh i think i love soldering
as much as i love building computers i hate building pcs and you've soldered i guess this is kind of a temporary power thing so we can kind of put all this together and test to make sure we have it all working yeah we had a power issue earlier this morning might have been one of the cables you just mentioned but we've been trying to power this board with a variety of power sources with no luck so i'm trying yet another wreck around and it involves lots of soldering
but it feels like once we get that bit done then it's kind of just connecting all the pieces and wiring things up but i thought this would be the easy part. So we'll see.
Now, if you're new to some of this, like we were, I think, Brent, you'd agree having a breadboard where you can prototype some of this is really handy.
Yeah, that was really nice because you end up with this basically, I don't know, small circuit that you could just plug things into, provide power to the entire board, and then just very visually and in an organized way access those GPIO pins that you were mentioning.
Yeah, because the 80s, whatever it is, sits right in the breadboard, just pops right in.
Yeah, the whole ESP development board, you can just kind of work its way into this development or the breadboard, which just does a bunch of electrical connections and then plug a bunch of other things to it. But by the end of it, it was a bit of a spaghetti mess of me trying to just really power this thing so you could see it on the Wi-Fi.
What kind of adds to the spaghetti mess is these all need to be on the same common ground. That's a really important aspect for this functioning properly. So you end up with wires kind of going everywhere.
I learned that the hard way. Yeah, the relay that we're using to try to trigger this fan that's going to cool the battery bay, that needs to share a ground with things like the temperature sensor and also, well, all the power sources that you have and all of that. So everything needs to all be in a nice, cohesive connection.
Sometimes it's quite the jump from what the circuit diagram looks like to the implementation.
Yeah, especially the wiring, original wiring diagram. But it was nice to prototype it and sort of validate it that way. So we kind of had an idea we were moving in the right direction and it was time to make sure that, you know, we could actually make some of these temporary connections a little less temporary and take them off the breadboard and actually plug them in in a way that we can really use for a bit.
But time was just not our friend this day. All day long, we were constantly running against the clock and everything that could go wrong did go wrong. You know, from like screws falling out of stuff to we go to plug in a cable and the end falls off. Just a lot of cheap parts. temperature.
Sensor one of them was defective the first one we used.
Just by chance so you one of the i think one of the reasons they they all all this stuff comes in kits like when you buy the temperature sensor you get like five of them it's because like almost always one of them is bad, At least that's been our, that was our experience this day. And some of it had been sitting around for a long time, but it was all still wrapped in the packaging in the, you know, the static bag and all of that.
But Brentley worked steadily, his hands moving fast, the smoke from the solder filling the RV and getting sucked out by the fantastic fan all night long. And I kept tweaking the SP home config. It was great. PJ would like, all right, I'll do a test build. And he did a test setup too. And he's like, okay, I validated the build works. Ironically, it failed for him because he had a bad relay.
So it really kind of started to come together, and it was time to really take it down to the actual power bay, hook it all up, and see if once triggered, it works.
Well, one bad sensor, one bad wire, and a bad USB cable later, and a bunch of soldering, we have the first test wired up. I mean, like this looks like it should be it. Everything's in place. You got everything hooked up to the 12 volts. So once the ESP boots, I should be able to trigger the fan from Home Assistant. I hope so. Yeah, me too, man. It's been a long day. It's 9 p.m. right now. I've learned a lot today. Let's just put it that way. Yeah, you've become a
better solder. Your soldering skills have improved. I'll use it next year. There's that. Next year? We're probably not done soldering. But shall we try it? Yep, it looks like it's online. Should I hit it? Okay, here we go. Survey says... Survey says... Oh! Oh, it did work. It's just my home assistant app was... Oh, it was just the home assistant app. It totally got us. Alright, let's try it again. The home assistant app is connected now. Oh! There it goes! It just took off. It worked!
It blew itself off. It's powerful.
It moves a lot of air.
It worked really well, I would say.
Yeah, it's designed for a bilge of a boat. So it moves air. Now, we're doing a couple of things to actually try to make this thing last 10 years. Besides putting a fuse on it to help protect it, we're going to put it in, right now it's not in this box, but that's what we're doing tomorrow, is installing a waterproof junction box for this thing. We're just going to put all the components in there. It's got like a little pegboard on the back so you can peg stuff to it.
And then ultimately, build in a bypass system as well. That's probably like, I guess, phase two, is build a bypass system. And either by a switch on this junction box or just by cords that I can move. So if there, for some reason, was a failure, I could still go manually activate the fan.
Okay, that sounds smart.
And it's clean, and, you know, as long as you get the wiring done and, you know, rents done, what do you call that heat wrapping that you did?
Oh, it's shrink wrap, and we got, thankfully, some really nice stuff that shrinks. I think it's like three times its size and also has adhesive on these. That's the stuff I would totally recommend.
Yeah, it's a kit on Amazon. Maybe we can find it and try to put a link in the notes. It's great. It's great. It's clean. It holds it all together because we're trying to build this to also handle road vibration and, you know, high temperatures and whatnot. But this one ESP device has the relay and the temperature sensor, which also is a humidity sensor. And you could, inside the ESP config, trigger everything using the ESP directly.
So when the temperature sensor reads 80 degrees, turn on the switch.
Sure, you can have it all local brain.
You totally could. And that would be definitely something to consider. It's the most probably reliable way to run this. So I'm going to do the right thing and I'm not going to do that. And I'm going to use Home Assistant to automate this. And the reason why is because I already have 30 other systems that are automated and managed with Home Assistant. So to keep it consistent with what it sort of has as a standard, I'm going to do it that way.
And so I'll build what will essentially be a little dashboard or can already have one with the different temperatures on it. And you just go to that dashboard and you set the temperature you want and that fan will run until it reaches that temperature.
Welcome to Fan Control Central.
Yeah, I'm looking forward to that. And I'm feeling pretty good. It's going to last. We already have other ESP devices in the walls that have been working great for years.
What do you think the approximate build cost was?
Great question.
Maybe not including, you know, you don't have to include all of the extra soldering equipment or whatever.
So we had to buy the fan and a couple of vents. The fan's like $20. The vents are like $5 each or so.
Something like that.
And then, you know, a pack of ESPs is about $9.
Relay?
Relay's a few bucks, four bucks, five bucks. So it's pretty, pretty cheap. And then con, you know, a little conduit for the fan. You know, it's nothing.
We ended up using the PineSill, which is the really nice open hardware soldering pencil that we've been using for a couple of years. Also recommended by our dear community. And Jeff, thank you for sending this one along.
It's really handy because it's powered off of USB-C.
Oh, so great.
And we had a high wattage portable battery that's small, but high wattage. And so Brent was able to just do that and just, he could take it with him wherever he needed to go.
So that, that was really great. I would also say part of the cost just goes towards having like the accessories. So some wiring that's appropriate, having heat shrink, having, you know, this little breadboard. You don't absolutely need it, but it sure does help.
Do you, do you think he could have built a 10 year device that lasts without soldering? Um, with clip connect? I just don't think so. I mean, if it wasn't maybe in a moving vehicle.
Yeah, I think you'd probably take a bit of a different route. Like there are cables specifically made to slip over the GPIO pins. You could maybe glue those into place, or I know you can use like nail polish to like waterproof certain things, and that might keep things in place. But really, soldering was one of the best ways that we could, for instance, the ESP were powering with a USB cable that I created with this buck converter built into the cable.
I made my own like super high fancy cable. Apple should hire me at this point.
It's pretty slick.
And I was able to, because of soldering and like some of these wires are teeny tiny, I was able to make a cable that actually looks really quite clean and small and slick and waterproof and all of this. So in that way, I don't think I could have made that cable with connectors in the same way.
Sort of depends on what your quality threshold is here.
Yeah. As you know, mine tends to be maybe a little high.
Well, and I mean, how proud would you be if this thing last, you know, 12 years or something like that's a pretty big, like we come back to this in a decade and that thing's still in use.
Well, I think especially for you, Chris, like a device that you end up mounting in the guts of your RV, you don't look at it every day. You're not like you don't have an eye on, oh, this thing's starting to come apart or, oh, there's a little bit of corrosion here or something like that.
That is, though, one of the nice things about Home Assistant. You do know if it's online, when it's last been working. So you do get some data. But you're right. Like, I'm not eyes on it. I'm not checking it every day.
Yeah, exactly. I also think, you know, these devices can apply to more than just this 12-volt RV situation.
That's the unlock. And that's the thing, I think, the big takeaway that if you wrap your head around what we've talked about today, anything that's really on a switch, you can automate with an ESP and a relay. And it's a massive unlock. And it's stuff that you can actually take a stab at doing because you're not going to get rugged in three years when the cloud service shuts down.
Yes, commodity hardware and open source software.
And the folks behind ESPHome, well, that's the Home Assistant Foundation. Like there's a foundation model there to make sure that it's vendor neutral and all of that. It's here for the long haul. You can like I literally have it installed in walls and it works. You know, it's as reliable as any smart device I've ever had. It's you just need to have Wi-Fi.
It reminds me of the Raspberry Pi in the sense that it has a massive community of people building all sorts of things around it. I think, really, we're late to the party in this particular one.
Yeah, no, there's huge. And so many devices.
Yeah, so anything you're hoping to do with it has probably been done already, and you can find some assistance, some support, some examples of this happening. People are 3D printing their own cases. They're making their own PCBs around these platforms. So it's a very rich ecosystem. And the beautiful thing about the little tiny device that you and I made, Chris, which is probably the reason we wanted to spend, I don't know, this many hours on pulling our hair out to build the thing.
It's going to be like, yeah, three days of work all said and done. We thought it'd be an afternoon of work or a morning, but yeah.
It reminds me so much, though, of when I first was learning Linux. It's like, oh, there's all these systems that I don't quite understand. You get little snippets of like how it all, and then you put together your first project and it works.
It starts clicking.
Yeah, and now that knowledge carries forward to build on top of. Well, for us, this little ESP plus relay is like, okay, you're using it in your RV with 12-volt power, but I can install this thing in my cabin with 120-volt power. These relays also support up to 240, so in Europe they can use it. So now we've got the knowledge, and hopefully we're a bit faster next time, to build a bunch of these and use them in any context that we find ourselves in, whether it's outdoors or indoors or anywhere.
So it's this massive unlock, or at least that's what I'm telling myself to justify the time we put into it.
Unraid.net slash unplugged. Go over there, support the show, and check out Unraid. Unleash your hardware. Unraid's a powerful, easy-to-use NAS operating system built on top of modern Linux with a modern kernel in there that gives you control, flexibility, and efficiency in managing your data and your applications. You'll hear us talk about things like Home Assistant or Jellyfin or some of the LLM apps that are a lot of fun.
You can spin these up in just seconds on top of Unraid. Additionally, if you have mismatched disks, Unraid will help you manage all of that. They have some of the best virtualization support out there, making it easy to pass through hardware or share graphics cards amongst multiple virtual machines. And if you're getting into ZFS or you've already got ZFS, well, Unraid has something for you. And they really kicked things up recently in Unraid 7.1 if you haven't taken
a look. They make it possible now to support and import the existing pools on your Ubuntu system or maybe your Proxmox box or a FreeNAS box. You know, you want to step it up to something a little classier and more powerful. You can now just import it, boom, right into Unraid. It's such an awesome move and feature. But beyond that, they've also just taken the ZFS level support all the way there.
They've got a bunch of file system support, but very impressed to see how they've completed that circle in Unraid 7.1. Also in there now is wireless networking support. So if you're like me at home, I can't run ethernet. So everything has to be on Wi-Fi, or I suppose Zigbee or Z-Wave or something. So having out of the box Wi-Fi support makes that a lot nicer. Also, I've been playing around with reusable VM templates. So think about this.
System just, you get it working, you like it a lot, boom, that's a template now. And now you can reuse that over and over again. Lots of very awesome features. I think as a longtime Linux user, the thing I appreciate the most is that they truly do follow Linux development. They watch that driver space. They watch the file system space. And they incorporate it intelligently and safely into Unraid. They are really taking an active role in that position.
And they're not falling behind and forgetting about updating the kernel and that kind of stuff. They make sure they track that. When they ship a new version of Unraid, you get Linux features that have been tested, tried, and the ones you want for this kind of system. That's part of what I really like about it. And I think that's why it's awesome they actually have a monetization strategy for Unraid. That's what's made this possible for all these years. So get started now.
Go to unraid.net slash unplugged. See how far your imagination and your server can go while you're supporting the show. You get a free 30-day trial, no credit card required. Kick the tires. See what we're talking about. Unraid.net slash unplugged.
Well if you're ahead of us on the esp journey maybe uh ride in boost in let us know what crazy or uh super useful things you've built i know we're all excited about uh you know where we can take this and as usual our audience is light years ahead now.
It's just a little reminder that next week well chris is finally coming to canada to pay me a visit we're going to be taking the Van from the JB Studio that we've been working on for, oof, feels like two months now. And also Lady Joops, so it's going to be a bit of a road trip. That means we will not be live next week for Linux Unplugged, but there will be a regular episode coming as usual.
¶ Boosts
And we start with our baller booster, okay, who comes in as Tui Tickler with 63,300. and 33 sats. I'm just saying your bootleg membership needs a try before you buy option. Like when Costco gives you a bite-sized hot dog and a slice, and then suddenly you're buying 48 packs.
That's so true of Costco.
You guys make a reference. Now let me snack on it.
Delicious.
I am very, very proud of the bootleg. I actually think the bootleg should be heard by more, more listeners. So you're going to get your wish, Tui Tickler. Stay tuned. perhaps sooner than you expect you're going to get to hear some of the bootleg stuff thank you for being our baller it's nice to hear from you and your username is hilarious.
A wine eagle boosin with 22 272 cents, thank you for browse oh yeah I was able to authorize leer to sync gmail with not much plus eric and emacs and neomut support wow, all on my headless nicks them NAS that required going through an OAuth screen on a browser with JS.
Whoa.
That is an impressive setup, Wine Eagle.
So how many points is that?
The things people are willing to do is pretty impressive. That's quite the although fun, I imagine.
Thank you for telling us.
Wow. That's pretty great. Damn. Thank you for the update. That's good to hear. Keep them coming.
Well, Jordan Bravo boosted in a row of ducks. I know the 2AE challenge has ended, but I have a recommendation. systemctl-tui is a tui for systemd as the name suggests it is of course written in rust and available in x packages.
Yeah this.
One this is one also I think that's sticking with me.
From the challenge I want to say I hope the tui challenge continues without us you could be doing it right now and then send us updates it's something we'd love to hear people check in on even though we're done with it you don't have to be just listen to the episodes and follow along you're.
The linux tui am I right.
Yeah that's yeah I think so Magnolia Mayhem's back with 7,777 sats. Man, I wish I could have taken part in the TUI challenge. I've been coordinating with a bunch of activists and need my laptop as usable as possible, such as the nature of being politically active in Mississippi. That said, I hope you'll accept a late submission one day. I really enjoyed the BSD challenge, and I'm still running free BSD on an FX8350 server and on a VPS to this day.
So do I get bonus points for a TUI on BSD? I'm going to say yes.
Yeah, I'm down with that.
BSTUI.
Yeah, yeah. Oh, he never got the veggie dog. Brent, will you follow up on that?
Yeah, I can do that.
Thank you.
Fortidoo boosts in with 4,200 sets. Sounds like you guys found some of my faves. I don't know how I ever lived without Helix, Yazzie, and Zelish. I definitely appreciate these for their no-hassle power right out of the box. Ranger and NNN are my runner-ups for file management, though. Mike Rowe is, of course, another great text editor with more standard key bindings. and I'll be checking out Jellyfin Tui right now.
It looks like a new staple and reminds me of Mock, M-O-C, which is my go-to simple Tui music player.
I tried Mock. Yeah, yeah, I liked Mock. Thank you for the value. Really appreciate that. Nice to hear from you. Forty deuce. Deuce. Deuce. Deuce.
Well, Jan Holbo sent in another Forty Deuce set. Here is from the Future Boost.
Ooh, whoa, cool.
I'm trying to catch up on the library and just listen to self-hosted 150. I'm looking forward to getting the occasional self-hosted story in Linux Unplugged. Welcome to this week's content. Question for you. You talked about using Nix OS instead of Docker. Well, does Nix OS support virtual IP addresses for different apps, say Image, Nextcloud, Notify, Smokeping, etc., on the very same host?
boost is also a postcode boost in this case divide the boost with two and hint here lives an ever young lady with a tail.
What brent.
You're on that hint you're my hint guy.
It's a zip code i don't see it you see it in there i'm i am slow on these what's my problem do you see it with well.
You take maybe the boost i gotta get my divided by two.
I think and you get.
Some crazy number.
Oh there it is let's see here jeez i.
Know it's kind of sharp.
It's huge i.
Don't know why i polish it.
Don't tape all these extra extensions onto it.
Yeah well you know mars the moon they're relevant.
We never we never even go to mexico why do you have mexico on here oh oh i see oh Wes Did you find it?
Um Give me a Give me a Why don't you Unfold the other section I know That's why I need a sec.
This thing has six sides It's crazy.
Yeah well It's a higher dimensional object Is the thing.
Is that a laser?
Yeah, it's weird that he used all this tech for the map. Like, we could have used this for all sorts of stuff.
Here we are soldering, and he's got this, like, eight-dimensional cube map. Well, I'm trying to break down the hint here. So the hint is, here lives an ever-young lady with a tail. And, well, our dear friend AI, in some case, thinks maybe it means a mermaid? That could be a thing.
Yeah, okay, so then my guess is somewhere near DY in New South Wales, Australia, where I guess maybe as Brent is saying, there is a well-known mermaid statue.
Really?
Australia boost, I love it, if so.
I hope that's true, that's pretty neat. Okay, well True Grits, thank you for the boost, and thank you for a zip code math. True Grits is here with 5,000 sets.
regarding the graphene os story in the members feed with them not getting the oem device tree files i wonder if this could be a place for collaboration between rom projects since i doubt the problem is going to be unique to graphene os you wonder perhaps they will have to form some sort of alliance they seem like they like to do their own thing though so that's going to be a, But put it out there in the universe, True Grits, and maybe it'll come true. Because they need friends right now.
I like your energy. Ten Moose comes in with a Robodox. First time booster, long time listener.
Yes!
Loving the Fountain app.
Thank you for going through the setup and getting the SATs. It's been a minute, I think, since we heard from a newbie. Well done, Ten Moose.
Oh, and we get a server report. I'm running Red Hat Home Server on an individual developer license with Cockpit to manage my containers and VMs. yes.
Yes yes all right i'm gonna make that as a vote for the red hat content right there.
Yeah there is another one down in uh if we want to pull up one from the thanks from forward humor voting for open shift coverage so all.
Right thank you forward humor.
Hey did we in the last boost answer the question about nix os and various ips.
Oh no we moved right on because we got you know distracted well that map is flashy yeah it depends exactly what you're wanting to do i don't think there's generally i mean like some if you add more ips to your system and the services support listening on a specific address then you can do it that way but there's no nix os support out of the box for like the docker style networking you can do whatever you want on top in terms of you know systemd services modifying the setup i've made a
sort of copy of that for per service network namespaces so you could try that too but no there's not an exact copy of like each service automatically lives in a network namespace with its own ip address but i'm not sure if that's exactly what you're asking so maybe boost back in and let us know thank.
You everybody who does boost in of course you can be a member and support the show's production directly you set that on autopilot at linuxunplugged.com membership and you get the bootleg and you get the ad free as a thank you and it really means a lot but then we also have this option to support each individual production. It's your vote on how the show was, how the episode content was, what you thought of it. And it's a way to give back if you got value from this particular episode.
And you heard it there from old moose. One of the best ways to do it is fountain FM because they host everything for you. They get it really simple to set up and they integrate with strike, which is available in more and more countries as a great company. There's lots of paths you can take, including totally self-hosted options because it's all an open source peer to peer network.
Thank you everybody who boosts in we had 27 of you not bad you always use a little more but we had 27 streaming sats you stack 26 907 sats when you combine that with our boosters we had a total of 140 246 sats, Maybe not our strongest episode ever, but we really do appreciate any of the support we do get. And if you got some value from this episode, you can send it right back to us in a way that you think keeps us going.
And your contribution not only goes to the show, it goes to Editor Drew, it goes to the developer of the app you're using, and a little bit goes to the podcast index. It's a great way to go.
And I remembered, there's also built-in NixOS containers you can do with Systemd N-Spawn for another way to do that. Just in case my answer was turning you off from NixOS too much.
You do need to focus.
I got to be, I got to be thorough.
You got to focus.
There's a flow here.
We're doing the thing now. You both did it. We're doing the thing. All right. We got a thing and we're doing it. All right. But it is good to know. Thank you, everybody.
¶ Pick
Now, this pick is one that I've just been using the crap out of all week. So I had to mention it on the show and I wasn't sure if you two had seen it yet. So I'm really hoping I'm introducing it to you for the first time. It's called High Tide. And it is a third party, unofficial title music client that's native on Linux. It works on mobile or your desktop. It's nice. It's high quality. It's technically a GNOME app. Works fantastic on Plasma. Even the media keys.
Supports the highest quality setting.
Wow.
Yeah. Not affiliated with Tidal at all, but it's fantastic. I believe it's GPL3 as well. So it's called Hytide, and it brings Tidal to a native app on Linux. And I love it. Check it out if you're a title user.
It's a Python project. Neat.
Now, I know not all of you are, you know, title users. So I wanted to do something for those of you who are like, Chris, come on. I'm an Apple Music listener. Well, I wanted to remind you, they had a release not too long ago, about an app that is one of my solid daily go-tos on all my systems. And if I don't have this, I never know what's going to happen when I click a link. It's called Junction. And it's a browser chooser. It works, again, great on Plasma or Genome. It's GPL3.
And what it basically does is become your default browser. So you click a link and say your chat app of choice. Instead of just launching the browser, and I have one of these chat apps, it doesn't matter what my default browser is. If it's not Junction, it just always opens things in Chrome. I don't know why. But if I put Junction in there, I then get a chooser screen. And I can choose Firefox, or I actually have ridiculous, like four browsers installed for various reasons.
And I can launch that link in any of them right there. So I get a little chooser screen before the browser launches and then it sends it to the correct browser. I get to pick and I get to pick per link, which I really like. So it's called Junction. I've talked about it before on the show. I know that, but I'm bringing it up again because I use it every day on my systems since I talked about it on the show. And that's been years ago.
So it just definitely every now and then an app is so dang good. It deserves another mention. Junction. I'll put a link to it in the show notes. I love it. High Tide and Junction, totally different areas, but a couple ones I love. Very good. And both GPL3.
I'm glad to hear you're still using Junction. It's clearly stuck with you over the years.
If I could have one feature change, it would be that it doesn't necessarily open under where your mouse cursor is at. So I'll click a link, and then I'm quick like a ninja. I'll move the cursor to the screen I know the browser is going to be at because I have KWIN rules like a gentleman.
and then Junction will open up on the monitor where I click the link instead of under the mouse where I'm at now, and now you got to go move the mouse all the way back yeah i gotta go back and i gotta click it and then i gotta go back and so i would love it if it just spawned the junction window wherever your mouse cursor was out there may be a technical limitation there.
I think i have another feature request just imagining that.
One um.
It would be cool if you could click a link and get this window as you say but then have like short keys for each browser so.
Maybe if you hit.
One uh you get you know the browser in the first.
Place but i'll tell you what else it has it has an abort like an x You click the X, which is just a teeny little thing down in the corner, it doesn't open any browser.
Oh, it's like an oops.
Yeah, I didn't mean to click that. Or I clicked it twice because my finger's dumb or something.
Ooh, it says keyboard navigation.
Yeah, I thought so.
I thought so.
I had a feeling. Yeah, I had a feeling. It's great. Great app. Really appreciate that developer. So go check them out. Links are at linuxunplugged.com slash 0620.
¶ Outro
We also would love you to boost in or write us and tell us about your ESP-based projects and tell us what you've been doing. Keep an eye on that calendar because it is the summer travel schedule, so there will be, like Wes mentioned, no live episode next week, but we'll have a regular release for you. Oh, Brent mentioned it?
One of us.
I don't know. Whoever I told to mention it.
Delegate A.
Yeah.
Delegate B, actually.
The person I delegated that to said it, so I'm just reminding you. We're a little fried. It's been a couple of days of projects, okay? And, you know, let me tell you, when you know you've got a show and you want to get it working by the show, that is a real motivator.
I'm very impressed with all of your handiwork this week.
It is working.
Yes, it is, which is great because we're going on that summer road trip and things are about to get hot. All right, details about our mumble room, our matrix, all of that, that's over at linuxunplugged.com. You go over there, you get that info, you can figure it out. Of course, you can also join our matrix chat, jupyterbroadcasting.com slash matrix. We got a general chat and a couple of dedicated, detailed, overdone. I don't know. There's too many of them, but there's log chat rooms and there's
LUP chat rooms and there's unplugged chat rooms. There's lots of chat rooms. And you can find them on our matrix server. And then last but not least, you can get the details of when we're live or when we're not live at jupiterbroadcasting.com slash calendar. We'll be out either way, usually Sunday evening, Monday morning. So you don't really have to overthink it. Thanks so much for joining us on this week's episode of the Unplugged program.
We'll see you right back here next Tuesday, as in Sunday.