homebridge/homebridge-syno-spk

Homebridge won't start after updating from 3.0.15 to 3.0.16

i-am-pierre opened this issue ยท 12 comments

Analysis

After upgrading from HomeBridge 3.0.15 to 3.0.16 home bridge stop working completely.UI is no longer available on the URL:port and all accessories are now unresponsive from HomeKit.

Issue start right after updating via Package center.

Expected Behavior

HB restart and work normally after upgrade.

It looks like 3.0.16 removed node and npm.

Steps To Reproduce

Stop and restart package from package center
Power cycle Synology DSM 7.2-64570 Update 1
Remove and re-install HomeBridge 3.0.16

Logs

N/A

Configuration

{
    "bridge": {
        "name": "Homebridge",
        "username": "0E:52:A3:A4:03:E7",
        "port": 51839,
        "pin": "790-21-128",
        "advertiser": "ciao",
        "bind": [
            "ovs_bond0",
            "docker-b59fc96e"
        ]
    },
    "accessories": [
        {
            "name": "Pihole-RasbuntuPi4",
            "auth": "REDACTED",
            "ssl": false,
            "rejectUnauthorized": true,
            "host": "192.168.10.8",
            "port": 80,
            "baseDirectory": "/admin/",
            "time": 120,
            "reversed": false,
            "logLevel": 1,
            "accessory": "Pihole"
        },
        {
            "name": "Pihole-Synology-Macvlan",
            "auth": "REDACTED",
            "ssl": false,
            "rejectUnauthorized": true,
            "host": "10.0.10.9",
            "port": 80,
            "baseDirectory": "/admin/",
            "time": 120,
            "reversed": false,
            "logLevel": 1,
            "accessory": "Pihole"
        }
    ],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "auth": "form",
            "theme": "dark-mode",
            "tempUnits": "c",
            "lang": "auto",
            "platform": "config"
        },
        {
            "username": "REDACTED",
            "password": "REDACTED",
            "apiKey": "REDACTED",
            "disableFan": false,
            "disableDry": false,
            "ignoreHomeKitDevices": false,
            "enableSyncButton": false,
            "syncButtonInAccessory": false,
            "enableOccupancySensor": false,
            "enableClimateReactSwitch": true,
            "enableHistoryStorage": true,
            "disableHorizontalSwing": true,
            "disableLightSwitch": false,
            "externalHumiditySensor": true,
            "allowRepeatedCommands": false,
            "debug": false,
            "_bridge": {
                "username": "0E:0C:8D:DB:96:39",
                "port": 46048
            },
            "platform": "SensiboAC"
        },
        {
            "controllers": [
                {
                    "address": "192.168.10.1",
                    "name": "UDM Pro",
                    "password": "REDACTED",
                    "username": "REDACTED"
                }
            ],
            "options": [
                "Disable.Log.Doorbell.74ACB95EB941",
                "Disable.Doorbell.Messages.74ACB95EB941",
                "Disable.Doorbell.Messages.FromDoorbell.74ACB95EB941",
                "Disable.Doorbell.Messages",
                "Disable.Doorbell.Messages.FromDoorbell",
                "Disable.Log.Doorbell",
                "Enable.Video.DynamicBitrate"
            ],
            "_bridge": {
                "username": "0E:CA:67:5F:F7:66",
                "port": 52968
            },
            "platform": "UniFi Protect"
        },
        {
            "devices": [
                {
                    "ipAddress": "192.168.107.39",
                    "serialNumber": "REDACTED",
                    "credentials": "REDACTED",
                    "useFahrenheit": false,
                    "enableAutoModeWhenActivating": true,
                    "enableOscillationWhenActivating": true,
                    "enableNightModeWhenActivating": false,
                    "isNightModeEnabled": false,
                    "isJetFocusEnabled": false,
                    "isContinuousMonitoringEnabled": false,
                    "isTemperatureSensorEnabled": true,
                    "isTemperatureIgnored": false,
                    "temperatureOffset": 0,
                    "isHumiditySensorEnabled": true,
                    "isHumidityIgnored": false,
                    "humidityOffset": 0,
                    "isAirQualitySensorEnabled": true,
                    "isAirQualityIgnored": false,
                    "isSingleSensorAccessoryModeEnabled": false,
                    "isSingleAccessoryModeEnabled": false,
                    "isFullRangeHumidity": false,
                    "isHeatingDisabled": false,
                    "isHeatingSafetyIgnored": false
                },
                {
                    "ipAddress": "192.168.107.38",
                    "serialNumber": "REDACTED",
                    "credentials": "REDACTED",
                    "useFahrenheit": false,
                    "enableAutoModeWhenActivating": true,
                    "enableOscillationWhenActivating": true,
                    "enableNightModeWhenActivating": false,
                    "isNightModeEnabled": false,
                    "isJetFocusEnabled": false,
                    "isContinuousMonitoringEnabled": false,
                    "isTemperatureSensorEnabled": true,
                    "isTemperatureIgnored": false,
                    "temperatureOffset": 0,
                    "isHumiditySensorEnabled": true,
                    "isHumidityIgnored": false,
                    "humidityOffset": 0,
                    "isAirQualitySensorEnabled": true,
                    "isAirQualityIgnored": false,
                    "isSingleSensorAccessoryModeEnabled": false,
                    "isSingleAccessoryModeEnabled": false,
                    "isFullRangeHumidity": false,
                    "isHeatingDisabled": false,
                    "isHeatingSafetyIgnored": false
                }
            ],
            "updateInterval": 10000,
            "platform": "DysonPureCoolPlatform"
        }
    ]
}

Environment

DSM 7.2-64570 Update 1
Homebridge 3.0.16
Node: node: command not found
nom: npm: command not found

Process Supervisor

hb-service

Additional Context

SSH to the NAS:

Synology_DS920:~$ sudo hb-service shell
Entering Homebridge Shell. To exit type 'exit'.

Note: This is a restricted shell, sudo cannot be used here.

Homebridge Terminal for Synology DSM

bash: node: command not found
Node.js Version:
Node.js Path:
Plugin Path: /volume1/homebridge/node_modules

Update Node.js: hb-service update-node

Install Plugin: hb-service add homebridge-plugin-name
Remove Plugin: hb-service remove homebridge-plugin-name

Manually re-install homebridge-braswell-3.0.15 brings me back to greatness.

Completely the same issue. HomeBridge broke after upgrading from 3.0.15 to 3.0.16.

Environment:
NAS: DS1621+
DSM 7.2-64570 Update 1
Homebridge 3.0.16

rh295 commented

Updated my DS1821+ (DSM 7.2-64570 Update 1) 2 days ago to 3.0.16 with no problems. Just on version 3.0.19 updated, works for me with no problems too.

Updated my DS1821+ (DSM 7.2-64570 Update 1) 2 days ago to 3.0.16 with no problems. Just on version 3.0.19 updated, works for me with no problems too.

3.0.16 was released less than 24h ago.. so that's odd

rh295 commented

No, it was downloadable on 18.07.

grafik

I had the same issue on my DS220+. I found a reddit post saying to install the Node.js v18 package which solved the issue for me!

I just did a compare between 3.0.15 and 3.0.16 and found some further details explaining the need to install the Syno Node.js v18 package. I appears the 3.0.16 had a dependency that in theory should have installed it for us but it's apparently not working.

From README.md:

 #### Dependencies

This package will leverage the Synology supplied NodeJS v18 package 

From app/source.sh

# Use Synology supplied NodeJS v18 - https://github.com/homebridge/homebridge-syno-spk/issues/124
# if [ -f /var/packages/Node.js_v18/target/usr/local/bin/node ]; then
NODE_BIN_PATH="/var/packages/Node.js_v18/target/usr/local/bin"
export HB_SERVICE_NODE_EXEC_PATH="/var/packages/Node.js_v18/target/usr/local/bin/node"
# else
#  NODE_BIN_PATH="/var/packages/homebridge/target/app/bin"
#  export HB_SERVICE_NODE_EXEC_PATH="/var/packages/homebridge/target/app/bin/node"
#fi

I'm not an expert so I'm not clear on what the "if" statement is commented out, but those lines weren't present in 3.0.15 as far as I can tell.

From repo/index.js:

install_dep_packages: 'Node.js_v18',

@threeonparfive You are correct

3.0.15 - Updated all the components within the Homebridge Synology package, including NodeJS to 18.16.1. Which unfortunately broke Homebridge for users on DSM 7.1 or lower due to a LIBC issue. It did work for DSM 7.2 users

3.0.16 - Switched NodeJS to leverage the Synology supplied NodeJS 18.15.1 ( What you saw above ) to resolve issue for DSM 7.1 users

I have one more patch that we are testing to fix the Dependency issue

https://github.com/NorthernMan54/homebridge-syno-spk/releases/tag/3.0.19

ebaauw commented

I'm having issues using the Synology-provided Node.JS-v18 package (under DSM 7.2) that hb-service won't run, claiming it needs root privileges. After changing source.sh to use the (still) bundled NodeJS v18.17.0, hb-service runs fine.

Release 3.0.17 Fixes the dependency for the Synology NodeJS 18 package, and makes sure that it is installed prior allowing the homebridge package to be installed. Also included are fixes to the command line sudo interface made by @ebaauw

Release 3.0.17 of the Homebridge Synology package fixes the dependency for the Synology NodeJS 18 package, and makes sure that it is installed prior allowing the homebridge package to be installed. Also included are fixes to the command line sudo interface made by @ebaauw

Confirm issue fixed with 3.0.17 upgrading from 3.0.15

Thank you @NorthernMan54