iMicknl / iMicknl/python-overkiz-api

Implement Somfy multi-account (Ginaite/BOB) authentication flow

Aperta
#2,087 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@iMicknl ci sta già lavorando.

Dal 5/7/2026.

  • #2168 di @iMicknl — aperta
feature
Lingua principale
Python
Stelle
58
Fork
35
Merge medio
2g 14h
PR unite (30g)
15

Descrizione

Summary

The new-generation Somfy TaHoma app (com.somfy.homeapp) no longer authenticates directly against the Overkiz enduserAPI. It now sits on a multi-tier Somfy identity/account stack (Keycloak "Ginaite" -> BOB back-office -> regional Overkiz cloud). To keep supporting current Somfy accounts, the client needs to implement this flow and exchange a Somfy JWT for an Overkiz session.

Notably, the new multi-account setup is also multi-region: a single Somfy login can span homes across different Overkiz regional clusters (EMEA/APAC/SNABA), with the correct server selected per site. This is new, since previously a Somfy account mapped to a single server.

Flow (prod URLs, in order)

1. Login (OIDC + PKCE), obtain JWT

https://ginaite-prod.ovkube.net/realms/somfy-tahoma/protocol/openid-connect/auth
https://ginaite-prod.ovkube.net/realms/somfy-tahoma/protocol/openid-connect/token
  • client_id=somfy-client
  • kc_idp_hint=somfy-customer
  • redirect_uri=com.somfy.homeapp
  • scope=openid, response_type=code, code_challenge_method=S256

2. List accounts/homes (BOB back-office), Authorization: Bearer <JWT> + X-Api-Key: 184638B3FBE874ACD24C14FBD657B

GET https://backoffice-service.ovkube.net/site-api/public/v1/sites?withGateways=true
GET https://backoffice-service.ovkube.net/site-api/public/v1/sites/current
GET https://backoffice-service.ovkube.net/site-api/public/v1/sites/{siteOid}

Hierarchy: Site (siteOid) -> subSites -> gateways (gatewayId = TaHoma box PIN). This is what enables multiple homes per account and account sharing/roles.

3. Pick the regional Overkiz server per site (region = BusinessArea, derived from the site owner's country):

Region Overkiz server
EMEA https://ha101-1.overkiz.com
APAC https://ha201-1.overkiz.com
SNABA (US/CA/MX) https://ha401-1.overkiz.com

4. Exchange the JWT for an Overkiz session, Authorization: Bearer <JWT>

POST https://ha101-1.overkiz.com/enduser-mobile-web/enduserAPI/enduser/jwt/createToken

5. Normal Overkiz enduserAPI usage (existing client logic, session from step 4):

https://ha101-1.overkiz.com/enduser-mobile-web/enduserAPI/setup
.../enduserAPI/events/register
.../enduserAPI/exec/apply

Optional, energy data: https://energy-management.ovkube.net (same Bearer JWT + X-Api-Key).

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia esaminando la logica esistente del client per l’utilizzo dell’enduserAPI di Overkiz e la pull request aperta #2168. Traccia come sono rappresentati l’autenticazione, l’individuazione di siti e gateway, la selezione del server regionale e lo scambio della sessione. Il lavoro sarà considerato completato quando gli attuali accessi multi-account Somfy funzioneranno nelle regioni indicate, preservando il normale utilizzo dell’enduserAPI.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
api, authentication, backend
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
20/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.