Skip to content

wirenboard/homeui

Repository files navigation

homeui

Wiren Board web interface.

MQTT naming conventions

See into conventions to understand how to organize devices and controls (what write to /meta/type for example).

NGINX configuration

The config is stored in /usr/share/wb-mqtt-homeui/nginx/default.conf (do not edit this file directly). Add your custom configuration to /etc/nginx/includes/default.wb.d/*.conf. Change listen settings in /etc/nginx/includes/default.wb.d/listen.conf.

Running local development

  1. Navigate to the project directory: cd ./frontend
  2. Install dependencies: npm install
  3. Create .env file and set MQTT_BROKER_URI if your controller is running on different IP (default is 10.200.200.1)
  4. Start the development server: npm run dev

Before committing

Run these checks in ./frontend before opening a PR:

cd frontend
npm install
npx tsc --noemit  # TypeScript type check
npm run lint  # ESLint static analysis

Custom menu

One can put a JSON-file with custom menu description in /usr/share/wb-mqtt-homeui/custom-menu. Items, defined in the file, will be added to left navigation panel.

The structure of the JSON-file

[
  {
    "id": "string",
    // Not used if id is already defined
    "url": "string",
    // Not used if id is already defined
    "title": {
      "en": "string",
      "ru": "string"
    },
    "children": [
      {
        "id": "string",
        "url": "string",
        "title": {
          "en": "string",
          "ru": "string"
        }
      }
    ]
  }
]