One of my goals in moving to HestiaPi was wider home automation, and MQTT is a widely used standard for that. Sadly, HestiaPi Original (not Touch) doesn’t have MQTT on it out of the box, so I developed my own! Open source rocks, right?
I’ve posted all the details on my blog - you can read my goals & aims in Part 1 of my Home Automation series. If you want to jump straight to “How do I install this?” then check out Part 2. Part 3 details the OpenHAB side. If you just want the code, head to my GitLab project.
Comments, corrections, and contributions are always welcome. The
hestia_mqtt app is still quite rough around the edges, although I’m slowly adding tests to ensure it does what it should
Just to point out to the people who already have the Original HestiaPi (not the touch version) that by adding MQTT support you can then easily integrate your HestiaPi to OpenHAB which opens a huge amount of additional features to be added in seconds. Haven’t tried Greg’s hack but it is a real upgrade for your existing installation!
I object to the word “hack” - this is quality code you know! <``kidding>
Inital OpenHAB / HestiaPi config is going to be the next entry in the blog series… stay tuned
Part 3 of the blog is now up, detailing the OpenHAB side of the integration with Hestia_MQTT. Feedback welcome!
Thank you for this!!! Reading it now… going to be fun!
Keep in mind, this guide is not for the touch version…
EDIT: Thanks for the draft review, I’ve posted the blog entry
Awesome work Greg! Thanks for sharing this.
(even though it does not matter anymore for your setup) Is it inside a cabinet? This was tested with <1’C error.
Are others on the same boat with gwmngilfen ?
Both local push button and web UI had boost option for both heating and hot water
Yes, the boiler & Pi are inside a cupboard. The sensor is accurate, it’s the room that is very warm. Sadly it’s not even a linear relationship to the rest of the house - if the hot water needs to come on, then that will raise the temp in the cupboard without heating the house.
Sorry, that was unclear, I’ll update the text. I can of course boost the water (that’s covered in my MQTT post), the key word here is “on”, not “heating”. The issue is that I couldn’t find a way to cancel the boost (i.e. turn the heating off) - all my attempts to do so didn’t work. Although now I think about it, perhaps sending a new boost with a duration of 1 minute would be almost the same thing… Anyway, letting the boost finish is a neat way of avoiding heating oscillations
Hmmm… both web UI and local buttons allowed a “Boost Off” command but I believe this was kept an internal mechanism that is not visible from your integration code…
Function toggleHeatingBoostStatus() below
So it turns out I don’t know my own code
The API is a toggle - if you send “POST http://hestiapi/api/heating/boost/toggle/heating/time/30” it will turn it on for 30min, and the exact same POST will turn it off again.
I’d already spotted that fact, because I coded around it: https://gitlab.com/gwmngilfen/hestia_mqtt/blob/master/lib/hestia_rest.rb#L46
However, I never added an “off” to my MQTT bindings, so I can’t call it. The problem is in my code, not yours