Problème dépendances Homebridge

Bonsoir à tous,

Je viens d’installer Jeedom 4.4.20 à partir de la dernière image basée sur Debian 12 (bookworm).

J’ai restauré ma sauvegarde puis j’ai réinstallé les dépendances des plugins. Tout s’est bien passé excepté avec le plugin Homebridge dont les dépendances refusent de s’installer.

Pourtant d’après le log l’installation semble réussie :

== Jeedom 4.4.20 sur Debian GNU/Linux 12 (bookworm)/amd64/x86_64/64bits aka 'diy' avec nodeJS 20.19.5 et homebridge (stable) 2025-07-15 13:25:42 (avant:inconnu)
======================================================================
== 09/09/2025 18:45:07 == Installation des dépendances de homebridge
======================================================================

[  0% ] : Vérification des droits...
[  4% ] : Vérification des droits : [1sec] : [  OK  ]
[  5% ] : Mise à jour APT et installation des packages nécessaires...
[  9% ] : Mise à jour APT et installation des packages nécessaires : [6sec] : [  OK  ]
[ 10% ] : Prérequis...
[ 14% ] : Prérequis : [0sec] : [  OK  ]
[ 15% ] : Installation des packages nécessaires...
[ 19% ] : Installation des packages nécessaires : [2sec] : [  OK  ]
[ 20% ] : Vérification du système...
[ 24% ] : Vérification du système : [0sec] : [  OK  ]
[ 25% ] : Vérification de la version de NodeJS installée...
[Vérification Version NodeJS actuelle : v20.19.5 : [  OK  ]
[Vérification Version NPM : 10.8.2 : [  OK  ]
[Vérification Prefixe : /usr et sudo prefixe : /usr et www-data prefixe : /usr : [  OK  ]
[ 29% ] : Vérification de la version de NodeJS installée : [3sec] : [  OK  ]
[ 30% ] : Nettoyage...
[ 59% ] : Nettoyage : [0sec] : [  OK  ]
[ 60% ] : Nettoyage anciens modules...
[ 69% ] : Nettoyage anciens modules : [2sec] : [  OK  ]
[ 70% ] : Vérification des droits avant install...
[ 71% ] : Vérification des droits avant install : [0sec] : [  OK  ]
[ 72% ] : Installation/Mise à jour de homebridge-camera-ffmpeg 3.1.4...
[ 73% ] : Installation/Mise à jour de homebridge-camera-ffmpeg 3.1.4 : [16sec] : [  OK  ]
[ 74% ] : Installation/Mise à jour de homebridge-alexa...
[ 75% ] : Installation/Mise à jour de homebridge-alexa : [10sec] : [  OK  ]
[ 76% ] : Installation/Mise à jour de homebridge-gsh...
[ 77% ] : Installation/Mise à jour de homebridge-gsh : [8sec] : [  OK  ]
[ 78% ] : Installation/Mise à jour de homebridge-config-ui-x...
[ 79% ] : Installation/Mise à jour de homebridge-config-ui-x : [31sec] : [  OK  ]
[ 80% ] : Installation de Homebridge...
[ 81% ] : Installation de Homebridge : [6sec] : [  OK  ]
[ 82% ] : Installation de homebridge-jeedom master, veuillez patienter svp...
[ 83% ] : Installation de homebridge-jeedom master, veuillez patienter svp : [21sec] : [  OK  ]
[ 84% ] : Vérification des droits après install...
[ 89% ] : Vérification des droits après install : [0sec] : [  OK  ]
[ 90% ] : Configuration Avahi...
[ 99% ] : Configuration Avahi : [0sec] : [  OK  ]
[100% ] : Terminé !

======================================================================
== OK == Installation Réussie [1:46]
======================================================================

Mais en fait la fenêtre d’installation reste bloquée sur 82% :

Par ailleurs, si je clique sur Rafraîchir ou sur Assistance ou si je ferme la fenêtre pour l’ouvrir à nouveau, j’obtiens cette erreur :

En l’état, même la page santé de Jeedom est bloquée :

Pour retrouver une page santé normale, il faut que je désactive le plugin Homebridge :

Si je réactive Homebridge, les dépendances se lancent automatiquement mais le même scénario se répète, blocage à 82% etc…

Un peu d’aide me serait bien utile.

EDIT 22:39

@nebz @Aurelien

J’ai refait l’installation complète de Jeedom 4.4.20 basée sur Debian 12 et j’ai constaté le même dysfonctionnement.
Donc retour à Debian 11.
Merci pour vos réponses.

EDIT 10.09.2025 - 06:21

@nebz @Aurelien
Mon post a été déplacé dans la section Salon des Bêta-Testeurs et je n’y ai pas accès. C’est compliqué pour répondre.

Hello, c’est lié au core pas au plugin. Le plugin ne gère pas cet avancement ou les messages dans ces parties des fenêtres.

Bonsoir,

Merci pour ta réponse mais du coup que puis-je faire à part retourner sous Bulleseye ?

Aucune idée

Bonjour,

Il doit y avoir une erreur correspondante dans les logs http.error non ?

Hello,

J’ai pas le temps de me taper les commits du core, quelque chose a changé dans les signatures des fonctions du core ?

Je demandais à @goulouche en fait :sweat_smile:

Tout est là au pire, je vois pas comment ça peut avoir un rapport : New recovery (Smart/Atlas) by Salvialf · Pull Request #3112 · jeedom/core

En effet… je vois rien

Je tente un nouveau lxc demain pour tester on verra. Mais dans la version précédente du core aucun problème et le plugin n’a pas bougé en stable depuis deux mois… première fois qu’on signale ce problème, juste après une version du core…

Ou pure hasard lié à l’image et peut être ipv6 ?

Je confirme sur LXC aucun problème avant sur la 4.4.19 ainsi que sur la 4.4.20, même version de debian et php




je t’accorde, j’ai la beta, mais ça devrait pas changer quoi que ce soit (mais tu peux tester pour voir)

Bah non ! Ce n’est en aucun cas une solution. Pourquoi ne pas avoir au moins partagé les logs http.error ?!

Edit : Testé de mon côté avec la dernière image amd64 Deb12, pas de problème :

1 « J'aime »

Bonjour à tous,

Il se pourrait que le problème vienne de ma sauvegarde car après avoir complètement supprimé Homebridge de ma Jeedom 4.4.20 basée sur Debian 12, j’ai pu réinstaller Homebridge sans problème.

2 « J'aime »

Le problème vient bel et bien de la restauration (ou de la sauvegarde). Après avoir tenté une restauration en lignes de commandes celle-ci s’interrompt. Voici le détail :

[START RESTORE]
***************Begin Jeedom restore 2025-09-10 12:44:42***************
Send begin restore event...OK
Checking rights...OK
Restore from file : /var/www/html/install/../backup/backup-jeedom1-4.4.20-2025-09-10-11h00.tar.gz
Backup database access configuration...OK
Disable all task OK
Disable all scenario.............................. OK
Unpacking backup...OK
Update composer file...
OK
[PROGRESS][58]
Deleting database...Disabling constraints...OK
Deleting table : aprescouchésoleil ...OK
Deleting table : apreslevésoleil ...OK
Deleting table : avantcouchésoleil ...OK
Deleting table : avantlevésoleil ...OK
Deleting table : cache ...OK
Deleting table : calendar_event ...OK
Deleting table : cmd ...OK
Deleting table : config ...OK
Deleting table : conso_teleinfo ...OK
Deleting table : cron ...OK
Deleting table : dataStore ...OK
Deleting table : eqLogic ...OK
Deleting table : eqReal ...OK
Deleting table : event ...OK
Deleting table : history ...OK
Deleting table : historyArch ...OK
Deleting table : interactDef ...OK
Deleting table : interactQuery ...OK
Deleting table : jeemate_DBevent ...OK
Deleting table : listener ...OK
Deleting table : message ...OK
Deleting table : note ...OK
Deleting table : object ...OK
Deleting table : plan ...OK
Deleting table : plan3d ...OK
Deleting table : plan3dHeader ...OK
Deleting table : planHeader ...OK
Deleting table : scenario ...OK
Deleting table : scenarioElement ...OK
Deleting table : scenarioExpression ...OK
Deleting table : scenarioSubElement ...OK
Deleting table : timeline ...OK
Deleting table : update ...OK
Deleting table : user ...OK
Deleting table : view ...OK
Deleting table : viewData ...OK
Deleting table : viewZone ...OK
Deleting table : widgets ...OK
Restoring database from backup...OK
Enable back constraints...OK
Restoring cache...OK
    Restoring Plugin : calendar...OK
PHP Fatal error:  Uncaught TypeError: strtolower(): Argument #1 ($string) must be of type string, array given in /var/www/html/plugins/homebridge/core/class/homebridge.class.php:1707
Stack trace:
#0 /var/www/html/plugins/homebridge/core/class/homebridge.class.php(1707): strtolower()
#1 /var/www/html/plugins/homebridge/core/class/homebridge.class.php(303): homebridge::hasCameras()
#2 /var/www/html/core/class/plugin.class.php(733): homebridge::dependancy_info()
#3 /var/www/html/install/restore.php(206): plugin->dependancy_info()
#4 {main}
  thrown in /var/www/html/plugins/homebridge/core/class/homebridge.class.php on line 1707
root@Jeedom:/home/jeedom#

Pour moi c’est du chinois mais peut-être que ça vous parle.

Hello, tu peux montrer ton fichier config.json de homebridge ?

tu le trouves dans l’interface homebridge-config-ui-x ou bien dans debuginfo

ou alors le contenu là :

Hello,

Voici le fichier config.json que j’ai trouvé ici (j’espère que c’est le bon parce que je n’ai pas d’accès depuis l’interface Homebridge de Jeedom Bookworm :

html/plugins/homebridge/resources/homebridge/config.json

C’est celui qui se trouve sur Jeedom Bookworm issu de la restauration d’une sauvegarde depuis jeedom Bullseye :

{
    "bridge": {
        "name": "jeedomvm_Repaired_16",
        "username": "84:E8:0B:EF:AF:93",
        "port": 51826,
        "pin": "031-45-154",
        "manufacturer": "Jeedom",
        "model": "Homebridge",
        "serialNumber": "84:E8:0B:EF:AF:93",
        "setupID": "AF93",
        "advertiser": "bonjour-hap"
    },
    "description": "Fichier généré par le plugin homebridge, toute modification sera écrasée après sauvegarde, utilisez la configuration du plugin et les plateformes et accessoires supplémentaires",
    "platforms": [
        {
            "platform": "Jeedom",
            "name": "jeedomvm_Repaired_16",
            "url": "http:\/\/192.168.0.144",
            "apikey": "jrQq2UVEt9HYoFOxGY02eml0sYSJ9qnbyfAIgE2WbMf6w7TNmMXV1SkJ8HdvtVnw",
            "pollerperiod": 0.05,
            "fakegato": false,
            "adaptiveEnabled": true,
            "debugLevel": "400",
            "myPlugin": "homebridge",
            "magicField": "NBPx\/38Y48kHg"
        },
        {
            "platform": "config",
            "name": "Config",
            "port": 33221,
            "auth": "form",
            "restart": "sudo wget http:\/\/192.168.0.144\/core\/api\/jeeApi.php?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22id%22%3A%22123%22%2C%22method%22%3A%22plugin%3A%3AdeamonStart%22%2C%22params%22%3A%7B%22plugin_id%22%3A%22homebridge%22%2C%22apikey%22%3A%22jrQq2UVEt9HYoFOxGY02eml0sYSJ9qnbyfAIgE2WbMf6w7TNmMXV1SkJ8HdvtVnw%22%2C%22debug%22%3Atrue%2C%22forceRestart%22%3Atrue%7D%7D -O \/dev\/null",
            "theme": "green",
            "tempUnits": "c",
            "lang": "auto",
            "sudo": true,
            "debug": false,
            "homebridgePackagePath": "\/var\/www\/html\/plugins\/homebridge\/core\/class\/..\/..\/resources\/node_modules\/homebridge\/",
            "log": {
                "method": "file",
                "path": "\/var\/www\/html\/core\/class\/..\/..\/log\/homebridge_daemon"
            },
            "accessoryControl": {
                "debug": false
            },
            "scheduledBackupDisable": true
        },
        {
            "DELAY_BEFORE_RETRY_AFTER_NETWORK_LOSS": 60000,
            "HUB_CONNECT_TIMEOUT": 10000,
            "HUB_SEND_TIMEOUT": 30000,
            "TVAccessory": false,
            "sortInput": 0,
            "switchAccessories": false,
            "showTurnOffActivity": "true",
            "publishSwitchActivitiesAsIndividualAccessories": false,
            "otherPlatforms": [
                {
                    "TVAccessory": false,
                    "sortInput": 0
                }
            ],
            "platform": [
                {
                    "platform": "HarmonyHubWebSocket",
                    "name": "harmony-1",
                    "hubIP": "192.168.0.128",
                    "otherPlatforms": [
                        {
                            "name": "harmony-2",
                            "hubIP": "192.168.0.139"
                        }
                    ]
                }
            ]
        }
    ],
    "accessories": []
}

Par ailleurs, voici le même fichier extrait de ma sauvegarde depuis Jeedom Bullseye :

{
    "bridge": {
        "name": "jeedomvm_Repaired_16",
        "username": "84:E8:0B:EF:AF:93",
        "port": 51826,
        "pin": "031-45-154",
        "manufacturer": "Jeedom",
        "model": "Homebridge",
        "serialNumber": "84:E8:0B:EF:AF:93",
        "setupID": "AF93",
        "advertiser": "bonjour-hap"
    },
    "description": "Fichier généré par le plugin homebridge, toute modification sera écrasée après sauvegarde, utilisez la configuration du plugin et les plateformes et accessoires supplémentaires",
    "platforms": [
        {
            "platform": "Jeedom",
            "name": "jeedomvm_Repaired_16",
            "url": "http:\/\/192.168.0.144",
            "apikey": "jrQq2UVEt9HYoFOxGY02eml0sYSJ9qnbyfAIgE2WbMf6w7TNmMXV1SkJ8HdvtVnw",
            "pollerperiod": 0.05,
            "fakegato": false,
            "adaptiveEnabled": true,
            "debugLevel": "400",
            "myPlugin": "homebridge",
            "magicField": "NBPx\/38Y48kHg"
        },
        {
            "platform": "config",
            "name": "Config",
            "port": 33221,
            "auth": "form",
            "restart": "sudo wget http:\/\/192.168.0.144\/core\/api\/jeeApi.php?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22id%22%3A%22123%22%2C%22method%22%3A%22plugin%3A%3AdeamonStart%22%2C%22params%22%3A%7B%22plugin_id%22%3A%22homebridge%22%2C%22apikey%22%3A%22jrQq2UVEt9HYoFOxGY02eml0sYSJ9qnbyfAIgE2WbMf6w7TNmMXV1SkJ8HdvtVnw%22%2C%22debug%22%3Atrue%2C%22forceRestart%22%3Atrue%7D%7D -O \/dev\/null",
            "theme": "green",
            "tempUnits": "c",
            "lang": "auto",
            "sudo": true,
            "debug": false,
            "homebridgePackagePath": "\/var\/www\/html\/plugins\/homebridge\/core\/class\/..\/..\/resources\/node_modules\/homebridge\/",
            "log": {
                "method": "file",
                "path": "\/var\/www\/html\/core\/class\/..\/..\/log\/homebridge_daemon"
            },
            "accessoryControl": {
                "debug": false
            },
            "scheduledBackupDisable": true
        },
        {
            "DELAY_BEFORE_RETRY_AFTER_NETWORK_LOSS": 60000,
            "HUB_CONNECT_TIMEOUT": 10000,
            "HUB_SEND_TIMEOUT": 30000,
            "TVAccessory": false,
            "sortInput": 0,
            "switchAccessories": false,
            "showTurnOffActivity": "true",
            "publishSwitchActivitiesAsIndividualAccessories": false,
            "otherPlatforms": [
                {
                    "TVAccessory": false,
                    "sortInput": 0
                }
            ],
            "platform": [
                {
                    "platform": "HarmonyHubWebSocket",
                    "name": "harmony-1",
                    "hubIP": "192.168.0.128",
                    "otherPlatforms": [
                        {
                            "name": "harmony-2",
                            "hubIP": "192.168.0.139"
                        }
                    ]
                }
            ]
        }
    ],
    "accessories": []
}

A priori les deux fichiers sont identiques.

c’est celui avant la sauvegarde qu’on a besoin, c’est bien celui-là ?

Hélas non ! Je peux cependant faire comme j’avais fait plus tôt. C’est à dire que je supprime complètement Homebridge de Jeedom Bookworm et puis je le réinstalle.

non, je vais contourner le problème

j’ai trouvé, tu as une erreur dans ta config que tu as faite manuellement :

 "platform": [
                {
                    "platform": "HarmonyHubWebSocket",
                    "name": "harmony-1",
                    "hubIP": "192.168.0.128",
                    "otherPlatforms": [
                        {
                            "name": "harmony-2",
                            "hubIP": "192.168.0.139"
                        }
                    ]
                }
            ]

tu ne peux pas avoir une platform dans une platform, c’est la config de ton hub harmony qui a un problème