Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refresh of dependent software packages, and overhaul of the plugin to homebridge interface #5

Merged
merged 36 commits into from
Nov 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
698a278
Remove EOL Messages
NorthernMan54 Oct 23, 2024
4820a12
Prep for Server migration
NorthernMan54 Oct 24, 2024
8af3fee
Build worked
NorthernMan54 Oct 24, 2024
c5504f3
Build fixes
NorthernMan54 Oct 24, 2024
a3dc3a7
Dependencies
NorthernMan54 Oct 25, 2024
ea8ed7c
WIP
NorthernMan54 Oct 25, 2024
43f8b53
Working
NorthernMan54 Oct 25, 2024
d395bc0
Tests
NorthernMan54 Oct 26, 2024
489d0fd
get Status working
NorthernMan54 Oct 27, 2024
c30427d
State reporting
NorthernMan54 Oct 27, 2024
aeb8b61
Renovate HapClient
NorthernMan54 Oct 28, 2024
8303211
Temperature
NorthernMan54 Oct 28, 2024
0f85dea
WIP
NorthernMan54 Oct 29, 2024
3c12280
WIP
NorthernMan54 Oct 29, 2024
4eb874b
Merge branch 'latest' into beta-3.1.0
NorthernMan54 Oct 29, 2024
7af3755
Simplification of hap devices
NorthernMan54 Oct 29, 2024
6f239e8
WIP
NorthernMan54 Oct 30, 2024
1cf2182
Ready for beta
NorthernMan54 Oct 30, 2024
d267075
Tweak
NorthernMan54 Oct 30, 2024
f67da64
Fix lint
NorthernMan54 Oct 30, 2024
0d9a9fb
HB 2.0 Testing
NorthernMan54 Oct 30, 2024
8467244
Fix for different uniqueId formula's
NorthernMan54 Nov 1, 2024
9808226
More tests
NorthernMan54 Nov 3, 2024
51b1cf7
Treat `HeaterCooler` as `AC_UNIT` if it supports `RotationSpeed` (#4)
noamcohen97 Nov 4, 2024
27d77a8
Update CHANGELOG.md
NorthernMan54 Nov 5, 2024
eb29b38
Add invert Accessory Filter
NorthernMan54 Nov 6, 2024
72a6500
Beta Cloud Server Option
NorthernMan54 Nov 6, 2024
2d53903
WIP
NorthernMan54 Nov 7, 2024
27914c3
Added events back
NorthernMan54 Nov 7, 2024
5698f63
Final beta
NorthernMan54 Nov 8, 2024
ae635f0
Not change heater/cooler type to be AC
NorthernMan54 Nov 8, 2024
763d58e
Update package.json
NorthernMan54 Nov 8, 2024
47032f3
Update heater-cooler.ts
NorthernMan54 Nov 8, 2024
2c0d91f
Merge branch 'latest' into beta-3.1.0
NorthernMan54 Nov 8, 2024
e6e8e02
2FA / PIN requirement validated
NorthernMan54 Nov 9, 2024
ce1b603
Update CHANGELOG.md
NorthernMan54 Nov 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,19 @@ assignees: ''
<!-- You must use the issue template below when submitting a bug -->

**Describe The Bug:**

<!-- A clear and concise description of what the bug is. -->

**To Reproduce:**

<!-- Steps to reproduce the behavior. -->

**Expected behavior:**

<!-- A clear and concise description of what you expected to happen. -->

**Logs:**

<!-- Bug reports that do not contain logs may be closed without warning. -->

```
Expand All @@ -34,16 +38,16 @@ Remove any sensitive information, such as your homebridge-gsh / google-smarthome
```

**Screenshots:**

<!-- If applicable, add screenshots to help explain your problem. -->

**Environment:**

* **Node.js Version**: <!-- node -v -->
* **NPM Version**: <!-- npm -v -->
* **Homebridge Version**: <!-- homebridge -V -->
* **Homebridge GSH Plugin Version**:
* **Homebridge Config UI X Plugin Version**:
* **Operating System**: <!-- Raspbian / Ubuntu / Debian / Windows / macOS / Docker -->

- **Node.js Version**: <!-- node -v -->
- **NPM Version**: <!-- npm -v -->
- **Homebridge Version**: <!-- homebridge -V -->
- **Homebridge GSH Plugin Version**:
- **Homebridge Config UI X Plugin Version**:
- **Operating System**: <!-- Raspbian / Ubuntu / Debian / Windows / macOS / Docker -->

<!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ blank_issues_enabled: false
contact_links:
- name: Homebridge Discord Community
url: https://discord.gg/cFFBuvp
about: Ask your questions in the homebridge-gsh channel
about: Ask your questions in the homebridge-gsh channel
5 changes: 4 additions & 1 deletion .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,19 @@ assignees: ''
---

**Is your feature request related to a problem? Please describe:**

<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

**Describe the solution you'd like:**

<!-- A clear and concise description of what you want to happen. -->

**Describe alternatives you've considered:**

<!-- A clear and concise description of any alternative solutions or features you've considered. -->

**Additional context:**
<!-- Add any other context or screenshots about the feature request here. -->

<!-- Add any other context or screenshots about the feature request here. -->

<!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->
18 changes: 10 additions & 8 deletions .github/ISSUE_TEMPLATE/support-request.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ assignees: ''
<!-- You must use the issue template below when submitting a support request -->

**Describe Your Problem:**

<!-- A clear and concise description of what problem you are trying to solve. -->

**Logs:**

<!-- Support requests that do not contain logs may be closed without warning. -->

```
Expand All @@ -23,21 +25,21 @@ Remove any sensative information.
**Homebridge Config:**

```json
Show your homebridge config.json here.
Show your homebridge config.json here.
Remove any sensitive information, such as your homebridge-gsh / google-smarthome token.
```

**Screenshots:**

<!-- If applicable, add screenshots to help explain your problem. -->

**Environment:**

* **Node.js Version**: <!-- node -v -->
* **NPM Version**: <!-- npm -v -->
* **Homebridge Version**: <!-- homebridge -V -->
* **Homebridge GSH Plugin Version**:
* **Homebridge Config UI X Plugin Version**:
* **Operating System**: <!-- Raspbian / Ubuntu / Debian / Windows / macOS / Docker -->

- **Node.js Version**: <!-- node -v -->
- **NPM Version**: <!-- npm -v -->
- **Homebridge Version**: <!-- homebridge -V -->
- **Homebridge GSH Plugin Version**:
- **Homebridge Config UI X Plugin Version**:
- **Operating System**: <!-- Raspbian / Ubuntu / Debian / Windows / macOS / Docker -->

<!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->
18 changes: 9 additions & 9 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

This document outlines security procedures and general policies for the `homebridge-gsh` project.

* [Reporting a Bug](#reporting-a-bug)
* [Disclosure Policy](#disclosure-policy)
* [Comments on this Policy](#comments-on-this-policy)
- [Reporting a Bug](#reporting-a-bug)
- [Disclosure Policy](#disclosure-policy)
- [Comments on this Policy](#comments-on-this-policy)

## Reporting a Bug

The `homebridge-gsh` team and community take all security bugs in `homebridge-gsh`
The `homebridge-gsh` team and community take all security bugs in `homebridge-gsh`
seriously. Thank you for improving the security of `homebridge-gsh`. We appreciate
your efforts and responsible disclosure and will make every effort to acknowledge
your efforts and responsible disclosure and will make every effort to acknowledge
your contributions.

Report security bugs by emailing the maintainer at [email protected]
Expand All @@ -30,10 +30,10 @@ When the security team receives a security bug report, they will assign it to a
primary handler. This person will coordinate the fix and release process,
involving the following steps:

* Confirm the problem and determine the affected versions.
* Audit code to find any potential similar problems.
* Prepare fixes for all releases still under maintenance. These fixes will be
released as fast as possible to npm.
- Confirm the problem and determine the affected versions.
- Audit code to find any potential similar problems.
- Prepare fixes for all releases still under maintenance. These fixes will be
released as fast as possible to npm.

## Comments on this Policy

Expand Down
2 changes: 1 addition & 1 deletion .github/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ markComment: >
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
closeComment: false
4 changes: 2 additions & 2 deletions .github/workflows/Build and Publish.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name:
"Build, Publish and Release"
'Build, Publish and Release'

#
# Automatically publish beta releases on pushes, require a manual workflow action for production releases
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:
with:
tag: ${{ needs.get_tags.outputs.TARGET_IMAGE_TAG }}
dynamically_adjust_version: true
npm_version_command: "pre"
npm_version_command: pre
pre_id: ${{ needs.get_tags.outputs.TARGET_IMAGE_TAG }}
install_cmd: npm ci && cd homebridge-ui/public && npm ci
secrets:
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ node_modules
.env
dist
homebridge-gsh-**.tgz
/homebridge-ui/public/.angular
/homebridge-ui/public/.angular/cache
test/hbConfig/.uix-dashboard.json
test/hbConfig/.uix-secrets
/test/hbConfig/accessories
/test/hbConfig/backups
/test/hbConfig/persist
/test/hbConfig/accessories
test/hbConfig/config.json
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"recommendations": [
"dbaeumer.vscode-eslint"
]
}
}
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
"source.fixAll.eslint": "explicit"
},
"editor.formatOnSave": true
}
}
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

All notable changes to `homebridge-gsh` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).

## v3.1.0 (2024-11-11)

### Changes

- Updated dependent software packages. This included a major overhaul of the plugin to homebridge interface.
- Make homebridge-gsh Homebridge 2.0 Ready
- Updates to Heater/Cooler #4 tks to @noamcohen97
- Added ability to invert accessory name filter, tks @UiharuKazari2008
- Added a significant number of test cases, to support future enhancements
- Added support for beta testing of Cloud Server
- Complete transistion of dependencies to Homebridge organization

## v3.0.0 (2024-10-27)

Recently Oznu annouced that he no longer had the resources or free time required to maintain this plugin. So we worked with him to transfer the operational assets of the service over to us, so that we could continue to offer this service for Google Home users.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ Symlink your development directory to global:
npm link
```

You can now run `homebridge` and it will use `homebridge-gsh` from your development directory.
You can now run `homebridge` and it will use `homebridge-gsh` from your development directory.
35 changes: 27 additions & 8 deletions config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"title": "Enable Debug Logging",
"type": "boolean"
},
"instanceBlacklist": {
"instanceDenylist": {
"title": "Instance",
"type": "array",
"items": {
Expand All @@ -58,6 +58,10 @@
"type": "string"
}
},
"accessoryFilterInverse": {
"title": "Invert Accessory Filter ( Change Accessory filter to only allow the names accessories, rather than deny them )",
"type": "boolean"
},
"accessorySerialFilter": {
"title": "Accessory",
"type": "array",
Expand All @@ -69,6 +73,11 @@
"forceFahrenheit": {
"title": "Force Degrees Fahrenheit",
"type": "boolean"
},
"betaServer": {
"title": "Use beta cloud server",
"type": "boolean",
"default": false
}
}
},
Expand All @@ -81,12 +90,12 @@
"items": [
{
"type": "help",
"helpvalue": "<h5>Debug Mode</h5><em class='primary-text'>Enabling debug mode can help troubleshoot problems. If you are experiencing problems with this plugin you should enable debug logging and include the results in your support request.</em>"
"helpvalue": "<h5><B>Debug Mode</b></h5><em class='primary-text'>Enabling debug mode can help troubleshoot problems. If you are experiencing problems with this plugin you should enable debug logging and include the results in your support request.</em>"
},
"debug",
{
"type": "help",
"helpvalue": "<h5>Pin Code</h5><em class='primary-text'>If you provide a pin code, the Google Assistant will prompt you for your code before performing certain actions. e.g. unlocking a Lock Mechanism.</em>"
"helpvalue": "<h5><B>Pin Code</b></h5><em class='primary-text'>If you provide a pin code, the Google Assistant will prompt you for your code before performing certain actions. e.g. unlocking a Lock Mechanism.</em>"
},
{
"notitle": true,
Expand All @@ -101,7 +110,7 @@
},
{
"type": "help",
"helpvalue": "<h5>Instance Blacklist</h5><em class='primary-text'>Enter the usernames of any Homebridge instances or child bridges on your network that you don't want to be able to control from the Google Assistant.</em>"
"helpvalue": "<h5><B>Instance deny list</b></h5><em class='primary-text'>Enter the usernames of any Homebridge instances or child bridges on your network that you don't want to be able to control from the Google Assistant.</em>"
},
{
"nodescription": true,
Expand All @@ -126,7 +135,7 @@
},
{
"type": "help",
"helpvalue": "<h5>Accessory Filter</h5><em class='primary-text'>Enter the names (as displayed in the Google Home app) of the accessories you don't want to control from the Google Assistant.</em>"
"helpvalue": "<h5><B>Accessory Filter - by name</b></h5><em class='primary-text'>Enter the names (as displayed in the Google Home app) of the accessories you don't want to control from the Google Assistant.</em>"
},
{
"nodescription": true,
Expand All @@ -151,7 +160,12 @@
},
{
"type": "help",
"helpvalue": "<em class='primary-text'>Enter the serial of the accessories you don't want to control from the Google Assistant.</em>"
"helpvalue": "<h5><B>Invert Accessory list</b></h5><em class='primary-text'>Rather than deny access to Accessory Filter names, allow only them.</em>"
},
"accessoryFilterInverse",
{
"type": "help",
"helpvalue": "<h5><B>Accessory Filter - by serial number</b></h5><em class='primary-text'>Enter the serial of the accessories you don't want to control from the Google Assistant.</em>"
},
{
"nodescription": true,
Expand All @@ -176,9 +190,14 @@
},
{
"type": "help",
"helpvalue": "<h5>Force Fahrenheit</h5><em class='primary-text'>Some Homebridge thermostat plugins do not correctly report they are using Fahrenheit temperature units. Enabling this option will force all thermostats accessories to display temperature units in Fahrenheit.</em>"
"helpvalue": "<h5><B>Force Fahrenheit</b></h5><em class='primary-text'>Some Homebridge thermostat plugins do not correctly report they are using Fahrenheit temperature units. Enabling this option will force all thermostats accessories to display temperature units in Fahrenheit.</em>"
},
"forceFahrenheit",
{
"type": "help",
"helpvalue": "<h5><B>Beta Cloud</b></h5><em class='primary-text'>Used for cloud server testing only. Change plugin cloud endpoint to beta test server.</em>"
},
"forceFahrenheit"
"betaServer"
]
}
]
Expand Down
51 changes: 51 additions & 0 deletions homebridge-ui/public/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"root": true,
"ignorePatterns": [
"projects/**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": [
"tsconfig.json",
"e2e/tsconfig.json"
],
"createDefaultProgram": true
},
"extends": [
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates"
],
"rules": {
"@angular-eslint/component-selector": [
"error",
{
"prefix": "app",
"style": "kebab-case",
"type": "element"
}
],
"@angular-eslint/directive-selector": [
"error",
{
"prefix": "app",
"style": "camelCase",
"type": "attribute"
}
]
}
},
{
"files": [
"*.html"
],
"extends": [
"plugin:@angular-eslint/template/recommended"
],
"rules": {}
}
]
}
2 changes: 1 addition & 1 deletion homebridge-ui/public/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# homebridge-gsh plugin custom user interface

See https://github.com/homebridge/plugin-ui-utils
See https://github.com/homebridge/plugin-ui-utils
Loading