TypeError: window.homebridge is undefined
**Describe the bug**

In the browser, click **Cameras** or **Config**
The page keep loading endlessly

**To Reproduce**

cd homebridge-ui
cd ui
npm run serve

When you open the terminal, there is an error: TypeError: window.homebridge is undefined

Here is my config file:

`{
  "logLevel": "info",
  "port": 8081,
  "atHomeSwitch": false,
  "options": {
    "videoProcessor": "/usr/local/lib/node_modules/camera.ui/node_modules/ffmpeg-for-homebridge/ffmpeg"
  },
  "ssl": {
    "active": false
  },
  "http": {
    "active": false,
    "port": 7272,
    "localhttp": false
  },
  "smtp": {
    "active": false,
    "port": 2727,
    "space_replace": "+"
  },
  "ftp": {
    "active": false,
    "useFile": false,
    "port": 5050
  },
  "mqtt": {
    "active": false,
    "tls": false,
    "port": 1883
  },
  "cameras": [
    {
      "name": "370",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-370",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-370",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-370",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "370"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "356",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-356",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-356",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-356",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "356"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "354",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-354",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-354",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-354",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "354"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "353",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-353",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-353",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-353",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "353"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "348",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-348",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-348",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-348",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "348"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "344",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-344",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-344",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-344",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "344"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "343",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-343",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-343",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-343",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "343"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "342",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-342",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-342",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-342",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "342"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "338",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-338",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-338",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-338",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "338"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "337",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-337",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-337",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-337",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "337"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "335",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-335",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-335",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-335",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "335"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    },
    {
      "name": "333",
      "motionTimeout": 15,
      "recordOnMovement": null,
      "prebuffering": null,
      "videoConfig": {
        "source": "-i rtsp://@rtsp-simple-server:8554/runner-333",
        "stillImageSource": "-i rtsp://@rtsp-simple-server:8554/runner-333",
        "stimeout": 10,
        "audio": null,
        "debug": null,
        "subSource": "-i rtsp://@rtsp-simple-server:8554/runner-333",
        "rtspTransport": null,
        "vcodec": null,
        "acodec": null
      },
      "mqtt": {},
      "smtp": {
        "email": "333"
      },
      "videoanalysis": {
        "active": false
      },
      "prebufferLength": 4
    }
  ]
}`

**Expected behavior**
A clear and concise description of what you expected to happen.

**Logs**
TypeError: window.homebridge is undefined

**Screenshots**
![github_issus](https://user-images.githubusercontent.com/114733549/203324103-504d9075-54d5-471e-ae49-5386be7e2a45.png)



**Environment**
- Node.js Version: v16.18.1
- Homebridge Version: vX.X
- Camera UI Version: v1.1.17
- Operating System: Ubuntu 20.04.5 LTS
- Browser: 107.0 (64-bit)

