So I’ve just changed out my old jQuery Mobile design for a new flat version  which looks a lot slicker. Works great on my laptop and iPad. The slider works perfectly, and double tapping it puts the lamp in auto mode (it has an ambient light sensor).
The plus and minus buttons adjusts the timer and pushing the Timer Long button sets it. Unfortunately I haven’t got feedback on the timer, so the value doesn’t decrement over time. The timer slowly decreases the brightness, so the slider does move with the changes (though only for the primary client and not for any other clients). On the iPad there are no arrows on the timer value, so the plus and minus buttons are very useful, also they change the value by 5 which is much more convenient.
The flower shows the health of my potted rose. I’ve attached the Arduino I use for the lamp to a homemade moisture sensor placed in the pot. When the webpage shows the flower drooping it’s time to fill up the water tank for the self-watering pot, if the plant is drooping badly, black and dead, then watering is long overdue.
Other than that the two way Web Socket solution works fairly well. The Java server does operate in sync mode (not async), so there is a slight lag if a client with high latency is connected (far away or cellular connection).