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

Add support WN35, WH65, WS68, WS80 and WS90 #32

Merged
merged 2 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/build-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
homebridge-version: ["~1.6.0", "~1.8.0"]
homebridge-version: ["~1.6.0", "~1.8.0", "^2.0.0-beta.0"]

steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
homebridge-version: ["~1.6.0", "~1.8.0"]
homebridge-version: ["~1.6.0", "~1.8.0", "^2.0.0-beta.0"]

steps:
- uses: actions/checkout@v4
Expand Down
26 changes: 26 additions & 0 deletions .github/workflows/close-stale-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Close inactive issues

on:
schedule:
- cron: "30 1 * * *"

jobs:
close-issues:
runs-on: ubuntu-latest

permissions:
issues: write
pull-requests: write

steps:
- uses: actions/stale@v5
with:
days-before-issue-stale: 30
days-before-issue-close: 14
stale-issue-label: "stale"
stale-issue-message: "This issue has been marked as stale because it has been open for 30 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
days-before-pr-stale: -1
days-before-pr-close: -1
any-of-labels: ["AWAITING TEST", "AWAITING RESPONSE"]
repo-token: ${{ secrets.GITHUB_TOKEN }}
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
### 2.4.0-beta

* Add support for WH65, WS68, WS80, and WS90
* Implement Light and Ultraviolet sensor types
* Fix issue with mapping wind direction to a sector
* Add paypal funding link to `package.json` and donation section to `README.md`
* Add Github action to close issues with no activity

### 2.3.1-beta

* Add `homepage` field in `package.json` for plugin verification
* Add `name` property in `config.schema.json` for plugin verification

Expand Down
26 changes: 18 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This plugin operates as a service that listens for data reports from an Ecowitt

For bugs, feature requests, and questions - [please file a new issue](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/issues/new/choose).

> :arrow\_up: :arrow\_up: :arrow\_up: **v2 beta is now available! These docs are for v2, and v1 docs can be found [here](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/tree/v1-release). The [v2 config migration guide](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/wiki/V2-Migration-Guide) is also available. Note that the initial v2 beta has temporarily removed support for WH65 which will be added back shortly in an upcoming release. Please [report any issues](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/issues/new/choose).**
> :arrow\_up: :arrow\_up: :arrow\_up: **v2 is now available! These docs are for v2, and v1 docs can be found [here](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/tree/v1-release). See the [v2 config migration guide](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/wiki/V2-Migration-Guide) to get started with the migration. Please [report any issues](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/issues/new/choose).**

## Features

Expand Down Expand Up @@ -112,7 +112,7 @@ The full list of all [Ecowitt sensors](https://shop.ecowitt.com/collections/wifi

This plugin currently supports the Ecowitt devices shown in the table below. If your Ecowitt device is currently not supported, [please open a feature request](https://github.com/rhockenbury/homebridge-ecowitt/issues/new?assignees=\&labels=enhancement\&projects=\&template=feature-request.md\&title=).

| Device | Description | Service Types| Product Image |
| Device | Description | Service | Product Image |
| -------- | ------- | ------- | ------ |
| GW1000 / GW1100 | WiFi Weather Station Gateway | <ul><li>Indoor Temperature</li><li>Indoor Humidity</li></ul> | <img src="./docs/assets/GW1000-GW1100.jpeg" alt="GW1000" width="200"/> |
| GW1200 | WiFi Weather Station Gateway | <ul><li>Indoor Temperature</li><li>Indoor Humidity</li></ul> | <img src="./docs/assets/GW1200.jpeg" alt="GW1200" width="200"/> |
Expand All @@ -123,17 +123,23 @@ This plugin currently supports the Ecowitt devices shown in the table below. If
| WH25 | Indoor Temperature, Humidity and Barometric Sensor | <ul><li>Indoor Temperature</li><li>Indoor Humidity</li></ul> | <img src="./docs/assets/WH25.jpeg" alt="WH25" width="200"/> |
| WH26| Outdoor Temperature and Humidity Sensor | <ul><li>Temperature</li><li>Humidity</li></ul> | <img src="./docs/assets/WH26.jpeg" alt="WH26" width="200"/> |
| WN30 | Thermometer with Probe | <ul><li>Temperature</li></ul> | <img src="./docs/assets/WN30.jpeg" alt="WN30" width="200"/> |
| WN31 / WH31 (and EP variants) | Multi-Channel Temperature and Humidity Sensor | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/WN31.jpeg" alt="WN31" width="200"/> |
| WN31 / WH31 (including S and EP variants) | Multi-Channel Temperature and Humidity Sensor | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/WN31.jpeg" alt="WN31" width="200"/> |
| WN34 (S, D, and L variants) | Multi-Channel Temperature Sensor | <ul><li>Temperature</li></ul> | <img src="./docs/assets/WN34.jpeg" alt="WN34" width="200"/> |
| WN35 | Leaf Wetness Sensor | <ul><li>Leaf Wetness</li></ul> | <img src="./docs/assets/WN35.jpeg" alt="WN35" width="200"/> |
| WN36 | Floating Pool Thermometer <br> *Note this will register as a WN30* | <ul><li>Temperature</li></ul> | <img src="./docs/assets/WN36.jpeg" alt="WN36" width="200"/> |
| WH40 | Self-Emptying Rain Collector Rainfall Sensor | <ul><li>Rain Rate</li><li>Rain Event Total</li><li>Rain Hourly Total</li><li>Rain Daily Total</li><li>Rain Weekly Total</li><li>Rain Monthly Total</li><li>Rain Yearly Total</li></ul> | <img src="./docs/assets/WH40.jpeg" alt="WH40" width="200"/> |
| WH41 / WH43 | PM2.5 Air Quality Sensor Monitor Outdoor | <ul><li>PM2.5 Air Quality</li><li>PM2.5 Air Quality (24hrs)</li></ul> | <img src="./docs/assets/WH41.jpeg" alt="WH41" width="200"/> |
| WH41 | PM2.5 Air Quality Sensor with Solar Panel | <ul><li>PM2.5 Air Quality</li><li>PM2.5 Air Quality (24hrs)</li></ul> | <img src="./docs/assets/WH41.jpeg" alt="WH41" width="200"/> |
| WH43 | PM2.5 Air Quality Sensor <br> *Note this will register as a WH41* | <ul><li>PM2.5 Air Quality</li><li>PM2.5 Air Quality (24hrs)</li></ul> | <img src="./docs/assets/WH43.jpeg" alt="WH43" width="200"/> |
| WH45 | 5-in-1 PM2.5 / PM10 / CO₂ Air Quality Sensor | <ul><li>Temperature</li><li>Humidity</li><li>PM2.5 Air Quality</li><li>PM2.5 Air Quality (24hrs)</li><li>PM10 Air Quality</li><li>PM10 Air Quality (24hrs)</li><li>CO₂ Level</li><li>CO₂ Level (24 hrs)</li></ul> | <img src="./docs/assets/WH45.jpeg" alt="WH45" width="200"/> |
| WH46 | 7-in-1 PM1.0 / PM2.5 / PM4.0 / PM10 / CO₂ Air Quality Sensor | <ul><li>Temperature</li><li>Humidity</li><li>PM2.5 Air Quality</li><li>PM2.5 Air Quality (24hrs)</li><li>PM10 Air Quality</li><li>PM10 Air Quality (24hrs)</li><li>CO₂ Level</li><li>CO₂ Level (24 hrs)</li></ul> | <img src="./docs/assets/WH46.jpeg" alt="WH46" width="200"/> |
| WH51 (and L variant)| Wireless Soil Moisture Sensor | <ul><li>Soil Moisture</li></ul> | <img src="./docs/assets/WH51.jpeg" alt="WH51" width="200"/> |
| WH55 | Water Leak Detection Sensor with Loud Audio Alarm | <ul><li>Water Leak</li></ul> | <img src="./docs/assets/WH55.jpeg" alt="WH55" width="200"/> |
| WH51 (and L variant)| Soil Moisture Sensor | <ul><li>Soil Moisture</li></ul> | <img src="./docs/assets/WH51.jpeg" alt="WH51" width="200"/> |
| WH55 | Water Leak Detection Sensor | <ul><li>Water Leak</li></ul> | <img src="./docs/assets/WH55.jpeg" alt="WH55" width="200"/> |
| WH57 | Lightning Detection Sensor | <ul><li>Lightning Events</li><li>Lightning Distance</li><li>Lightning Time</li></ul> | <img src="./docs/assets/WH57.jpeg" alt="WH57" width="200"/> |
| WH65 | Solar Powered 7-in-1 Outdoor Station | <ul><li>Temperature</li><li>Humidity</li><li>Solar Radiation</li><li>UV Index</li><li>Dew Point</li><li>Wind Direction</li><li>Wind Speed</li><li>Wind Gust Speed</li><li>Wind Max Daily Speed</li><li>Rain Rate</li><li>Rain Event Total</li><li>Rain Hourly Total</li><li>Rain Daily Total</li><li>Rain Weekly Total</li><li>Rain Monthly Total</li><li>Rain Yearly Total</li></ul> | <img src="./docs/assets/WH65.jpeg" alt="WH65" width="200"/> |
| WH65 / WS69 | Solar Powered 7-in-1 Outdoor Station | <ul><li>Temperature</li><li>Humidity</li><li>Solar Radiation</li><li>UV Index</li><li>Wind Direction</li><li>Wind Speed</li><li>Wind Gust Speed</li><li>Wind Max Daily Speed</li><li>Rain Rate</li><li>Rain Event Total</li><li>Rain Hourly Total</li><li>Rain Daily Total</li><li>Rain Weekly Total</li><li>Rain Monthly Total</li><li>Rain Yearly Total</li></ul> | <img src="./docs/assets/WH65.jpeg" alt="WH65" width="200"/> |
| WS68 | Solar Powered 4-in-1 Outdoor Station | <ul><li>Solar Radiation</li><li>UV Index</li><li>Wind Direction</li><li>Wind Speed</li><li>Wind Gust Speed</li><li>Wind Max Daily Speed</li></ul> | <img src="./docs/assets/WS68.jpeg" alt="WS68" width="200"/> |
| WS80 | Solar Powered 6-in-1 Outdoor Station | <ul><li>Temperature</li><li>Humidity</li><li>Solar Radiation</li><li>UV Index</li><li>Wind Direction</li><li>Wind Speed</li><li>Wind Gust Speed</li><li>Wind Max Daily Speed</li></ul> | <img src="./docs/assets/WS80.jpeg" alt="WS80" width="200"/> |
| WS85 | 3-in-1 Solar Weather Station | <ul><li>Wind Direction</li><li>Wind Speed</li><li>Wind Gust Speed</li><li>Wind Max Daily Speed</li><li>Rain Rate</li><li>Rain Event Total</li><li>Rain Hourly Total</li><li>Rain Daily Total</li><li>Rain Weekly Total</li><li>Rain Monthly Total</li><li>Rain Yearly Total</li></ul> | <img src="./docs/assets/WS85.jpeg" alt="WS85" width="200"/> |
| WS90 | Solar Powered 7-in-1 Outdoor Anti-vibration Haptic Sensor Array | <ul><li>Temperature</li><li>Humidity</li><li>Solar Radiation</li><li>UV Index</li><li>Wind Direction</li><li>Wind Speed</li><li>Wind Gust Speed</li><li>Wind Max Daily Speed</li><li>Rain Rate</li><li>Rain Event Total</li><li>Rain Hourly Total</li><li>Rain Daily Total</li><li>Rain Weekly Total</li><li>Rain Monthly Total</li><li>Rain Yearly Total</li></ul> | <img src="./docs/assets/WS90.jpeg" alt="WS90" width="200"/> |

> :warning: **This plugin does not currently implement barometric (pressure) services and PM1.0/PM4.0 air quality services. While these are not supported natively by HomeKit as this time, they are planned to be implemented with custom characteristics, see [this issue](https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors/issues/5).**

Expand Down Expand Up @@ -168,7 +174,7 @@ It's recommended to configure the plugin through the Plugin Config UI on the Hom
| units.distance | `mi` | The units to display distance such as lightning strike distance. Possible values are: <br/><br/>`mi`: Miles<br/>`km`: Kilometers |
| units.temperature | `fh` | The units to display temperature. Possible values are: <br/><br/>`fh`: Fahrenheit<br/>`ce`: Celcius |
| thresholds | `{}` | A mapping of a weather data property to the trigger threshold for that property. By default no thresholds are set. Trigger thresholds should be specified in the units selected under the `units` configuration block. Possible keys are: <br/><br/>`windSpeed`<br/>`windGustSpeed`<br/>`windMaxDailySpeed`<br/>`rainRate`<br/>`rainEventTotal`<br/>`rainHourlyTotal`<br/>`rainDailyTotal`<br/>`rainWeeklyTotal`<br/>`rainMonthlyTotal`<br/>`rainYearlyTotal`<br/>`uvIndex`<br/>`lightningEvents`<br/>`lightningDistance *`<br/>`lightningTime *` <br/><br/> \*The value of the weather data property must be <strong>greater than</strong> the threshold to trigger the accessory (motion detected), except for `lightningDistance` and `lightningTime` which are triggered when the weather data property is <strong>less than</strong> the threshold. |
| hidden | `{}` | A mapping of a weather data property or device to whether it should be displayed. By default no weather data or devices are hidden. Possible keys to hide weather data are: <br/><br/>`windDirection`<br>`windSpeed`<br/>`windGustSpeed`<br/>`windMaxDailySpeed`<br/>`rainRate`<br/>`rainEventTotal`<br/>`rainHourlyTotal`<br/>`rainDailyTotal`<br/>`rainWeeklyTotal`<br/>`rainMonthlyTotal`<br/>`rainYearlyTotal`<br/>`solarRadiation`<br/>`uvIndex`<br/>`temperature`<br/>`humdity`<br/>`indoorTemperature`<br/>`indoorHumdity`<br/>`soilMoisture`<br/>`dewPoint`<br/>`waterLeak`<br/>`airQualityPM25`<br/>`airQualityPM25Avg`<br/>`airQualityPM10`<br/>`airQualityPM10Avg`<br/>`carbonDioxide`<br/>`carbonDioxideAvg`<br/>`lightningEvents`<br/>`lightningDistance`<br/>`lightningTime` <br/><br/> Possible keys to hide devices are: <br/><br>`GW1000`<br>`GW2000`<br>`HP2560`<br>`WH25`<br>`WH26`<br>`WN30`<br>`WN31`<br>`WN34`<br>`WH40`<br>`WH41`<br>`WH45`<br>`WH46`<br>`WH51`<br>`WH55`<br>`WH57`<br>`WS85`<br/> |
| hidden | `{}` | A mapping of a weather data property or device to whether it should be displayed. By default no weather data or devices are hidden. Possible keys to hide weather data are: <br/><br/>`windDirection`<br>`windSpeed`<br/>`windGustSpeed`<br/>`windMaxDailySpeed`<br/>`rainRate`<br/>`rainEventTotal`<br/>`rainHourlyTotal`<br/>`rainDailyTotal`<br/>`rainWeeklyTotal`<br/>`rainMonthlyTotal`<br/>`rainYearlyTotal`<br/>`solarRadiation`<br/>`uvIndex`<br/>`temperature`<br/>`humdity`<br/>`indoorTemperature`<br/>`indoorHumdity`<br/>`soilMoisture`<br/>`leafWetness`<br/>`waterLeak`<br/>`airQualityPM25`<br/>`airQualityPM25Avg`<br/>`airQualityPM10`<br/>`airQualityPM10Avg`<br/>`carbonDioxide`<br/>`carbonDioxideAvg`<br/>`lightningEvents`<br/>`lightningDistance`<br/>`lightningTime` <br/><br/> Possible keys to hide devices are: <br/><br>`GW1000`<br>`GW2000`<br>`HP2560`<br>`WH25`<br>`WH26`<br>`WN30` (Also use for `WN36`)<br>`WN31`<br>`WN34`<br>`WN35`<br>`WH40`<br>`WH41` (Also use for `WH43`)<br>`WH45`<br>`WH46`<br>`WH51`<br>`WH55`<br>`WH57`<br>`WH65`<br>`WS68`<br>`WS80`<br>`WS85`<br/>`WS90`<br> |
| nameOverrides | `[]` | A list of key value pairs that specifies the override name for an accessory service. Each override takes on the form: <br><br> `{"key": "<the-service-identifier>", "value", "<the-override-name"}` <br><br> The service identifier is specified in the form `YYYY(CHZ)` or if an accessory has multiple services the weather data property should be included in the identifier `YYYY(CHZ):<weather-data-property>`. <br><br>`YYYY` is the device id (e.g. WH41) <br> `(CHZ)` is the optional channel id if the device uses a channel. <br><br> The weather data property can be set to any of the weather data keys indicated in `hidden` |
| additional.staticNames | `false` | Set to `true` to not show the weather metric value in the service names of the accessory so that the service names do not change. |
| additional.validateMac | `true` | Check that the MAC address in each data report matches the MAC address specified for the plugin, and do not process the data report if it does not match. |
Expand Down Expand Up @@ -199,6 +205,10 @@ It's recommended to configure the plugin through the Plugin Config UI on the Hom

Contributions are welcomed! Please report bugs, suggest improvements, and open pull requests. For major pull requests, please open an issue first to discuss what you would like to change. See the [Contributing Guide](./docs/CONTRIBUTING.md) for more info.

## Supporting

This plugin requires my time and energy to develop and maintain, as well as the occasional Ecowitt device purchase. If you feel you have gotten value from this plugin, please consider [making a donation](https://www.paypal.com/donate/?business=4G6G3V4CYG2CY).

<span align="center" style="text-align:center">
<div align="center" style="text-align:center">

Expand Down
58 changes: 45 additions & 13 deletions config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,8 @@
"title": "UV Index",
"type": "number",
"notitle": true,
"minimum": 1,
"maximum": 15,
"required": false
},
"lightningEvents": {
Expand Down Expand Up @@ -276,11 +278,6 @@
"type": "boolean",
"required": false
},
"dewPoint": {
"title": "Dew Point",
"type": "boolean",
"required": false
},
"indoorTemperature": {
"title": "Indoor Temperature",
"type": "boolean",
Expand Down Expand Up @@ -311,6 +308,11 @@
"type": "boolean",
"required": false
},
"leafWetness": {
"title": "Leaf Wetness",
"type": "boolean",
"required": false
},
"airQualityPM25": {
"title": "PM2.5 Air Quality",
"type": "boolean",
Expand Down Expand Up @@ -396,6 +398,11 @@
"type": "boolean",
"required": false
},
"WN35": {
"title": "WN35",
"type": "boolean",
"required": false
},
"WH40": {
"title": "WH40",
"type": "boolean",
Expand Down Expand Up @@ -431,10 +438,30 @@
"type": "boolean",
"required": false
},
"WH65": {
"title": "WH65",
"type": "boolean",
"required": false
},
"WS68": {
"title": "WS68",
"type": "boolean",
"required": false
},
"WS80": {
"title": "WS80",
"type": "boolean",
"required": false
},
"WS85": {
"title": "WS85",
"type": "boolean",
"required": false
},
"WS90": {
"title": "WS90",
"type": "boolean",
"required": false
}
}
},
Expand Down Expand Up @@ -637,13 +664,13 @@
"hidden.rainYearlyTotal",
"hidden.solarRadiation",
"hidden.uvIndex",
"hidden.dewPoint",
"hidden.indoorTemperature",
"hidden.temperature",
"hidden.indoorHumidity",
"hidden.humidity",
"hidden.soilMoisture",
"hidden.waterLeak"
"hidden.waterLeak",
"hidden.leafWetness"
]
},
{
Expand Down Expand Up @@ -679,27 +706,32 @@
"hidden.HP2560",
"hidden.WH25",
"hidden.WH26",
"hidden.WN30"
"hidden.WN30",
"hidden.WN31"
]
},
{
"type": "flex",
"items": [
"hidden.WN31",
"hidden.WN34",
"hidden.WN35",
"hidden.WH40",
"hidden.WH41",
"hidden.WH45"
"hidden.WH45",
"hidden.WH46",
"hidden.WH51"
]
},
{
"type": "flex",
"items": [
"hidden.WH46",
"hidden.WH51",
"hidden.WH55",
"hidden.WH57",
"hidden.WS85"
"hidden.WH65",
"hidden.WS68",
"hidden.WS80",
"hidden.WS85",
"hidden.WS90"
]
}
]
Expand Down
Binary file added docs/assets/WN35.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/WN36.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/WS68.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/WS80.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/WS90.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@
"private": false,
"displayName": "Homebridge Ecowitt Weather Sensors",
"name": "homebridge-ecowitt-weather-sensors",
"version": "2.3.1-beta",
"version": "2.4.0-beta",
"description": "Complete HomeKit support for Ecowitt Weather Sensors through Homebrige",
"license": "Apache-2.0",
"homepage": "https://github.com/rhockenbury/homebridge-ecowitt-weather-sensors#readme",
"icon": "https://raw.githubusercontent.com/rhockenbury/homebridge-ecowitt-weather-sensors/master/docs/assets/ecowitt-logo.png",
"funding": {
"type": "paypal",
"url": "https://www.paypal.com/donate/?business=4G6G3V4CYG2CY"
},
"repository": {
"type": "git",
"url": "git://github.com/rhockenbury/homebridge-ecowitt-weather-sensors.git"
Expand Down
Loading