HADashboard in IOS 5.1.1

By coincidence I noticed that the values do not update in Safari running on IOS 5.1.1 (first ipad).
All of the widget are shown correctly and switches are working, but if a value changes it does not change in the dashboard.
Is it possible to get this to work on a iPad 1 (would be nice to have a purpose for this iPad :slight_smile: )

2 Likes

I would guess that the issue is that the old browser doesn’t support websockets - if that is the case I would have to write an entire new communication system between the browser and the server which is not something I really want to do … a workaround might be to have the browser refresh every 5 seconds or something similar to pick up the new states.

Another possibility would be if you could install a more recent version of chrome and use it instead of Safari.

According to google and a online test the browser should accept websockets (safari and chrome).
The safari console shows 2 errors:

  • Wrong protocol for WebSocket ‘’
  • SYNTAX_ERR: DOM exception 12: An invalid or illegal string was specified.

Maybe a different websocket protocol?

After some googling it seems that the used websocket library doesn’t support the Hixie-76 protocol, only the newer RFC 6455 protocol.
I’ve got some spare iPhone 3G and iPad’s so it would be super if I could use them as dashboard devices.
If someone could give me some pointers where to look in the appdaemon code, I would like to try to solve this (eg change a library?).

cant you try to install a newer version from chrome first?

Happy to merge it in if/when you figure it out!

  • the Websocket code browser side is in appdaemon/assets/javascript/dashboard.js right at the top,
  • it is initially called from appdaemon/assets/templates/dashinit.jinja2.
  • The library I am using is appdaemon/assets/javascript/reconnecting-websocket.min.js

The version I’m running on the iPad is the newest available for IOS 5.1.1
When running some online test websites the result is the same in Safari as in Chrome, both make use of the same protocol.
In older forums on the net I stumble across the same issues I’m having now. The answers given there are to switch library.

Thanks!
I’ll inform you as soon as I have succes.

1 Like

Interesting thought - HASS has it’s own ws library, do you have the same problems with the HASS UI, or does it work? It could be just as simple as swapping to the HASS library.

Even worse, the HASS UI isn’t showing at all on a IOS 5.1.1 device.
Only a blue bar.
But I’ve read on the HASS forum it is because of the framework used.

And there it is… This is way out of my league :disappointed:
The only thing I could find are Node.js modules, like Websocket.io
This module handles multiple protocols, including the Hybi-00 (Hixie-76) protocol needed for IOS 5.1.1
But I really don’t know how to convert it to work with the reconnecting websockets script.
Maybe some javascript genius is willing to help?
It would be great if this protocol is supported by Appdaemon/hadashboard, I think a lot of people have old Apple devices lying around and they are perfect for a dashboard tablet.

@aimc, may I ask you for 5 minutes of your time?
I think I found a library which handles multiple protocols, including the hybi-00, it’s called sockjs.
It also does the reconnecting thing.
Could you please have a look at it, and determine if it can be implemented in Appdaemon?

A very big thank you.

Looks interesting although it doesn’t mention the re-connection piece. I’ll take a look at it.

Sorry, I thought I read it somewhere. But maybe it can be combined with reconnecting websockets?
They say it follows the Websocket API closely, maybe the js file from reconnecting ws can be modified to use SockJS?

Again a very big thank you!

Hi all,

I’m experiencing the same issue. Did you have any update about it?

No, sorry not yet.
Hopefully the devs can find some spare time to have a look at it.

Sorry to rewake this old thread, but I’m wondering if there’s been any progress on this issue? I happened top experience the same thing just lately when I found my old 1. gen iPad and set it up with HADashboard, having the same trouble with widgets not updating correctly. The clock widget functions, the time and date changes correctly, but sliders (under lights) does not show the correct percentage when moved. I have tried all other types of browser without luck.
It would be so cool if my old iPad could be used for this.

I managed to get it to work by swapping out the used websocket lib with socket.io that still works on older devices \o/

If ppl are interested i can make some patch files from the changed code

I’d be interested in seeing what that looks like - I’d want to make it selectable as an option in the config file, but if you have that working i’d be happy to accept a Pull Request!

Will see what i can do altho my patch is far from good its more a hack then production code