SlopScupper
00 crowd

HA-Toniebox

Unofficial Home Assistant integration for Toniebox / Tonie Cloud
Open repo on GitHubgithub.com/git4sim/HA-Toniebox
Python · ★ 24 · 4 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)iot
listed 8 hours ago by git4sim · last checked 1 hour ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-11: An unofficial Home Assistant integration for the Toniebox kids' audio player, whose README says "This integration was vibecoded". 24 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as git4sim. There's no account to make: SlopScupper only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Unofficial Home Assistant integration for Toniebox / Tonie Cloud
topics
hacshome-assistantiotpythontonieboxtonies
created
2026-03-11 · pushed 1 week ago · 89 commits · 3 contributors
release
v4.0.2 · 2026-08-30
languages
Python 100%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 8 hours ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
iot
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
python
topic (detected)
hacshome-assistantiotpythontonieboxtonies
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: An unofficial Home Assistant integration for the Toniebox kids' audio player, whose README says "This integration was vibecoded". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

HA-Toniebox Logo

HA-Toniebox

Unofficial Home Assistant Integration for Toniebox / Tonie Cloud
Inoffizielle Home Assistant Integration für Toniebox / Tonie Cloud

HACS Custom Version Home Assistant MIT License Vibecoded


Warning

Disclaimer — Please read before use / Bitte vor der Nutzung lesen

This project has no affiliation with Boxine GmbH (manufacturer of Toniebox / tonies.de) and is neither supported nor endorsed by them. It uses the official Tonie Cloud REST API, which may change at any time without notice. Use at your own risk. No warranty, no support from Boxine.

Dieses Projekt steht in keiner Verbindung zu Boxine GmbH und wird von diesen weder unterstützt noch empfohlen. Es nutzt die offizielle Tonie Cloud REST API, die sich jederzeit ohne Ankündigung ändern kann. Nutzung auf eigene Gefahr.

🤖 This integration was vibecoded — developed with AI assistance (Claude by Anthropic) and tested against a real Toniebox account.


🇬🇧 English

Features

  • 🧸 Each Creative Tonie as its own device with media player, cover image and chapter list
  • 📻 Each Toniebox as its own device — shows the currently placed figure with name and cover
  • ▶️ Full playback control on the Toniebox 2 (TNG) — play/pause, next/previous chapter, jump to any chapter (browse), volume, and put to sleep — live via the Tonie Cloud's real-time channel
  • 🎚️ Live "now playing" — current chapter title, progress bar and play/pause state
  • ⏲️ Sleep timer — start a timer via the toniebox.sleeptimer action, with a sleeptimer_active binary sensor
  • 📊 Sensors for chapter count, total duration, firmware version, online status, battery level, active figure and figure ID
  • 🔘 Buttons to sort (title / filename / date), shuffle, clear and refresh
  • 🔀 Shuffle the chapter order on demand (sort_chapters with sort_by: random) or automatically on swap — a per-Creative-Tonie switch that reshuffles a Tonie once a different one replaces it on a box
  • 🔴 Binary Sensors for transcoding, live mode, household lock, active figure and running sleep timer
  • 🎛️ Switches for LED, chapter skipping, scrubbing, offline mode, household lock
  • 🌐 Select entities for language, LED level, tap direction, age mode
  • ⚙️ Services for automations: sleeptimer, sort, clear, rename, apply tune, redeem voucher and more
  • 🌍 Translations for English, German, French, Spanish and Italian
  • 🔐 Keycloak OpenID Connect authentication — same credentials as the Toniebox app
  • 🛠️ Config Flow setup — no YAML required
  • 📦 HACS compatible

Installation via HACS

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Note

If the button does not work: add https://github.com/git4sim/HA-Toniebox manually in HACS as a Custom Repository of type Integration, search for Toniebox and download.

Restart Home Assistant after download.

Manual Installation

Copy the custom_components/toniebox/ folder from the latest release into your HA configuration directory:

/config/custom_components/toniebox/

Restart Home Assistant.


Setup

Open your Home Assistant instance and start setting up a new integration.

Note

If the button does not work: go to Settings → Devices & Services → Add Integration and search for Toniebox.

Enter the email address and password of your Toniebox account (the same credentials as in the Toniebox app or on my.tonies.com).


Device Hierarchy

The integration creates a logical device hierarchy in Home Assistant:

Household (Hub)
├── Toniebox 1       →  Media Player · Switches · Sensors · Buttons · Select
├── Toniebox 2       →  ...
├── Creative Tonie A →  Media Player · Chapters · Duration · Sort/Clear Buttons · Live/Private Switch
└── Creative Tonie B →  ...

Each device appears under Settings → Devices & Services → Toniebox with its own entities.


Entities

Household (Hub device)

Entity Description
sensor.<household>_account Logged-in account (email)
sensor.<household>_creative_tonies Number of Creative Tonies
sensor.<household>_tonieboxes Number of Tonieboxes
sensor.<household>_children Number of child profiles
sensor.<household>_members Number of household members
sensor.<household>_notifications Number of unread notifications
sensor.<household>_pending_invitations Pending invitations
button.<household>_refresh_all Reload all data from server

Per Toniebox

Entity Description
media_player.<toniebox> Current chapter, cover, progress and play/pause; on TNG also play/pause, next/previous, chapter browsing, volume and sleep (turn off)
sensor.<toniebox>_current_tonie Currently placed figure (name)
sensor.<toniebox>_current_tonie_id Currently placed figure (raw Tonie ID — useful as an automation trigger)
sensor.<toniebox>_settings_applied Whether the latest settings have been transmitted
switch.<toniebox>_skip_chapters Chapter skipping via tap on/off
switch.<toniebox>_scrubbing Scrubbing by tilting on/off
switch.<toniebox>_offline_mode Offline mode
switch.<toniebox>_tilt_and_tap Accelerometer on/off (older boxes)
sensor.<toniebox>_firmware Current firmware version
sensor.<toniebox>_last_seen Timestamp of last connection
sensor.<toniebox>_online_status API online status (connected / offline / unknown)
sensor.<toniebox>_current_battery Live battery level — unknown when offline (TNG only)
sensor.<toniebox>_current_battery_status Live charging status — unknown when offline (TNG only)
sensor.<toniebox>_last_battery Last known battery level while online (TNG only)
sensor.<toniebox>_last_battery_status Last known charging status while online (TNG only)
sensor.<toniebox>_last_online Timestamp of last cloud connection (TNG only)
sensor.<toniebox>_generation Model generation (classic / rosered / tng)
sensor.<toniebox>_features Supported features
sensor.<toniebox>_timezone Configured timezone
sensor.<toniebox>_setup_wifi SSID of setup network
sensor.<toniebox>_added_at Registration date
sensor.<toniebox>_bedtime_color Night light color (tng)
binary_sensor.<toniebox>_online Toniebox recently active (reachability)
binary_sensor.<toniebox>_led_active LED status
binary_sensor.<toniebox>_charging Currently charging — unknown when offline (TNG only)
binary_sensor.<toniebox>_sleeptimer_active Whether a sleep timer is running; sleep_until attribute shows when the box will sleep (TNG only)
select.<toniebox>_led_level LED brightness
select.<toniebox>_language Language setting
select.<toniebox>_tap_direction Tap direction
select.<toniebox>_age_mode Age mode
number.<toniebox>_max_volume Maximum volume
number.<toniebox>_lightring_brightness Light ring brightness
button.<toniebox>_refresh Reload device
button.<toniebox>_factory_reset Reset settings

Per Creative Tonie

Entity Description
media_player.<tonie> Main entity with cover image and chapter overview
sensor.<tonie>_chapters Number of chapters (incl. chapter list as attribute)
sensor.<tonie>_total_duration Total playback duration in minutes
sensor.<tonie>_remaining_time Remaining free capacity in minutes (max. 90 min)
sensor.<tonie>_transcoding Transcoding status
switch.<tonie>_private Hide Tonie from guest members
switch.<tonie>_live Enable live mode
switch.<tonie>_shuffle_on_swap Local only — when on, this Tonie's chapters are shuffled once it is replaced on a box by a different Tonie
binary_sensor.<tonie>_transcoding Transcoding in progress
binary_sensor.<tonie>_live Live status
binary_sensor.<tonie>_private Private status
button.<tonie>_clear_chapters Remove all chapters
button.<tonie>_sort_by_title Sort chapters alphabetically
button.<tonie>_sort_by_filename Sort chapters by filename
button.<tonie>_sort_by_date Sort chapters by date
button.<tonie>_shuffle_chapters Shuffle chapters into a random order
button.<tonie>_refresh Reload Tonie data

Shuffle on swap (switch.<tonie>_shuffle_on_swap) is a local convenience toggle with no counterpart in the Tonie Cloud:

  • Only a displacement counts: the shuffle fires for the Tonie that gets replaced on a box by a different Tonie. Simply lifting a Tonie off (box goes empty) never shuffles it, so you can pick it up and put it back later to keep listening where you left off.
  • Only Creative Tonies with ≥ 2 chapters are shuffled.
  • Each shuffle triggers a full re-transcode on the Tonie Cloud (typically 1–60 s) — expected, not an error.
  • Real-time on the Toniebox 2 (TNG) via the cloud's push channel; on classic (non-TNG) boxes there is currently no placement data source to detect a swap from, so this only works on TNG.

Services

toniebox.sort_chapters — Sort Chapters

service: toniebox.sort_chapters
data:
  entity_id: media_player.my_tonie
  sort_by: title   # title | filename | date | random

random shuffles the chapters into a new random order. Like every reorder, it triggers a full re-transcode of the Tonie on the Tonie Cloud (typically 1–60 s). Needs at least 2 chapters.

toniebox.clear_chapters — Clear All Chapters

service: toniebox.clear_chapters
data:
  entity_id: media_player.my_tonie

toniebox.remove_chapter — Remove a Single Chapter

service: toniebox.remove_chapter
data:
  entity_id: media_player.my_tonie
  chapter_id: "abc123"

Chapter IDs are available as the chapters attribute on the media player or chapter sensor.

toniebox.move_chapter — Move Chapter

service: toniebox.move_chapter
data:
  entity_id: media_player.my_tonie
  chapter_id: "abc123"
  direction: up   # up | down

toniebox.upload_audio — Upload Audio

service: toniebox.upload_audio
data:
  entity_id: media_player.my_tonie
  file_path: /config/tonie_audio/story.mp3
  title: "My Story"   # optional

Supported formats: mp3, ogg, wav, flac, m4a, aac, opus.

toniebox.rename_tonie — Rename Tonie

service: toniebox.rename_tonie
data:
  entity_id: media_player.my_tonie
  name: "Bedtime Tonie"

toniebox.rename_toniebox — Rename Toniebox

service: toniebox.rename_toniebox
data:
  entity_id: media_player.my_toniebox
  name: "Kids Room"

toniebox.sleeptimer — Sleep Timer (Toniebox 2 / TNG only)

Start a sleep timer: the box falls asleep on its own after the given number of minutes. Pass 0 to cancel a running timer.

service: toniebox.sleeptimer
data:
  entity_id: media_player.my_toniebox
  minutes: 30   # 0 = cancel the running timer

Setting a timer has no immediate visible effect — the box keeps playing and sleeps later. Watch binary_sensor.<toniebox>_sleeptimer_active (attribute sleep_until) to confirm it is running.

toniebox.redeem_content_token — Redeem Content Token

service: toniebox.redeem_content_token
data:
  entity_id: media_player.my_tonie
  token: "TOKEN123"

toniebox.apply_tune — Apply Tune to Tonie

service: toniebox.apply_tune
data:
  entity_id: media_player.my_tonie
  tune_id: "tune-id-xyz"

toniebox.remove_tune — Remove Tune (Restore Original)

service: toniebox.remove_tune
data:
  entity_id: media_player.my_tonie

toniebox.redeem_voucher — Redeem Voucher Code

service: toniebox.redeem_voucher
data:
  code: "VOUCHER123"

toniebox.dismiss_all_notifications — Dismiss All Notifications

service: toniebox.dismiss_all_notifications

toniebox.accept_invitation / toniebox.decline_invitation — Accept/Decline Invitation

Scan report · 2026-09-11
  • Prohibited terms or links
  • Repository eligibility
  • slopscore.md paperwork
  • Content policy
  • Risk review — +10 owner has 0 followers

0 comments

log in to comment.

report this listinglog in to report