Page rendering speed on Raspberry pi 4 (as a client)

I’d like to get a raspberry pi 4 (8gb) as a client to display the mainui web interface on a 24" touch screen monitor. I have a Raspberry 3b+ and noticed that the mainui web interface is quite sluggish on it. I am wondering if anyone here has tried it on an Rpi4?

To be clear, I am not going to run OpenHAB itself on the Rpi. Openhab is running on my server, separately. The Rpi will just boot up, and fire up a browser to show the mainui over the network, I’m planning to see how it goes via wifi.


I’m running it on a rpi4 using chromium and it sucks! Don’t do it!
Any cheap android tablet will do a better job. I already tried using different browsers but none of them did a lot better, chromium is the best right now in my opinion.

I have a 10 inch touch panel, all the tweaks like KMS and gpu mem 256MB applied.

1 Like

I’d suggest putting Android on your RPi and then installing HabPanelViewer. That way, you can also use the value-reporting features of HPV to turn the display on and off.

Android on the Raspberry Pi using LineageOS - Pi My Life Up.

I have no idea if this will work with your touchscreen monitor, but if you’ve already got the hardware then there’s no cost. You don’t even need to install GApps, since you can get HPV from GitHub (you’ll need the 0.9.27pre build).


I got this to somewhat acceptable speeds by first: turning off animations/effects and second, only running lightweight chromium on the x server, without a window manager or similar.

Still, I switched over to habpanel!

1 Like

Thanks for all the feedback and suggestions! Why is HabPanelViewer (HabPanel) faster? Is it more lightweight in its use of javascript and/or css?

So far I have avoided looking into having a wall display, and just worked on the automation side of things.

I have not really looked into HabPanel because it required direct html/css coding which is my weak area. I like the MainUI because it’s just dealing with yaml, so it seems like a much cleaner way to design / manage it.

Could you explain further about this “value-reporting features”?

I was planning on adding some extra stuff to the Rpi for:

  • Ambient light sensor - so I can adjust the monitor’s brightness or turn it off when dark
  • Proximity sensor (either using the ultrasonic one or the laser distance measure one) - so I can change the screen from 100% photo album to displaying more controls automatically when someone approached it
  • The monitor I chose has built in speakers, so I am hoping I can somehow figure out to use it as an audio sink for openhab (bearing in mind openhab is not running on the rpi itself).

My fallback option would be to use a small computer (like the intel NUC or something similar, maybe even a mac mini?) but that would cost more than an Rpi (Mac Mini: A$999 vs Rpi $200+). I haven’t bought the Rpi4 yet. To use a small computer would mean those sensors will need to be created as USB devices, so probably a bit more challenging to do.

The largest tablet is around 12.9". I’m going this route because I want a bigger display which is currently only possible by using a monitor + some sort of computer or rpi.

Has anyone tried other SBCs?

Why is Rpi4 so much slower than a cheap android tablet? Surely the CPU and GPU on the Pi is faster.

HabPanelViewer can be used to display Main UI, and if it’s faster that’s probably due to Android more than anything else. I don’t know if it will handle all the sensors you want to add, though. You can read about its features in Github.

EDIT: It’s more accurate to say that I don’t know if LineageOS will handle all of the sensors you want to add. In theory, if the sensors work in Android, HabPanelViewer can use them.

I actually don’t see the point of having a big-screen display for controlling openHAB. I use HabPanel on an old Android phone that effectively serves as a wall-mounted thermostat, but everything that can be automated is automated. The vast majority of my interaction is through Google Assistant and light switches that trigger rules.

So really, that’s the first question I think you should ask: why do you want a big display? For me, the point of home automation is that I don’t have to walk around and turn off all of the lights at the end of the day. I just ask Google to do it from wherever I am in the house. My phone/tablet are backups for when Google isn’t working.

This isn’t to say that a big touchscreen can’t be useful. I just don’t think that it’s ideal as a primary interface.

1 Like

@Daniel_O Assuming you meant that you’re using an Rpi4, which OS do you use? How’s the performance with Habpanel? Is it as good as a tablet?

Thanks That’s useful information.

Also good to know. So Rpi + Android might be a good way to go… I’m just trying to avoid buying an Rpi4 and still having to end up with a mac mini, so I’m trying to gather some info first.

I’d imagine it would require some coding. I’m willing to give it a go even though I don’t have any experience.

Neither do I. It is not for turning things on/off - that’s what sensors + openhab + rules are for.

I just want a big display primarily for:

  • Having a big photo frame showing photos from my Facebook albums. I’ve written the code to do this, and I’m currently working on the MainUI widget to display them nicely.
  • A place to display / edit some lists (todo, shopping, etc)
  • Display the weather forecast, UV level, power utilisation (from openhab). Currently we have to continually ask Google assistant or check our phone to view this information.
  • Show some kind of reminders
  • Show the camera feed for the front door when the door bell is pressed / motion is detected whatever the rule may be.

Big thanks to you @rpwong!
I didn’t know about android for rpi! I have installed it on my rpi4 and it runs really great! Finally some smooth web browsing!
One hint in case habpanelviewer or fully won’t display the main UI: it is important to install and update the android web services, it’s not enough to just install the gapps nano.
Running smooth on my rpi4 with a 10’ touch screen!


Great news! Do you use a fan and/or heatsink for your rpi?

Also since you’re using HabPanelViewer, do you add anything to your rpi to support the various features such as motion detect, proximity sensor, brightness sensor, etc?

That’s good to know. I thought it might be possible to get away without the GApps at all.

I do use the heat sinks, not the fan though as it is way too loud. You can get away with it, but only if you don’t put lots of load on the pi4.
I’m using Flly Kiosk browser right now, habpanelviewer crashed on me a few times (might be my settings though).
I don’t use any sensors on the pi as of now. I have all my sensors in the rooms anyways. Formerly I used a script to switch the display off and on - I might replicate that with HPV tomorrow.

I think hooking up sensors to the pi and have them recognized by the android might be a little tricky, but that’s just a guess!

I’m using a Minimal raspian version.

Habpanel works smoothly, I don’t use grafana though.

I am currently using my old Raspberry pi 3b+ with raspberry pi os (not sure which version) + chromium browser, nothing special, no tweaks whatsoever.

I am using it to display photos using the f7-swiper component, set to css mode, and the performance is not too bad.

It gets slow when I clicked on something to open a weather card popup.

Got a link to a detailed info on this?

I’ve set chromium to autostart using .config/lxsession/LXDE-pi/autostart although I’m encountering a bug where chromium will show a blank black page. It will only show my content when I opened a new tab, then closing that new tab.

I also tried to put the display to sleep (which worked) but putting it back on didn’t seem to work

sudo /opt/vc/bin/tvservice -o # Turn off hdmi - works
sudo /opt/vc/bin/tvservice -p # turn hdmi back on - doesn't work

I am a bit reluctant to use LineageOS (Android) out of fear that it would be harder to customise / add sensors, but I might have to go that way.

Do screen blanking and restoration work fine on LineageOS + Rpi + hdmi monitor?

You can tweak the settings in raspi-config depending on your distribution.
In order to blank out the page I formerly used xscreensaver which I set remotely through a ssh command, but it wasn’t very reliable.
Turning off and on the screen with habpanelviewer works great now on android!

Why do you want to integrate all those sensors directly in your screen rpi? A standalone sensor or even a 4€ nodeMCU will do the job!

Try disabling animations (it’s well hidden in the “about” menu) .This makes popups significantly faster on raspberry