@homebridge-plugins/homebridge-firstalert 0.0.1-beta.0

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.
Files changed (121) hide show
  1. package/.gitattributes +2 -0
  2. package/.github/FUNDING.yml +4 -0
  3. package/.github/ISSUE_TEMPLATE/bug-report.yml +97 -0
  4. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  5. package/.github/ISSUE_TEMPLATE/feature-request.yml +38 -0
  6. package/.github/ISSUE_TEMPLATE/support-request.yml +85 -0
  7. package/.github/ISSUE_TEMPLATE.md +52 -0
  8. package/.github/PULL_REQUEST_TEMPLATE/pull_request.md +27 -0
  9. package/.github/dependabot.yml +17 -0
  10. package/.github/labeler.yml +38 -0
  11. package/.github/release-drafter.yml +33 -0
  12. package/.github/workflows/beta-release.yml +55 -0
  13. package/.github/workflows/build.yml +18 -0
  14. package/.github/workflows/changerelease.yml +11 -0
  15. package/.github/workflows/labeler.yml +9 -0
  16. package/.github/workflows/release-drafter.yml +14 -0
  17. package/.github/workflows/release.yml +35 -0
  18. package/.github/workflows/stale.yml +12 -0
  19. package/CHANGELOG.md +10 -0
  20. package/LICENSE +14 -0
  21. package/README.md +67 -0
  22. package/SECURITY.md +19 -0
  23. package/branding/Homebridge_x_FirstAlert.svg +48 -0
  24. package/branding/icon.png +0 -0
  25. package/config.schema.json +58 -0
  26. package/dist/homebridge-ui/public/index.html +548 -0
  27. package/dist/src/api/resideoClient.d.ts +32 -0
  28. package/dist/src/api/resideoClient.d.ts.map +1 -0
  29. package/dist/src/api/resideoClient.js +76 -0
  30. package/dist/src/api/resideoClient.js.map +1 -0
  31. package/dist/src/devices/device.d.ts +40 -0
  32. package/dist/src/devices/device.d.ts.map +1 -0
  33. package/dist/src/devices/device.js +207 -0
  34. package/dist/src/devices/device.js.map +1 -0
  35. package/dist/src/devices/leaksensors.d.ts +34 -0
  36. package/dist/src/devices/leaksensors.d.ts.map +1 -0
  37. package/dist/src/devices/leaksensors.js +163 -0
  38. package/dist/src/devices/leaksensors.js.map +1 -0
  39. package/dist/src/devices/smoke.d.ts +35 -0
  40. package/dist/src/devices/smoke.d.ts.map +1 -0
  41. package/dist/src/devices/smoke.js +150 -0
  42. package/dist/src/devices/smoke.js.map +1 -0
  43. package/dist/src/devices/thermostats.d.ts +42 -0
  44. package/dist/src/devices/thermostats.d.ts.map +1 -0
  45. package/dist/src/devices/thermostats.js +192 -0
  46. package/dist/src/devices/thermostats.js.map +1 -0
  47. package/dist/src/devices/valve.d.ts +21 -0
  48. package/dist/src/devices/valve.d.ts.map +1 -0
  49. package/dist/src/devices/valve.js +131 -0
  50. package/dist/src/devices/valve.js.map +1 -0
  51. package/dist/src/homebridge-ui/server.d.ts +5 -0
  52. package/dist/src/homebridge-ui/server.d.ts.map +1 -0
  53. package/dist/src/homebridge-ui/server.js +95 -0
  54. package/dist/src/homebridge-ui/server.js.map +1 -0
  55. package/dist/src/index.d.ts +4 -0
  56. package/dist/src/index.d.ts.map +1 -0
  57. package/dist/src/index.js +7 -0
  58. package/dist/src/index.js.map +1 -0
  59. package/dist/src/platform.d.ts +18 -0
  60. package/dist/src/platform.d.ts.map +1 -0
  61. package/dist/src/platform.js +108 -0
  62. package/dist/src/platform.js.map +1 -0
  63. package/dist/src/settings.d.ts +341 -0
  64. package/dist/src/settings.d.ts.map +1 -0
  65. package/dist/src/settings.js +25 -0
  66. package/dist/src/settings.js.map +1 -0
  67. package/dist/src/utils.d.ts +21 -0
  68. package/dist/src/utils.d.ts.map +1 -0
  69. package/dist/src/utils.js +58 -0
  70. package/dist/src/utils.js.map +1 -0
  71. package/dist/test/index.test.d.ts +2 -0
  72. package/dist/test/index.test.d.ts.map +1 -0
  73. package/dist/test/index.test.js +14 -0
  74. package/dist/test/index.test.js.map +1 -0
  75. package/dist/test/platform.test.d.ts +2 -0
  76. package/dist/test/platform.test.d.ts.map +1 -0
  77. package/dist/test/platform.test.js +56 -0
  78. package/dist/test/platform.test.js.map +1 -0
  79. package/dist/test/settings.test.d.ts +2 -0
  80. package/dist/test/settings.test.d.ts.map +1 -0
  81. package/dist/test/settings.test.js +48 -0
  82. package/dist/test/settings.test.js.map +1 -0
  83. package/dist/test/utils.test.d.ts +2 -0
  84. package/dist/test/utils.test.d.ts.map +1 -0
  85. package/dist/test/utils.test.js +17 -0
  86. package/dist/test/utils.test.js.map +1 -0
  87. package/docs/.nojekyll +1 -0
  88. package/docs/assets/hierarchy.js +1 -0
  89. package/docs/assets/highlight.css +22 -0
  90. package/docs/assets/icons.js +18 -0
  91. package/docs/assets/icons.svg +1 -0
  92. package/docs/assets/main.js +60 -0
  93. package/docs/assets/navigation.js +1 -0
  94. package/docs/assets/search.js +1 -0
  95. package/docs/assets/style.css +1633 -0
  96. package/docs/hierarchy.html +1 -0
  97. package/docs/index.html +77 -0
  98. package/docs/modules.html +1 -0
  99. package/docs/variables/default.html +1 -0
  100. package/eslint.config.js +44 -0
  101. package/nodemon.json +10 -0
  102. package/package.json +106 -0
  103. package/scripts/free-dev-ports.mjs +105 -0
  104. package/src/api/resideoClient.ts +106 -0
  105. package/src/devices/device.ts +226 -0
  106. package/src/devices/leaksensors.ts +206 -0
  107. package/src/devices/smoke.ts +173 -0
  108. package/src/devices/thermostats.ts +243 -0
  109. package/src/devices/valve.ts +162 -0
  110. package/src/homebridge-ui/public/index.html +548 -0
  111. package/src/homebridge-ui/server.ts +102 -0
  112. package/src/index.ts +13 -0
  113. package/src/platform.ts +112 -0
  114. package/src/settings.ts +402 -0
  115. package/src/utils.ts +61 -0
  116. package/test/index.test.ts +18 -0
  117. package/test/platform.test.ts +65 -0
  118. package/test/settings.test.ts +56 -0
  119. package/test/utils.test.ts +20 -0
  120. package/tsconfig.json +27 -0
  121. package/typedoc.json +22 -0
package/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
@@ -0,0 +1,4 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: donavanbecker
4
+ custom: paypal.me/DonavanBecker
@@ -0,0 +1,97 @@
1
+ name: Bug-Report
2
+ description: Report a Bug to help us improve
3
+ title: "Bug:"
4
+ labels: [bug]
5
+ assignees: 'donavanbecker'
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ You must use the issue template below when submitting a bug.
11
+ - type: input
12
+ attributes:
13
+ label: Describe The Bug
14
+ placeholder: A clear and concise description of what the bug is.
15
+ validations:
16
+ required: true
17
+ - type: input
18
+ attributes:
19
+ label: To Reproduce
20
+ placeholder: Steps to reproduce the behavior.
21
+ validations:
22
+ required: true
23
+ - type: input
24
+ attributes:
25
+ label: Expected behavior
26
+ placeholder: A clear and concise description of what you expected to happen.
27
+ validations:
28
+ required: true
29
+ - type: textarea
30
+ id: Logs
31
+ attributes:
32
+ label: Relevant log output
33
+ placeholder: Bug reports that do not contain logs may be closed without warning. Show the Homebridge logs here. If using Homebridge Config-UI-X, you can easly download your log by visiting the log page on the UI and Clicking the Download Icon in the top right. Remove any sensitive information, such as your homebridge-firstalert refreshToken. Please Turn on Debug Mode before submitting your Issue so more logs can be shared to fix the issue being submitted.
34
+ render: shell
35
+ validations:
36
+ required: true
37
+ - type: textarea
38
+ id: Config
39
+ attributes:
40
+ label: Config for homebridge-firstalert
41
+ placeholder: Paste your homebridge config.json here. Remove any sensitive information, such as your homebridge-firstalert consumerKey/ consumerSecret / refreshToken.
42
+ render: shell
43
+ validations:
44
+ required: true
45
+ - type: textarea
46
+ attributes:
47
+ label: Screenshots
48
+ description: If applicable add screenshots to help explain your problem.
49
+ placeholder: You can attach images or log files by clicking this area to highlight it and then dragging files in.
50
+ validations:
51
+ required: false
52
+ - type: input
53
+ attributes:
54
+ label: Device & Model
55
+ placeholder: If applicable, add screenshots to help explain your problem.
56
+ validations:
57
+ required: true
58
+ - type: markdown
59
+ attributes:
60
+ value: |
61
+ Environment
62
+ - type: input
63
+ attributes:
64
+ label: Node.js Version
65
+ placeholder: v14.17.6
66
+ validations:
67
+ required: true
68
+ - type: input
69
+ attributes:
70
+ label: NPM Version
71
+ placeholder: v7.22.0
72
+ validations:
73
+ required: true
74
+ - type: input
75
+ attributes:
76
+ label: Homebridge Version
77
+ placeholder: If applicable, add screenshots to help explain your problem.
78
+ validations:
79
+ required: true
80
+ - type: input
81
+ attributes:
82
+ label: Homebridge FirstAlert Plugin Version
83
+ placeholder: v10.0.1
84
+ validations:
85
+ required: true
86
+ - type: input
87
+ attributes:
88
+ label: Homebridge Config UI X Plugin Version
89
+ placeholder: v4.41.2
90
+ validations:
91
+ required: false
92
+ - type: input
93
+ attributes:
94
+ label: Operating System
95
+ placeholder: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
96
+ validations:
97
+ required: true
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Homebridge Discord Channel for FirstAlert
4
+ url: https://discord.gg/8fpZA4S
5
+ about: Please ask and answer questions here.
6
+ - name: Homebridge-FirstAlert - Pull Requests
7
+ url: https://github.com/homebridge-plugins/homebridge-firstalert/pulls
8
+ about: Please report security vulnerabilities here.
@@ -0,0 +1,38 @@
1
+ name: Feature Request
2
+ description: Suggest an idea for this project
3
+ title: "Feature Request: "
4
+ labels: [enhancement]
5
+ assignees: 'donavanbecker'
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ You must use the issue template below when submitting a feature request.
11
+ - type: markdown
12
+ attributes:
13
+ value: |
14
+ Is your feature request related to a problem? Please describe.
15
+ - type: input
16
+ attributes:
17
+ label: Problem
18
+ placeholder: A clear and concise description of what the problem is. Ex. I am always frustrated when [...]
19
+ validations:
20
+ required: false
21
+ - type: input
22
+ attributes:
23
+ label: Solution
24
+ placeholder: A clear and concise description of what you want to happen.
25
+ validations:
26
+ required: true
27
+ - type: input
28
+ attributes:
29
+ label: Alternatives
30
+ placeholder: A clear and concise description of any alternative solutions or features you have considered.
31
+ validations:
32
+ required: false
33
+ - type: input
34
+ attributes:
35
+ label: Additional context
36
+ placeholder: Add any other context or screenshots about the feature request here. Post device logs here.
37
+ validations:
38
+ required: false
@@ -0,0 +1,85 @@
1
+ name: Support Request
2
+ description: Need help?
3
+ title: "Support Request:"
4
+ labels: [question]
5
+ assignees: 'donavanbecker'
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ You must use the issue template below when submitting a support request.
11
+ - type: input
12
+ attributes:
13
+ label: Describe Your Problem
14
+ placeholder: A clear and concise description of what problem you are trying to solve.
15
+ validations:
16
+ required: true
17
+ - type: textarea
18
+ id: Logs
19
+ attributes:
20
+ label: Relevant log output
21
+ placeholder: Bug reports that do not contain logs may be closed without warning. Show the Homebridge logs here. If using Homebridge Config-UI-X, you can easly download your log by visiting the log page on the UI and Clicking the Download Icon in the top right. Remove any sensitive information, such as your homebridge-firstalert refreshToken. Please Turn on Debug Mode before submitting your Issue so more logs can be shared to fix the issue being submitted.
22
+ render: shell
23
+ validations:
24
+ required: false
25
+ - type: textarea
26
+ id: Config
27
+ attributes:
28
+ label: Config for homebridge-firstalert
29
+ placeholder: Paste your homebridge config.json here. Remove any sensitive information, such as your homebridge-firstalert consumerKey/ consumerSecret refreshToken.
30
+ render: shell
31
+ validations:
32
+ required: false
33
+ - type: textarea
34
+ attributes:
35
+ label: Screenshots
36
+ description: If applicable add screenshots to help explain your problem.
37
+ placeholder: You can attach images or log files by clicking this area to highlight it and then dragging files in.
38
+ validations:
39
+ required: false
40
+ - type: input
41
+ attributes:
42
+ label: Device & Model
43
+ placeholder: If applicable, add screenshots to help explain your problem.
44
+ validations:
45
+ required: true
46
+ - type: markdown
47
+ attributes:
48
+ value: |
49
+ Environment
50
+ - type: input
51
+ attributes:
52
+ label: Node.js Version
53
+ placeholder: v14.17.5
54
+ validations:
55
+ required: true
56
+ - type: input
57
+ attributes:
58
+ label: NPM Version
59
+ placeholder: v7.20.5
60
+ validations:
61
+ required: true
62
+ - type: input
63
+ attributes:
64
+ label: Homebridge Version
65
+ placeholder: If applicable, add screenshots to help explain your problem.
66
+ validations:
67
+ required: true
68
+ - type: input
69
+ attributes:
70
+ label: Homebridge FirstAlert Plugin Version
71
+ placeholder: v10.0.1
72
+ validations:
73
+ required: true
74
+ - type: input
75
+ attributes:
76
+ label: Homebridge Config UI X Plugin Version
77
+ placeholder: v4.41.2
78
+ validations:
79
+ required: false
80
+ - type: input
81
+ attributes:
82
+ label: Operating System
83
+ placeholder: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
84
+ validations:
85
+ required: true
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ <!-- You must use the issue template below when submitting a bug -->
11
+
12
+ **Describe The Bug:**
13
+
14
+ <!-- A clear and concise description of what the bug is. -->
15
+
16
+ **To Reproduce:**
17
+
18
+ <!-- Steps to reproduce the behavior. -->
19
+
20
+ **Expected behavior:**
21
+
22
+ <!-- A clear and concise description of what you expected to happen. -->
23
+
24
+ **Logs:**
25
+
26
+ <!-- Bug reports that do not contain logs may be closed without warning. -->
27
+
28
+ ```
29
+ Show the Homebridge / Homebridge Config UI X logs here.
30
+ ```
31
+
32
+ **Homebridge Config:**
33
+
34
+ \```json
35
+ Show your homebridge config.json here
36
+ \```
37
+
38
+ **Screenshots:**
39
+
40
+ <!-- If applicable, add screenshots to help explain your problem. -->
41
+
42
+ **Environment:**
43
+
44
+ - **Node.js Version**: <!-- node -v -->
45
+ - **NPM Version**: <!-- npm -v -->
46
+ - **Homebridge Version**: <!-- homebridge -V -->
47
+ - **Homebridge FirstAlert Plugin Version**:
48
+ - **Homebridge Config UI X Version**:
49
+ - **Operating System**: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
50
+ - **Process Supervisor**: Docker / Systemd / init.d / pm2 / launchctl / hb-service / other / none
51
+
52
+ <!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Enhancement
3
+ about: Contribute to Plugin through Pull Request
4
+ title: ''
5
+ labels: 'enhancement'
6
+ assignees: 'donavanbecker'
7
+ ---
8
+
9
+ **Is your enhancement related to a problem? Please describe.**
10
+
11
+ <!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
12
+
13
+ **Describe the solution you are addding**
14
+
15
+ <!-- A clear and concise description of what you want to happen. -->
16
+
17
+ **Changes Proposed in this Pull Request**
18
+
19
+ <!-- A clear and concise description of what is being changed. -->
20
+
21
+ **Describe alternatives you've considered**
22
+
23
+ <!-- A clear and concise description of any alternative solutions or features you've considered. -->
24
+
25
+ **Additional context**
26
+
27
+ <!-- Add any other context or screenshots about the feature request here. -->
@@ -0,0 +1,17 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: 'npm' # See documentation for possible values
9
+ directory: '/' # Location of package manifests
10
+ target-branch: 'beta-*.*.*'
11
+ schedule:
12
+ interval: 'daily'
13
+ - package-ecosystem: 'github-actions' # See documentation for possible values
14
+ directory: '/' # Location of package manifests
15
+ target-branch: 'beta-*.*.*'
16
+ schedule:
17
+ interval: 'daily'
@@ -0,0 +1,38 @@
1
+ # Add 'branding' label to any changes within 'docs' folder or any subfolders
2
+ branding:
3
+ - changed-files:
4
+ - any-glob-to-any-file: branding/**
5
+
6
+ # Add 'docs' label to any change to .md files within the entire repository
7
+ docs:
8
+ - changed-files:
9
+ - any-glob-to-any-file: '**/*.md'
10
+
11
+ # Add 'enhancement' label to any change to src files within the source dir EXCEPT for the docs sub-folder
12
+ enhancement:
13
+ - changed-files:
14
+ - any-glob-to-any-file: 'src/**/*'
15
+ - any-glob-to-any-file: 'config.schema.json'
16
+
17
+ # Add 'dependencies' label to any change to src files within the source dir EXCEPT for the docs sub-folder
18
+ dependencies:
19
+ - changed-files:
20
+ - any-glob-to-any-file: 'package.json'
21
+ - any-glob-to-any-file: 'package-lock.json'
22
+
23
+ # Add 'beta' label to any PR that is opened against the `beta` branch
24
+ beta:
25
+ - base-branch: 'beta*'
26
+
27
+ # Add 'alpha' label to any PR that is opened against the `alpha` branch
28
+ alpha:
29
+ - base-branch: 'alpha*'
30
+
31
+ # Add 'latest' label to any PR that is opened against the `latest` branch
32
+ latest:
33
+ - base-branch: 'latest'
34
+
35
+ # Add 'workflow' to any changes within 'workflow' folder or any subfolders
36
+ workflow:
37
+ - changed-files:
38
+ - any-glob-to-any-file: .github/**
@@ -0,0 +1,33 @@
1
+ name-template: 'v$RESOLVED_VERSION'
2
+ tag-template: 'v$RESOLVED_VERSION'
3
+
4
+ categories:
5
+ - title: 'Workflow Changes'
6
+ labels:
7
+ - 'workflow'
8
+ - title: 'Enhancements'
9
+ labels:
10
+ - 'enhancement'
11
+ - title: 'Updated Dependencies'
12
+ labels:
13
+ - 'dependencies'
14
+ - title: 'Documentation'
15
+ labels:
16
+ - 'docs'
17
+
18
+ change-template: '- $TITLE @$AUTHOR [#$NUMBER]'
19
+ version-resolver:
20
+ major:
21
+ labels:
22
+ - 'major'
23
+ minor:
24
+ labels:
25
+ - 'minor'
26
+ patch:
27
+ labels:
28
+ - 'patch'
29
+ default: patch
30
+ template: |
31
+ ## Changes
32
+
33
+ $CHANGES
@@ -0,0 +1,55 @@
1
+ name: Beta Release
2
+
3
+ on:
4
+ push:
5
+ branches: [beta-*.*.*, beta]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ build_and_test:
10
+ uses: homebridge/.github/.github/workflows/nodejs-build-and-test.yml@latest
11
+ with:
12
+ enable_coverage: false
13
+ secrets:
14
+ token: ${{ secrets.GITHUB_TOKEN }}
15
+ lint:
16
+ needs: build_and_test
17
+ uses: homebridge/.github/.github/workflows/eslint.yml@latest
18
+
19
+ publish:
20
+ needs: lint
21
+ if: ${{ github.repository == 'homebridge-plugins/homebridge-firstalert' }}
22
+ permissions:
23
+ id-token: write
24
+ uses: homebridge/.github/.github/workflows/npm-publish-esm.yml@latest
25
+ with:
26
+ tag: 'beta'
27
+ dynamically_adjust_version: true
28
+ npm_version_command: 'pre'
29
+ pre_id: 'beta'
30
+ secrets:
31
+ npm_auth_token: ${{ secrets.npm_token }}
32
+
33
+ pre-release:
34
+ needs: publish
35
+ if: ${{ github.repository == 'homebridge-plugins/homebridge-firstalert' }}
36
+ uses: homebridge/.github/.github/workflows/pre-release.yml@latest
37
+ with:
38
+ npm_version: ${{ needs.publish.outputs.NPM_VERSION }}
39
+ body: |
40
+ **Beta Release**
41
+ **Version**: v${{ needs.publish.outputs.NPM_VERSION }}
42
+ [How To Test Beta Releases](https://github.com/homebridge-plugins/homebridge-firstalert/wiki/Beta-Version)
43
+
44
+ github-releases-to-discord:
45
+ name: Discord Webhooks
46
+ needs: [build_and_test,publish]
47
+ if: ${{ github.repository == 'homebridge-plugins/homebridge-firstalert' }}
48
+ uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
49
+ with:
50
+ title: "FirstAlert Beta Release"
51
+ description: |
52
+ Version `v${{ needs.publish.outputs.NPM_VERSION }}`
53
+ url: "https://github.com/homebridge-plugins/homebridge-firstalert/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
54
+ secrets:
55
+ DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_BETA || secrets.DISCORD_WEBHOOK_URL_LATEST }}
@@ -0,0 +1,18 @@
1
+ name: Node Build
2
+
3
+ on:
4
+ push:
5
+ branches: [latest]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ build_and_test:
11
+ uses: homebridge/.github/.github/workflows/nodejs-build-and-test.yml@latest
12
+ with:
13
+ enable_coverage: false
14
+ secrets:
15
+ token: ${{ secrets.GITHUB_TOKEN }}
16
+ lint:
17
+ needs: build_and_test
18
+ uses: homebridge/.github/.github/workflows/eslint.yml@latest
@@ -0,0 +1,11 @@
1
+ name: Changelog to Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ changerelease:
9
+ uses: homebridge/.github/.github/workflows/change-release.yml@latest
10
+ secrets:
11
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,9 @@
1
+ name: Labeler
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ labeler:
7
+ uses: homebridge/.github/.github/workflows/labeler.yml@latest
8
+ secrets:
9
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,14 @@
1
+ name: Release Drafter
2
+
3
+ on:
4
+ push:
5
+ branches: [latest]
6
+ pull_request: # required for autolabeler
7
+ types: [opened, reopened, synchronize]
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ release-drafter:
12
+ uses: homebridge/.github/.github/workflows/release-drafter.yml@latest
13
+ secrets:
14
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,35 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ build_and_test:
9
+ uses: homebridge/.github/.github/workflows/nodejs-build-and-test.yml@latest
10
+ with:
11
+ enable_coverage: false
12
+ secrets:
13
+ token: ${{ secrets.GITHUB_TOKEN }}
14
+
15
+ publish:
16
+ needs: build_and_test
17
+ if: ${{ github.repository == 'homebridge-plugins/homebridge-firstalert' }}
18
+ permissions:
19
+ id-token: write
20
+ uses: homebridge/.github/.github/workflows/npm-publish-esm.yml@latest
21
+ secrets:
22
+ npm_auth_token: ${{ secrets.npm_token }}
23
+
24
+ github-releases-to-discord:
25
+ name: Discord Webhooks
26
+ needs: [build_and_test,publish]
27
+ if: ${{ github.repository == 'homebridge-plugins/homebridge-firstalert' }}
28
+ uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
29
+ with:
30
+ title: "FirstAlert Release"
31
+ description: |
32
+ Version `v${{ needs.publish.outputs.NPM_VERSION }}`
33
+ url: "https://github.com/homebridge-plugins/homebridge-firstalert/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
34
+ secrets:
35
+ DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_LATEST }}
@@ -0,0 +1,12 @@
1
+ name: Stale workflow
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: '45 11 * * *'
7
+
8
+ jobs:
9
+ stale:
10
+ uses: homebridge/.github/.github/workflows/stale.yml@latest
11
+ secrets:
12
+ token: ${{ secrets.GITHUB_TOKEN }}
package/CHANGELOG.md ADDED
@@ -0,0 +1,10 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
+
5
+ ## [1.0.0](https://github.com/homebridge-plugins/homebridge-firstalert/releases/tag/v1.0.0) (2026-XX-XX)
6
+
7
+ ### What's Changes
8
+ - Initial Release Changing from FirstAlert to FirstAlert
9
+
10
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-firstalert/compare/v0.0.1...v1.0.0
package/LICENSE ADDED
@@ -0,0 +1,14 @@
1
+ ISC License (ISC)
2
+ Copyright (c) 2023-2024 donavanbecker
3
+
4
+ Permission to use, copy, modify, and/or distribute this software for any
5
+ purpose with or without fee is hereby granted, provided that the above
6
+ copyright notice and this permission notice appear in all copies.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
+ PERFORMANCE OF THIS SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ <span align="center">
2
+
3
+ <a href="https://github.com/homebridge/verified/blob/latest/verified-plugins.json"><img alt="homebridge-verified" src="https://raw.githubusercontent.com/homebridge-plugins/homebridge-firstalert/latest/branding/Homebridge_x_Resideo.svg?sanitize=true" width="350px"></a>
4
+
5
+ # Homebridge FirstAlert
6
+
7
+ <a href="https://www.npmjs.com/package/homebridge-firstalert"><img title="npm version" src="https://badgen.net/npm/v/homebridge-firstalert?icon=npm&label" ></a>
8
+ <a href="https://www.npmjs.com/package/homebridge-firstalert"><img title="npm downloads" src="https://badgen.net/npm/dt/homebridge-firstalert?label=downloads" ></a>
9
+ <a href="https://discord.gg/8fpZA4S"><img title="discord-firstalert" src="https://badgen.net/discord/online-members/8fpZA4S?icon=discord&label=discord" ></a>
10
+ <a href="https://paypal.me/donavanbecker"><img title="donate" src="https://badgen.net/badge/donate/paypal/yellow" ></a>
11
+
12
+ <p>The Homebridge <a href="https://firstalert.com">FirstAlert</a>
13
+ plugin allows you to access your FirstAlert Device(s) from HomeKit with
14
+ <a href="https://homebridge.io">Homebridge</a>.
15
+ </p>
16
+
17
+ </span>
18
+
19
+ ## Installation
20
+
21
+ 1. Search for "FirstAlert" on the plugin screen of [Homebridge Config UI X](https://github.com/oznu/homebridge-config-ui-x).
22
+ 2. Click **Install**.
23
+
24
+ ## Configuration
25
+
26
+ 1. Login / create an account at https://developer.honeywellhome.com/user
27
+ - Your FirstAlert Developer Account, this account is different then your FirstAlert Account that you log into the FirstAlert App with
28
+ 2. Click **Create New App**
29
+ 3. Give your application a name
30
+ 4. Copy the hostname found on #3 of the Intro Page into the Callback URL field
31
+
32
+ <p align="center">
33
+
34
+ <img src="https://user-images.githubusercontent.com/9875439/192078620-6998511c-1c11-4e06-b7e1-475b22ef5180.png" width="300px">
35
+
36
+ </p>
37
+
38
+ 5. Enter the generated consumer key and secret into the plugin settings screen of [Homebridge Config UI X](https://github.com/oznu/homebridge-config-ui-x)
39
+ 6. Click **Link Account**
40
+
41
+ <p align="center">
42
+
43
+ <img src="https://user-images.githubusercontent.com/9875439/192078614-e568d121-e0e4-4123-bdda-4238e8a6e601.png" width="300px">
44
+
45
+ </p>
46
+
47
+ 7. Login to your [https://www.firstalert.com](https://account.honeywellhome.com).
48
+ 8. Click Allow
49
+ 9. Select Devices
50
+ - I would recommend selecting all devices since you can restrict the devices you don't want in the Home app later, by DeviceID.
51
+ 10. Click Connect
52
+ 11. Click Save
53
+ - If you plan on adding this plugin into a child bridge, I would configure that at this time before restarting Homebridge.
54
+ - Reminder that you will have to add this child bridge into the home app to get FirstAlert accessories to show up.
55
+ 12. Restart Homebridge
56
+
57
+ ## Supported FirstAlert Devices
58
+
59
+ - [T10 Thermostat](https://www.firstalert.com/us/en/products/air/thermostats/wifi-thermostats/t10-pro-smart-thermostat-with-redlinkr-room-sensor-thx321wfs2001w-u/) - Already HomeKit Certified
60
+ - [T9 Thermostat](https://www.firstalert.com/us/en/products/air/thermostats/wifi-thermostats/t9-smart-thermostat-with-sensor-rcht9610wfsw2003-u/) - Already HomeKit Certified
61
+ - [T9 Smart Roomsensors](https://www.firstalert.com/us/en/products/air/thermostat-accessories/t9-smart-sensor-rchtsensor-1pk-u/)
62
+ - [T6 Thermostat](https://www.firstalert.com/us/en/products/air/thermostats/wifi-thermostats/t6-pro-smart-thermostat-multi-stage-3-heat-2-cool-th6320wf2003-u/) - Already HomeKit Certified
63
+ - [T5 Thermostat](https://www.firstalert.com/us/en/products/air/thermostats/wifi-thermostats/t5-smart-thermostat-with-c-wire-adapter-rcht8612wf2005-u/) - Already HomeKit Certified
64
+ - [Round Thermostat](https://www.firstalert.com/us/en/products/air/thermostats/wifi-thermostats/the-round-smart-thermostat-rch9310wf5003-u/) - Already HomeKit Certified
65
+ - Some Total Comfort Control Thermostats
66
+ - Pushing Commands may not be supported on some.
67
+ - [WiFi Water Leak & Freeze Detector](https://www.firstalert.com/us/en/products/water/spot-leak-detection/wifi-water-leak-freeze-detector-rchw3610wf1001-u/)