From 977ea07169cb64d11c060aacc8480911df3f4dc0 Mon Sep 17 00:00:00 2001 From: Daniel Lando Date: Tue, 20 Sep 2022 16:04:47 +0200 Subject: [PATCH] feat!: change project name to `zwave-js-ui` (#2650) --- .env.app.example | 2 +- .github/ISSUE_TEMPLATE/bug_report.yml | 12 +- .github/ISSUE_TEMPLATE/hass_discovery.md | 4 +- .github/workflows/ci.yml | 2 +- .github/workflows/docker-release-test.yml | 6 +- .github/workflows/docker-release.yml | 32 +- .github/workflows/docker-test.yml | 6 +- README.md | 30 +- SECURITY.md | 2 +- app.ts | 9 +- bin/www.ts | 18 +- build/webpack.dev.conf.js | 2 +- config/app.ts | 2 +- config/webConfig.ts | 2 +- docker/Dockerfile | 8 +- docker/Dockerfile.contrib | 16 +- docker/docker-compose.yml | 6 +- docker/nginx/README.md | 2 +- docs/README.md | 28 +- docs/_images/MQTT-Logo.png | Bin 15351 -> 0 bytes docs/_images/app_logo.svg | 1 + docs/_images/{log_z2m.gif => log_zui.gif} | Bin docs/_images/zwavejs_logo.svg | 1 - docs/development/custom-docker.md | 28 +- docs/device-support/custom-device-files.md | 2 +- docs/device-support/polling.md | 2 +- docs/getting-started/docker.md | 18 +- docs/getting-started/other-methods.md | 34 +- docs/getting-started/quick-start.md | 18 +- docs/guide/env-vars.md | 8 +- docs/guide/migrating.md | 4 +- docs/guide/mqtt.md | 4 +- docs/guide/plugins.md | 8 +- docs/homeassistant/accessing-lovelace.md | 6 +- docs/homeassistant/homeassistant-mqtt.md | 22 +- docs/homeassistant/homeassistant-official.md | 2 +- docs/index.html | 12 +- docs/troubleshooting/app_crash.md | 4 +- docs/troubleshooting/bug_report.md | 2 +- docs/troubleshooting/generating-logs.md | 8 +- docs/troubleshooting/improper-arch.md | 6 +- docs/usage/config-updates.md | 2 +- docs/usage/reverse-proxy.md | 4 +- docs/usage/setup.md | 16 +- kubernetes/deployment.yaml | 4 +- lib/Gateway.ts | 90 +- lib/ZwaveClient.ts | 164 +- lib/logger.ts | 8 +- package.json | 8 +- src/App.vue | 23 +- src/assets/fullNodeList.json | 3642 +++++++++--------- src/assets/testNodes.json | 3642 +++++++++--------- src/components/Confirm.vue | 3 +- src/components/Debug.vue | 2 +- src/components/Login.vue | 2 +- src/components/Settings.vue | 16 +- src/components/Store.vue | 2 +- src/store/mutations.js | 2 +- static/favicons/site.webmanifest | 4 +- test/config/webConfig.test.ts | 4 +- test/lib/Gateway.test.ts | 10 +- test/lib/logger.test.ts | 4 +- test/lib/utils.test.ts | 2 +- yarn.lock | 72 +- 64 files changed, 4076 insertions(+), 4029 deletions(-) delete mode 100644 docs/_images/MQTT-Logo.png create mode 100644 docs/_images/app_logo.svg rename docs/_images/{log_z2m.gif => log_zui.gif} (100%) delete mode 100644 docs/_images/zwavejs_logo.svg diff --git a/.env.app.example b/.env.app.example index 4185582dde8..df16f2982d4 100644 --- a/.env.app.example +++ b/.env.app.example @@ -2,7 +2,7 @@ # HOST="0.0.0.0" # The port to listen to for incoming requests. Default is `8091` # PORT=8091 -# The absolute path to the directory where all files will be stored. Default is `/store` +# The absolute path to the directory where all files will be stored. Default is `/store` # STORE_DIR # Used as secret for session. If not provided the default one is used # SESSION_SECRET diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f527fe60e6e..ee2e6d6ae22 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -17,14 +17,14 @@ body: If yes, please open an issue at: https://github.com/zwave-js/node-zwave-js/issues/new?assignees=&labels=&template=bug_report.yml 3. Check the troubleshooting section if your problem is described there: - https://zwave-js.github.io/zwavejs2mqtt/#/troubleshooting/bug_report + https://zwave-js.github.io/zwave-js-ui/#/troubleshooting/bug_report 4. Check the changelog if your problem was already fixed recently. - https://github.com/zwave-js/zwavejs2mqtt/blob/master/CHANGELOG.md + https://github.com/zwave-js/zwave-js-ui/blob/master/CHANGELOG.md We cannot provide support if you are not using the latest version. 5. Make sure to provide the necessary information, as described here: - https://zwave-js.github.io/zwavejs2mqtt/#/troubleshooting/bug_report + https://zwave-js.github.io/zwave-js-ui/#/troubleshooting/bug_report If you are using HomeAssistant, this is how you do it: @@ -46,7 +46,7 @@ body: id: build attributes: label: Deploy method - description: How did you installed Zwavejs2mqtt + description: How did you install Z-Wave JS UI options: - Docker - PKG executable @@ -55,9 +55,9 @@ body: validations: required: true - type: input - id: zjs2m-version + id: zui-version attributes: - label: Zwavejs2Mqtt version + label: Z-Wave JS UI version validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/hass_discovery.md b/.github/ISSUE_TEMPLATE/hass_discovery.md index 569b44fafe9..e5d5697d653 100644 --- a/.github/ISSUE_TEMPLATE/hass_discovery.md +++ b/.github/ISSUE_TEMPLATE/hass_discovery.md @@ -7,7 +7,7 @@ assignees: billiaz --- -Before submitting a bug please read: +Before submitting a bug please read: If you are using the Home Assistant Z-Wave JS integration, please add a full dump: @@ -21,7 +21,7 @@ Build/Run method: [ ] Git Clone + yarn install + yarn run build + yarn start [ ] Pkg -Zwavejs2Mqtt version: **[Enter Version Number]** +Z-Wave JS UI version: **[Enter Version Number]** Z-Wave JS version: **[Enter Version Number]** ### Describe the bug diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68438dd1fa2..cab460428cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: node-version: [14.x, 16.x, 18.x] steps: - - name: Checkout Zwavejs2Mqtt + - name: Checkout Z-Wave JS UI uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} diff --git a/.github/workflows/docker-release-test.yml b/.github/workflows/docker-release-test.yml index 56fb13f4edf..2701aa3f764 100644 --- a/.github/workflows/docker-release-test.yml +++ b/.github/workflows/docker-release-test.yml @@ -42,16 +42,16 @@ jobs: id: docker_meta uses: docker/metadata-action@v3 with: - images: zwavejs/zwavejs2mqtt,ghcr.io/zwave-js/zwavejs2mqtt + images: zwavejs/zwavejs2mqtt,zwavejs/zwave-js-ui,ghcr.io/zwave-js/zwave-js-ui tags: | ${{ github.event.inputs.tag }} flavor: | latest=false labels: | org.opencontainers.image.vendor=zwave-js - org.opencontainers.image.documentation=https://zwave-js.github.io/zwavejs2mqtt/#/ + org.opencontainers.image.documentation=https://zwave-js.github.io/zwave-js-ui/#/ org.opencontainers.image.authors=Daniel Lando - org.opencontainers.image.url=https://zwave-js.github.io/zwavejs2mqtt/#/ + org.opencontainers.image.url=https://zwave-js.github.io/zwave-js-ui/#/ maintainer=robertsLando - name: build+push diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index e566dc8c601..03b7dcd7c36 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -38,14 +38,29 @@ jobs: id: docker_meta uses: docker/metadata-action@v3 with: - images: zwavejs/zwavejs2mqtt,ghcr.io/zwave-js/zwavejs2mqtt + images: zwavejs/zwave-js-ui,ghcr.io/zwave-js/zwave-js-ui tags: | type=semver,pattern={{version}} type=sha type=ref,event=branch labels: | org.opencontainers.image.vendor=zwave-js - org.opencontainers.image.documentation=https://zwave-js.github.io/zwavejs2mqtt + org.opencontainers.image.documentation=https://zwave-js.github.io/zwave-js-ui + org.opencontainers.image.authors=Daniel Lando + maintainer=robertsLando + + - name: Create Docker Meta for zwavejs2mqtt + id: docker_meta2 + uses: docker/metadata-action@v3 + with: + images: zwavejs/zwavejs2mqtt + tags: | + type=semver,pattern={{version}} + type=sha + type=ref,event=branch + labels: | + org.opencontainers.image.vendor=zwave-js + org.opencontainers.image.documentation=https://zwave-js.github.io/zwave-js-ui org.opencontainers.image.authors=Daniel Lando maintainer=robertsLando @@ -59,3 +74,16 @@ jobs: push: true tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} + + - name: build+push zwavejs2mqtt + uses: docker/build-push-action@v2 + with: + platforms: linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7 + file: docker/Dockerfile + cache-from: type=gha + build-args: | + image=zwavejs2mqtt + cache-to: type=gha,mode=max + push: true + tags: ${{ steps.docker_meta2.outputs.tags }} + labels: ${{ steps.docker_meta2.outputs.labels }} diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml index 076062ebda9..ffa18b0b19e 100644 --- a/.github/workflows/docker-test.yml +++ b/.github/workflows/docker-test.yml @@ -31,16 +31,16 @@ jobs: id: docker_meta uses: docker/metadata-action@v3 with: - images: zwavejs/zwavejs2mqtt,ghcr.io/zwave-js/zwavejs2mqtt + images: zwavejs/zwavejs2mqtt,zwavejs/zwave-js-ui,ghcr.io/zwave-js/zwave-js-ui tags: | test flavor: | latest=false labels: | org.opencontainers.image.vendor=zwave-js - org.opencontainers.image.documentation=https://zwave-js.github.io/zwavejs2mqtt/#/ + org.opencontainers.image.documentation=https://zwave-js.github.io/zwave-js-ui/#/ org.opencontainers.image.authors=Daniel Lando - org.opencontainers.image.url=https://zwave-js.github.io/zwavejs2mqtt/#/ + org.opencontainers.image.url=https://zwave-js.github.io/zwave-js-ui/#/ maintainer=robertsLando - name: Buildx build diff --git a/README.md b/README.md index fc289ad76fd..bb2a17138a7 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,30 @@ -# Zwavejs2Mqtt +# Z-Wave JS UI -![GitHub package.json version](https://img.shields.io/github/package-json/v/zwave-js/zwavejs2mqtt) +![GitHub package.json version](https://img.shields.io/github/package-json/v/zwave-js/zwave-js-ui) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![MadeWithVueJs.com shield](https://madewithvuejs.com/storage/repo-shields/1897-shield.svg)](https://madewithvuejs.com/p/zwave2mqtt/shield-link) [![MIT Licence](https://badges.frapsoft.com/os/mit/mit.png)](https://opensource.org/licenses/mit-license.php) -[![ci](https://github.com/zwave-js/zwavejs2mqtt/workflows/ci/badge.svg?branch=master)](https://github.com/zwave-js/zwavejs2mqtt/actions?query=workflow%3Aci+branch%3Amaster) -[![Docker Release](https://github.com/zwave-js/zwavejs2mqtt/actions/workflows/docker-release.yml/badge.svg)](https://github.com/zwave-js/zwavejs2mqtt/actions/workflows/docker-release.yml) -[![GitHub All Releases](https://img.shields.io/github/downloads/zwave-js/zwavejs2mqtt/total)](https://github.com/zwave-js/zwavejs2mqtt/releases) -[![Coverage Status](https://coveralls.io/repos/github/zwave-js/zwavejs2mqtt/badge.svg?branch=master)](https://coveralls.io/github/zwave-js/zwavejs2mqtt?branch=master) -[![Known Vulnerabilities](https://snyk.io/test/github/zwave-js/zwavejs2mqtt/badge.svg?targetFile=package.json)](https://snyk.io/test/github/zwave-js/zwavejs2mqtt?targetFile=package.json) -[![Total alerts](https://img.shields.io/lgtm/alerts/g/zwave-js/zwavejs2mqtt.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwavejs2mqtt/alerts/) -[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/zwave-js/zwavejs2mqtt.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwavejs2mqtt/context:javascript) +[![ci](https://github.com/zwave-js/zwave-js-ui/workflows/ci/badge.svg?branch=master)](https://github.com/zwave-js/zwave-js-ui/actions?query=workflow%3Aci+branch%3Amaster) +[![Docker Release](https://github.com/zwave-js/zwave-js-ui/actions/workflows/docker-release.yml/badge.svg)](https://github.com/zwave-js/zwave-js-ui/actions/workflows/docker-release.yml) +[![GitHub All Releases](https://img.shields.io/github/downloads/zwave-js/zwave-js-ui/total)](https://github.com/zwave-js/zwave-js-ui/releases) +[![Coverage Status](https://coveralls.io/repos/github/zwave-js/zwave-js-ui/badge.svg?branch=master)](https://coveralls.io/github/zwave-js/zwave-js-ui?branch=master) +[![Known Vulnerabilities](https://snyk.io/test/github/zwave-js/zwave-js-ui/badge.svg?targetFile=package.json)](https://snyk.io/test/github/zwave-js/zwave-js-ui?targetFile=package.json) +[![Total alerts](https://img.shields.io/lgtm/alerts/g/zwave-js/zwave-js-ui.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwave-js-ui/alerts/) +[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/zwave-js/zwave-js-ui.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwave-js-ui/context:javascript) [![Join channel](https://img.shields.io/badge/SLACK-zwave--js.slack.com-red.svg?style=popout&logo=slack&logoColor=red)](https://join.slack.com/t/zwave-js/shared_invite/zt-8ns655f6-d407vtI~KjU~1z11jyaQ9Q "Join channel") [![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/MVg9wc2HE "Buy Me A Coffee") [PayPal](https://paypal.me/daniellando) [![Patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/bePatron?u=16906849) -[![dockeri.co](https://dockeri.co/image/zwavejs/zwavejs2mqtt)](https://hub.docker.com/r/zwavejs/zwavejs2mqtt) +[![dockeri.co](https://dockeri.co/image/zwavejs/zwave-js-ui)](https://hub.docker.com/r/zwavejs/zwave-js-ui)
- zwavejs - TO - mqtt + Z-Wave JS UI
-Fully configurable Z-Wave to MQTT **Gateway** and **Control Panel**. +Full featured Z-Wave **Control Panel** and MQTT **Gateway**. -- **Backend**: [NodeJS](https://nodejs.org/en/), [Express](https://expressjs.com/), [socket.io](https://github.com/socketio/socket.io), [Mqttjs](https://github.com/mqttjs/MQTT.js), [zwavejs](https://github.com/zwave-js/node-zwave-js), [Webpack](https://webpack.js.org/) +- **Backend**: [NodeJS](https://nodejs.org/en/), [Express](https://expressjs.com/), [socket.io](https://github.com/socketio/socket.io), [MQTTjs](https://github.com/mqttjs/MQTT.js), [zwavejs](https://github.com/zwave-js/node-zwave-js), [Webpack](https://webpack.js.org/) - **Frontend**: [Vue](https://vuejs.org/), [socket.io](https://github.com/socketio/socket.io), [Vuetify](https://github.com/vuetifyjs/vuetify) ## Main features @@ -49,4 +47,4 @@ Fully configurable Z-Wave to MQTT **Gateway** and **Control Panel**. ## Documentation -[Project documentation](https://zwave-js.github.io/zwavejs2mqtt/#/) +[Project documentation](https://zwave-js.github.io/zwave-js-ui/#/) diff --git a/SECURITY.md b/SECURITY.md index 2ccdf3fbdbf..bfe1709ecb5 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,4 +2,4 @@ ## Reporting a Vulnerability -Please email daniel.sorridi+zwavejs2mqtt@gmail.com; chris+zwavejs2mqtt@cns.me.uk +Please email daniel.sorridi+zwave-js-ui@gmail.com; chris+zwave-js-ui@cns.me.uk diff --git a/app.ts b/app.ts index 2e79662ba70..87f440ecedf 100644 --- a/app.ts +++ b/app.ts @@ -557,7 +557,7 @@ app.use(cors({ credentials: true, origin: true })) // enable sessions management app.use( session({ - name: 'zwavejs2mqtt-session', + name: 'zwave-js-ui-session', secret: sessionSecret, resave: false, saveUninitialized: false, @@ -945,7 +945,7 @@ app.get('/health/:client', apisLimiter, function (req, res) { app.get('/version', apisLimiter, function (req, res) { res.json({ - z2m: utils.getVersion(), + appVersion: utils.getVersion(), zwavejs: libVersion, zwavejsServer: serverVersion, }) @@ -995,6 +995,7 @@ app.get( serial_ports: [], scales: scales, sslDisabled: sslDisabled(), + deprecationWarning: process.env.TAG_NAME === 'zwavejs2mqtt', } if (process.platform !== 'sunos') { @@ -1108,7 +1109,7 @@ app.post( async function (req, res) { let config = req.body.data try { - if (!gw.zwave) throw Error('Zwave client not inited') + if (!gw.zwave) throw Error('Z-Wave client not inited') // try convert to node object if (Array.isArray(config)) { @@ -1303,7 +1304,7 @@ app.post( }) // set the archive name - res.attachment('zwavejs2mqtt-store.zip') + res.attachment('zwave-js-ui-store.zip') res.setHeader('Content-Type', 'application/zip') // use res as stream so I don't need to create a temp file diff --git a/bin/www.ts b/bin/www.ts index 9f628516067..2b8a0789f42 100644 --- a/bin/www.ts +++ b/bin/www.ts @@ -1,4 +1,5 @@ #!/usr/bin/env node +/* eslint-disable no-useless-escape */ /** * Module dependencies. @@ -8,15 +9,14 @@ import store from '../config/store' import * as conf from '../config/app' import app, { startServer } from '../app' -console.log(` - ______ _ ___ _ _ -|___ / (_) |__ \\ | | | | - / /_ ____ ___ _____ _ ___ ) |_ __ ___ __ _| |_| |_ - / /\\ \\ /\\ / / _\` \\ \\ / / _ \\ / __| / /| '_ \` _ \\ / _\` | __| __| - / /__\\ V V / (_| |\\ V / __/ \\__ \\/ /_| | | | | | (_| | |_| |_ -/_____|\\_/\\_/ \\__,_| \\_/ \\___| |___/____|_| |_| |_|\\__, |\\__|\\__| - _/ | | | - |__/ |_| +console.log(` + ______ __ __ _ _____ _ _ _____ + |___ / \ \ / / | |/ ____| | | | |_ _| + / /____\ \ /\ / /_ ___ _____ | | (___ | | | | | | + / /______\ \/ \/ / _' \ \ / / _ \ _ | |\___ \ | | | | | | + / /__ \ /\ / (_| |\ V / __/ | |__| |____) | | |__| |_| |_ + /_____| \/ \/ \__,_| \_/ \___| \____/|_____/ \____/|_____| + `) // jsonstore is a singleton instance that handles the json configuration files diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js index 7f54b9025d2..d4dad9c97da 100644 --- a/build/webpack.dev.conf.js +++ b/build/webpack.dev.conf.js @@ -57,7 +57,7 @@ const devWebpackConfig = merge(baseWebpackConfig, { new webpack.HotModuleReplacementPlugin(), // https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ - title: 'ZWave To MQTT', + title: 'Z-Wave JS UI', filename: 'index.html', template: 'views/index.ejs', templateParameters: { diff --git a/config/app.ts b/config/app.ts index cb67ec44eea..ffa2c228e89 100644 --- a/config/app.ts +++ b/config/app.ts @@ -4,7 +4,7 @@ import { config } from 'dotenv' config({ path: './.env.app' }) // config/app.js -export const title: string = 'ZWave To MQTT' +export const title: string = 'Z-Wave JS UI' export const storeDir: string = process.env.STORE_DIR || joinPath(true, 'store') export const logsDir: string = joinPath(storeDir, 'logs') export const snippetsDir: string = joinPath(storeDir, 'snippets') diff --git a/config/webConfig.ts b/config/webConfig.ts index e1829e48e34..8081e9c7289 100644 --- a/config/webConfig.ts +++ b/config/webConfig.ts @@ -4,7 +4,7 @@ const base = appConfig.base && appConfig.base.replace(/\/?$/, '/') const defaultConfig = { base: '/', - title: 'ZWave To MQTT' + title: 'Z-Wave JS UI' } // don't use export default as it has an unexpected behaviour when used in js files require diff --git a/docker/Dockerfile b/docker/Dockerfile index b2ab0e18768..01a138e0e10 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,7 @@ +ARG image=zwave-js-ui + # STEP: 1 doesn't work with alpine 3.13+ -FROM node:16.3.0-alpine3.12 AS build-z2m +FROM node:16.3.0-alpine3.12 AS build-zui WORKDIR /usr/src/app @@ -60,10 +62,12 @@ RUN apk add --no-cache \ # Copy files from previous build stage -COPY --from=build-z2m /usr/src/app /usr/src/app +COPY --from=build-zui /usr/src/app /usr/src/app ENV ZWAVEJS_EXTERNAL_CONFIG=/usr/src/app/store/.config-db +ENV TAG_NAME=${image_name} + WORKDIR /usr/src/app EXPOSE 8091 diff --git a/docker/Dockerfile.contrib b/docker/Dockerfile.contrib index 74bc1f29d9f..e1b35f3c514 100644 --- a/docker/Dockerfile.contrib +++ b/docker/Dockerfile.contrib @@ -1,6 +1,6 @@ # NOTE: This Dockerfile only works with BuildKit enabled. # Please find instructions on how to run it at -# https://zwave-js.github.io/zwavejs2mqtt/#/development/custom-docker?id=building-a-container-using-dockerfilecontrib +# https://zwave-js.github.io/zwave-js-ui/#/development/custom-docker?id=building-a-container-using-dockerfilecontrib ARG SRC=git-clone-src ##################### @@ -11,18 +11,18 @@ ARG SRC=git-clone-src FROM node:16.3.0-buster AS git-clone-src ARG ZWJ_BRANCH=master ARG ZWJ_REPOSITORY=https://github.com/zwave-js/node-zwave-js -ARG Z2M_BRANCH=master -ARG Z2M_REPOSITORY=https://github.com/zwave-js/zwavejs2mqtt +ARG ZUI_BRANCH=master +ARG ZUI_REPOSITORY=https://github.com/zwave-js/zwave-js-ui USER node WORKDIR /home/node RUN git clone -b ${ZWJ_BRANCH} ${ZWJ_REPOSITORY} -RUN git clone -b ${Z2M_BRANCH} --depth 1 ${Z2M_REPOSITORY} +RUN git clone -b ${ZUI_BRANCH} --depth 1 ${ZUI_REPOSITORY} # Option 2: Copy from local sources FROM node:16.3.0-buster AS local-copy-src COPY --chown=node node-zwave-js /home/node/node-zwave-js -COPY --chown=node zwavejs2mqtt /home/node/zwavejs2mqtt +COPY --chown=node zwave-js-ui /home/node/zwave-js-ui ##################### # Build Environment # @@ -48,8 +48,8 @@ RUN yarn workspaces foreach version $(echo $(yarn node -p 'require("semver").inc RUN yarn workspaces foreach pack -### Build zwavejs2mqtt ### -WORKDIR /home/node/zwavejs2mqtt +### Build zwave-js-ui ### +WORKDIR /home/node/zwave-js-ui # Change resolutions to point to local packs RUN cat package.json \ @@ -88,7 +88,7 @@ LABEL maintainer="robertsLando" ENV ZWAVEJS_EXTERNAL_CONFIG=/usr/src/app/store/.config-db RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* -COPY --from=build /home/node/zwavejs2mqtt/my_dist /usr/src/app +COPY --from=build /home/node/zwave-js-ui/my_dist /usr/src/app WORKDIR /usr/src/app EXPOSE 8091 USER root diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d6287f6b225..ce47c42697e 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,8 +1,8 @@ version: '3.7' services: - zwavejs2mqtt: - container_name: zwavejs2mqtt - image: zwavejs/zwavejs2mqtt:latest + zwave-js-ui: + container_name: zwave-js-ui + image: zwavejs/zwave-js-ui:latest restart: always tty: true stop_signal: SIGINT diff --git a/docker/nginx/README.md b/docker/nginx/README.md index 58b555e598f..a9f3c760f43 100644 --- a/docker/nginx/README.md +++ b/docker/nginx/README.md @@ -1,6 +1,6 @@ # Nginx docker -Test docker-compose file to try running Zwavejs2Mqtt behind a proxy with a custom base path. +Test docker-compose file to try running zwave-js-ui behind a proxy with a custom base path. ## Usage diff --git a/docs/README.md b/docs/README.md index b3030efa9b3..f2a2e8e17ba 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,32 +1,30 @@ -# Zwavejs2Mqtt +# Z-Wave JS UI -![GitHub package.json version](https://img.shields.io/github/package-json/v/zwave-js/zwavejs2mqtt) +![GitHub package.json version](https://img.shields.io/github/package-json/v/zwave-js/zwave-js-ui) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![MadeWithVueJs.com shield](https://madewithvuejs.com/storage/repo-shields/1897-shield.svg)](https://madewithvuejs.com/p/zwave2mqtt/shield-link) [![MIT Licence](https://badges.frapsoft.com/os/mit/mit.png)](https://opensource.org/licenses/mit-license.php) -[![ci](https://github.com/zwave-js/zwavejs2mqtt/workflows/ci/badge.svg?branch=master)](https://github.com/zwave-js/zwavejs2mqtt/actions?query=workflow%3Aci+branch%3Amaster) -[![Docker Release](https://github.com/zwave-js/zwavejs2mqtt/actions/workflows/docker-release.yml/badge.svg)](https://github.com/zwave-js/zwavejs2mqtt/actions/workflows/docker-release.yml) -[![GitHub All Releases](https://img.shields.io/github/downloads/zwave-js/zwavejs2mqtt/total)](https://github.com/zwave-js/zwavejs2mqtt/releases) -[![Coverage Status](https://coveralls.io/repos/github/zwave-js/zwavejs2mqtt/badge.svg?branch=master)](https://coveralls.io/github/zwave-js/zwavejs2mqtt?branch=master) -[![Known Vulnerabilities](https://snyk.io/test/github/zwave-js/zwavejs2mqtt/badge.svg?targetFile=package.json)](https://snyk.io/test/github/zwave-js/zwavejs2mqtt?targetFile=package.json) -[![Total alerts](https://img.shields.io/lgtm/alerts/g/zwave-js/zwavejs2mqtt.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwavejs2mqtt/alerts/) -[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/zwave-js/zwavejs2mqtt.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwavejs2mqtt/context:javascript) +[![ci](https://github.com/zwave-js/zwave-js-ui/workflows/ci/badge.svg?branch=master)](https://github.com/zwave-js/zwave-js-ui/actions?query=workflow%3Aci+branch%3Amaster) +[![Docker Release](https://github.com/zwave-js/zwave-js-ui/actions/workflows/docker-release.yml/badge.svg)](https://github.com/zwave-js/zwave-js-ui/actions/workflows/docker-release.yml) +[![GitHub All Releases](https://img.shields.io/github/downloads/zwave-js/zwave-js-ui/total)](https://github.com/zwave-js/zwave-js-ui/releases) +[![Coverage Status](https://coveralls.io/repos/github/zwave-js/zwave-js-ui/badge.svg?branch=master)](https://coveralls.io/github/zwave-js/zwave-js-ui?branch=master) +[![Known Vulnerabilities](https://snyk.io/test/github/zwave-js/zwave-js-ui/badge.svg?targetFile=package.json)](https://snyk.io/test/github/zwave-js/zwave-js-ui?targetFile=package.json) +[![Total alerts](https://img.shields.io/lgtm/alerts/g/zwave-js/zwave-js-ui.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwave-js-ui/alerts/) +[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/zwave-js/zwave-js-ui.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/zwave-js/zwave-js-ui/context:javascript) [![Join channel](https://img.shields.io/badge/SLACK-zwave--js.slack.com-red.svg?style=popout&logo=slack&logoColor=red)](https://join.slack.com/t/zwave-js/shared_invite/zt-8ns655f6-d407vtI~KjU~1z11jyaQ9Q "Join channel") [![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/MVg9wc2HE "Buy Me A Coffee") [PayPal](https://paypal.me/daniellando) [![Patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/bePatron?u=16906849) -[![dockeri.co](https://dockeri.co/image/zwavejs/zwavejs2mqtt)](https://hub.docker.com/r/zwavejs/zwavejs2mqtt) +[![dockeri.co](https://dockeri.co/image/zwavejs/zwave-js-ui)](https://hub.docker.com/r/zwavejs/zwave-js-ui)
- zwavejs - TO - mqtt + Z-Wave JS UI
-Fully configurable Z-Wave to MQTT **Gateway** and **Control Panel**. +Full featured Z-Wave **Control Panel** and MQTT **Gateway**. -- **Backend**: [NodeJS](https://nodejs.org/en/), [Express](https://expressjs.com/), [socket.io](https://github.com/socketio/socket.io), [Mqttjs](https://github.com/mqttjs/MQTT.js), [zwavejs](https://github.com/zwave-js/node-zwave-js), [Webpack](https://webpack.js.org/) +- **Backend**: [NodeJS](https://nodejs.org/en/), [Express](https://expressjs.com/), [socket.io](https://github.com/socketio/socket.io), [MQTTjs](https://github.com/mqttjs/MQTT.js), [zwavejs](https://github.com/zwave-js/node-zwave-js), [Webpack](https://webpack.js.org/) - **Frontend**: [Vue](https://vuejs.org/), [socket.io](https://github.com/socketio/socket.io), [Vuetify](https://github.com/vuetifyjs/vuetify) ## Main features diff --git a/docs/_images/MQTT-Logo.png b/docs/_images/MQTT-Logo.png deleted file mode 100644 index 1e649faf345e8e14cf1a125fadbe34580ee8d0bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15351 zcmY*gWmFwake!FSC%C)2+ruG{1P$))5ZoW`65KTbLU4C?C%C)21&8H3yMOk~shR2i zHQm!)UH8_laK$e&s7M4z005xM$x12%00`#&T@nHA{ccVx|M&d?a#EHN2g=8Z4&NJa zM)ER}z}tUUZd*~pdk><6tfmtHpnUnyKz?pfl<%GJ&T^ln;Fl2y&@h3m_F5YNAOqwi z#Z=vwPJPT%b=1@LyvCdI>~<&l|I7|oQ;mqDedmE&#*69#v2|s4)olA`^%)zu8^D`| z8Yb)ZkFr3IbjR6*5MRV+IVRfj4-Yf{rmp*WmMl;-e7RO5de$`C@aIp9T?0jpPxij6 zn~U12L$}x3`AhpXu|XA6a$mK^#}Okx*Zn~OgF0OLVn7RsxyYR`xiV7wcai&lZfxKnL43}a0&rwz9U+0u$$%*Q~|c$b8>Onvnc3*11bUtH(&?nkamD4 z27sm@Cn(?M#0mcT9&EX-&1rJxi|4>yFhTUhWyOT-VLDHN`UMTef`e9@81tR{JZS(W zObiSDf(SBzK%Q`2eC`R{L1|FKMZg�{X$8_1V`y-M<{C`N3|OipzdS1Fj-nZ9mNG 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 H1_A#Au}A3` diff --git a/docs/_images/app_logo.svg b/docs/_images/app_logo.svg new file mode 100644 index 00000000000..41bfc28550f --- /dev/null +++ b/docs/_images/app_logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/_images/log_z2m.gif b/docs/_images/log_zui.gif similarity index 100% rename from docs/_images/log_z2m.gif rename to docs/_images/log_zui.gif diff --git a/docs/_images/zwavejs_logo.svg b/docs/_images/zwavejs_logo.svg deleted file mode 100644 index 72aa46d472b..00000000000 --- a/docs/_images/zwavejs_logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/development/custom-docker.md b/docs/development/custom-docker.md index c653bed4afe..d1987680778 100644 --- a/docs/development/custom-docker.md +++ b/docs/development/custom-docker.md @@ -1,33 +1,33 @@ # Building Custom Docker Images -There are two methods to build a custom docker container, using either the project's Dockerfile or Dockerfile.contrib. While the Dockerfile method offers a faster build process, the alternative Dockerfile.contrib method allows you to specify the specific branches for node-zwave-js and ZWavejs2Mqtt, and even the ability to specify alternative repositories (such as your own). +There are two methods to build a custom docker container, using either the project's Dockerfile or Dockerfile.contrib. While the Dockerfile method offers a faster build process, the alternative Dockerfile.contrib method allows you to specify the specific branches for node-zwave-js and zwave-js-ui, and even the ability to specify alternative repositories (such as your own). ## Building a container using Dockerfile -The docker images are the latest stable images of the [ZWavejs2Mqtt](https://github.com/zwave-js/zwavejs2mqtt) repo. If you want to keep your image updated with the latest changes you can build it on your local machine. For example: +The docker images are the latest stable images of the [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui) repo. If you want to keep your image updated with the latest changes you can build it on your local machine. For example: ```bash -git clone https://github.com/zwave-js/zwavejs2mqtt.git -cd zwavejs2mqtt +git clone https://github.com/zwave-js/zwave-js-ui.git +cd zwave-js-ui git checkout -b [the branch that you want] -docker build -f docker/Dockerfile -t zwavejs/zwavejs2mqtt:latest . +docker build -f docker/Dockerfile -t zwavejs/zwave-js-ui:latest . ``` Build just the `build` container ```bash -docker build -f docker/Dockerfile --target=build -t zwavejs/zwavejs2mqtt_build . +docker build -f docker/Dockerfile --target=build -t zwavejs/zwave-js-ui_build . ``` ## Building a container using Dockerfile.contrib -You can also build a custom docker image using any mix of branches or repositories (such as your own), simply run the following series of commands, indicating the name of the branches you wish to build for node-zwave-js (ZWJ_BRANCH) and ZWavejs2Mqtt (Z2M_BRANCH) and the resulting docker image name (e.g. zwavejs2mqtt): +You can also build a custom docker image using any mix of branches or repositories (such as your own), simply run the following series of commands, indicating the name of the branches you wish to build for node-zwave-js (ZWJ_BRANCH) and zwave-js-ui (ZUI_BRANCH) and the resulting docker image name (e.g. zwave-js-ui): ```bash -curl -s https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/docker/Dockerfile.contrib | \ +curl -s https://raw.githubusercontent.com/zwave-js/zwave-js-ui/master/docker/Dockerfile.contrib | \ DOCKER_BUILDKIT=1 docker build - --build-arg SRC=git-clone-src --no-cache \ ---build-arg ZWJ_BRANCH=master --build-arg Z2M_BRANCH=master -t zwavejs2mqtt +--build-arg ZWJ_BRANCH=master --build-arg ZUI_BRANCH=master -t zwave-js-ui ``` Alternatively, you can clone the branches locally, make any changes you like, and build a docker image from the local sources: @@ -35,25 +35,25 @@ Alternatively, you can clone the branches locally, make any changes you like, an ```bash mkdir -p testing && cd testing git clone https://github.com/zwave-js/node-zwave-js -git clone https://github.com/zwave-js/zwavejs2mqtt +git clone https://github.com/zwave-js/zwave-js-ui ## Checkout repos to any branch/commit you need to test cd ../node-zwave-js git checkout -cd zwavejs2mqtt +cd zwave-js-ui git checkout cd .. ``` -Then when you're ready to build run the following from the directory **above** the ZWavejs2Mqtt folder (the "testing" folder from above): +Then when you're ready to build run the following from the directory **above** the zwave-js-ui folder (the "testing" folder from above): ```bash -DOCKER_BUILDKIT=1 docker build --build-arg SRC=local-copy-src --no-cache -f zwavejs2mqtt/docker/Dockerfile.contrib -t zwavejs2mqtt . +DOCKER_BUILDKIT=1 docker build --build-arg SRC=local-copy-src --no-cache -f zwave-js-ui/docker/Dockerfile.contrib -t zwave-js-ui . ``` > [!NOTE] You may optionally specify alternative repositories (such as your own) by appending > >`--build-arg ZWJ_REPOSITORY=https://github.com/FakeUser/node-zwave-js` or > ->`--build-arg Z2M_REPOSITORY=https://github.com/FakeUser/zwavejs2mqtt` +>`--build-arg ZUI_REPOSITORY=https://github.com/FakeUser/zwave-js-ui` > [!NOTE] Only BuildKit enabled builders have the capability to efficiently skip the unused source stage so it never runs. diff --git a/docs/device-support/custom-device-files.md b/docs/device-support/custom-device-files.md index 86689e1c578..cfec75052a7 100644 --- a/docs/device-support/custom-device-files.md +++ b/docs/device-support/custom-device-files.md @@ -6,7 +6,7 @@ This directory does not get indexed and should be used sparingly, e.g. when cust For information about the content of device files, see the Z-Wave JS [device file docs](https://zwave-js.github.io/node-zwave-js/#/config-files/file-format). -> [!NOTE] ZWavejs2Mqtt needs to be restarted in order to pick up a user-provided device configs. This can be done from settings by hitting `SAVE` or by completely restarting the application. +> [!NOTE] Z-Wave JS UI needs to be restarted in order to pick up a user-provided device configs. This can be done from settings by hitting `SAVE` or by completely restarting the application. > [!NOTE] You must re-interview a device for many types of changes in the device file to have an effect. E.g. changed configuration parameters, certain compat flags, etc. diff --git a/docs/device-support/polling.md b/docs/device-support/polling.md index 8dbde84bfa2..9199c820611 100644 --- a/docs/device-support/polling.md +++ b/docs/device-support/polling.md @@ -2,7 +2,7 @@ Some legacy devices don't report all of their values automatically and require polling to automatically update their values. Some platforms poll such devices automatically whether you need them polled or not. Because such polling can have detrimental effects on your mesh network, Z-Wave JS does not poll devices by default. Polling can quickly lead to network congestion and should be used very sparingly and only where necessary. -ZWavejs2Mqtt allows you to configure scheduled polling on a per-value basis, which you can use to keep only the values that you need updated. It also allows you to poll individual values on-demand from your automations, which should be preferred over blindly polling all of the time, if possible. +Z-Wave JS UI allows you to configure scheduled polling on a per-value basis, which you can use to keep only the values that you need updated. It also allows you to poll individual values on-demand from your automations, which should be preferred over blindly polling all of the time, if possible. > [!NOTE] > Sometimes polling one value will result in multiple related values being returned together as a group. For example `targetValue`, `currentValue` and `duration` must be polled together for most of the switch-type CCs. Polling multiple values of the same group can result in unnecessary traffic on the Z-Wave mesh. To avoid this scenario, you should test polling each value while watching the log file to determine whether other values are also returned. diff --git a/docs/getting-started/docker.md b/docs/getting-started/docker.md index a5966bb9a63..0dd8a57777a 100644 --- a/docs/getting-started/docker.md +++ b/docs/getting-started/docker.md @@ -2,7 +2,7 @@ # Using Docker > [!TIP] -> Building your own docker image is [easy!](development/custom-docker.md). This allows you to change the arch and/or use any combination of node-zwave-js/ZWavejs2Mqtt branches. +> Building your own docker image is [easy!](development/custom-docker.md). This allows you to change the arch and/or use any combination of node-zwave-js/zwave-js-ui branches. ## Supported Archs @@ -13,14 +13,14 @@ Supported architectures are: - `armv7` (Ex. Raspberry PI) - `arm64` (Ex. OrangePI NanoPI) -> [!NOTE] If you get the error `standard_init_linux.go:207: exec user process caused "exec format error"`, you most likely installed the wrong package intended for a [different architecture](https://github.com/zwave-js/zwavejs2mqtt/tree/master/docs/troubleshooting/improper-arch.md). +> [!NOTE] If you get the error `standard_init_linux.go:207: exec user process caused "exec format error"`, you most likely installed the wrong package intended for a [different architecture](https://github.com/zwave-js/zwave-js-ui/tree/master/docs/troubleshooting/improper-arch.md). ## Available Tags Available tags are: - `latest` for the latest official release. -- `master` for the bleeding-edge version. This image is built after every new commit to the master branch in the [ZWavejs2Mqtt](https://github.com/zwave-js/zwavejs2mqtt/commits/master) repository. Use at your own caution. +- `master` for the bleeding-edge version. This image is built after every new commit to the master branch in the [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui/commits/master) repository. Use at your own caution. - `sha-` (example: `sha-92d502a`) - `` (example: `2.1.0`) @@ -42,7 +42,7 @@ There are three different way to start the container and provide data persistenc ```bash docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/serial/by-id/insert_stick_reference_here:/dev/zwave \ ---mount source=zwavejs2mqtt,target=/usr/src/app/store zwavejs/zwavejs2mqtt:latest +--mount source=zwave-js-ui,target=/usr/src/app/store zwavejs/zwave-js-ui:latest ``` > [!NOTE] @@ -55,7 +55,7 @@ In this example we will store our data in the current path (`$(pwd)`) named `sto ```bash mkdir store docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/serial/by-id/insert_stick_reference_here:/dev/zwave \ --v $(pwd)/store:/usr/src/app/store zwavejs/zwavejs2mqtt:latest +-v $(pwd)/store:/usr/src/app/store zwavejs/zwave-js-ui:latest ``` > [!NOTE] @@ -63,14 +63,14 @@ docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/serial/by-id/insert_ ### Run as a service -To run ZWavejs2Mqtt as a service you can use the `docker-compose.yml` found [here](https://github.com/zwave-js/zwavejs2mqtt/blob/master/docker/docker-compose.yml): +To run Z-Wave JS UI as a service you can use the `docker-compose.yml` found [here](https://github.com/zwave-js/zwave-js-ui/blob/master/docker/docker-compose.yml): ```yml version: "3.7" services: - zwavejs2mqtt: - container_name: zwavejs2mqtt - image: zwavejs/zwavejs2mqtt:latest + zwave-js-ui: + container_name: zwave-js-ui + image: zwavejs/zwave-js-ui:latest restart: always tty: true stop_signal: SIGINT diff --git a/docs/getting-started/other-methods.md b/docs/getting-started/other-methods.md index a00e0e73067..c1cc379250b 100644 --- a/docs/getting-started/other-methods.md +++ b/docs/getting-started/other-methods.md @@ -1,64 +1,64 @@ -# Other Methods to Run Zwavejs2Mqtt +# Other Methods to Run Z-Wave JS UI ## Kubernetes -To run ZWavejs2Mqtt as a Kubernetes deployment, download the `kustomization.yaml` file found [here](https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/kustomization.yaml): +To run Z-Wave JS UI as a Kubernetes deployment, download the `kustomization.yaml` file found [here](https://raw.githubusercontent.com/zwave-js/zwave-js-ui/master/kustomization.yaml): ```bash -kubectl apply -k https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/kustomization.yaml +kubectl apply -k https://raw.githubusercontent.com/zwave-js/zwave-js-ui/master/kustomization.yaml ``` > [!NOTE] > Replace the `/dev/serial/by-id/insert_stick_reference_here` reference in the `deployment.yaml` file with the serial device for your Z-Wave stick. > [!TIP] -> You will likely need to instead use this as a base, and then layer on top patches or resource customizations to suit your needs. Alternatively, copy all of the resources from the [kubernetes resources](https://github.com/zwave-js/zwavejs2mqtt/tree/master/kubernetes) directory of this repository. +> You will likely need to instead use this as a base, and then layer on top patches or resource customizations to suit your needs. Alternatively, copy all of the resources from the [kubernetes resources](https://github.com/zwave-js/zwave-js-ui/tree/master/kubernetes) directory of this repository. ## Snap package Make sure you have a [Snapd installed](https://snapcraft.io/docs/installing-snapd). It's shipped with most Ubuntu flavors and some other distributions. ```bash -sudo snap install zwavejs2mqtt +sudo snap install zwave-js-ui ``` And give the package access to use USB devices and observe hardware. The second one is needed for the program to list available devices in the UI. ```bash -sudo snap connect zwavejs2mqtt:raw-usb -sudo snap connect zwavejs2mqtt:hardware-observe +sudo snap connect zwave-js-ui:raw-usb +sudo snap connect zwave-js-ui:hardware-observe ``` > [!NOTE] -> See `zwavejs2mqtt.help` for usage and environment settings. +> See `zwave-js-ui.help` for usage and environment settings. > -> Raspberry Pi users running Raspbian/Debian, read [this thread](https://github.com/zwave-js/zwavejs2mqtt/discussions/1216#discussion-3364776). Please ask Raspbian/Debian related-questions in this thread. +> Raspberry Pi users running Raspbian/Debian, read [this thread](https://github.com/zwave-js/zwave-js-ui/discussions/1216#discussion-3364776). Please ask Raspbian/Debian related-questions in this thread. ## NodeJS or PKG version -The most complex way to run ZWavejs2Mqtt is on bare metal. To do so, you can use the packaged version (you don't need NodeJS/yarn installed) or clone this repository and build the project: +The most complex way to run Z-Wave JS UI is on bare metal. To do so, you can use the packaged version (you don't need NodeJS/yarn installed) or clone this repository and build the project: - For the packaged version: ```bash cd ~ - mkdir zwavejs2mqtt - cd zwavejs2mqtt + mkdir zwave-js-ui + cd zwave-js-ui # download latest version - curl -s https://api.github.com/repos/zwave-js/zwavejs2mqtt/releases/latest \ + curl -s https://api.github.com/repos/zwave-js/zwave-js-ui/releases/latest \ | grep "browser_download_url.*zip" \ | cut -d : -f 2,3 \ | tr -d \" \ | wget -i - - unzip zwavejs2mqtt-v*.zip - ./zwavejs2mqtt + unzip zwave-js-ui-v*.zip + ./zwave-js-ui ``` - If you want to compile last code from github: ```bash - git clone https://github.com/zwave-js/zwavejs2mqtt - cd zwavejs2mqtt + git clone https://github.com/zwave-js/zwave-js-ui + cd zwave-js-ui yarn install yarn run build yarn start diff --git a/docs/getting-started/quick-start.md b/docs/getting-started/quick-start.md index a32d517bcca..a6b38ca8ae0 100644 --- a/docs/getting-started/quick-start.md +++ b/docs/getting-started/quick-start.md @@ -1,29 +1,29 @@ # Quick Start -ZWavejs2Mqtt can be run in several different ways. The default method is with docker, but you can also use [Kubernetes, Snap, or NodeJS packages](getting-started/other-methods.md). Choose the one that best fits your needs. +Z-Wave JS UI can be run in several different ways. The default method is with docker, but you can also use [Kubernetes, Snap, or NodeJS packages](getting-started/other-methods.md). Choose the one that best fits your needs. -After running ZWavejs2Mqtt using one of the below methods, you can access it in your web browser at on the machine on which it was run, or at the IP address of your remote installation on port 8091. +After running Z-Wave JS UI using one of the below methods, you can access it in your web browser at on the machine on which it was run, or at the IP address of your remote installation on port 8091. -**You must edit the [settings](usage/setup.md) before ZWavejs2Mqtt will become functional.** A minimum set of settings are described [below](getting-started/quick-start?id=minimum-settings). +**You must edit the [settings](usage/setup.md) before Z-Wave JS UI will become functional.** A minimum set of settings are described [below](getting-started/quick-start?id=minimum-settings). If you are using Home Assistant, the UI can be added to Lovelace so that it can be accessed from within Home Assistant using the [following instructions](homeassistant/accessing-lovelace.md). ## Docker -The easiest way to run ZWavejs2Mqtt is by using docker: +The easiest way to run Z-Wave JS UI is by using docker: ```bash # Using volumes as persistence docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/serial/by-id/insert_stick_reference_here:/dev/zwave \ ---mount source=zwavejs2mqtt,target=/usr/src/app/store zwavejs/zwavejs2mqtt:latest +--mount source=zwave-js-ui,target=/usr/src/app/store zwavejs/zwave-js-ui:latest # Using a local folder as persistence mkdir store docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/serial/by-id/insert_stick_reference_here:/dev/zwave \ --v $(pwd)/store:/usr/src/app/store zwavejs/zwavejs2mqtt:latest +-v $(pwd)/store:/usr/src/app/store zwavejs/zwave-js-ui:latest # As a service -wget https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/docker/docker-compose.yml +wget https://raw.githubusercontent.com/zwave-js/zwave-js-ui/master/docker/docker-compose.yml docker-compose up ``` @@ -41,7 +41,7 @@ For more info about using docker check [here](getting-started/docker.md) A [complete](usage/setup.md) guide to the settings is available. At minimum, you should: -1. **Configure the serial port** [Settings -> Z-Wave -> Serial Port] (The template [Docker Compose file](https://github.com/zwave-js/zwavejs2mqtt/blob/master/docker/docker-compose.yml) maps the Z-Wave stick to /dev/zwave.) +1. **Configure the serial port** [Settings -> Z-Wave -> Serial Port] (The template [Docker Compose file](https://github.com/zwave-js/zwave-js-ui/blob/master/docker/docker-compose.yml) maps the Z-Wave stick to /dev/zwave.) 2. **Add Network Security Keys** [Settings -> Z-Wave -> Security Keys (S0 Legacy, S2 Unauthenticated, S2 Authenticated, and S2 Access Control)) @@ -53,7 +53,7 @@ A [complete](usage/setup.md) guide to the settings is available. At minimum, you > - **Backup these keys!** 3. **Enable Z-Wave JS Logging** [Settings -> Z-Wave -> Log Enabled, then elect a Log Level] -4. **Enable ZWavejs2Mqtt Logging** [If using MQTT) (Settings -> General -> Log Enabled, then elect a Log Level] +4. **Enable Z-Wave JS UI Logging** [If using MQTT) (Settings -> General -> Log Enabled, then elect a Log Level] 5. **Disable MQTT Gateway** if not using MQTT [On the Settings Page] 6. **Configure Home Assistant if using Home Assistant** [Settings -> Home Assistant -> WS Server] 7. **Enable Statistics (please!)** [Settings -> Z-Wave -> Enable Statistics] diff --git a/docs/guide/env-vars.md b/docs/guide/env-vars.md index c30d52111e3..60e4391f449 100644 --- a/docs/guide/env-vars.md +++ b/docs/guide/env-vars.md @@ -16,14 +16,14 @@ This is the list of the supported environment variables: - `USE_SECURE_COOKIE`: Set the cookie [secure](https://github.com/expressjs/session#cookiesecure) option. - `PORT`: The port to listen to for incoming requests. Default is `8091` - `HOST`: The host address to bind to. Default is `0.0.0.0` -- `STORE_DIR`: The absolute path to the directory where all files will be stored. Default is `/store` -- `BACKUPS_DIR`: The absolute path to the directory where all backups files will be stored. Default is `/store/backups` +- `STORE_DIR`: The absolute path to the directory where all files will be stored. Default is `/store` +- `BACKUPS_DIR`: The absolute path to the directory where all backups files will be stored. Default is `/store/backups` - `ZWAVEJS_EXTERNAL_CONFIG`: Mostly needed for docker users, it's the path to the folder used by Z-Wave JS to [store config database](https://zwave-js.github.io/node-zwave-js/#/usage/external-config?id=specifying-an-external-config-db-location), by default on docker it is `/usr/src/app/store/.config-db`. For users that are using a custom `STORE_DIR` this must be changed too. - `ZWAVEJS_LOGS_DIR`: The folder used to store Z-Wave JS logs if `Log to file` is selected in the Z-Wave settings. By default, this is the `store` folder. - `MQTT_NAME`: The name used as client name when connecting to the mqtt server. Overrides `mqtt.name` in `settings.json` - `DISABLE_LOG_ROTATION`: Set this env var to `'true'` to disable application log rotation management -- `Z2M_LOG_MAXFILES`: The maximum number of files to keep in the log directory, if you add `d` suffix this will set the number of days to keep logs. Default is `7d` -- `Z2M_LOG_MAXSIZE`: The maximum size of a single log file. Default is `50m` (50MB) +- `ZUI_LOG_MAXFILES`: The maximum number of files to keep in the log directory, if you add `d` suffix this will set the number of days to keep logs. Default is `7d` +- `ZUI_LOG_MAXSIZE`: The maximum size of a single log file. Default is `50m` (50MB) - `NO_LOG_COLORS`: Set this env var to `'true'` to disable application log colors also in the console. - `FORCE_DISABLE_SSL`: Set this env var to `'true'` to disable SSL. - `BASE_PATH`: Set this env var to the base path where the application is served. Default is `/` diff --git a/docs/guide/migrating.md b/docs/guide/migrating.md index 8d94b178939..17bd6f6776c 100644 --- a/docs/guide/migrating.md +++ b/docs/guide/migrating.md @@ -2,10 +2,10 @@ When migrating from Zwave2Mqtt there will be some breaking changes: -- `settings.json` are almost the same. You can easily export them from Z2M and import them in ZWavejs2Mqtt by using the `Export` and `Import` buttons in Settings tab. After importing them you only will have to edit some Z-Wave settings and all Gateway Values entries as now the value ids have changed +- `settings.json` are almost the same. You can easily export them from Z2M and import them in Z-Wave JS UI by using the `Export` and `Import` buttons in Settings tab. After importing them you only will have to edit some Z-Wave settings and all Gateway Values entries as now the value ids have changed - `scenes.json` need to be rewritten for the same reason as valueIds have changed. We suggest to manually recreate them using the UI and trash the old one - You cannot use the old OZW cache file but don't worry it will be automatically generated and the nodes names/locations will be restored from `nodes.json` file - `nodes.json` can be imported but you will have to manually edit it and delete all nodes `hassDevices` as them will not work in the new implementation (alternatively instead of deleting you can manually convert them, see next steps) -- Values ids unique strings have changed, in Z2M valueIds were identified by `///` now they are `////` where `property` and `propertyKey` (can be undefined) can be both numbers or strings based on the value. So essentially if you are using Home Assistant or MQTT functions all topics will change, [here](https://github.com/zwave-js/zwavejs2mqtt/pull/20/files#diff-4a25087ac983e835241cfb02c43c408df47b81f77546ef07c4dcfe9acf019eeeR4) you can see how we have translated some valueids of `devices.js` from the old format to the new one. +- Values ids unique strings have changed, in Z2M valueIds were identified by `///` now they are `////` where `property` and `propertyKey` (can be undefined) can be both numbers or strings based on the value. So essentially if you are using Home Assistant or MQTT functions all topics will change, [here](https://github.com/zwave-js/zwave-js-ui/pull/20/files#diff-4a25087ac983e835241cfb02c43c408df47b81f77546ef07c4dcfe9acf019eeeR4) you can see how we have translated some valueids of `devices.js` from the old format to the new one. - List values are no longer handled as `strings` but as `numbers` by default. For example to change a Thermostat Mode in Z2M you used to send `Heat` or `Off` now you will need to send `1` (Heat) or `0` (Off). This will make it lot easier to handle list values - All bitmask values are now split in separated values and are booleans. The same for RGB colors, now all colors will be handled separately, there will be a valueId to control Red (0-255), another for Green (0-255) and so on... There is an open issue on Z-Wave JS to also create a valueId with the hex color string. Also now some values are split in `targetValue` and `currentValue`, the first one is used to send commands the second one to see the actual state. This could seems tricky at first sight but there are some reasons behind this. diff --git a/docs/guide/mqtt.md b/docs/guide/mqtt.md index 948ba27af04..ae5d8f60056 100644 --- a/docs/guide/mqtt.md +++ b/docs/guide/mqtt.md @@ -214,7 +214,7 @@ Payload: Here is an example of sending a set command to a valueId using [MQTT Explorer](http://mqtt-explorer.com/) -![Mqtt Explorer](../_images/mqtt-explorer.mp4 ':include :type=video controls width=100% height=400px') +![MQTT Explorer](../_images/mqtt-explorer.mp4 ':include :type=video controls width=100% height=400px') ## Broadcast @@ -285,7 +285,7 @@ Payload: The payload will be in the time-value json format and the value will contain the app string version. -### Mqtt status +### MQTT status `/_CLIENTS/ZWAVE_GATEWAY-/status` diff --git a/docs/guide/plugins.md b/docs/guide/plugins.md index 588a2895620..0f28b0965b5 100644 --- a/docs/guide/plugins.md +++ b/docs/guide/plugins.md @@ -1,13 +1,13 @@ # Plugins -Plugins are NodeJS packages that can be integrated into ZWavejs2Mqtt in order to add new awesome features. They have access to all the clients (zwave and mqtt) and express instance. +Plugins are NodeJS packages that can be integrated into Z-Wave JS UI in order to add new awesome features. They have access to all the clients (zwave and mqtt) and express instance. ## Usage -A plugin is imported in ZWavejs2Mqtt using `require(pluginName)(context)` where the context provides access to these elements: +A plugin is imported in Z-Wave JS UI using `require(pluginName)(context)` where the context provides access to these elements: - `zwave`: Z-Wave client -- `mqtt`: Mqtt client +- `mqtt`: MQTT client - `app`: Express instance - `logger`: A logger instance to log things in console/file based on logger general settings @@ -43,7 +43,7 @@ MyPlugin.prototype.destroy = async function () { module.export = MyPlugin ``` -Types and interfaces are available [here](https://github.com/zwave-js/zwavejs2mqtt/blob/master/lib/CustomPlugin.ts) +Types and interfaces are available [here](https://github.com/zwave-js/zwave-js-ui/blob/master/lib/CustomPlugin.ts) ## Available plugins diff --git a/docs/homeassistant/accessing-lovelace.md b/docs/homeassistant/accessing-lovelace.md index 9b86c1aca6a..6e9c1af8490 100644 --- a/docs/homeassistant/accessing-lovelace.md +++ b/docs/homeassistant/accessing-lovelace.md @@ -1,6 +1,6 @@ # Accessing from Within Home Assistant -The ZWavejs2Mqtt Control Panel UI can be accessed from within Home Assistant by using the official [addon](https://github.com/hassio-addons/addon-zwavejs2mqtt) if running Home Assistant OS or Home Assistant Supervised, or by adding a panel to a Lovelace dashboard using the Raw Configuration Editor and substituting your IP address into the below. +The Z-Wave JS UI Control Panel UI can be accessed from within Home Assistant by using the official [addon](https://github.com/hassio-addons/addon-zwave-js-ui) if running Home Assistant OS or Home Assistant Supervised, or by adding a panel to a Lovelace dashboard using the Raw Configuration Editor and substituting your IP address into the below. First, add a new Lovelace dashboard. In the dashboard: @@ -10,7 +10,7 @@ First, add a new Lovelace dashboard. In the dashboard: 4. Paste the code below and save ```yaml -- title: zwavejs2mqtt +- title: Z-Wave JS UI panel: true cards: - type: iframe @@ -21,4 +21,4 @@ First, add a new Lovelace dashboard. In the dashboard: Alternatively, you can add a new tab to a pre-existing dashboard by inserting the above yaml into the pre-existing dashboard's raw configuration. > [!NOTE] -> If you access Home Assistant via https, you must also configure ZWavejs2Mqtt to use https by setting the `HTTPS` [environment variable](guide/env-vars.md). +> If you access Home Assistant via https, you must also configure Z-Wave JS UI to use https by setting the `HTTPS` [environment variable](guide/env-vars.md). diff --git a/docs/homeassistant/homeassistant-mqtt.md b/docs/homeassistant/homeassistant-mqtt.md index bec725ef3f5..15894db6dbf 100644 --- a/docs/homeassistant/homeassistant-mqtt.md +++ b/docs/homeassistant/homeassistant-mqtt.md @@ -2,18 +2,18 @@ The preferred method of integrating your Z-Wave components with Home Assistant is through the official Home Assistant [Z-Wave JS integration](https://www.home-assistant.io/integrations/zwave_js), this because MQTT Discovery is limited compared to a native integration and Home Assistant updates frequently break it. Based on this I would **NOT RECOMMEND** using MQTT Discovery, I don't plan to keep it maintained in the future. -If you elect to use MQTT discovery, the following settings will allow ZWavejs2Mqtt to automatically add devices to Home Assistant. In addition to ZWavejs2Mqtt, you must run an MQTT broker to act as the server. +If you elect to use MQTT discovery, the following settings will allow Z-Wave JS UI to automatically add devices to Home Assistant. In addition to Z-Wave JS UI, you must run an MQTT broker to act as the server. To enable this method, you must set the flag **MQTT Discovery** in the Home Assistant tab. > [!WARNING] > At least Home Assistant >= 0.84 is required! > -> When using MQTT discovery, Home Assistant updates often break ZWavejs2Mqtt device discovery. ZWavejs2Mqtt will always try to be compatible with the latest Home Assistant version. Check the changelog before updating! +> When using MQTT discovery, Home Assistant updates often break Z-Wave JS UI device discovery. Z-Wave JS UI will always try to be compatible with the latest Home Assistant version. Check the changelog before updating! Configuration steps: -- In your **ZWavejs2Mqtt** settings, [Home Assistant](/usage/setup?id=home-assistant) section, enable the `MQTT discovery` flag and enable the **retain** flag in the [MQTT](/usage/setup?id=mqtt) section. That flag is suggested to ensure that, once discovered, each device has the last published value available on startup (otherwise you have to wait for a value change). +- In your **Z-Wave JS UI** settings, [Home Assistant](/usage/setup?id=home-assistant) section, enable the `MQTT discovery` flag and enable the **retain** flag in the [MQTT](/usage/setup?id=mqtt) section. That flag is suggested to ensure that, once discovered, each device has the last published value available on startup (otherwise you have to wait for a value change). > [!NOTE] > Beginning with version `4.0.0`, the default birth/will topic is `homeassistant/status` in order to reflect the default birth/will of Home Assistant, which changed in version `0.113`. @@ -35,14 +35,14 @@ mqtt: If you want to use the embedded broker in Home Assistant you must [follow this guide](https://www.home-assistant.io/docs/mqtt/broker#embedded-broker). -ZWavejs2Mqtt is expecting Home Assistant to send its birth/will messages to `homeassistant/status`. Be sure to add this to your `configuration.yaml` if you want -ZWavejs2Mqtt to resend the cached values when Home Assistant restarts. +Z-Wave JS UI is expecting Home Assistant to send its birth/will messages to `homeassistant/status`. Be sure to add this to your `configuration.yaml` if you want +Z-Wave JS UI to resend the cached values when Home Assistant restarts. -ZWavejs2Mqtt will try to guess how to map devices from Z-Wave to Home Assistant. At the moment, it tries to generate entities based on zwave values command classes, index, and units of the value. If the discovered device doesn't fit your needs, you can set a custom `device_class` using the Gateway value table. +Z-Wave JS UI will try to guess how to map devices from Z-Wave to Home Assistant. At the moment, it tries to generate entities based on zwave values command classes, index, and units of the value. If the discovered device doesn't fit your needs, you can set a custom `device_class` using the Gateway value table. ## Components management -To see the components that have been discovered by ZWavejs2Mqtt, go to Control Panel UI, select a node from the nodes table, then select the Node tab from tabs menu at the bottom of nodes table. At the bottom of the page, after the node values section, there will be a section called `Home Assistant - Devices`. There you will find a table with all of the devices created for the selected node. +To see the components that have been discovered by Z-Wave JS UI, go to Control Panel UI, select a node from the nodes table, then select the Node tab from tabs menu at the bottom of nodes table. At the bottom of the page, after the node values section, there will be a section called `Home Assistant - Devices`. There you will find a table with all of the devices created for the selected node. ![Home Assistant Devices](../_images/Home Assistant_devices.png) @@ -67,7 +67,7 @@ If no device is selected, you can manually insert a device JSON configuration. I ## Custom Components -At the moment, MQTT discovery creates components like `sensor`, `cover` `binary_sensor` and `switch`. For more complex components like `climate` and `fan`, you will need to create your own configuration. Components configurations are stored in the `hass/devices.js` file. There, all components are stored that ZWavejs2Mqtt needs to create for each Z-Wave device type. The key is the Z-Wave **device id**(`--`). The value is an array with all Home Assistant components to be created for that Z-Wave device. +At the moment, MQTT discovery creates components like `sensor`, `cover` `binary_sensor` and `switch`. For more complex components like `climate` and `fan`, you will need to create your own configuration. Components configurations are stored in the `hass/devices.js` file. There, all components are stored that Z-Wave JS UI needs to create for each Z-Wave device type. The key is the Z-Wave **device id**(`--`). The value is an array with all Home Assistant components to be created for that Z-Wave device. To get the **Device id** of a specific node, go to Control Panel, select a node in the table, and select the Node tab. It will then be displayed under the Node Actions dropdown menu. @@ -122,7 +122,7 @@ You can specify (custom device configurations([usage/custom-device-files.md]) if - **current_temperature_template/temperature_state_template**: Template used to fetch the value from the MQTT payload - **temperature_command_topic/mode_command_topic**: If true this values are subscribed to this topics to send commands from Home Assistant to change this values -Thermostats are the most complex components to create. In this device example, the setpoint topic changes based on the mode selected. ZWavejs2Mqtt handles the mode changes by updating the device discovery payload to match the correct setpoint based on the mode selected. +Thermostats are the most complex components to create. In this device example, the setpoint topic changes based on the mode selected. Z-Wave JS UI handles the mode changes by updating the device discovery payload to match the correct setpoint based on the mode selected. ### Fans @@ -333,10 +333,10 @@ switch: ### Removing or resetting Home Assistant entities -If needed, it is possible to remove and reset entities added to Home Assistant via MQTT discovery. These entries are pushed via MQTT with the `Retained` flag set, so even if an entity disappears from **ZWavejs2Mqtt**, it will remain in Home Assistant. +If needed, it is possible to remove and reset entities added to Home Assistant via MQTT discovery. These entries are pushed via MQTT with the `Retained` flag set, so even if an entity disappears from **Z-Wave JS UI**, it will remain in Home Assistant. To remove an entity in Home Assistant, you must remove the retained message in the Home Assistant discovery topics, by default `homeassistant/..`. This can be done with [MQTT Explorer](http://mqtt-explorer.com/) or CLI tools like [`mosquitto_pub`](https://mosquitto.org/man/mosquitto_pub-1.html). -Note that in order for a removed entity to appear again, it must be published by **ZWavejs2Mqtt** again. This happens automatically for new devices, if enabled. Alternatively, this can be done manually by selecting the node in **ZWavejs2Mqtt**, and then for each Home Assistant device clicking `Rediscover Node`. +Note that in order for a removed entity to appear again, it must be published by **Z-Wave JS UI** again. This happens automatically for new devices, if enabled. Alternatively, this can be done manually by selecting the node in **Z-Wave JS UI**, and then for each Home Assistant device clicking `Rediscover Node`. diff --git a/docs/homeassistant/homeassistant-official.md b/docs/homeassistant/homeassistant-official.md index 573b091b4d1..e2618d51eda 100644 --- a/docs/homeassistant/homeassistant-official.md +++ b/docs/homeassistant/homeassistant-official.md @@ -6,7 +6,7 @@ To integrate your Z-Wave components you can use either the official Home Assista The Z-Wave JS server is the official way to integrate your Z-Wave devices with Home Assistant. In order to use it go to Settings, [Home Assistant](/usage/setup?id=home-assistant) and enable the flag **WS Server**. Using this method, the official [Z-Wave JS integration](https://www.home-assistant.io/integrations/zwave_js) will automatically create entities in Home Assistant. -If you do not need the MQTT features, you can [Disable MQTT Gateway](/usage/setup?id=disable-gateway) and use ZWavejs2Mqtt as an additional user interface to control your Z-Wave network. +If you do not need the MQTT features, you can [Disable MQTT Gateway](/usage/setup?id=disable-gateway) and use Z-Wave JS UI as an additional user interface to control your Z-Wave network. ## Assistance with the Official Integration diff --git a/docs/index.html b/docs/index.html index d73af0b8ed6..7757461c335 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,9 +2,9 @@ - ZwaveJS2Mqtt + Z-Wave JS UI - +