Files
Calix/genieacs/README.md
T
astromech73 983ddd903b Initial commit: firmware pusher app, GenieACS docs, network file
- firmware-pusher/: standalone HTML app for GenieACS firmware pushes
- genieacs/: NBI API usage, device IDs, troubleshooting
- calix_home_network.txt: live network documentation
2026-05-21 09:38:51 -05:00

3.0 KiB

GenieACS

TR-069 ACS (Auto Configuration Server) for managing Calix GigaSpire satellites.

Access

URL Purpose
https://genieacs.yoda.ddnsgeek.com Admin UI
https://nbi.yoda.ddnsgeek.com NBI API (7557)
https://acs.yoda.ddnsgeek.com CWMP/TR-069 (7547)

Admin credentials: admin / 966QPr@*rCTMrWE9xSGm VPS: root@161.97.153.158

Version

GenieACS container: drumsergio/genieacs:latest VPS docker compose: /var/lib/docker/volumes/portainer_data/_data/compose/58/docker-compose.yml

NBI API (port 7557)

All firmware push operations use the NBI API, not the provision framework.

Base URL: http://127.0.0.1:7557 (on VPS) — also proxied via Traefik at https://nbi.yoda.ddnsgeek.com

Auth: HTTP Basic Auth — admin + GenieACS admin password

Useful NBI Endpoints

GET  /devices                    — list all devices
GET  /devices/{id}              — device detail
GET  /devices/{id}/tasks        — task history
POST /devices/{id}/tasks         — create task (firmware push)
GET  /files                      — uploaded firmware files
POST /files                      — upload firmware file
DELETE /devices/{id}/tasks/{id} — cancel task

Firmware Push Task

curl -X POST http://127.0.0.1:7557/devices/{device_id}/tasks \
  -u admin:PASSWORD \
  -H "Content-Type: application/json" \
  -d '{
    "name": "download",
    "fileType": "1 Firmware Upgrade Image",
    "fileName": "FullRel_EXOS_SIGNED_E5_R25.2.0.0.img",
    "productClass": "GigaSpire"
  }'

Returns a task ID. Poll /devices/{id}/tasks/{task_id} to check status.

Device IDs

b89470-GigaSpire-CXNK010F208F  (Living room — offline/NAT'd)
b89470-GigaSpire-CXNK010F20EC  (Back hallway sat)
b89470-GigaSpire-CXNK010F2064  (Office sat)

Fault Queue

GenieACS 1.2.16 has a known issue where the provision-based download task throws "Invalid arguments" faults. Use the NBI API instead.

To clear stale faults:

ssh root@161.97.153.158
docker exec -i genieacs-mongo mongo genieacs --quiet --eval 'db.faults.deleteMany({})'

GenieACS Doesn't Store

  • EXOS web UI passwords (not part of TR-069 data model)
  • WiFi passphrase (only stored in 4220E config, not GenieSpire)
  • WPA keys beyond what GenieSpire devices report via Inform

Troubleshooting

Device not connecting to GenieACS

  • Check firewall: port 7547 (CWMP) must be open on VPS
  • Check device has correct ACS URL configured
  • Check device has internet access (TR-069 requires outbound HTTPS)

Firmware push not working

  1. Verify file exists: GET /files — check fileName matches exactly
  2. Check fault queue for "Invalid arguments" — means wrong provision path
  3. Use NBI API directly to confirm task was created
  4. Check device Download table: GET /devices/{id} → look for Downloads parameter

Devices showing offline

  • GenieACS marks devices offline after ~30 minutes without Inform
  • Device may need to be power-cycled to reconnect
  • Check LastContact field on device detail page