Alternative software


I’ve nearly finished the first version of my own GUI & control application. It’s very minimal in resources and built to be secure. I’ve built it from scratch on a standard Arch Linux ARM distro, with quite a few customisations applied.

I will upload the source code to github soon, including installation and Arch build instructions. Do you happen to have any interest in presenting the application and instructions here? Or even hosting a complete image?



Of course! If you could write a complete and clear post I can add a link to it from the main website too!
About hosting… I am simply hosting my files on a google account so my space is limited I am afraid.

OK. First version is online.
Sorry for the crappy instructions there, please do ask for details if needed.

Displays current temperature, humidity and pressure.
Allows changing set temperature.
Allows setting modes: Auto/On/Off/Boost/Sleep
Allows scheduling, browse to scheduler.php.



very well, I try and let you know

(can I use Dietpi instead of ArchLinux?)

was about to ask too… What distro(s) can we start off?
Additionally, does it support the touch LCD or is it completely headless?

@Gianvito: Looking at their website they seem to provide the required packages. Mosquitto should be installed with websockets on though.

@HestiaPi: Any distro that provides mosquitto with websockets, python3, a web server (like lighttpd) and sqlite. You’ll want a kiosk mode desktop as well.

The application is a python program with a separate web interface. If you run the HestiaPi in kiosk mode (for example with openbox+midori or with chromium) and have it show the webinterface/index.php file, the web interface fits and works on the HestiaPi touch.
Scheduling should be done on a different machine.

so :
On a server (in my case, a home server where “Home Assistant” runs) is installed the temperature management python (with mqtt broker…etc), hestiapi is a mqtt client (relays control) and displays the command webinterface.


The python program must run on the hestiapi. It does the temperature, data and switch management.
The web interface can basically run anywhere.
Both are mqtt clients (python is a mqtt client and webinterface a mqtt websockets client).

The hestiapi should display the webinterface (in a browser).

to make this easier, could you create a disk image with fictitious data on iothermostat.conf? in this way it would be easy to distribute

but the button for the scheduler.php was not deliberately put?

I can certainly create an image, this indeed would be the nicest for end users. Will be around 2.6 GB when installed.

I will also post instructions to setup the system from scratch, for modders (and paranoids).

A button for the Scheduler page in the Advanced page is an option, to appear only for remote clients as the page doesn’t work well on the hestiapi itself (too large and requires scrolling).

edit: see IOThermostat image


I really like Openhab I’ve used it for a couple of years now for my home automation server. So It pains me to say I’ve started to hate the Habpanel . As you have said its a very heavy software, Openhab and my wife is about to explode because the Habpanel UI wont do what she wants it to do, especially with the dragging problem with the widgets . I’m really eager to try your light weight image but I have a few questions .

  1. I’ve never used Arch OS before apart from being a fan was there any reason you chose it ? does it have any improvements compared to a debian based OS? ( I only ask as I’ve Mostly used Debian based Distros and would possibly install it manually on rasbian or something similar .

2)I Have openhab as my HA Server would it be possible to control the interface via Mqtt and access it this way (only the main UI not the scheduling obviously ) when away from home. otherwise I would probably not bother setting it up to access via Port forwarding, dyn dns etc…

3)Obviously its very early in development but how stable would you think you set up is ? as I say my wife just wants it to work now (cold time of year ) and she’s getting annoyed with me promising a solution and not delivering .

  1. does it use the newly discovered LCD driver that reduces the load average ?

  2. is the schedule setup stored and restored after reboots?

6)I take it I would have to change this to 23 ?

 self.GPIO_PIN = 12 # this can be 23 as well

thanks in advance

I just realised that this came back from the dead with the OH update. It was resolved in an earlier version but I can clearly see it now. Tapping on buttons that have an icon, most of the times produces a drag event on the icon rather than pressing the button. This is an easy fix from SSH. Testing a patch script and will post here too the steps to disable. This has nothing to do with the “slow” screen though and will not affect that.

Fix tested and Github updated so that we don’t rely on OH to fix it :wink:

Run these commands over SSH:
sudo /home/pi/scripts/ && /home/pi/scripts/;

For (US) people using the HVAC mode on the LCD, run this:
sudo cp /home/pi/scripts/habpanel.hvac.config /var/lib/openhab2/config/org/openhab/habpanel.config;
For (EU) people using the EU mode on the LCD, run this:
sudo cp /home/pi/scripts/habpanel.nohvac.config /var/lib/openhab2/config/org/openhab/habpanel.config;

and finally reboot
sudo reboot;

Hey Greylinux,

  1. Arch Linux is minimalistic, simple, highly configurable and very up to date. As a result it is light and fast, but requires experience with linux. The community support is great and the availability of software is also great.

  2. Currently there’s no support for OpenHAB on IOThermostat. If I can find documentation on OpenHAB format for mqtt (which is supported), then I would consider adding OpenHAB support. By the way, instead of dyn dns, port forwarding and encryption you could simply use a VPN.

  3. I’ve been running IOThermostat for a few months now, and no problems encountered so far. It went through a power outage with no errors.

  4. The used LCD driver is the one provided here, which seems to be version 170703. It no detectable cpu load.

  5. The schedule is stored at regular intervals and at normal reboots. After reboot IOThermostat will go into Auto mode running the stored schedule.

  6. Yes, you’re correct! I’ve changed it in the repo. Thanks for noting.

Thanks for the reply ,

Sounds perfect! if it has some things similar to Debian based distros I’m sure I’ll be fine, I know it uses pacman instead of APT/dpkg

Support for openhab would be perfect I don’t know if this helps here
Also I have an issue that I had to install my HestiaPi on a wall that has heating pipes running behind it so the temperature reading is not accurate .However I have external temp sensors I made that report to my open-handed every 5 minutes so it would be good to have openhab send these readings to the Hestia via Mqtt and hopefully I could get an average of the 2 for an accurate temp reading .

If I can help out with this I would be more than happy .
Yeah I could use a VPN but currently I have presence detection set up on the openhab, which detect the phones connection with the router, a VPN would show me as home and void it’s use .
Currently I also have a nextcloud cloud server port-forwarding on 80 and 443 and I don’t want to complicate things with configuring other ports to point to 80 and 443 on the HestiaPi’s.

If there’s a mqtt topic to subscribe to for IOThermostat, and you have the format of the message (payload), it could be fairly easy to implement a listener.
If the first answer is yes, could you post a complete mqtt message that contains the temperature?

I edited my openhab item to send the state of the item which is update by openhab with a number variable when the sensor sends a temp reading this is the item

Number temp01 "Temperature Downstairs: [%s °C]" <temperature> { channel="mysensors:temperature:75515841:temp01:temp", mqtt=">[mosquitto:/mysensors/temp/downstairs:state:*:default]" } 

this sends a reading for example (19.0) to the topic /mysensors/temp/downstairs the state of the item

does this help at all ?

also I tried the arch image today and everything seemed to load fine however no local hotspot showed so I was unable to connect to the hestia and connect it to the wifi any ideas?

I could work out how to enter the details for the wifi manually as I’m used to wpa_supplicant

This definitely helps. I can add a routine to IOThermostat to use the values from that (any) mqtt topic as a temperature reading.

As for Wifi: does the GUI load and show current temperature, humidity and pressure? If so, what IP is shown on the info page? If it’s not a 10.x.x.x. address, did you try cycling power? If it is, do you try a different Wifi device to access iothermostat?

Note: Networking is managed by Network Manager, not wpa_supplicant.

Perfect that would be great to have it use the readings.
Yeah everything loaded perfectly it was showing all the temp , humidity values. The IP was I think!
I had to return to my HestiaPi image to put the heating on
. I did try a power cycle as well but no luck
Yeah I noticed from your manually install instructions that it is network manager . I’m not sure how you can manually enter WiFi details with Network Manager before you boot the SD card .
I used to add the details in wpa_supplicant for other installs .
Is it possible the hotspot was hidden ?
I tried to find it using my phone as well but no such luck

This IP is that of the loopback device, meaning your wifi did not come up for some reason.
Can you access the files on the SD card? The log files are in /var/log/journal/[machine-id]/*.journal
Load system log with

journalctl -r -b --file=/var/log/journal/[machine-id]/system.journal

It will tell what went wrong.