Skip to content

Commit d1f9b79

Browse files
committed
fix: HTTP 400 sur getAccountData — retrait du bloc temporalClass invalide (3.3.1)
Le champ temporalClass ajouté en 3.3.0 (#37) sur le nœud consumptionRates n'existe pas sur ce type : la requête getAccountData était rejetée (HTTP 400), bloquant toute la récupération de données. Le mapping Tempo reste correct via le fallback par ordre de prix (parsing inchangé). Ajoute aussi le log du corps des réponses non-200 pour diagnostiquer les erreurs GraphQL.
1 parent 03bcbdf commit d1f9b79

3 files changed

Lines changed: 17 additions & 12 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
## [3.3.1] - 2026-07-01
2+
3+
### 🐛 Correction — HTTP 400 sur la requête `getAccountData` (régression 3.3.0)
4+
5+
Depuis la 3.3.0, la requête principale `getAccountData` renvoyait `HTTP 400` (rejet à la validation GraphQL) et bloquait toute la récupération de données.
6+
7+
Cause : le bloc `temporalClass { … }` ajouté (issue #37) sur le nœud `consumptionRates` n'est pas un champ valide sur ce type — contrairement à `electricityReading` où il fonctionne.
8+
9+
- Suppression du bloc `temporalClass` de la requête `getAccountData`. Le mapping des tarifs Tempo reste correct via le fallback par ordre de prix (déjà corrigé pour #37) ; le code de parsing est inchangé.
10+
- `_async_execute` journalise désormais le **corps** des réponses non‑200 (tronqué à 500 caractères) pour diagnostiquer plus vite les erreurs GraphQL.
11+
12+
---
13+
114
## [3.3.0] - 2026-07-01
215

316
Cette version corrige deux problèmes liés aux statistiques long-terme électricité alimentant le tableau de bord Énergie (issues #45 et #46).

custom_components/octopus_french/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@
1010
"iot_class": "cloud_polling",
1111
"issue_tracker": "https://github.com/domodom30/ha-octopus-french/issues",
1212
"requirements": [],
13-
"version": "3.3.0"
13+
"version": "3.3.1"
1414
}

custom_components/octopus_french/octopus_french.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -172,16 +172,6 @@ class OctopusConnectionError(Exception):
172172
pricePerUnitWithTaxes
173173
validFrom
174174
validTo
175-
temporalClass {
176-
... on ProviderTemporalClassType {
177-
code
178-
label
179-
registerId
180-
}
181-
... on DistributorTemporalClassType {
182-
code
183-
}
184-
}
185175
timeSlots {
186176
startAt
187177
endAt
@@ -396,11 +386,13 @@ async def _async_execute(
396386
) as response:
397387
if response.status == 200:
398388
return await response.json()
389+
body = (await response.text())[:500]
399390
_LOGGER.warning(
400-
"GraphQL endpoint returned HTTP %s (attempt %s/%s)",
391+
"GraphQL endpoint returned HTTP %s (attempt %s/%s): %s",
401392
response.status,
402393
attempt + 1,
403394
MAX_RETRY_ATTEMPTS,
395+
body,
404396
)
405397
if attempt < MAX_RETRY_ATTEMPTS - 1:
406398
await asyncio.sleep(RETRY_DELAY * (attempt + 1))

0 commit comments

Comments
 (0)