ShiftSense är en AI-driven automationsassistent för att importera, analysera och förbättra automationsprojekt och driftdata med spårbara rekommendationer.
- Import av CSV-tidsserier och PLC-textfiler (SCL/ST/Ladder-export) med evidens.
- Normaliserad datamodell för taggar, events, larm, kod och findings.
- Regelbaserade analyser för cykeltid, energi och larmkvalitet.
- Autentisering (JWT), roller och audit-logg-struktur.
- Multi-tenant via Workspaces.
- Feature flags för Energi, Prediktivt, Larm.
- Grundläggande UI med dashboard och findings-lista.
- Starta stacken:
docker compose up --build
- Kör migreringar:
docker compose exec backend alembic -c /app/alembic.ini upgrade head - Skapa en användare:
curl -X POST http://localhost:8000/auth/users \ -H "Content-Type: application/json" \ -d '{"email": "demo@shiftsense.se", "password": "demo123", "role": "Admin"}'
- Logga in och hämta token:
curl -X POST http://localhost:8000/auth/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=demo@shiftsense.se&password=demo123"
- Skapa workspace:
curl -X POST http://localhost:8000/workspaces \ -H "Authorization: Bearer <TOKEN>" \ -H "Content-Type: application/json" \ -d '{"name": "Demo", "customer": "ACME", "site": "Site A"}'
- Importera CSV:
curl -X POST http://localhost:8000/imports/csv/1 \ -H "Authorization: Bearer <TOKEN>" \ -F "file=@data/sample_timeseries.csv"
- Importera PLC-text:
curl -X POST http://localhost:8000/imports/plc/1 \ -H "Authorization: Bearer <TOKEN>" \ -F "file=@data/sample_plc.st"
- Importera från SQL (read-only):
curl -X POST "http://localhost:8000/imports/sql/1?connection_url=postgresql+psycopg://user:pass@host:5432/db&table=events&ts_column=ts&tag_column=tag&value_column=value" \ -H "Authorization: Bearer <TOKEN>"
Frontend finns på http://localhost:5173
data/sample_timeseries.csv- syntetisk tidsserie för cykeltid, energi och larm.data/sample_plc.st- PLC-text med loopar och states.
Rapporter kan exporteras som JSON via API och vidare förädlas till PDF i nästa iteration. Findings returneras via /findings/{dataset_id}.
- Per site (baspaket)
- Tillägg per modul (Energi, Prediktivt, Larm)
- Per användare för avancerade roller
- Fullständig rapportexport (PDF/HTML).
- Tidsserie-indexering i TimescaleDB.
- Bakgrundsjobb/queue för stora importer.
- AI-lager med OpenAI/Azure/local modeller och guardrails.
- Utökad larmanalys med chattering och flood detection.
- Rule Pack Marketplace och kundspecifika paket.