iobroker.zigbee 1.8.1 → 1.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +2 -0
- package/.eslintrc.json +37 -0
- package/.github/FUNDING.yml +3 -0
- package/.github/auto-merge.yml +17 -0
- package/.github/dependabot.yml +24 -0
- package/.github/stale.yml +13 -0
- package/.github/workflows/codeql.yml +41 -0
- package/.github/workflows/dependabot-automerge.yml +22 -0
- package/.github/workflows/test-and-release.yml +149 -0
- package/.releaseconfig.json +3 -0
- package/.travis/wiki.sh +28 -0
- package/.travis.yml +41 -0
- package/README.md +31 -8
- package/admin/admin.js +466 -482
- package/admin/i18n/de/translations.json +2 -2
- package/admin/index_m.html +1 -1
- package/admin/tab_m.html +3 -44
- package/admin/words.js +2 -2
- package/gulpfile.js +464 -0
- package/io-package.json +18 -25
- package/lib/backup.js +2 -2
- package/lib/binding.js +37 -32
- package/lib/colors.js +158 -163
- package/lib/commands.js +90 -99
- package/lib/developer.js +12 -9
- package/lib/devices.js +179 -169
- package/lib/exclude.js +36 -30
- package/lib/exposes.js +139 -163
- package/lib/groups.js +83 -81
- package/lib/json.js +6 -5
- package/lib/networkmap.js +3 -2
- package/lib/ota.js +18 -34
- package/lib/rgb.js +72 -114
- package/lib/seriallist.js +20 -25
- package/lib/states.js +526 -511
- package/lib/statescontroller.js +183 -206
- package/lib/utils.js +23 -24
- package/lib/zbBaseExtension.js +4 -4
- package/lib/zbDelayedAction.js +13 -5
- package/lib/zbDeviceAvailability.js +65 -69
- package/lib/zbDeviceConfigure.js +21 -9
- package/lib/zbDeviceEvent.js +4 -3
- package/lib/zigbeecontroller.js +103 -109
- package/main.js +147 -163
- package/package.json +15 -29
- package/test/integration.js +5 -0
- package/test/mocha.custom.opts +2 -0
- package/test/mocha.setup.js +14 -0
- package/test/package.js +5 -0
- package/test/unit.js +5 -0
- package/docs/de/img/CC2531.png +0 -0
- package/docs/de/img/CC2538_CC2592_PA.PNG +0 -0
- package/docs/de/img/CC2591.png +0 -0
- package/docs/de/img/boards.jpg +0 -0
- package/docs/de/img/cc26x2r.PNG +0 -0
- package/docs/de/img/results.jpg +0 -0
- package/docs/de/img/sku_429478_2.png +0 -0
- package/docs/de/img/sku_429601_2.png +0 -0
- package/docs/de/readme.md +0 -27
- package/docs/en/img/CC2531.png +0 -0
- package/docs/en/img/CC2591.png +0 -0
- package/docs/en/img/deconz.png +0 -0
- package/docs/en/img/sku_429478_2.png +0 -0
- package/docs/en/img/sku_429601_2.png +0 -0
- package/docs/en/readme.md +0 -30
- package/docs/flashing_via_arduino_(en).md +0 -110
- package/docs/ru/img/CC2531.png +0 -0
- package/docs/ru/img/CC2591.png +0 -0
- package/docs/ru/img/sku_429478_2.png +0 -0
- package/docs/ru/img/sku_429601_2.png +0 -0
- package/docs/ru/readme.md +0 -28
- package/docs/tutorial/CC2530_20190425.zip +0 -0
- package/docs/tutorial/CC2530_CC2591_20190515.zip +0 -0
- package/docs/tutorial/CC2530_CC2592_20190515.zip +0 -0
- package/docs/tutorial/CC2531_20190425.zip +0 -0
- package/docs/tutorial/adm5_1.PNG +0 -0
- package/docs/tutorial/adm5_2.PNG +0 -0
- package/docs/tutorial/cat.PNG +0 -0
- package/docs/tutorial/groups-1.png +0 -0
- package/docs/tutorial/groups-2.png +0 -0
- package/docs/tutorial/inst.PNG +0 -0
- package/docs/tutorial/reflash-finish.PNG +0 -0
- package/docs/tutorial/reflash-step0.png +0 -0
- package/docs/tutorial/reflash-step1.PNG +0 -0
- package/docs/tutorial/reflash-step2.PNG +0 -0
- package/docs/tutorial/settings.png +0 -0
- package/docs/tutorial/tab-dev-1.png +0 -0
- package/docs/tutorial/zigbee.png +0 -0
- package/docs/tutorial/zigbee15.png +0 -0
package/.eslintignore
ADDED
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"env": {
|
|
3
|
+
"es6": true,
|
|
4
|
+
"node": true,
|
|
5
|
+
"mocha": true
|
|
6
|
+
},
|
|
7
|
+
"extends": "eslint:recommended",
|
|
8
|
+
"rules": {
|
|
9
|
+
"indent": [
|
|
10
|
+
"error",
|
|
11
|
+
4,
|
|
12
|
+
{
|
|
13
|
+
"SwitchCase": 1
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"linebreak-style": 0,
|
|
17
|
+
"no-console": "off",
|
|
18
|
+
"no-var": "error",
|
|
19
|
+
"prefer-const": "error",
|
|
20
|
+
"quotes": [
|
|
21
|
+
"error",
|
|
22
|
+
"single",
|
|
23
|
+
{
|
|
24
|
+
"avoidEscape": true,
|
|
25
|
+
"allowTemplateLiterals": true
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"semi": [
|
|
29
|
+
"error",
|
|
30
|
+
"always"
|
|
31
|
+
],
|
|
32
|
+
"no-prototype-builtins": "off"
|
|
33
|
+
},
|
|
34
|
+
"parserOptions": {
|
|
35
|
+
"ecmaVersion": 2019
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Configure here which dependency updates should be merged automatically.
|
|
2
|
+
# The recommended configuration is the following:
|
|
3
|
+
- match:
|
|
4
|
+
# Only merge patches for production dependencies
|
|
5
|
+
dependency_type: production
|
|
6
|
+
update_type: "semver:patch"
|
|
7
|
+
- match:
|
|
8
|
+
# Except for security fixes, here we allow minor patches
|
|
9
|
+
dependency_type: production
|
|
10
|
+
update_type: "security:minor"
|
|
11
|
+
- match:
|
|
12
|
+
# and development dependencies can have a minor update, too
|
|
13
|
+
dependency_type: development
|
|
14
|
+
update_type: "semver:minor"
|
|
15
|
+
|
|
16
|
+
# The syntax is based on the legacy dependabot v1 automerged_updates syntax, see:
|
|
17
|
+
# https://dependabot.com/docs/config-file/#automerged_updates
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: github-actions
|
|
4
|
+
directory: "/"
|
|
5
|
+
schedule:
|
|
6
|
+
interval: monthly
|
|
7
|
+
time: "04:00"
|
|
8
|
+
timezone: Europe/Berlin
|
|
9
|
+
- package-ecosystem: npm
|
|
10
|
+
directory: "/"
|
|
11
|
+
schedule:
|
|
12
|
+
interval: monthly
|
|
13
|
+
time: "04:00"
|
|
14
|
+
timezone: Europe/Berlin
|
|
15
|
+
open-pull-requests-limit: 5
|
|
16
|
+
versioning-strategy: increase
|
|
17
|
+
- package-ecosystem: npm
|
|
18
|
+
directory: "/src"
|
|
19
|
+
schedule:
|
|
20
|
+
interval: monthly
|
|
21
|
+
time: "04:00"
|
|
22
|
+
timezone: Europe/Berlin
|
|
23
|
+
open-pull-requests-limit: 5
|
|
24
|
+
versioning-strategy: increase
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Number of days of inactivity before an issue becomes stale
|
|
2
|
+
daysUntilStale: 60
|
|
3
|
+
# Number of days of inactivity before a stale issue is closed
|
|
4
|
+
daysUntilClose: 7
|
|
5
|
+
# Label to use when marking an issue as stale
|
|
6
|
+
staleLabel: stale
|
|
7
|
+
# Comment to post when marking an issue as stale. Set to `false` to disable
|
|
8
|
+
markComment: >
|
|
9
|
+
This issue has been automatically marked as stale because it has not had
|
|
10
|
+
recent activity. It will be closed if no further activity occurs. Thank you
|
|
11
|
+
for your contributions.
|
|
12
|
+
# Comment to post when closing a stale issue. Set to `false` to disable
|
|
13
|
+
closeComment: false
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: "CodeQL"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "master" ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ "master" ]
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: "54 15 * * 0"
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
analyze:
|
|
13
|
+
name: Analyze
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
actions: read
|
|
17
|
+
contents: read
|
|
18
|
+
security-events: write
|
|
19
|
+
|
|
20
|
+
strategy:
|
|
21
|
+
fail-fast: false
|
|
22
|
+
matrix:
|
|
23
|
+
language: [ javascript ]
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout
|
|
27
|
+
uses: actions/checkout@v3
|
|
28
|
+
|
|
29
|
+
- name: Initialize CodeQL
|
|
30
|
+
uses: github/codeql-action/init@v2
|
|
31
|
+
with:
|
|
32
|
+
languages: ${{ matrix.language }}
|
|
33
|
+
queries: +security-and-quality
|
|
34
|
+
|
|
35
|
+
- name: Autobuild
|
|
36
|
+
uses: github/codeql-action/autobuild@v2
|
|
37
|
+
|
|
38
|
+
- name: Perform CodeQL Analysis
|
|
39
|
+
uses: github/codeql-action/analyze@v2
|
|
40
|
+
with:
|
|
41
|
+
category: "/language:${{ matrix.language }}"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Automatically merge Dependabot PRs when version comparison is within the range
|
|
2
|
+
# that is configured in .github/auto-merge.yml
|
|
3
|
+
|
|
4
|
+
name: Auto-Merge Dependabot PRs
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
pull_request_target:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
auto-merge:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout code
|
|
14
|
+
uses: actions/checkout@v3
|
|
15
|
+
|
|
16
|
+
- name: Check if PR should be auto-merged
|
|
17
|
+
uses: ahmadnassri/action-dependabot-auto-merge@v2
|
|
18
|
+
with:
|
|
19
|
+
# This must be a personal access token with push access
|
|
20
|
+
github-token: ${{ secrets.AUTO_MERGE_TOKEN }}
|
|
21
|
+
# By default, squash and merge, so Github chooses nice commit messages
|
|
22
|
+
command: squash and merge
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
name: Test and Release
|
|
2
|
+
|
|
3
|
+
# Run this job on all pushes and pull requests
|
|
4
|
+
# as well as tags with a semantic version
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- "*"
|
|
9
|
+
tags:
|
|
10
|
+
# normal versions
|
|
11
|
+
- "v[0-9]+.[0-9]+.[0-9]+"
|
|
12
|
+
# pre-releases
|
|
13
|
+
- "v[0-9]+.[0-9]+.[0-9]+-**"
|
|
14
|
+
pull_request: {}
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
# Performs quick checks before the expensive test runs
|
|
18
|
+
check-and-lint:
|
|
19
|
+
if: contains(github.event.head_commit.message, '[skip ci]') == false
|
|
20
|
+
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
|
|
23
|
+
strategy:
|
|
24
|
+
matrix:
|
|
25
|
+
node-version: [14.x]
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout code
|
|
29
|
+
uses: actions/checkout@v2
|
|
30
|
+
|
|
31
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
32
|
+
uses: actions/setup-node@v3
|
|
33
|
+
with:
|
|
34
|
+
node-version: ${{ matrix.node-version }}
|
|
35
|
+
|
|
36
|
+
- name: Install Dependencies
|
|
37
|
+
run: npm i
|
|
38
|
+
|
|
39
|
+
- name: Test package files
|
|
40
|
+
run: npm run test:package
|
|
41
|
+
|
|
42
|
+
# Runs adapter tests on all supported node versions and OSes
|
|
43
|
+
adapter-tests:
|
|
44
|
+
if: contains(github.event.head_commit.message, '[skip ci]') == false
|
|
45
|
+
|
|
46
|
+
needs: [check-and-lint]
|
|
47
|
+
|
|
48
|
+
runs-on: ${{ matrix.os }}
|
|
49
|
+
strategy:
|
|
50
|
+
matrix:
|
|
51
|
+
node-version: [14.x, 16.x, 18.x]
|
|
52
|
+
os: [ubuntu-latest, macos-latest]
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- name: Checkout code
|
|
56
|
+
uses: actions/checkout@v2
|
|
57
|
+
|
|
58
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
59
|
+
uses: actions/setup-node@v3
|
|
60
|
+
with:
|
|
61
|
+
node-version: ${{ matrix.node-version }}
|
|
62
|
+
|
|
63
|
+
- name: Install Dependencies
|
|
64
|
+
run: npm i
|
|
65
|
+
|
|
66
|
+
- name: Run unit tests
|
|
67
|
+
run: npm run test:unit
|
|
68
|
+
|
|
69
|
+
- name: Run integration tests (unix only)
|
|
70
|
+
if: startsWith(runner.OS, 'windows') == false
|
|
71
|
+
run: DEBUG=testing:* npm run test:integration
|
|
72
|
+
|
|
73
|
+
- name: Run integration tests (windows only)
|
|
74
|
+
if: startsWith(runner.OS, 'windows')
|
|
75
|
+
run: set DEBUG=testing:* & npm run test:integration
|
|
76
|
+
|
|
77
|
+
# Deploys the final package to NPM
|
|
78
|
+
deploy:
|
|
79
|
+
needs: [adapter-tests]
|
|
80
|
+
|
|
81
|
+
# Trigger this step only when a commit on any branch is tagged with a version number
|
|
82
|
+
if: |
|
|
83
|
+
contains(github.event.head_commit.message, '[skip ci]') == false &&
|
|
84
|
+
github.event_name == 'push' &&
|
|
85
|
+
startsWith(github.ref, 'refs/tags/v')
|
|
86
|
+
|
|
87
|
+
runs-on: ubuntu-latest
|
|
88
|
+
strategy:
|
|
89
|
+
matrix:
|
|
90
|
+
node-version: [14.x]
|
|
91
|
+
|
|
92
|
+
steps:
|
|
93
|
+
- name: Checkout code
|
|
94
|
+
uses: actions/checkout@v2
|
|
95
|
+
|
|
96
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
97
|
+
uses: actions/setup-node@v3
|
|
98
|
+
with:
|
|
99
|
+
node-version: ${{ matrix.node-version }}
|
|
100
|
+
|
|
101
|
+
- name: Extract the version and commit body from the tag
|
|
102
|
+
id: extract_release
|
|
103
|
+
# The body may be multiline, therefore newlines and % need to be escaped
|
|
104
|
+
run: |
|
|
105
|
+
VERSION="${{ github.ref }}"
|
|
106
|
+
VERSION=${VERSION##*/v}
|
|
107
|
+
echo "::set-output name=VERSION::$VERSION"
|
|
108
|
+
BODY=$(git show -s --format=%b)
|
|
109
|
+
BODY="${BODY//'%'/'%25'}"
|
|
110
|
+
BODY="${BODY//$'\n'/'%0A'}"
|
|
111
|
+
BODY="${BODY//$'\r'/'%0D'}"
|
|
112
|
+
echo "::set-output name=BODY::$BODY"
|
|
113
|
+
|
|
114
|
+
# If you like, activate automated version publish to NPM
|
|
115
|
+
# Only if commit contains a version, see : https://github.com/AlCalzone/release-script
|
|
116
|
+
|
|
117
|
+
- name: Publish package to npm
|
|
118
|
+
run: |
|
|
119
|
+
npm config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}
|
|
120
|
+
npm whoami
|
|
121
|
+
npm publish
|
|
122
|
+
|
|
123
|
+
# - name: Create Github Release
|
|
124
|
+
# uses: actions/create-release@v1
|
|
125
|
+
# env:
|
|
126
|
+
# GITHUB_TOKEN: ${{ secrets.Github_Token}}
|
|
127
|
+
# with:
|
|
128
|
+
# tag_name: ${{ github.ref }}
|
|
129
|
+
# release_name: Release v${{ steps.extract_release.outputs.VERSION }}
|
|
130
|
+
# draft: false
|
|
131
|
+
# # Prerelease versions create prereleases on Github
|
|
132
|
+
# prerelease: ${{ contains(steps.extract_release.outputs.VERSION, '-') }}
|
|
133
|
+
# body: ${{ steps.extract_release.outputs.BODY }}
|
|
134
|
+
#
|
|
135
|
+
# - name: Notify Sentry.io about the release
|
|
136
|
+
# run: |
|
|
137
|
+
# npm i -g @sentry/cli
|
|
138
|
+
# export SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
139
|
+
# export SENTRY_URL=https://sentry.iobroker.net
|
|
140
|
+
# export SENTRY_ORG=iobroker
|
|
141
|
+
# export SENTRY_PROJECT=iobroker-zigbee
|
|
142
|
+
# export SENTRY_VERSION=iobroker.zigbee@${{ steps.extract_release.outputs.VERSION }}
|
|
143
|
+
# sentry-cli releases new $SENTRY_VERSION
|
|
144
|
+
# sentry-cli releases finalize $SENTRY_VERSION
|
|
145
|
+
# # Add the following line BEFORE finalize if repositories are connected in Sentry
|
|
146
|
+
# # sentry-cli releases set-commits $SENTRY_VERSION --auto
|
|
147
|
+
#
|
|
148
|
+
# # Add the following line BEFORE finalize if sourcemap uploads are needed
|
|
149
|
+
# # sentry-cli releases files $SENTRY_VERSION upload-sourcemaps build/
|
package/.travis/wiki.sh
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/bin/sh -e
|
|
2
|
+
|
|
3
|
+
setup_git() {
|
|
4
|
+
git config --global user.email "travis@travis-ci.org"
|
|
5
|
+
git config --global user.name "Travis CI"
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
update_wiki() {
|
|
9
|
+
rm -rf ioBroker.zigbee.wiki
|
|
10
|
+
git clone https://${GH_TOKEN}@github.com/ioBroker/ioBroker.zigbee.wiki.git
|
|
11
|
+
npm run docgen ioBroker.zigbee.wiki
|
|
12
|
+
cd ioBroker.zigbee.wiki
|
|
13
|
+
git add -A
|
|
14
|
+
git diff-index --quiet HEAD || git commit -m "Travis CI: update wiki"
|
|
15
|
+
git push origin
|
|
16
|
+
cd ..
|
|
17
|
+
rm -rf ioBroker.zigbee.wiki
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
# Only update wiki if on master branch and not pull request
|
|
21
|
+
if [ "$TRAVIS_BRANCH" = "master" -a "$TRAVIS_PULL_REQUEST" = "false" ]
|
|
22
|
+
then
|
|
23
|
+
echo "Updating wiki!"
|
|
24
|
+
setup_git
|
|
25
|
+
update_wiki
|
|
26
|
+
else
|
|
27
|
+
echo "Not updating wiki, triggered by pull request or not on master branch"
|
|
28
|
+
fi
|
package/.travis.yml
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
os:
|
|
2
|
+
- linux
|
|
3
|
+
- osx
|
|
4
|
+
- windows
|
|
5
|
+
sudo: required
|
|
6
|
+
language: node_js
|
|
7
|
+
node_js:
|
|
8
|
+
- '12'
|
|
9
|
+
- '14'
|
|
10
|
+
- '16'
|
|
11
|
+
before_install:
|
|
12
|
+
- 'if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo ln -s `which node` `which node`js; fi'
|
|
13
|
+
- 'if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then which nodejs || which node; fi'
|
|
14
|
+
- 'if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CC=clang++; export CXX=clang++; export CXXFLAGS=-std=c++11; fi'
|
|
15
|
+
- 'if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew unlink pkg-config; fi'
|
|
16
|
+
- 'if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CXX=g++-6; CC=gcc-6; fi'
|
|
17
|
+
- npm install -g node-gyp
|
|
18
|
+
install:
|
|
19
|
+
- npm install --unsafe-perm
|
|
20
|
+
before_script:
|
|
21
|
+
- export NPMVERSION=$(echo "$($(which npm) -v)"|cut -c1)
|
|
22
|
+
- 'if [[ $NPMVERSION == 5 ]]; then npm install -g npm@5; fi'
|
|
23
|
+
- npm -v
|
|
24
|
+
after_success:
|
|
25
|
+
- .travis/wiki.sh
|
|
26
|
+
addons:
|
|
27
|
+
apt:
|
|
28
|
+
sources:
|
|
29
|
+
- ubuntu-toolchain-r-test
|
|
30
|
+
packages:
|
|
31
|
+
- gcc-6
|
|
32
|
+
- g++-6
|
|
33
|
+
env:
|
|
34
|
+
global:
|
|
35
|
+
- secure: >-
|
|
36
|
+
jYhOGVA5M7ZP9n4ccCr5J9DiODgRyVnKqAqyIE7+TA0jBg1jSPyWydoNuG02htIiNRMp4se+t8mFWIG3QqiFtoJbOdBt3yZYhVdfkx+4JyQpZAZq790C3jGdTSM/sVdaw2D+5Uvhqb4y7YOQ7SUYsRb5IH0NN2ZnOIZuGiOq8eVZ+np3gYNgsJwRWxrOrUi8lIA7APMe8esmOuTmKuFNfxhVWu98WegztBxnQmfCfwUl0OxgXxpdoElIQcbEV2zkJPOowZSioQvE5dxgIuf+leBeWdDm6g7bDmV84CkXmHlWkJoyyz1DYM7XFib4vSX9nJ2HZ2U7/wtbBd9/92JPoClvmiagb4wtICVO98LMXdayF3kRO/h7uH9HTHY1Mo98HHhxWMyfXVh6cWkDPYutSkFBG+a/tQB1jvbHq8j6O98VNpkLVqlbBIV8i0+uzoWOyaCVjZgcc7PtzfuWeNYB4c5cTu+HuofKwx3aBGJvnIukIeD/BJjnB76d4hfm++K6bDjKU61Gd7rY0/C1Ik8HsKxDdGvM5Ro6XARugoLTgym9Xk/ByU0AYrD05F+JzC2T+Hv1xACCq50HtsDAflpc9T4kLV3towQ69bE+N5kMfX5/X4rnVCkeerb+5X3EZjjslcUbwT4REahmihXR+8Mzz6f3O7ATUUA0BclD773ZFFY=
|
|
37
|
+
script:
|
|
38
|
+
- 'npm run test:package'
|
|
39
|
+
- 'npm run test:unit'
|
|
40
|
+
- 'npm run test:integration'
|
|
41
|
+
- 'if [ "$TRAVIS_OS_NAME" != "windows" ]; then if [ "$TRAVIS_COMMIT_RANGE" != "" ]; then COMMIT_RANGE=$TRAVIS_COMMIT_RANGE; else COMMIT_RANGE="HEAD^..HEAD"; fi; echo "Lint check of commit range $COMMIT_RANGE"; lint-diff $COMMIT_RANGE; fi;'
|
package/README.md
CHANGED
|
@@ -10,12 +10,17 @@
|
|
|
10
10
|
[](https://www.npmjs.com/package/iobroker.zigbee)
|
|
11
11
|
|
|
12
12
|
## ioBroker adapter for Zigbee devices via TI cc2531/cc2530/cc26x2r/cc2538 and deCONZ ConBee/RaspBee.
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
With the Zigbee-coordinator based on Texas Instruments SoC, deCONZ ConBee/RaspBee modules, Silicon Labs EZSP v8 or ZIGate USB-TTL it creates its own zigbee-network, into which zigbee-devices are connected. By work directly with the coordinator, the driver allows you to manage devices without additional application / gateways / bridge from device manufacturers (Xiaomi / TRADFRI / Hue / Tuya). About the device Zigbee-network can be read [here (in English)](https://www.zigbee2mqtt.io/information/zigbee_network.html).
|
|
14
15
|
|
|
15
16
|
## Hardware
|
|
17
|
+
|
|
18
|
+
|
|
16
19
|
One coordinator device is required for each zigbee Adapter instance. The device must be flashed with the respective coordinator firmware. A list of supported coordinators, the necessary equipment for the firmware and the device preparation process for different coordinator devices are described [here (in English)](https://www.zigbee2mqtt.io/guide/adapters/) or [here (in Russian)](https://myzigbee.ru/books/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B8/page/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-cc2531cc2530)
|
|
17
20
|
|
|
21
|
+
|
|
18
22
|
### Texas Instruments SoC
|
|
23
|
+
|
|
19
24
|
Recommended devices are based on either the CC2652 or CC1352 chip. Devices based on cc253x chips are still supported but are no longer recommended.
|
|
20
25
|
Only CC26xx/cc1352/cc2538 Devices support extraction of the NVRam backup which should allow to swap coordinator hardware without having to reconnect all zigbee devices to the network.
|
|
21
26
|
Current firmware files for these devices can be found [on GitHub](https://github.com/Koenkk/Z-Stack-firmware)
|
|
@@ -27,7 +32,9 @@ Current firmware files for these devices can be found [on GitHub](https://github
|
|
|
27
32
|
<span><img src="docs/de/img/CC2538_CC2592_PA.PNG" width="100"></span>
|
|
28
33
|
<span><img src="docs/de/img/cc26x2r.PNG" width="100"></span>
|
|
29
34
|
|
|
35
|
+
|
|
30
36
|
### Dresden Elektronik SoC
|
|
37
|
+
|
|
31
38
|
<span><img src="docs/en/img/deconz.png"></span>
|
|
32
39
|
|
|
33
40
|
recommended:
|
|
@@ -38,18 +45,23 @@ no longer recommended:
|
|
|
38
45
|
- ConBee I
|
|
39
46
|
- RaspBee
|
|
40
47
|
|
|
41
|
-
While
|
|
48
|
+
While Conbee/RaspBee Support is no longer considered experimental in the zigbee-herdsman and zigbee-herdsman-converters libraries used by the zigbee Adapter, use of these devices with the adapter may limit functionality. Known issues are:
|
|
42
49
|
- link quality display may be incorrect
|
|
43
50
|
- device map metrics may be incorrect
|
|
44
51
|
- NVRam Backup is not supported.
|
|
45
52
|
|
|
46
53
|
### Silicon Labs SoC
|
|
47
|
-
|
|
54
|
+
|
|
55
|
+
Support for [Silicon Lab Zigbee](https://www.silabs.com/wireless/zigbee) based adapters is experimental. The initial support for EZSP v8 is still not yet considered stable and the project is in need of more developers volenteering to help with this integration. Please refer to the respective documentation on [this page](https://www.zigbee2mqtt.io/guide/adapters/) and [ongoing development discussion](https://github.com/Koenkk/zigbee-herdsman/issues/319) with regards to the state of Silabs EmberZNet Serial Protocol (EZSP) adapter implementation integration into the zigbee-herdsman and zigbee-herdsman-converters libraries which it depends on.
|
|
56
|
+
|
|
48
57
|
|
|
49
58
|
### ZiGate SoC
|
|
50
|
-
|
|
59
|
+
|
|
60
|
+
Support for [ZiGate](https://zigate.fr) based adapters is experimental. The initial support for ZiGate is still not yet considered stable and the project is in need of more developers volenteering to help with this integration. Please refer to the respective documentation on [this page](https://www.zigbee2mqtt.io/guide/adapters/) and [ongoing development discussion](https://github.com/Koenkk/zigbee-herdsman/issues/242) with regards to the state of ZiGate adapter implementation into the zigbee-herdsman and zigbee-herdsman-converters libraries which it depends on.
|
|
61
|
+
|
|
51
62
|
|
|
52
63
|
## Work with adapter
|
|
64
|
+
|
|
53
65
|

|
|
54
66
|
|
|
55
67
|
To start the driver, you must specify the name of the port on which the Zigbee-module (stick) is connected. Usually this is the port `/dev/ttyACM0` or `/dev/ttyUSB0` for the UART-connection. Or you can find with `ls -l /dev/serial/by-id` the device direct.
|
|
@@ -57,6 +69,7 @@ To start the driver, you must specify the name of the port on which the Zigbee-m
|
|
|
57
69
|
open the settings and change port
|
|
58
70
|

|
|
59
71
|
|
|
72
|
+
|
|
60
73
|
For Windows this will be the COM port number.
|
|
61
74
|
|
|
62
75
|
Starting from version 1.0.0 you can also use *tcp connection* for cases using esp8266 (or other microcontrollers) as serial-bridge. For example `tcp://192.168.1.46:8880`. Read more info here https://www.zigbee2mqtt.io/information/connecting_cc2530#via-an-esp8266
|
|
@@ -79,14 +92,18 @@ It is a Zigbee feature, intended for example to switch bulbs synchronized. Assig
|
|
|
79
92
|
|
|
80
93
|
Note: Not all devices support groups (not supported by end devices like sensors).
|
|
81
94
|
|
|
95
|
+
|
|
82
96
|
### Binding
|
|
97
|
+
|
|
83
98
|
https://www.zigbee2mqtt.io/information/binding
|
|
84
99
|
|
|
85
100
|
### Developer Tab
|
|
86
|
-
|
|
101
|
+
|
|
102
|
+
This is a tool for advanced users to test currently unsupported devices or enhance this adapters functionality. More instructions can be found on tab.
|
|
87
103
|

|
|
88
104
|
|
|
89
105
|
## Additional info
|
|
106
|
+
|
|
90
107
|
There is a [friendly project](https://github.com/koenkk/zigbee2mqtt) with similar functionality on the same technologies, where you can work with the same devices using the MQTT protocol. Therefore, if any improvements or support for new zigbee-devices occur in the Zigbee2MQTT project, we can transfer and add the same functionality to this adapter. If you notice this, then write the issue - we'll postpone it.
|
|
91
108
|
|
|
92
109
|
There are knowledge bases that can be useful for working with Zigbee-devices and equipment:
|
|
@@ -94,9 +111,11 @@ There are knowledge bases that can be useful for working with Zigbee-devices and
|
|
|
94
111
|
* in Russian https://myzigbee.ru/
|
|
95
112
|
|
|
96
113
|
## Supported devices
|
|
114
|
+
|
|
97
115
|
Works with devices from this list https://github.com/ioBroker/ioBroker.zigbee/wiki/Supported-devices
|
|
98
116
|
|
|
99
117
|
## Donate
|
|
118
|
+
|
|
100
119
|
You can thank the authors by these links:
|
|
101
120
|
* to Kirov Ilya https://www.paypal.me/goofyk
|
|
102
121
|
* to Arthur Rupp https://paypal.me/ArthurRupp
|
|
@@ -112,7 +131,11 @@ You can thank the authors by these links:
|
|
|
112
131
|
### **WORK IN PROGRESS**
|
|
113
132
|
-->
|
|
114
133
|
|
|
134
|
+
|
|
115
135
|
## Changelog
|
|
136
|
+
### 1.8.3 (2022-11-30)
|
|
137
|
+
* (arteck) back to old source
|
|
138
|
+
|
|
116
139
|
### 1.8.1 (2022-11-28)
|
|
117
140
|
* (bluefox) Packages updated
|
|
118
141
|
* (bluefox) Added names of serial ports in configuration dialog
|
|
@@ -163,8 +186,8 @@ You can thank the authors by these links:
|
|
|
163
186
|
- when a pingable device is marked active (from being inactive) it will be pinged again.
|
|
164
187
|
- inactive devices are excluded from OTA updates.
|
|
165
188
|
* (asgothian) Group rework part 2:
|
|
166
|
-
- state
|
|
167
|
-
- state
|
|
189
|
+
- state device.groups will now be deleted with state Cleanup
|
|
190
|
+
- state info.groups is now obsolete and will be deleted at adapter start (after transferring data to
|
|
168
191
|
the new storage)
|
|
169
192
|
* (asgothian) Device name persistance.
|
|
170
193
|
- Changes to device names made within the zigbee adapter are stored in the file dev_names.json. This file
|
|
@@ -178,7 +201,7 @@ You can thank the authors by these links:
|
|
|
178
201
|
|
|
179
202
|
### 1.6.12 (2022-01)
|
|
180
203
|
* (asgothian) Groups were newly revised (read [here](https://github.com/ioBroker/ioBroker.zigbee/pull/1327) )
|
|
181
|
-
- object
|
|
204
|
+
- object device.groups is obsolet..the old one is no longer up to date
|
|
182
205
|
|
|
183
206
|
### 1.6.9 (2021-12)
|
|
184
207
|
* (simatec) fix admin Dark-Mode
|