Je vois déjà un appareil qui n’a pas de deviceId, (Identifiant appareil)
Supprime-le et relance une synchronisation.
Ensuite, je vois que tu as rajouté des scope manuellement :
r:locations:*,w:customcapability,x:rules:*,r:customcapability,w:rules:*,w:installedapps:*,r:installedapps:*,r:audiovideo:images,r:schedules,w:deviceprofiles,r:rules:*,x:devices:*,l:devices,w:locations:*,x:locations:*,r:channels:*,r:deviceprofiles,w:audiovideo:images,w:invitations,l:installedapps,r:audiovideo:clips,r:scenes:*,w:schedules,x:notifications:*,r:audiovideo:streams,x:scenes:*,w:channels:*,r:invitations,w:audiovideo:streams,r:drivers:*,r:devices:*,w:devices:*,w:drivers:*,l:scenes,r:apps:*,w:apps:*,w:audiovideo:clips
Et qu’à cause de ça, la requête échoue :
[2025-04-16 10:26:18][DEBUG] : sendRequest - CODE : 422 RESPONSE : {"requestId":"809131799917689037","error":{"code":"ConstraintViolationError","message":"The request is malformed.","details":[{"code":"NotValidValue","target":"oauthScope[r:locations:*,w:customcapability,x:rules:*,r:customcapability,w:rules:*,w:installedapps:*,r:installedapps:*,r:audiovideo:images,r:schedules,w:deviceprofiles,r:rules:*,x:devices:*,l:devices,w:locations:*,x:locations:*,r:channels:*,r:deviceprofiles,w:audiovideo:images,w:invitations,l:installedapps,r:audiovideo:clips,r:scenes:*,w:schedules,x:notifications:*,r:audiovideo:streams,x:scenes:*,w:channels:*,r:invitations,w:audiovideo:streams,r:drivers:*,r:devices:*,w:devices:*,w:drivers:*,l:scenes,r:apps:*,w:apps:*,w:audiovideo:clips]","message":"Invalid scope definition.","details":[]}]}}
C’est exactement le même problème qu’ici : Le deviceid ne peut pas être vide - #36 par alex43_b
Laisse les scope, par défaut.
Puis ajoutes-en quelques-uns et teste une connexion.
Les scopes par défaut suffisent amplement à permettre à la smartapp d’accéder aux infos pour le plugin.