final
This commit is contained in:
parent
bb997e2fa7
commit
0f82f39fdd
25 changed files with 577 additions and 123 deletions
63
Periphery/PNC-Fish/IT/Digital-Signage-Runbook.md
Normal file
63
Periphery/PNC-Fish/IT/Digital-Signage-Runbook.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
---
|
||||
title: Digital Signage Runbook
|
||||
description: How to update price boards and manage the TV signage system
|
||||
published: true
|
||||
date: 2026-04-12T00:00:00.000Z
|
||||
tags: pncfish, signage, runbook
|
||||
editor: markdown
|
||||
dateCreated: 2026-04-12T00:00:00.000Z
|
||||
---
|
||||
|
||||
# Digital Signage Runbook
|
||||
|
||||
## Updating a Price
|
||||
|
||||
1. Open Google Sheets (master inventory)
|
||||
2. Find the item row, edit price (col C), name (col B), or tank designator (col D)
|
||||
3. Google Slides updates automatically
|
||||
4. TVs pick up the change within 5 minutes — no further action needed
|
||||
5. **Immediate update:** force-stop ScreenLite on that FireTV → relaunch
|
||||
|
||||
## Adding New Inventory
|
||||
|
||||
1. Add new row: SKU (A), display name (B), price (C), tank designator(s) (D)
|
||||
2. Multiple tank designators are space-separated: `T4 T5`
|
||||
3. Slides update automatically
|
||||
4. Push to Square: currently manual via Square catalog CSV upload
|
||||
|
||||
## When an Item Sells — Manual Fallback
|
||||
|
||||
1. Remove the tank designator from col D of that item's row
|
||||
2. Slides update automatically within a minute
|
||||
3. TV picks it up within 5 minutes
|
||||
|
||||
## Google Sheets Column Reference
|
||||
|
||||
| Column | Field | Example |
|
||||
|--------|-------|---------|
|
||||
| A | SKU | `CLOWN-001` |
|
||||
| B | Display name | `Ocellaris Clownfish` |
|
||||
| C | Price | `29.99` |
|
||||
| D | Tank designator(s) | `T4` or `T4 T5` |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Problem | Fix |
|
||||
|---------|-----|
|
||||
| TV showing stale price | Force-stop ScreenLite → relaunch |
|
||||
| Image blurry/soft text | Add `?sz=s1920` to PNG export URL in HTML file |
|
||||
| Slides not updating from Sheet | Check Apps Script in Extensions → Apps Script for errors |
|
||||
| FireTV lost the URL | Re-enter Apache URL in ScreenLite settings |
|
||||
|
||||
## Square Webhook Automation (When Deployed)
|
||||
|
||||
Once live, the automation flow will be:
|
||||
|
||||
```
|
||||
Square sale → Webhook POST → Google Apps Script Web App
|
||||
→ Find item SKU in Sheet
|
||||
→ Remove tank designator from col D
|
||||
→ Slides auto-update → TV picks up within 5 min
|
||||
```
|
||||
|
||||
**Status:** Designed, not yet deployed. Next step: configure Square developer dashboard webhook endpoint to the Apps Script URL and test with a real sale.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: IT Overview
|
||||
description: PNC Fish & More IT infrastructure
|
||||
description: PNC Fish & More IT infrastructure — web server, digital signage, networking
|
||||
published: true
|
||||
date: 2026-04-12T00:00:00.000Z
|
||||
tags: pncfish, it
|
||||
|
|
@ -10,19 +10,61 @@ dateCreated: 2026-04-12T00:00:00.000Z
|
|||
|
||||
# IT Overview
|
||||
|
||||
## Website
|
||||
## Infrastructure
|
||||
|
||||
Hosted on `pncfishandmore.com`. Static/PHP stack via the Netgrimoire `web.yaml` Apache/PHP service.
|
||||
| Resource | Details |
|
||||
|----------|---------|
|
||||
| Domain | `pncfishandmore.com` — managed via ISPConfig |
|
||||
| Web server | Apache on NetGrimoire (self-hosted Docker, `web.yaml`) |
|
||||
| Email | MailCow + MXRoute relay |
|
||||
| DNS | ISPConfig + internal Technitium |
|
||||
| Accounting | Bigcapital (Docker on docker5, `accounts.netgrimoire.com`) |
|
||||
|
||||
## Email
|
||||
---
|
||||
|
||||
Handled via MailCow + MXRoute. Domain configured as part of the 8-domain mail setup.
|
||||
See [MailCow Domain Setup](/Keystone-Grimoire/Mail/Domain-Setup).
|
||||
## Digital Signage System
|
||||
|
||||
## POS System
|
||||
Three FireTV devices display live price board slides on in-store TVs. Each TV runs ScreenLite kiosk app loading an Apache HTML page, which fetches a Google Slides PNG export and refreshes it every 5 minutes via JavaScript.
|
||||
|
||||
*Document POS system here.*
|
||||
### TV Pages on Apache
|
||||
|
||||
## Network
|
||||
| File | Slide Deck | Purpose |
|
||||
|------|-----------|---------|
|
||||
| `left.html` | Saltwater fish | Main fish price board |
|
||||
| `right.html` | Secondary | Freshwater or secondary display |
|
||||
| `inverts.html` | Invertebrates | Inverts price board |
|
||||
|
||||
*Document store network here — router, AP, any on-site devices.*
|
||||
### Google Slides Deck IDs
|
||||
|
||||
| Deck | Slide ID |
|
||||
|------|---------|
|
||||
| Left (saltwater fish) | `1S3j0K1QlWAtkjq73E73At3gz9vWp9vVr_yZswUHiyN8` |
|
||||
| Right (secondary) | `1mWzgisxMQAFAhME9HXY_PEK0v_hIuQ4Md0PQS10ES8Q` |
|
||||
| Inverts | `1nzunM4pQxqmW82_Ab0rrOsV4QuO8G5TVUDodplI_4tY` |
|
||||
|
||||
PNG export URL format: `https://docs.google.com/presentation/d/<ID>/export/png?sz=s1920`
|
||||
|
||||
Use `sz=s1920` for sharper text. If display looks soft, increase canvas size in Google Slides settings.
|
||||
|
||||
### Critical: ScreenLite Does Not Respond to Meta-Refresh
|
||||
|
||||
ScreenLite ignores `<meta http-equiv="refresh">`. All TV page refreshes use JavaScript `setInterval` image src swap only:
|
||||
|
||||
```javascript
|
||||
setInterval(function() {
|
||||
var img = document.getElementById('slide');
|
||||
img.src = SLIDE_URL + '?t=' + Date.now();
|
||||
}, 300000); // 300,000ms = 5 minutes
|
||||
```
|
||||
|
||||
### Force Immediate Refresh
|
||||
|
||||
Force-stop ScreenLite on the FireTV and relaunch. It reloads the Apache URL and picks up the latest PNG immediately.
|
||||
|
||||
---
|
||||
|
||||
## Pending
|
||||
|
||||
- [ ] Square webhook → Apps Script → Google Sheets automation (designed, not deployed)
|
||||
- [ ] "Push to Square" Apps Script button in Google Sheets
|
||||
- [ ] Store network documentation (router, AP, FireTV connections)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue