83 lines
2.6 KiB
Markdown
83 lines
2.6 KiB
Markdown
# AWTRIX 3 – Sonos NowPlaying (ioBroker Script)
|
||
|
||
Zeigt den aktuell abgespielten Sonos-Titel als **AWTRIX 3 Custom App** via **MQTT** an:
|
||
|
||
> 🎵 Künstler — Titel (Album)
|
||
|
||
Das Script nutzt einen **Keep-Alive Refresh**, damit die App in der Rotation bleibt, solange Sonos spielt. Sobald Playback stoppt/pausiert oder kein Titel mehr vorhanden ist, wird die App automatisch entfernt.
|
||
|
||
## Features
|
||
|
||
- ✅ Anzeige: `🎵 Künstler — Titel (Album)`
|
||
- ✅ Keep-Alive Refresh (damit die App nicht „rausfällt“)
|
||
- ✅ Entfernt die App automatisch bei Stop/Pause/kein Titel
|
||
- ✅ Debounce gegen Event-Spam vom Sonos-Adapter
|
||
- ✅ Alles in **einer Datei** (ioBroker-friendly)
|
||
|
||
## Voraussetzungen
|
||
|
||
- ioBroker **JavaScript-Adapter**
|
||
- ioBroker **Sonos-Adapter**
|
||
- ioBroker **MQTT-Adapter** (als Client/Publisher nutzbar über `sendMessage2Client`)
|
||
- AWTRIX 3 mit aktivierter MQTT-Anbindung (Prefix bekannt, i.d.R. `awtrix`)
|
||
|
||
## Installation (Quick Start)
|
||
|
||
1. Datei `nowplaying.js` öffnen und den Block **USER CONFIG** anpassen:
|
||
- `AWTRIX_PREFIX` (meist `awtrix`)
|
||
- `DP.*` (deine Sonos-Datenpunkte)
|
||
2. In ioBroker → **JavaScript** → neues Script anlegen → Inhalt von `nowplaying.js` einfügen
|
||
3. Script starten
|
||
4. Sonos abspielen → nach spätestens wenigen Sekunden sollte es auf der AWTRIX erscheinen
|
||
|
||
## Sonos-Datenpunkte finden
|
||
|
||
In ioBroker unter **Objekte**:
|
||
|
||
`sonos.0` → `root` → `<dein Gerät>` →
|
||
- `current_title`
|
||
- `current_artist`
|
||
- `current_album`
|
||
- `state_simple`
|
||
|
||
Kopiere die Objekt-IDs in `CFG.DP`.
|
||
|
||
## AWTRIX MQTT Topics (was das Script sendet)
|
||
|
||
- Custom App:
|
||
- `<prefix>/custom/<APP_NAME>`
|
||
- Beispiel: `awtrix/custom/NowPlaying`
|
||
- Optionaler Switch:
|
||
- `<prefix>/switch`
|
||
- Wird nur genutzt, wenn `FORCE_SWITCH=true`
|
||
|
||
## Konfiguration (wichtigste Optionen)
|
||
|
||
Im `CFG` Block:
|
||
|
||
- `LIFETIME_SEC`: Wie lange ein Eintrag ohne Refresh überlebt
|
||
- `KEEPALIVE_SEC`: Alle wieviel Sekunden refreshed wird
|
||
- `FORCE_SWITCH`: Wenn `true`, schaltet AWTRIX bei jedem Refresh aktiv auf die App (meist **false** lassen)
|
||
- `ICON_MUSIC`, `COLOR_RGB`, `TEXT_CASE`: Darstellung
|
||
- `DEBUG`: Zusätzliche Logs
|
||
|
||
## Troubleshooting
|
||
|
||
### Es wird nichts angezeigt
|
||
- Stimmt `AWTRIX_PREFIX`?
|
||
- Ist MQTT auf der AWTRIX aktiv?
|
||
- Funktioniert dein MQTT Adapter (und kann publishen)?
|
||
- Stimmen die Sonos-Datenpunkte?
|
||
|
||
### App verschwindet nach kurzer Zeit
|
||
- `KEEPALIVE_SEC` ggf. kleiner setzen (z.B. 5–10)
|
||
- `LIFETIME_SEC` größer setzen (z.B. 600–1200)
|
||
- Prüfen ob `state_simple` wirklich `true` während Playback ist
|
||
|
||
### Die Uhr springt ständig auf die App
|
||
- `FORCE_SWITCH` auf `false` setzen
|
||
|
||
## Lizenz
|
||
|
||
MIT – siehe `LICENSE`.
|