Chers utilisateurs,

Nous rencontrons actuellement des ralentissements sur nos serveurs pouvant impliquer des difficultés à vous connecter à Tahoma et Somfy Protect.

Nos équipes sont actuellement dédiées à la résolution de ce problème et nous vous tiendrons informés de l’avancement de la situation via ce bandeau d’information.

Veuillez nous excuser pour la gêne occasionnée et nous vous remercions pour votre compréhension.

L’équipe des Yellow’s SOMFY  

Question en attente de réponse

Trouver l'API TOKEN sur une Tahoma V2

Bonjour,

A la suite de Mise a Jour
Mon Home assistant me demande l' API TOKEN en local
j'ai une Tahoma V2 1206-9877-4500
comment fait on pour trouver le token ?
je n'ai trouvé aucune réponse a se sujet

si je configure Overkiz en Cloud

ça ne fonctionne pas non plus
dans les logs on vois qu'il recherche le Token

Merci de votre retour

David R.
David R.

David R.

Niveau
1
288 / 750
points
  • Partager cette question

    Réponses

    Bonjour,

    J'ai le même problème et je ne veut pas migrer sur Tahoma by Somfy pour obtenir le token car je veux garder mon alame dans mes équipements.
    Merci pour vos conseils
    P. Millot

    David R.
    David R.

    David R.

    Niveau
    1
    288 / 750
    points

    Alors voici la solution

    un script en powershell sous windows

    il faud renseigner le pin le mail et le mot de passe dans le script en fair un fichier .ps1

    -----------------------------------------------------

    [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

    $pin = "0000-000-0000" # remplacer par le vrai "PIN" de la box Tahoma
    $cloud = "ha101-1.overkiz.com"

    Invoke-WebRequest "https://$cloud/enduser-mobile-web/enduserAPI/login"; `
    -Method post -ContentType "application/x-www-form-urlencoded" `
    -Body 'userId=adressemail@gmail.com&userPassword=monmotdepasse' -SessionVariable "sess" # remplacer par mail et mot de passe

    $r = Invoke-RestMethod "https://$cloud/enduser-mobile-web/enduserAPI/config/$pin/...; `
    -Method Get -ContentType "application/json" `
    -WebSession $sess

    Write-Host "Token = $($r.token)"

    Invoke-WebRequest "https://$cloud/enduser-mobile-web/enduserAPI/config/$pin/...; `
    -Method Post -ContentType "application/json" `
    -WebSession $sess `
    -Body "{""label"":""Mon token"", ""token"":""$($r.token)"", ""scope"":""devmode""}"

    Rebonjour, et merci pour votre réponse, mais il semble qu'il y ai un soucis avec le serveur .
    Explications :
    Ce journal d'erreur est très technique, mais il contient une information capitale : l'erreur TypeError: Scenario.__init__() missing 1 required positional argument: 'metadata'.

    1. Diagnostic de l'erreur
    Ce n'est pas votre nouvelle Box Orange qui est en cause, ni votre mot de passe. C'est un bug logiciel connu dans l'intégration Overkiz.

    L'explication : Somfy a modifié la manière dont ses serveurs envoient les données des "scénarios" (vos programmes Somfy). L'intégration Home Assistant attend un certain format, mais Somfy en envoie un nouveau avec des "données métadonnées" obligatoires que le code actuel ne sait pas encore gérer.

    Pourquoi maintenant ? La mise à jour de votre box Tahoma a probablement activé cette nouvelle structure de données côté Somfy.
    La réponse du serveur :

    PS C:\Users\pat10> [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
    PS C:\Users\pat10> $pin = "1206-5600-9565"
    PS C:\Users\pat10> $cloud = "ha101-1.overkiz.com"
    PS C:\Users\pat10>
    PS C:\Users\pat10> # Connexion au Cloud Somfy
    PS C:\Users\pat10> $session = Invoke-WebRequest "https://$cloud/enduser-mobile-web/enduserAPI/login"; `
    >> -Method post -ContentType "application/x-www-form-urlencoded" `
    >> -Body 'userId=pat.millot@orange.fr&userPassword=Patmil#72600' -SessionVariable "sess"

    Security Warning: Script Execution Risk
    Invoke-WebRequest parses the content of the web page. Script code in the web page might be run when the page is
    parsed.
    RECOMMENDED ACTION:
    Use the -UseBasicParsing switch to avoid script code execution.

    Do you want to continue?

    [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « N ») : oO
    [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « N ») : 00
    [O] Oui [T] Oui pour tout [N] Non [U] Non pour tout [S] Suspendre [?] Aide (la valeur par défaut est « N ») :
    Invoke-WebRequest : Operation cancelled due to security concerns. Use -UseBasicParsing parameter for safe HTML
    parsing without script execution.
    Au caractère Ligne:1 : 12
    + $session = Invoke-WebRequest "https://$cloud/enduser-mobile-web/endus ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : Erreur de sécurité: (https://ha101-1...nduserAPI/login:Uri) [Invoke-WebRequest], In
    validOperationException
    + FullyQualifiedErrorId : WebCmdletIEParsingDeclined,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

    PS C:\Users\pat10>
    PS C:\Users\pat10> # Récupération du Token
    PS C:\Users\pat10> $r = Invoke-RestMethod "https://$cloud/enduser-mobile-web/enduserAPI/config/$pin/...; `
    >> -Method Get -ContentType "application/json" `
    >> -WebSession $sess
    Invoke-RestMethod : La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de l'envoi.
    Au caractère Ligne:1 : 6
    + $r = Invoke-RestMethod "https://$cloud/enduser-mobile-web/enduserAPI/ ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation : (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], W
    ebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

    PS C:\Users\pat10>
    PS C:\Users\pat10> Write-Host "Votre Token est : $($r.token)"
    Votre Token est :
    PS C:\Users\pat10>
    PS C:\Users\pat10> # Activation du mode développeur avec ce Token
    PS C:\Users\pat10> Invoke-RestMethod "https://$cloud/enduser-mobile-web/enduserAPI/config/$pin/...; `
    >> -Method Post -ContentType "application/json" `
    >> -WebSession $sess `
    >> -Body "{""label"":""Mon token"", ""token"":""$($r.token)"", ""scope"":""devmode""}"
    Invoke-RestMethod : {"errorCode":"INVALID_API_CALL","error":"No such resource"}
    Au caractère Ligne:1 : 1
    + Invoke-RestMethod "https://$cloud/enduser-mobile-web/enduserAPI/confi ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation : (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], W
    ebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
    PS C:\Users\pat10>
    PS C:\Users\pat10> Write-Host "Le mode développeur a été activé avec succès !"
    Le mode développeur a été activé avec succès !
    PS C:\Users\pat10> pause

    Quel solutions ?
    Merci d'avance pour votre réponse.

    P. Millot

    David R.
    David R.

    David R.

    Niveau
    1
    288 / 750
    points

    Changer votre mot de passe il est en clair.

    David R.
    David R.

    David R.

    Niveau
    1
    288 / 750
    points

    Il faud faire un script en powershell.

    Oui je changerais mon mot de passe après avoir résolu ce soucis et sinon j'ai bien envoyé le script en powershell il m'a bien reconnu mais pas donné de token.
    J'ai eu pas mal de soucis aujourd'hui avec mon mot de passe que j'ai du changer plusieurs fois et qui était ensuite reconnu puis plus reconnu etc.. Il y a du avoir des mise à jour sur le site Somfy ?

    David R.
    David R.

    David R.

    Niveau
    1
    288 / 750
    points

    J ai trouvé ce script dans la communauté jeedom.

    J ai eu le pb a la suite a la mise a jour de mon home assistant.

    J ai testé sur un vieux home assistant ca fonctionne.

    Maintenant tout passe par des token .

    Essayer d exécuter le script en administrateur

    ce script des forum Jeedom date de 2023 et ne fonctionne plus - voici un script fonctionnel n'oubliez pas de remplacer les valeurs pour votre adresse mail - mot de passe et code PIN- Une fois le script executé en mode admin sur powershell - cliquez sur O pour oui et un message s'affichera avec un token API valide pour votre box generé via le cloud d'Overkiz Je vous conseille egalement de desactiver l'autorisation d'execution des scripts powershell sur votre PC, une fois la manip effectuée.

    # Ignore les certificats SSL auto-signés
    [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }

    # === À MODIFIER AVEC TES INFORMATIONS ===
    $email = "votreadresse@mail"
    $password = "votremotdepasse"
    $pin = "lecodPINdevotretahoma" # ex : 1563-7852-8634
    $cloud = "ha101-1.overkiz.com" # serveur cloud EU

    # --- Connexion au cloud Somfy ---
    Invoke-WebRequest `
    -Uri "https://$cloud/enduser-mobile-web/enduserAPI/login"; `
    -Method POST `
    -ContentType "application/x-www-form-urlencoded" `
    -Body "userId=$email&userPassword=$password" `
    -SessionVariable sess | Out-Null

    # --- Génération du token local ---
    $r = Invoke-RestMethod `
    -Uri "https://$cloud/enduser-mobile-web/enduserAPI/config/$pin/...; `
    -Method GET `
    -WebSession $sess

    $token = $r.token
    Write-Host "`n✅ TOKEN API = $token`n"

    # --- Enregistrement du token en mode dev pour usage local ---
    Invoke-RestMethod `
    -Uri "https://$cloud/enduser-mobile-web/enduserAPI/config/$pin/...; `
    -Method POST `
    -ContentType "application/json" `
    -WebSession $sess `
    -Body (@{
    label = "HomeAssistantLocal"
    token = $token
    scope = "devmode"
    } | ConvertTo-Json)

    Write-Host "✅ Token enregistré pour usage local dans Home Assistant"

    Anthony M.
    Anthony M.

    Anthony M.

    Niveau
    0
    22 / 100
    points

    Bonjour,
    J'essaie également d'obtenir un token de ma tahoma V2 qui n'est pas migrée et donc toujours sur Tahoma Classic (ceci dit en passant, j'ai tenté la migration et c'est un échec).
    J'ai donc tenté via win11 + powershell (en admin) et j'ai le message d'erreur suivant (CF image).
    Cela avait fonctionné pour vous ?

    quand tu lance le script que j'ai posté un peu plus haut, sous powershell en mode admin, un token API va etre généré, tu le copie ensuite il faut que tu supprime ton module overkiz sur home assistant (cela ne va pas te supprimer tes objets Somfy de ta config et tu vas les recuperer lors de la resintallation du module) une fois supprimé tu reinstalle ton module overkiz, il devrait detecter ta passerelle qui correspond à ta box tahoma V2, tu clique sur dessus installer, tu choisis somfy eruope > API local > et dans la fenêtre que tu as posté tu colle le token precedent copié depuis le script et cela devrai marcher. Garde bien le script et note ton token sur un bloc note.

    Anthony M.
    Anthony M.

    Anthony M.

    Niveau
    0
    22 / 100
    points

    Merci beaucoup d'avoir pris de votre temps pour me répondre.
    J'ai ressayé en ajoutant l'intégration overkiz cloud et en me connectant à mon compte somfy car votre parliez qu'après avoir généré le token il fallait le supprimer mais sans succès (en photo l'extrait powershell).
    J'ai donc réessayé en supprimant cette intégration, le résultat est le même.

    Je précise que j'utilise HAOS generic x86 x64.
    Que ma tahoma v2 est sur le même réseau que HA.
    Que je ne suis pas capable d'ajouter overkiz en local puisse que le token semble impératif lors de l'ajout.
    Et enfin que Overkiz en cloud n'a pas réussi à se paramétrer :

    Voici un extrait du log de HA si cela est utile :

    Logger: homeassistant.config_entries
    Source: config_entries.py:762
    First occurred: 5:56:11 PM (3 occurrences)
    Last logged: 6:10:32 PM

    Error setting up entry a-t (j'ai caché mon email) for overkiz
    Traceback (most recent call last):
    File "/usr/src/homeassistant/homeassistant/config_entries.py", line 762, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/src/homeassistant/homeassistant/components/overkiz/__init__.py", line 93, in async_setup_entry
    scenarios = await client.get_scenarios()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.13/site-packages/backoff/_async.py", line 151, in retry
    ret = await target(*args, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.13/site-packages/pyoverkiz/client.py", line 686, in get_scenarios
    return [Scenario(**scenario) for scenario in humps.decamelize(response)]
    ~~~~~~~~^^^^^^^^^^^^
    TypeError: Scenario.__init__() missing 1 required positional argument: 'metadata'

    Merci d'avance pour votre aide.

    Haut de page