tmanager

Introduction

tmanager is a specialized application designed to manage and automate updates to Kreativ-Tonie devices through external triggers. It provides a seamless way to update your Kreativ-Tonie’s audio content without manual intervention.

Primary Use Case

The application is designed for scenarios like:

  • Set up a microcontroller with an NFC reader
  • Choose an NFC card and place it on the reader
  • The microcontroller sends an HTTP request to tmanager
  • Based on the trigger and configuration, tmanager automatically updates the Kreativ-Tonie
  • Start listening to your favorite audiobook immediately

This creates a magical experience where simply placing an NFC card triggers the loading of specific audio content onto your Kreativ-Tonie.

Features

Automated Tonie Management

  • HTTP Trigger Support: Responds to external HTTP requests to initiate Tonie updates
  • Kreativ-Tonie Integration: Direct integration with the my.tonies.com platform
  • Audio Content Management: Handles uploading and managing audio files for your Kreativ-Tonies

Audio Processing

  • Re-encoding Capability: Automatically re-encode incoming audio files to the desired format
  • Multiple Format Support: Handle various audio file formats and convert them as needed
  • Storage Management: Organized storage system for audio files and database

Web Interface

  • Trigger Management: Web UI with trigger buttons for manual Tonie updates
  • Configuration Interface: Easy setup and management of Tonie configurations
  • Status Monitoring: Track the status of updates and operations

External Integration

  • NFC Reader Support: Designed to work with microcontroller-based NFC readers
  • RESTful API: HTTP endpoints for triggering updates from external systems
  • Flexible Triggers: Support for multiple trigger types and configurations

Installation

The easiest way to deploy tmanager is using Docker Compose:

  1. Create a docker-compose.yml file:
version: "3.5"                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                    
services:                                                                                                                                                                                                                                                                           
  app:                                                                                                                                                                                                                                                                              
    image: registry.gitlab.com/dedicatedcode/tmanager:latest                                                                                                                                                                                                                        
    environment:                                                                                                                                                                                                                                                                    
      - TONIE_ID=your_tonie_id_here                                                                                                                                                                                                                                                 
      - MY_TONIE_USERNAME=your_username                                                                                                                                                                                                                                             
      - MY_TONIE_PASSWORD=your_password                                                                                                                                                                                                                                             
      - REENCODE_CONTENT=true                                                                                                                                                                                                                                                       
    volumes:                                                                                                                                                                                                                                                                        
      - ./database:/storage/database                                                                                                                                                                                                                                                
      - ./audiofiles:/storage/data                                                                                                                                                                                                                                                  
    ports:                                                                                                                                                                                                                                                                          
      - "8080:8080"                                                                                                                                                                                                                                                                 
  1. Configure your environment variables:

    • TONIE_ID: Get this from my.tonies.com/creative-tonies. Select your Kreativ-Tonie and copy the ID from the URL
    • MY_TONIE_USERNAME: Your my.tonies.com username
    • MY_TONIE_PASSWORD: Your my.tonies.com password
    • REENCODE_CONTENT: Set to true to enable automatic audio re-encoding
  2. Start the application:

docker-compose up -d                                                                                                                                                                                                                                                                

From Source

To build and run from source:

  1. Clone the repository:
git clone https://gitlab.com/dedicatedcode/tmanager.git                                                                                                                                                                                                                             
cd tmanager                                                                                                                                                                                                                                                                         
  1. Build the application:
./mvnw clean install                                                                                                                                                                                                                                                                
  1. Run the application:
./mvnw spring-boot:run                                                                                                                                                                                                                                                              

Prerequisites:

  • Java 17 or higher
  • Maven 3.6 or higher

Configuration

Getting Your Tonie ID

  1. Visit my.tonies.com/creative-tonies
  2. Log in to your account
  3. Select the Kreativ-Tonie you want to manage
  4. Copy the ID from the browser URL (everything after /creative-tonies/)

Environment Variables

  • TONIE_ID: Your Kreativ-Tonie’s unique identifier
  • MY_TONIE_USERNAME: Your my.tonies.com account username
  • MY_TONIE_PASSWORD: Your my.tonies.com account password
  • REENCODE_CONTENT: Enable/disable automatic audio re-encoding (true/false)

Storage Volumes

  • /storage/database: Application database storage
  • /storage/data: Audio files storage location

Usage

Web Interface

Access the web interface at http://localhost:8080 to:

  • Configure triggers and tags
  • Manually trigger Tonie updates
  • Monitor application status
  • Manage audio content

API Integration

Send HTTP requests to trigger Tonie updates programmatically. Perfect for integration with:

  • NFC reader microcontrollers
  • Home automation systems
  • Custom applications
  • IoT devices

NFC Integration Example

For a typical NFC setup:

  1. Configure your microcontroller with an NFC reader
  2. Program it to send HTTP requests to tmanager when cards are detected
  3. Map different NFC cards to different audio content
  4. Place a card on the reader to automatically update your Kreativ-Tonie

Technical Details

  • Framework: Spring Boot application
  • Language: Java
  • Container: Docker support with GitLab Container Registry
  • CI/CD: GitLab CI pipeline for automated builds
  • Audio Processing: Built-in re-encoding capabilities
  • External API: Integration with my.tonies.com platform

Status

This project is feature complete for my current needs and will not receive new features unless specific requirements arise.

License

tmanager is available under an open-source license. Check the repository for specific license details.