snapcraft.yaml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. name: zwavejs2mqtt
  2. base: core20
  3. version: 'v1.0.5'
  4. summary: Fully configurable Zwave to MQTT Gateway and Control Panel.
  5. description: |
  6. - Configurable Zwave to Mqtt Gateway
  7. - Home Assistant integration (beta)
  8. - Zwave Control Panel:
  9. - Nodes management: check all nodes discovered in the z-wave network, send/receive nodes values updates directly from the UI and send action to the nodes and controller for diagnostics and network heal Custom Node naming and Location: Starting from v1.3.0 nodes name and location are stored in a JSON file named nodes.json. This because not all nodes have native support for naming and location features (#45). This change is back compatible with older versions of this package: on startup it will get all nodes names and location from the zwcfg_homeHEX.xml file (if present) and create the new nodes.json file based on that. This file can be imported/exported from the UI control panel with the import/export buttons placed on the top of nodes table, on the right of controller actions select.
  10. - Firmware updates: You are able to send firmware updates to your devices using the UI, just select the controller action Begin Firmware Update
  11. - Groups associations: create associations between nodes (also supports multi-instance associations, need to use last version of zwave-js)
  12. - Custom scenes management
  13. - Log debug in UI
  14. - Mesh graph showing devices neighbors
  15. grade: stable # must be 'stable' to release into candidate/stable channels
  16. confinement: strict # use 'strict' once you have the right plugs and slots
  17. apps:
  18. zwavejs2mqtt:
  19. daemon: simple
  20. restart-condition: always
  21. environment:
  22. STORE_DIR: $SNAP_DATA
  23. DAEMONIZED: 1
  24. command: usr/lib/zwavejs2mqtt/bin/www
  25. command-chain:
  26. - bin/env-wrapper
  27. plugs:
  28. - network
  29. - network-bind
  30. - raw-usb
  31. - hardware-observe
  32. exec:
  33. environment:
  34. STORE_DIR: $SNAP_DATA
  35. command: usr/lib/zwavejs2mqtt/bin/www
  36. command-chain:
  37. - bin/env-wrapper
  38. plugs:
  39. - network
  40. - network-bind
  41. - raw-usb
  42. - hardware-observe
  43. help:
  44. command: bin/env-wrapper --help
  45. enable:
  46. command: bin/daemonize
  47. disable:
  48. command: bin/de-daemonize
  49. restart:
  50. command: bin/restart
  51. layout:
  52. /usr/src/app/store:
  53. bind: $SNAP_DATA/zwavejs2mqtt/store
  54. /usr/config/devices/index.json:
  55. bind-file: $SNAP_DATA/config/devices/index.json
  56. parts:
  57. zwavejs2mqtt:
  58. after: [nodejs]
  59. plugin: npm
  60. source: https://github.com/zwave-js/zwavejs2mqtt.git
  61. source-tag: $SNAPCRAFT_PROJECT_VERSION
  62. npm-node-version: '12.20.0'
  63. build-packages:
  64. - gcc
  65. - build-essential
  66. stage-snaps:
  67. - jq
  68. stage-packages:
  69. - git
  70. - udev
  71. override-build: |
  72. set -ex
  73. npm config set unsafe-perm true
  74. npm install detect-libc
  75. npm run build
  76. chmod +x $SNAPCRAFT_PART_BUILD/bin/www
  77. ln -s /usr/config/devices/index.json $SNAPCRAFT_PART_BUILD/node_modules/\@zwave-js/config/config/devices/index.json
  78. cp -rf $SNAPCRAFT_PART_BUILD $SNAPCRAFT_PART_INSTALL/usr/lib/zwavejs2mqtt
  79. stage:
  80. - -usr/lib/zwavejs2mqtt/kubernetes
  81. - -usr/lib/zwavejs2mqtt/kustomization.yaml
  82. - -usr/lib/zwavejs2mqtt/docker
  83. - -usr/lib/zwavejs2mqtt/.dockerignore
  84. - -usr/lib/zwavejs2mqtt/.markdown*
  85. nodejs:
  86. plugin: dump
  87. source:
  88. - on amd64: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-x64.tar.gz
  89. - on arm64: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-arm64.tar.gz
  90. - on armhf: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-armv7l.tar.gz
  91. organize:
  92. '*.md' : nodejs/
  93. LICENSE : nodejs/
  94. prime:
  95. - -include
  96. - -share
  97. local:
  98. plugin: dump
  99. source: src/
  100. organize:
  101. hooks: snap/hooks