123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- name: zwavejs2mqtt
- base: core20
- version: 'v6.16.0-zwjs10-beta'
- summary: Fully configurable Zwave to MQTT Gateway and Control Panel.
- description: "** Fully configurable Zwave to MQTT Gateway and Control Panel**\n\n- Zwave to Mqtt Gateway: Configure how nodes and nodes values are \n mapped between the two protocols\n- Secured: Supports HTTPS and users authentication\n- Control Panel UI: Directly control all your nodes and their \n values from the UI, some of control panel features:\n - Nodes management: check all nodes discovered in the z-wave \n network and manage their values\n - Firmware updates: update devices firmware, just select the \n controller action _Begin Firmware Update_ and upload the \n firmware file\n - Groups associations: add/edit nodes associations\n - Full zwave-js APIs support\n- Custom scenes management: create scenes and trigger them by using\n MQTT apis (also supports timeouts)\n- Log debug in UI: See debug logs directly from the UI\n- Store directory management: all files are stored in store folder, \n you can download/edit files inside this folder directly from the UI\n- Network graph: see how nodes are communicating with the controller,\n useful for diagnostics purposes\n- Home Assistant integration: you can use official Zwavejs integration \n by enabling zwavejs server or use integrated MQTT discovery integration\n\n**Channels in `latest`**\n\nThis is how we use the different of channels in the `latest` track, \nto give the user a chance to choose how often they want updates.\n\n- `latest/stable`: Latest version of the last *major* release. Will\n only update once per major release and most likely by the end of\n that release cycle. E.g when there is a new version `b.a.a` then\n version `a.b.c` will be will be available.\n\n- `latest/candidate`: Latest minor or patch release of latest major\n release. E.g when version `a.b.c` changes to `a.b.d` or `a.c.a`, then\n version `a.b.d` or `a.c.a` will be available. Consider this rolling\n releases.\n\n- `latest/edge` and `latest/edge/dev`: Every build (including tests) \\n might be pushed to these channels.\n"
- grade: stable
- confinement: strict
- license: MIT
- assumes:
- - command-chain
- architectures:
- - build-on: amd64
- - build-on: arm64
- - build-on: armhf
- apps:
- zwavejs2mqtt:
- daemon: simple
- restart-condition: always
- environment:
- STORE_DIR: $SNAP_DATA
- ZWAVEJS_EXTERNAL_CONFIG: $SNAP_DATA/.ext-config
- DAEMONIZED: 1
- command: bin/yarn start
- command-chain:
- - helper/env-wrapper
- plugs:
- - network
- - network-bind
- - raw-usb
- - serial-port
- - hardware-observe
- exec:
- environment:
- STORE_DIR: $SNAP_DATA
- ZWAVEJS_EXTERNAL_CONFIG: $SNAP_DATA/.ext-config
- command: bin/yarn --cwd $SNAP/lib/node_modules/zwavejs2mqtt start
- command-chain:
- - helper/env-wrapper
- plugs:
- - network
- - network-bind
- - raw-usb
- - serial-port
- - hardware-observe
- help:
- command: helper/env-wrapper --help
- enable:
- command: bin/daemonize
- disable:
- command: bin/de-daemonize
- restart:
- command: bin/restart
- layout:
- /usr/local/share/.cache/yarn:
- bind: $SNAP/.cache/yarn
- /usr/local/share/.yarn:
- symlink: $SNAP/lib/node_modules
- parts:
- zwavejs2mqtt:
- after: [yarn]
- plugin: dump
- source: https://github.com/zwave-js/zwavejs2mqtt.git
- source-branch: "zjs-v10"
- #source-tag: $SNAPCRAFT_PROJECT_VERSION
- build-packages:
- - gcc
- - build-essential
- - jq
- override-build: |
- # Used when testing an unreleased version of Z-wavejs
- sed -i 's/"zwave-js".*$/"zwave-js"\: "10.0.4-0-pr-4836-362e8eb"/g' ${SNAPCRAFT_PART_BUILD}/package.json
- if [ -n "${http_proxy-}" ]; then
- yarn config set httpProxy "${http_proxy}"
- fi
- if [ -n "${https_proxy-}" ]; then
- yarn config set httpsProxy "${https_proxy}"
- fi
- yarn set version berry
- yarn install \
- && yarn run build \
- && yarn remove $(cat "${SNAPCRAFT_PART_BUILD}/package.json" | jq -r '.devDependencies | keys | join(" ")') \
- && mkdir -p "${SNAPCRAFT_PART_INSTALL}/lib/node_modules" \
- && cp --archive --link --no-dereference "${SNAPCRAFT_PART_BUILD}" \
- "${SNAPCRAFT_PART_INSTALL}/lib/node_modules/zwavejs2mqtt" \
- organize:
- lib/node_modules/zwavejs2mqtt/dist: lib/node_modules/zwavejs2mqtt/server/dist
- lib/node_modules/zwavejs2mqtt/views: lib/node_modules/zwavejs2mqtt/server/views
- filesets:
- zwavejs2mqtt-include:
- - lib/node_modules/zwavejs2mqtt/.git
- - lib/node_modules/zwavejs2mqtt/*.md
- - lib/node_modules/zwavejs2mqtt/LICENSE
- - lib/node_modules/zwavejs2mqtt/node_modules
- - lib/node_modules/zwavejs2mqtt/server
- - lib/node_modules/zwavejs2mqtt/package.json
- - lib/node_modules/zwavejs2mqtt/.yarn
- - lib/node_modules/zwavejs2mqtt/yarn.lock
- - lib/node_modules/zwavejs2mqtt/.yarnrc.yml
- stage:
- - $zwavejs2mqtt-include
- dependencies:
- plugin: nil
- stage-snaps:
- - jq
- - yq
- stage-packages:
- - git
- - udev
- - iproute2
- # stage-snaps:
- # - duplicity
- nodejs:
- plugin: dump
- source:
- - on amd64: https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.gz
- - on arm64: https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-arm64.tar.gz
- - on armhf: https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-armv7l.tar.gz
- stage-packages:
- - on armhf:
- - libatomic1
- organize:
- '*.md': nodejs/
- LICENSE: nodejs/
- prime:
- - -include
- - -share
- yarn:
- after: [nodejs]
- plugin: nil
- override-build: |
- npm install yarn
- snapcraftctl build
- cp -r $SNAPCRAFT_PART_BUILD/* $SNAPCRAFT_PART_INSTALL
- organize:
- node_modules/yarn: lib/node_modules/yarn
- stage:
- - lib/node_modules/yarn
- override-stage: |
- snapcraftctl stage
- PWD=$(pwd)
- cd $SNAPCRAFT_STAGE/bin
- ln -sf ../lib/node_modules/yarn/bin/yarn yarn
- cd "${PWD}"
- prime:
- - lib/node_modules/yarn
- - bin/yarn
- local:
- plugin: dump
- source: src/
- stage-packages:
- - uuid
- organize:
- hooks: snap/hooks
|