DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Forum dédié au ZigBee : objets, interfaces ...
Plugins DeConz et ZigBee2MQTT
Pour les questions concernant le plugin ZigBeeForDomoticZ, merci d'utiliser le forum spécifique en dessous.
53l3cu5
Messages : 31
Inscription : 09 juil. 2021, 19:47

DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Message par 53l3cu5 »

Je viens vous présenter la solution à un problème mineur quand on utilise c'est 3 logiciels (DECONZ, HomeBridge et le plugin Hue) avec Domoticz.
Au bout d'un certain temps on se retrouve avec un message du type
Error: DECONZ: (DECONZ) You have 11 API keys memorised, some of them are probably useless, can use the API_KEY.py tool to clean them
Sans titre-1.png
Sans titre-1.png (60.14 Kio) Consulté 2680 fois
Le problème vient du plugin Hue dans Homebridge. A chaque redémarrage de Homebridge, le plugin réclame une nouvelle clé d'API mais il n'efface pas l'ancienne. Du coup le nombre de clés augmente, et au bout de 11 clés, Domoticz envoie le message d'erreur ci-dessus.

Pour que l'erreur n'apparaisse plus il y a 4 partie à respecter:

1) D'abord il faut commercer par effacer toutes les clés inutiles. Et pour ça il faut connaître une clé API valide:
SETUP > DEVICE > API KEY
Sans titre-2.png
Sans titre-2.png (535.37 Kio) Consulté 2680 fois
2) On peut les effacer manuellement depuis le shell.
"987654321A" représente ma clé API valide
sudo python3 /home/pi/domoticz/plugins/Domoticz-deCONZ/API_KEY.py 127.0.0.1:80 list 987654321A
En retour on reçoit les 11 clés utilisées dont la clé valide.
Il faut maintenant supprimer une par une les clés qui sont plus utilisés. Pour ne pas m'embêter à les chercher, je les supprime toutes sauf ma clé valide, puis je redémarre homebridge pour lui générer une nouvelle clé.
sudo python3 /home/pi/domoticz/plugins/Domoticz-deCONZ/API_KEY.py 127.0.0.1:80 delete 987654321A 1A23456789
"1A23456789" est le numéro de la clé que l'on veut supprimer.

2 bis) Soit on utilise ce script qui fait tout seul ce que l'on a décrit ci-dessus grâce à un bouton poussoir.
Sans titre-3.png
Sans titre-3.png (92.94 Kio) Consulté 2680 fois

Code : Tout sélectionner

commandArray = {}

function mysplit (inputstr, sep)
    if sep == nil then sep = "%s" end
    local t={}
    for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
        table.insert(t, str)
    end
    return t
end

function os.capture(cmd, raw)
  local f = assert(io.popen(cmd, 'r'))
  local s = assert(f:read('*a'))
  f:close()
  if raw then return s end
  s = string.gsub(s, '^%s+', '')
  s = string.gsub(s, '%s+$', '')
  s = string.gsub(s, '[\n\r]+', ' ')
  return s
end

-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do
    --print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");
    if (deviceName=='ClearAPI_KEY.py') then
        local API_KEY = "987654321A"
        if deviceValue == "On" then
            -- liste l'ensemble des clefs Deconz et les supprimmes toutes
            local command = "sudo python3 /home/pi/domoticz/plugins/Domoticz-deCONZ/API_KEY.py 127.0.0.1:80 list " .. API_KEY
            local result = os.capture(command, true)
            local lignes = mysplit(result, '\n\r')
            command = "sudo python3 /home/pi/domoticz/plugins/Domoticz-deCONZ/API_KEY.py 127.0.0.1:80 delete " .. API_KEY .. " "
            for i=1,#lignes,1 do
                key = mysplit(lignes[i], ' ')
                if key[3] ~= API_KEY then
                    os.execute(command .. key[3])
                end
            end
        end
        os.execute("sudo reboot")
    end
end

return commandArray
3) Chercher ça dans le log
Sans titre-4.png
Sans titre-4.png (21.61 Kio) Consulté 2576 fois
Copiez juste cette partie du texte, sans oublier la virgule.

Code : Tout sélectionner

,
      "users": {
        "XXX ID": "XXX Key"
      }
(La première suite alphanumérique est votre identifiant et la seconde votre clé.)
Puis chercher dans l'onglet Config

Code : Tout sélectionner

"platform": "Hue"
et collez votre ID et votre clé juste derrière.

4) Enregistrez et redémarrez Homebridge pour régler le problème définitivement
Dernière modification par 53l3cu5 le 25 juil. 2021, 19:10, modifié 2 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message par Keros »

Je viens de déplacer le sujet dans la section des Autres protocoles où se trouve les sujets à propos de DeconZ.
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Message par Thorgal »

Hello, tu peux aussi utiliser

Code : Tout sélectionner

sudo python3 /home/pi/domoticz/plugins/Domoticz-deCONZ/API_KEY.py 127.0.0.1:80 clean 987654321A
Ca va supprimer toutes les clés inutiles qui ont "Phoscon#" ou "deCONZ WebApp", mais je ne connais pas le nom qu'elles ont avec Homebridge ?

Par contre
A chaque redémarrage de Homebridge, le plugin réclame une nouvelle clé d'API mais il n'efface pas l'ancienne
Y a vraiment pas moyen de regler ca ?

En tout cas, ton script va me servir merci.
53l3cu5
Messages : 31
Inscription : 09 juil. 2021, 19:47

Re: DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Message par 53l3cu5 »

Keros a écrit : 22 juil. 2021, 11:11 Je viens de déplacer le sujet dans la section des Autres protocoles où se trouve les sujets à propos de DeconZ.
Merci Keros
Thorgal a écrit : 22 juil. 2021, 18:35 Hello, tu peux aussi utiliser

Code : Tout sélectionner

sudo python3 /home/pi/domoticz/plugins/Domoticz-deCONZ/API_KEY.py 127.0.0.1:80 clean 987654321A
Ca va supprimer toutes les clés inutiles qui ont "Phoscon#" ou "deCONZ WebApp", mais je ne connais pas le nom qu'elles ont avec Homebridge ?
Ca ne fontionne pas chez moi. Au mieux, il supprime une seul clé
Thorgal a écrit : 22 juil. 2021, 18:35 Par contre
A chaque redémarrage de Homebridge, le plugin réclame une nouvelle clé d'API mais il n'efface pas l'ancienne
Y a vraiment pas moyen de regler ca ?
Je suis preneur de la solution si elle éxiste. Ca serait plus "propre" que ma bidouille
Thorgal a écrit : 22 juil. 2021, 18:35 En tout cas, ton script va me servir merci.
si ça peut-être utile à quelqu'un, je suis content ! ;)
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Message par Thorgal »

Ca ne fontionne pas chez moi. Au mieux, il supprime une seul clé
Tu pourrais pas me dire quel est le nom d'utilisateur cree par les clé homebridge ?
Je suis preneur de la solution si elle éxiste. Ca serait plus "propre" que ma bidouille
Franchement je connais pas homebridge, je viens meme juste de decouvrir qu'il y a un package de deconz+homebridge https://forum.phoscon.de/t/no-homebridge-pin-code/185

Peut etre une histoire de fichier config.json a remplir pour eviter une redetection a chaque fois ?
53l3cu5
Messages : 31
Inscription : 09 juil. 2021, 19:47

Re: DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Message par 53l3cu5 »

Thorgal a écrit : 24 juil. 2021, 16:35 Tu pourrais pas me dire quel est le nom d'utilisateur cree par les clé homebridge ?

Code : Tout sélectionner

KEY : 27E4EE9400 Name : Phoscon#B1858x977 Last used : 2021-07-24T23:20:13
KEY : 8FCFE46184 Name : homebridge-hue#raspberrypi Last used : 2021-07-23T03:04:38
KEY : A90329328F Name : homebridge-hue#raspberrypi Last used : 2021-07-24T23:25:25
KEY : AB4DA90329 Name : homebridge-hue#raspberrypi Last used : 2021-07-24T12:47:00
KEY : CFE4618457 Name : homebridge-hue#raspberrypi Last used : 2021-07-24T12:51:23
C'est ca que tu veux ?
Thorgal a écrit : 24 juil. 2021, 16:35 Franchement je connais pas homebridge, je viens meme juste de decouvrir qu'il y a un package de deconz+homebridge https://forum.phoscon.de/t/no-homebridge-pin-code/185
J'ai vu ça quand j'ai commencé, mais j'ai préféré installer les deux séparément
Thorgal a écrit : 24 juil. 2021, 16:35 Peut etre une histoire de fichier config.json a remplir pour eviter une redetection a chaque fois ?
C'est une bonne idée. Je vais l'approfondir. Et si ça fonctionne je modifierai mon premier post
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Message par Thorgal »

En tout cas merci pour l'info, je rajoute la chaine "homebridge-hue#" pour le nettoyage de clé avec la commande "clean"
53l3cu5
Messages : 31
Inscription : 09 juil. 2021, 19:47

Re: DECONZ, HomeBridge et Hue = Error: DECONZ: (DECONZ) You have N API keys memorised

Message par 53l3cu5 »

Thorgal a écrit : 24 juil. 2021, 16:35Peut etre une histoire de fichier config.json a remplir pour eviter une redetection a chaque fois ?
Tu avais vu juste !

Il y a du coup une manip très simple pour éviter de regénérer une nouvelle clé à chaque redémarrage de Homebridge.
Je vais l'ajouter au post initial.

Alors il faut redémarrer Homebride et chercher ça dans le log
Sans titre-1.png
Sans titre-1.png (21.61 Kio) Consulté 2577 fois
Copiez juste cette partie du texte, sans oublier la virgule.

Code : Tout sélectionner

,
      "users": {
        "XXX ID": "XXX Key"
      }
(La première suite alphanumérique est votre identifiant et la seconde votre clé.)
Puis chercher dans config

Code : Tout sélectionner

"platform": "Hue"
et collez votre ID et votre clé juste derrière.

Enregistrez et redémarrez Homebridge pour régler le problème définitivement
Répondre