Open xanathon opened 4 years ago
Same problem for me. Same Chrome version on Windows 10 using the webapp on Dockerized Node LTS on another computer.
I found the reason. The Bluetooth feature only works over http on localhost otherwise it should be https.
It looks like this just does not work on a Raspi whatsoever, not locally with Chromium or remote after opening the port with other browsers. I installed the setup on a Windows box that runs nothing else than Node.js and web setup. I then am able to get the web gui running with Vivaldi browser.
If I try to connect to that from another computer in the network I get "use Chrome" on http, on https I get "not able to establish a secure connection".
However I am stuck at pairing any one of my Vectors via Bluetooth, but that should be another issue.
I have managed to use it with this :
FROM node:lts
RUN npm install -g vector-web-setup && \
vector-web-setup configure && \
vector-web-setup ota-sync
CMD ["vector-web-setup", "serve"]
version: "3"
services:
vector-web:
container_name: vector-web
image: vector-web
build: ./src
ports:
- 4040:8000
PS : Digital dream labs needs to add CORS to the node application.
Yes the app does a capabilities check to see if the browser will let us talk to the BLE interface for programming. If that capabilities check fails we show a simplified error message that seemed to be useful to most users. We'll have to come up with a way to get some better error messages that don't overwhelm users.
The cors is a separate issue because we need to decide how to handle that on the cloud side which issues the list of valid domains. Our cloud stack is restricted to a select set of authorized domains so users don't get a malicious firmware installed via a random website. As the escape pod rolls out people will be able to set their own cors settings as they see fit.
I just tried to load localhost:8000 in Edge. According to the Mozilla page on Web BT that browser implements it way further than Chrome, but I still get "Browser needs to support Web BT". Is the Chrome check hardcoded?
I do not think you will need to think about "most users" at the moment, as all of this is way beyond most normal users anyway in the current state. ;) So more elaborate error messages would be helpful in debugging.
We do a capabilities check here:
https://github.com/digital-dream-labs/vector-web-setup/blob/master/rts-js/main.js#L408
If you want to investigate you can eliminate the check, but then the code in rts-js/vector-bluetooth.js
tries to access the same object, so there will need to be some adjustments there as well.
This is as far as I can get running either v.1.0.0 installed with npm, or running the latest from this repo ( with or without websec enabled ):
Any idea?
The following chrome://flags
has to be enabled:
Has anyone else had any more success with this? I would love to get this working, I am on Ubuntu and am unable to get past this capabilities check. I have the server running on Ubuntu and have tried connecting via a native windows device as well as android to no avail.
Usually I do not use Google Chrome for privacy reasons. However, since your readme claims web bluetooth only runs in Google Chrome (which is not true regarding the information here: https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth#Browser_compatibility) I installed it for this reason.
Chrome version 84.0.4147.105
I still get this error message: "Vector Web Setup uses Web Bluetooth which requires Google Chrome. See Mozilla's compatibility table for details."