=== tiny-carger Agent Guide ===
INTERFACE:
- 4 parking spaces in 2x2 grid, each is a .space element
- data-testid="spaces" = container
- Each space has data-testid="space-{0..3}" and data-status="empty|charging|connecting"
- Stats bar: data-testid="points" (int), data-testid="charge-count" (int)
- Speed buttons: data-testid="speed-1", speed-5, speed-10
- Modal: data-testid="modal" (class "show" when visible)
- RFID button: data-testid="btn-rfid"
- Pay button: data-testid="btn-pay"
- Close modal: data-testid="btn-close"
- Toast: data-testid="toast" (class "s" when visible, textContent = message)
FLOW:
1. All 4 stations auto-connect WebSocket on page load โ LED accende, pallino verde sotto mostra online
2. Start charging: Click .space[data-status="empty"] โ modal appears
โ Click [data-testid="btn-rfid"] โ toast shows progress โ car appears, data-status="charging"
3. Stop charging: Click .space[data-status="charging"] โ toast shows result + points
4. Check status: Read .space[data-status], toast textContent, and stats
STATION INDEX:
- space-0 = IT*MTY*GAME00001 (50kW, 60kWh)
- space-1 = IT*MTY*GAME00002 (22kW, 40kWh)
- space-2 = IT*MTY*GAME00003 (150kW, 80kWh)
- space-3 = IT*MTY*GAME00004 (7.4kW, 30kWh)
NOTES:
- All 4 stations connect WebSocket on page load (BootNotification + StatusNotification)
- First charge gives +100pt bonus
- Tokens authorized via Hasura automatically
- OCPP connects via WebSocket to cp16.movity.it (OCPP 1.6)
- When charging, meter simulates kWh in real-time
- Badge popup (โ
) appears when achieved, auto-closes after 3s
- No speed controls โ simulazione in tempo reale