[Devember2021] Brewing Stats Server

So I’m quite sad to see that I have to justify my choices for something that I’m building entirely for my self and just happen to be sharing with others in case they are interested in it or want to use anything I have created. However, I want to try and avoid my project page devolving into an argument or a series of rants about why what I’m doing is stupid. I am not calling out anyone here, I just want to nip this in the bud so I can get back to enjoying my project before anything escalates. To aide this and to hopefully add some clarity to my project, I will add some background info about my project and my choices.

The quickest and most efficient (both in time and money) way to solve my problem is to buy an off the shelf temperature control unit that has a heating and cooling plug (there are many such devices available for very reasonable prices) then get some kind of cheap heating device, be it fan heater or lizard mat and install this and the temperature probe from the controller in a fridge. Plug the heater into the hot plug and the fridge into the cool plug. Done.

But that’s not the point of Devember or my project.

The point of Devember is to develop something and learn new skills. Not to create the most efficient product that utilises the best technologies and meets all end user demands.

So to be clear, the main reason I am doing this is to learn new things and have fun and I am sharing my jounrey and code in case you are interested or want to use my stuff. So please refrain from potentially ruining that for me.

To address my technology stack choices so far, I wanted to learn more about programming automation and hardware on the Raspberry Pi. I have many of these spare and I’m a big fan of them which was the main reason for choosing the Raspberry Pi as the workhorse (I am well aware of all the other small boards out there, I just happen to like and have the Raspberry PI). I also wanted my solution to be modular and reasonably simple so that I can replace and upgrade parts if needed. Which is why I went for parts that are easy to obtain, replace and upgrade. Speaking of which, at some point in future when I have more space, I will be incorporating a fridge to achieve the cooling aspect but this won’t be for a year at least. My Dad also brews and he uses such a method but the controller he has is crap (but very cheap) and often needs replacing and I looked at that and thought what a waste; mine will be better than this.

I have gone for python as the control language because it’s great at what it does and does it without too much bloat (though it’s a pretty fat snake!). I have the skills and experience to write this all in C or assembly but I am not going to because I like python and that is what I have chosen.

As to home assistant, I really don’t like it. The most important part of that previous sentence is “I” and note the absence of the word “you”. There are loads of pre-existing platforms to easily achieve a web dashboard but that wouldn’t be fun, I wouldn’t learn new things and (as per previously stated) would not even be the most efficient way of doing things for this specific use case.

So spoiler warnings for future posts (boo for making me spoil future posts!) but a big part of why and how I am doing this as part of Devember is because I already know that I’m going to write this in Rust and also use a database even though the CSV aspect works fine now. This is comes back to the point of Devember, to learn new things. I have also avoided Rust because of my proficiency in C/C++ and other languages but it’s gained a lot of popularity and I agree with my friends who love it about why it’s good. So I thought this would be a good opportunity to force myself to learn a bit or Rust. Likewise, I know a lot about databases but have never set one up from scratch and have never integrated my own code with a database so I want to use this project as an excuse to do that. I also know that I kind of need one to achieve storing my recipes and other data. I could do it without but it would make things better if I had one and again, I mostly just want the experience of setting it all up.

So if my project offends you, please feel free to ignore it and let me enjoy it. While I appreciate positive engagement, I do know what and why I’m doing things and have chosen what I’m doing for reasons specific to me. So please don’t spam this page or the GitHub I made; just fork it. The code I have written is licensed under GPLv3 or higher so feel free to use that to make your own thing using my code.

I also promise to post some beer pics in the next update as everyone is very thirsty for them apparently.

I hope everyone has fun and learns lots!

6 Likes