From 9c4afb6618c9c5971c01da85bb3e578ef8280b5a Mon Sep 17 00:00:00 2001 From: ske087 Date: Tue, 19 Aug 2025 11:50:07 +0300 Subject: [PATCH] Add comprehensive Info-Beamer integration guide --- INTEGRATION.md | 179 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) diff --git a/INTEGRATION.md b/INTEGRATION.md index e69de29..87af534 100644 --- a/INTEGRATION.md +++ b/INTEGRATION.md @@ -0,0 +1,179 @@ +# Info-Beamer Player Integration Guide + +This guide will help you integrate Info-Beamer devices with your content management server. + +## Prerequisites + +- Info-Beamer device (Raspberry Pi or compatible) +- Network access between the device and your server (IP: 192.168.1.22) +- Device ID from your Info-Beamer device + +## Step-by-Step Integration + +### 1. Find Your Info-Beamer Device ID + +First, you need to get your device's unique ID: +- Access your Info-Beamer device's web interface (usually via its IP address) +- Look for "Device ID" in the settings or dashboard +- Write down this ID - you'll need it for registration + +### 2. Register Player in Web Interface + +1. Open your browser and navigate to: `http://192.168.1.22` +2. Login with your admin credentials +3. Go to the "Players" section in the admin panel +4. Click "Add Player" and fill in: + - **Device ID**: Your Info-Beamer device's unique ID (from step 1) + - **Player Name**: Descriptive name (e.g., "Lobby Display", "Reception Screen") + - **Channel**: Select which streaming channel this player should display + +### 3. Prepare Info-Beamer Package + +You need to create a package with these files: + +#### Required Files: +- `node.lua` - Main display script (already provided in this repository) +- `config.json` - Configuration file (template provided) +- `roboto.ttf` - Font file for text display (download from Google Fonts) + +#### Package Structure: +``` +your-info-beamer-package/ +├── node.lua +├── config.json +└── roboto.ttf +``` + +### 4. Configure Your Package + +Edit the `config.json` file with your specific settings: + +```json +{ + "server_url": "http://192.168.1.22", + "player_id": "YOUR_DEVICE_ID_HERE", + "refresh_interval": 30, + "default_duration": 10 +} +``` + +**Configuration Options:** +- `server_url`: Your server's URL (change IP if your server is on a different address) +- `player_id`: Must match exactly the Device ID you registered in step 2 +- `refresh_interval`: How often to check for new content (seconds) +- `default_duration`: Default display time per item if not specified (seconds) + +### 5. Get the Font File + +Download the Roboto font: +1. Go to Google Fonts: https://fonts.google.com/specimen/Roboto +2. Download the font family +3. Extract and copy `Roboto-Regular.ttf` to your package folder +4. Rename it to `roboto.ttf` + +### 6. Upload Package to Info-Beamer + +#### Option A: Info-Beamer Hosted Service +1. Create account on info-beamer.com +2. Create a new package +3. Upload all three files: `node.lua`, `config.json`, `roboto.ttf` +4. Assign the package to your device + +#### Option B: Local Info-Beamer Installation +1. Access your device's web interface +2. Upload the package files +3. Activate the package + +### 7. Create and Assign Content + +1. **Create a Streaming Channel**: + - In the web interface, go to "Channels" + - Click "Add Channel" + - Enter name and description + - Mark as active + +2. **Add Media Content**: + - Go to the "Upload" section + - Upload your images and videos + - Navigate to your channel + - Add uploaded files to the channel + - Set display duration for each item + - Arrange content order + +3. **Assign Channel to Player**: + - Go to "Players" section + - Edit your player + - Select the channel you created + +### 8. Test the Integration + +Your Info-Beamer device should now: +- Connect to the server every 30 seconds +- Display "Waiting for channel content..." if no content is assigned +- Show media files from the assigned channel in sequence +- Display channel name and current time as overlay +- Automatically update when you change content + +## API Endpoints + +The server provides these endpoints for Info-Beamer integration: + +- `GET /api/player/{device_id}/content` - Get content playlist for the player +- `GET /api/player/{device_id}/channel` - Get channel information +- `POST /api/player/{device_id}/heartbeat` - Update player last seen status + +## Troubleshooting + +### Player Not Connecting +- Verify `server_url` in config.json points to the correct IP address +- Check network connectivity between device and server +- Ensure `player_id` in config.json matches the registered Device ID exactly +- Check firewall settings on the server + +### No Content Displaying +- Verify the player is assigned to an active channel +- Check that the channel has content added to it +- Ensure media files are properly uploaded to the server +- Check file permissions in the `/uploads/` directory + +### Content Not Updating +- Check the `refresh_interval` setting in config.json +- Verify the server is running and accessible at port 80 +- Look for error messages in Info-Beamer device logs +- Test API endpoints manually in browser + +### Wrong Content Displaying +- Verify channel assignment for the player +- Check content order in the channel +- Ensure media files are the correct format (JPG, PNG, MP4) + +## Player Management + +In the admin interface, you can monitor: +- **Player Status**: Online/Offline based on last heartbeat +- **Last Seen**: Timestamp of last communication with server +- **Channel Assignment**: Which content channel is currently assigned +- **Device Information**: Name, location, and other details + +You can change channel assignments at any time through the web interface, and players will automatically update their content within the refresh interval. + +## Content Management + +### Supported Media Types +- **Images**: JPG, PNG, GIF +- **Videos**: MP4, AVI, MOV + +### Best Practices +- Use consistent aspect ratios for smooth transitions +- Optimize file sizes for network transfer +- Test content on actual displays before deployment +- Keep refresh intervals reasonable (30-60 seconds) +- Monitor player connectivity regularly + +## Security Notes + +- Change default admin password immediately +- Use HTTPS in production environments +- Restrict network access to the server +- Regular backup of database and uploaded content +- Monitor API access logs for unusual activity \ No newline at end of file