Add hands-free PWA mode and systemd service

This commit is contained in:
2026-04-27 08:20:51 +02:00
parent 606a925724
commit f876b3a635
9 changed files with 339 additions and 70 deletions

View File

@@ -18,6 +18,16 @@ fb8cc4d Initial PWA assistant proof of concept
1b9933d Fix voice button audio unlock hang
```
Derniers changements locaux a deployer:
```text
- Service systemd `opensquared-assistant` pour tourner hors session Putty.
- Raccourci optionnel `/usr/local/bin/openbot`.
- Mode mains libres: `Demarrer` ecoute en continu, envoi apres 2 secondes de silence.
- TTS par defaut via voix navigateur `fr-FR` pour eviter l'accent anglais Groq.
- Cache PWA: opensquared-assistant-v5.
```
## VPS
```text
@@ -49,6 +59,37 @@ source .venv/bin/activate
pip install -r requirements.txt
```
## Service systemd
Installer ou mettre a jour le service:
```bash
cd /root/openbot
cp deploy/opensquared-assistant.service /etc/systemd/system/opensquared-assistant.service
systemctl daemon-reload
systemctl enable --now opensquared-assistant
```
Commandes quotidiennes:
```bash
systemctl start opensquared-assistant
systemctl stop opensquared-assistant
systemctl restart opensquared-assistant
systemctl status opensquared-assistant
journalctl -u opensquared-assistant -f
```
Raccourci optionnel:
```bash
install -m 755 /root/openbot/deploy/openbot /usr/local/bin/openbot
openbot start
openbot stop
openbot restart
openbot logs
```
## HTTPS et Nginx Docker
Le VPS utilise deja un `docker-compose.yml` avec un conteneur `nginx`.
@@ -130,8 +171,11 @@ Le bouton `Demarrer` etait non reactif sur navigateur parce que `unlockAudio()`
Correctif applique:
- `unlockAudio()` utilise maintenant `AudioContext`.
- `index.html` charge `/app.js?v=4`.
- Service worker: `opensquared-assistant-v4`.
- `index.html` charge `/app.js?v=5`.
- Service worker: `opensquared-assistant-v5`.
- Le bouton `Demarrer` lance le mode mains libres.
- Le message vocal est envoye automatiquement apres 2 secondes de silence.
- La voix par defaut est celle du navigateur en `fr-FR`, via `TTS_PROVIDER=browser`.
Si le bouton ne reagit pas apres un deploiement: