Steph
ยทWorking hard at hardly working...

Yoto Playlist Alarms

Yoto Playlist Alarms is a comprehensive alarm management application that transforms how families use their Yoto playlists for wake-up and bedtime routines.

๐ŸŒ https://yoto-playlist-alarm.vercel.app

User information

Getting Started

Login: Connect your Yoto account via OAuth to access your devices and playlists

Device Connection: Your Yoto devices will auto-detect and connect via MQTT for real-time control

Take the Tour: Click the "?" icon for a guided walkthrough of key features

Setting Up Alarms


Browse Playlists: Navigate to the "Playlists" tab to see your Yoto content library

Set Alarm: Click "Set Alarm" on any playlist card to configure wake-up or bedtime alarms

Upload to Cloud: Visit the "Alarms" tab and upload your configured alarms for background scheduling

Manage Multiple: Create up to 10 alarms across all your devices - perfect for families with multiple rooms

Real-Time Device Control

Volume Control: Use the visual gauge for precise volume adjustment

Live Status: Monitor battery, WiFi strength, and device health in real-time

Instant Playback: Control play/pause, skip tracks, and manage sleep timers directly from the app

Pro Tips


Background Operation: Uploaded cloud alarms run automatically without keeping the app ope

Multi-Device: Distribute your 10 alarms however you want across devices (2 per device, or mix as needed)

Mobile Optimized: Collapsible panels and touch-friendly controls make mobile use seamless

Device Status: Expand device status panels for detailed diagnostics and system information

Technical information

Next.js 15 with TypeScript and Material-UI
Real-time MQTT communication with Yoto devices
Flask backend with PostgreSQL database
OAuth integration for secure Yoto account access
Railway cloud deployment with automatic database migrations for securely housing the cloud alarms
Railway cron jobs for running the scheduled alarms

Data storage

Data Collected by Our App

Alarm Settings: Custom alarm configurations (time, playlist, device assignment, alarm type)


User Preferences: Volume levels, device selections, alarm scheduling data


Storage Locations

Server-Side Storage (Railway PostgreSQL Database):


User alarm configurations (alarm times, associated playlists, device assignments)


User account mappings (linking generated account IDs to alarm data - generated accounts use a portion of the JWT to ensure uniqueness with no actual usernames stored)


Authentication tokens (temporarily stored for API access)


Client-Side Storage (Browser):


Session data (temporary authentication state)


Device connection status (real-time MQTT connection states)


UI preferences (accordion expansion states, selected tabs)


No Permanent Local Storage:


No user data is permanently stored in browser local storage


All persistent data is stored server-side in our PostgreSQL database


Third-Party Data:


Yoto API: We access but do not store Yoto's playlist, device, and account data


MQTT Broker: Real-time device communication (no data retention)


Data Security

All data is transmitted over HTTPS/WSS encrypted connections. User authentication uses OAuth 2.0 through Yoto's official API. No sensitive personal information beyond alarm preferences is collected or stored.


Data Accessed from Yoto API:


User Account Information: Username, account ID, authentication tokens


Device Information: Device names, device IDs, connection status, firmware versions


Playlist Data: Playlist names, content metadata, card information


Device Status: Battery levels, volume settings, WiFi strength, temperature readings


Alarm Configurations: User-created alarm settings, times, playlist associations

3
3 replies