grzegorz914 / homebridge-denon-tv

Homebridge plugin for Denon/Marantz AV Receivers, publish as independent external platform accessory.
MIT License
70 stars 15 forks source link

Error in 4.5.3: Cannot read properties of undefined (reading 'name') #221

Closed lazarbela closed 6 months ago

lazarbela commented 6 months ago

Hi!

After upgrading to 4.5.3 (from 4.5.2), the plugin crashes with: State error: TypeError: Cannot read properties of undefined (reading 'name')

The log contains the following:

[1/4/2024, 7:42:12 PM] [homebridge-denon-tv] Launched child bridge with PID 26513
[1/4/2024, 7:42:13 PM] Registering platform 'homebridge-denon-tv.DenonTv'
[1/4/2024, 7:42:13 PM] [homebridge-denon-tv] Loaded homebridge-denon-tv v4.5.3 child bridge successfully
[1/4/2024, 7:42:13 PM] Loaded 0 cached accessories from cachedAccessories.0EEB3CD6EFAD.
[1/4/2024, 7:42:13 PM] Homebridge v1.7.0 (HAP v0.11.1) (homebridge-denon-tv) is running on port 51106.
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] -------- Living Room Audio --------
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Manufacturer: Denon
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Model: *AVR-X2300W
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Zones: 2
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Control: Main Zone
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Firmware: 0
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Api version: 300
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Serialnr: **************
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] ----------------------------------
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] -------- Kitchen Audio --------
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Manufacturer: Denon
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Model: *AVR-X2300W
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] Control: Zone 2
[1/4/2024, 7:42:14 PM] [homebridge-denon-tv] ----------------------------------
[1/4/2024, 7:42:16 PM] Living Room Audio FC2D is running on port 35856.
[1/4/2024, 7:42:16 PM] Please add [Living Room Audio FC2D] manually in Home app. Setup Code: 031-45-154
[1/4/2024, 7:42:16 PM] Kitchen Audio C844 is running on port 36382.
[1/4/2024, 7:42:16 PM] Please add [Kitchen Audio C844] manually in Home app. Setup Code: 031-45-154
[1/4/2024, 7:42:17 PM] [homebridge-denon-tv] Device: 192.168.134.50 Living Room Audio, Connected.
[1/4/2024, 7:42:17 PM] [homebridge-denon-tv] Device: 192.168.134.50 Living Room Audio, Power: OFF
[1/4/2024, 7:42:17 PM] [homebridge-denon-tv] Device: 192.168.134.50 Living Room Audio, State error: TypeError: Cannot read properties of undefined (reading 'name'), reconnect in 5s.
[1/4/2024, 7:42:17 PM] [homebridge-denon-tv] Device: 192.168.134.50 Living Room Audio, Power: OFF

/volume1/homebridge/node_modules/homebridge-denon-tv/src/denondevice.js:393
                    this.emit('message', `${this.zoneInputSurroundName} Name: ${this.inputsConfigured[index].name}, Reference: ${reference}`);
                                                                                                             ^
TypeError: Cannot read properties of undefined (reading 'name')
    at DENON.<anonymous> (/volume1/homebridge/node_modules/homebridge-denon-tv/src/denondevice.js:393:110)
    at DENON.emit (node:events:517:28)
    at DENON.<anonymous> (/volume1/homebridge/node_modules/homebridge-denon-tv/src/denon.js:263:22)
    at DENON.emit (node:events:517:28)
    at DENON.<anonymous> (/volume1/homebridge/node_modules/homebridge-denon-tv/src/denon.js:259:26)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
[1/4/2024, 7:42:17 PM] [homebridge-denon-tv] Child bridge process ended
[1/4/2024, 7:42:17 PM] [homebridge-denon-tv] Process Ended. Code: 1, Signal: null

My config file is the following:

{
    "devices": [
        {
            "switchInfoMenu": false,
            "host": "192.168.134.50",
            "zoneControl": 0,
            "inputs": [
                {
                    "name": "Spotify",
                    "reference": "SPOTIFY",
                    "mode": "SI"
                },
                {
                    "name": "Squeezebox",
                    "mode": "SI",
                    "reference": "SAT/CBL"
                }
            ],
            "volumeControl": 2,
            "port": 80,
            "name": "Living Room Audio",
            "masterPower": true,
            "enableMqtt": false,
            "masterMute": false,
            "disableLogDeviceInfo": false,
            "enableDebugMode": false,
            "masterVolume": false,
            "disableLogInfo": false,
            "mqttAuth": false,
            "buttonsMainZone": [
                {
                    "displayType": 1,
                    "name": "All Zones On",
                    "reference": "MNZST ON"
                }
            ]
        },
        {
            "host": "192.168.134.50",
            "zoneControl": 1,
            "name": "Kitchen Audio",
            "inputs": [
                {
                    "name": "Spotify",
                    "reference": "SPOTIFY",
                    "mode": "SI"
                },
                {
                    "name": "Squeezebox",
                    "mode": "SI",
                    "reference": "SAT/CBL"
                }
            ],
            "volumeControl": 2,
            "port": 80,
            "masterPower": true,
            "enableMqtt": false,
            "masterMute": false,
            "disableLogDeviceInfo": false,
            "enableDebugMode": false,
            "masterVolume": false,
            "disableLogInfo": false,
            "mqttAuth": false
        }
    ],
    "_bridge": {
        "username": "0E:EB:3C:D6:EF:AD",
        "port": 51106
    },
    "platform": "DenonTv"
}

Probably some proerties are missing from the config file or it is processed now differently. But I do not see the offending part. Can you please review and suggest a change?

Rolling back to version 4.5.2 resolves the issue for now.

Thanks a lot!

lazarbela commented 6 months ago

Here is the detailed log...

homebridge.log

I hope it helps.