this post was submitted on 05 Feb 2025
111 points (95.1% liked)
Open Source
32570 readers
266 users here now
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
No, with home assistant they have a cloud server that has additional functionality that you can use or not. Home Assistant doesn't restrict access to the software on device it's running on.
With this, the device itself will not allow you to access its API endpoints without having a key that you need to purchase. And though they say it's a one time purchase, who's to stop them from releasing a critical security patch that invalidates the keys, even accidentally, or includes making the keys a monthly subscription going forward. Or what happens if that key gets exposed and you need them to generate a new one? Do you need to pay for that or is the device permanently compromised unless you build your own custom firmware?
You're allowed to modify the firmware to use a self hosted server for that functionality without violating the license, which is better than nothing, but then it's up to you to maintain your fork of the firmware. Why not just only require the key if you're connecting to their server and allow you to select your own server without needing to modify and maintain a fork of the firmware?
That is also the case here. Both require self-hosting your own server that is open-source for free use. Both have paid cloud services with extended functionality. The differences are that Home Assistant always requires self-hosting, and is not set up with cloud services by default, while TRMNL is set up with (free as in beer) cloud services by default which can be extended with more functionality for a fee, and doesn't require self-hosting if you use their cloud services.
Sure, maintaining a fork is a bit of overhead, but it likely could just be a simple git patch that you apply on top of the most recent release to change the URL.
Because it's an ESP32, they want it to be plug-and-play for those who want that, and they want the battery to last as long as possible.
I think you're not seeing my point. This is in the hardware. It's simple to have a setting that defaults to connecting to the company's server and then have that setting allow for changing the sever target. Why do I need to build firmware to do that?
And, no, it's not acceptable to require forking, regardless of the ease of merging. It still means you won't get critical security updates without manual intervention.
And finally, it's requiring trust. If the company decides to change the license, you are out of luck. And again, the documentation and policies are already lacking, like what happens if your API key is compromised? Do you need to pay for a new one to be generated. These are on your local device.
And no, home assistant doesn't require self-hosting. It requires hardware to put the central system on, but doesn't require an external server for web services. This device is putting the lock inside the hardware you are purchasing. If I purchase hardware, I want it to be mine. Not subject to a license of what you can put on it, even if that license is initially very open. It's my hardware.
Home assistant does sell hardware that is totally open with no license on what software you can put on it. Most people put it on their own hardware. This is totally separate from the cloud service they offer which is for interacting with the sever over the internet and some other stuff. That cloud functionality is totally optional and you aren't required to modify the home assistant code base in order to NOT use the cloud. So it's not at all equivalent.
Even if you don't have external access to Home Assistant, you're still hosting it to your local network by yourself
But were talking about firmware here. My computer also has firmware and an OS. I never have to touch that. Home Assistant is an application that I run on a computer. And I don't have to modify the code in Home Assistant to get it to connect to another device. I just configure it.
I also install Linux on my laptop. Is that self hosting, too? We're not talking about a server or a "host" other than the hardware device itself that lives in the house. If I want the server functionality, sure that's self hosting the server software. Firmware and operating systems are generally not referred to as self-hosting since all devices need those things. Self-hosting refers generally to cloud-based applications, not standalone hardware firmware/OS.
This is a hardware device that is hard coded to connect only to a specific server that you have to pay to access if you want any API functionality. If I want to use my own I have to learn the programming language, figure out how to modify the Firmware, and then maintain a fork of that firmware indefinitely including making sure that there are no automatic updates since that would overwrite the modifications.
I think you have some fundamental confusion.
First, the ESP32 only has firmware because it is a microcontroller and does not have an operating system. It is also primarily a network client that requests data from a service running on a network host. And it also acts as a server on initial boot to host a web UI for configuring WiFi credentials.
Second, Home Assistant is a whole can of worms, but big parts of that are services that run continuously on the machine you install it on that are listening for requests over the network. This is how you access the web UI from a browser. This is how you access the UI from a Home Assistant app on your phone. This is how networked IoT devices send data to Home Assistant. Home Assistant is fairly useless without these services running continuously and doing that makes the machine you run it on what we would colloquially call a "server" or "host".
That's it. That's what self-hosting is. Yes, sometimes you could be also serving data over the internet or have something to do with "the cloud", but that's not necessarily the case, and with the stuff that I host at home, often not.
Your laptop could be a server, depending on what you install on it, but this dichotomy you laid out of "either hosting is only for cloud stuff or, if you have any computer, you are always self-hosting" is just not based in reality. There are fuzzy edges to what it means to be a server, but they're not anywhere close to that fuzzy.
Also, you're making "modify the firmware" into this big monster that it is just not. You don't have to learn a programming language. You don't have to maintain a fork. You're changing one line and running a few commands. They have a tutorial that walks you through it. It's really easy.
On top of that, like I said in another comment responding to you, the need to modify firmware is temporary.