Air quality scientist and data engineer

I make stuff

https://symbol.fediverse.info/

  • 19 Posts
  • 731 Comments
Joined 2 years ago
cake
Cake day: December 27th, 2022

help-circle
  • 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.






  • Maybe I’m misunderstanding the implementation, but my understanding from the very brief information available is that you get on your device, connect to their server to pay a fee, and then a key is created for you and then you can access the endpoints running on the device either through the server or directly with REST calls.

    There are no endpoints running on the device. The API endpoints are hosted on their server. The device just sends requests to their server (or yours if you change one line in the firmware) for a bitmap image and a time it should wait until the next refresh. Then it goes to sleep until the response said it should make it’s next request.

    The alternative is to teardown the device and build your own custom firmware that uses different authentication mechanisms. I don’t really have the interest to mod the firmware and then have to maintain a fork for getting official updates.

    No teardown necessary. Just plug in a usb cable and connect it to your pc.


  • 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.

    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.

    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.

    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.

    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?

    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.


  • not quite.

    If you buy their device, the cost to use their service is built-in to the cost of the device, so you get access to their service and all of the 3rd-party plugins at no extra charge.

    If you would like to write your own plugins for their service, or access their service on one of their devices, but with custom firmware, you need to pay $20 one time for an API key to get access that is more flexible than the limited way the stock firmware communicates with their service.

    From looking at the source code of the firmware, it seems like you can extract the “API key” that gets generated by your device with the stock firmware and would technically be able to hardcode that in custom firmware, but I don’t know if that gives the same level of access as the official API key that you pay for or if it against any TOS or anything.

    If you are hosting a server yourself or are accessing a different server, you can very easily flash custom firmware that changes the target server, and there is no charge for that from TRMNL. The $20 is to pay for extra API calls to their servers over the lifetime of the device than what they accounted for in the purchase price.

    In their documentation, they also briefly mention a recurring charge for API access if you want to use a DIY device with their hosted service, but I didn’t see any mention of that anywhere else as the documentation for DIY devices is yet to be fleshed out.





  • I agree that the guide is VERY unclear. The documentation here is a bit better, but still bad and mentions a monthly cost for DIY devices instead of a one-time dev-level API key cost.

    The gist is that if you want to use their servers and you bought their device, they have an API key built in to the device for their non-dev-level API access, and it’s not supported (maybe also against API TOS, but I’m not sure) to extract the API key and use it when you flash custom firmware. Getting the dev-level API key doesn’t have this issue, though, because they give that to you when you pay for it.

    When modifying the firmware to use on your own server, you don’t have to pay them anything because you won’t be using their API.





  • I have a cheap homekit thermostat that I use with home assistant. Being able to turn it off for movies or during peak energy hours is nice. What was most helpful, however, was putting temperature and humidity sensors in every room, so that I could move around heat generating stuff to balance the temps throughout my apartment. I moved my server and gaming pc tower out of my home office. The temperature spread went from 8 deg F to 2 deg F.




  • I use the FUTO keyboard. The “AI” features that it includes are local-only predictive text and voice-to-text (both are very good, in my experience). It’s not open source, and neither is GrayJay (another FUTO project), which is a yellow flag, at minimum.

    At the same time, they do fund open source projects, most notably Immich, which is a fantastic Google Photos alternative. I’m personally okay with using their stuff, and tentatively happy with them as an organization, but I’m keeping a watchful eye on their behavior.


  • It sounds like you want more of a read-it-later tool like wallabag that saves the link and parses + saves the page content. Wallabag in particular is open source, self-hostable, has browser plugins and phone apps, and allows for full-text search.

    You could maybe use an AI tool for this, but it would be a massive waste of resources (even with deepseek) and would only approximate a search engine.