Skip to content

SeanFDZ/stream-deck-universal-json

Repository files navigation

Universal JSON Display for Stream Deck

Transform your Stream Deck into a powerful data dashboard! Display live information from public JSON APIs, n8n automation workflows, or local files with automatic field discovery and dynamic color coding.

🚀 Features

  • Universal Data Sources: Works with public JSON APIs, local files, or n8n webhooks
  • Automatic Field Discovery: Scans JSON structure and populates dropdown menus automatically
  • 4-Line Customizable Display: Mix text and data fields for perfect layouts
  • Dynamic Color Coding: Button background changes based on numeric data values (2-6 configurable ranges)
  • Real-time Updates: Configurable refresh intervals (10-300 seconds)
  • n8n Integration: Perfect companion for n8n automation workflows (handles authentication)
  • Zero Configuration: Works out of the box with public APIs

📺 Use Cases

  • Business Metrics: Sales numbers, customer counts, revenue tracking
  • IoT Monitoring: Temperature sensors, device status, environmental data
  • Server Monitoring: CPU usage, memory, disk space, uptime
  • Weather Data: Current conditions, forecasts, alerts
  • Social Media: Follower counts, engagement metrics, notifications
  • Home Automation: Smart home device status via Home Assistant + n8n
  • Development: Build status, deployment metrics, error counts

🎯 Quick Start

Option 1: Public API (No Authentication Required)

  1. Add "JSON Data Display" action to your Stream Deck
  2. Set Data Source Type to "HTTP API / n8n Webhook"
  3. Enter API URL: https://jsonplaceholder.typicode.com/users/1
  4. Watch fields auto-discover and configure your display!

Option 2: Authenticated APIs (via n8n Workflows)

  1. Create n8n workflow with Webhook Trigger
  2. Add HTTP Request node to fetch from authenticated API
  3. Add Respond to Webhook node
  4. Use the n8n webhook URL in your Stream Deck plugin

📋 Installation

From Stream Deck Store

  1. Open Stream Deck software
  2. Search for "Universal JSON Display"
  3. Click Install

Manual Installation

  1. Download the latest release from Releases
  2. Double-click the .streamDeckPlugin file
  3. Stream Deck software will install it automatically

🛠️ Configuration

Data Source Setup

  • Local JSON File: Full file path to your JSON data
  • Public HTTP API: Any URL that returns JSON (no authentication)
  • n8n Webhook: For authenticated APIs, use n8n as authentication proxy

Display Configuration

  • Line 1-4: Choose Empty, Free Text, or Data Field for each line
  • Auto Field Discovery: Plugin automatically scans JSON and populates dropdowns
  • Update Interval: Set refresh frequency (10-300 seconds)

Color Coding

  • Static Color: Single background color
  • Dynamic Color: Changes based on numeric field values
    • Configure 2-6 threshold ranges
    • Perfect for status indicators and alerts

🔗 n8n Integration Guide

For authenticated APIs, use n8n as an authentication proxy:

Basic n8n Workflow Structure

  1. Webhook Trigger - Creates the endpoint for Stream Deck
  2. HTTP Request - Fetches data from authenticated API
  3. Respond to Webhook - Returns clean JSON to Stream Deck

Supported APIs via n8n

  • Home Assistant: Bearer token authentication
  • Weather APIs: API key authentication
  • Business APIs: OAuth, API keys, basic auth
  • IoT Platforms: Device-specific authentication
  • Social Media: OAuth flows
  • Monitoring Tools: API key authentication

🧑‍💻 Development

Build from Source

git clone https://github.com/SeanFDZ/stream-deck-universal-json.git
cd stream-deck-universal-json
npm install
npm run build

Project Structure

src/
├── plugin.ts              # Main plugin entry point
├── actions/
│   └── json-display-action.ts  # Core plugin logic
zone.fallingdata.universal-json-n8n.sdPlugin/
├── manifest.json          # Plugin metadata
├── ui/
│   └── json-display-action.html  # Configuration interface
└── bin/
    └── plugin.js          # Compiled output

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built with Elgato Stream Deck SDK
  • n8n automation platform for authentication workflows
  • JSONPlaceholder for testing APIs

📞 Support

  • Issues: GitHub Issues
  • Documentation: Check examples in repository
  • Community: Share your configurations with others!

Made with ❤️ for the Stream Deck community

About

Universal JSON Display plugin for Stream Deck with n8n integration

Resources

License

Stars

Watchers

Forks

Packages