Skip to content

Commit

Permalink
Add WN30 and WH26
Browse files Browse the repository at this point in the history
  • Loading branch information
rhockenbury committed Sep 15, 2024
1 parent 78167f5 commit 18f5509
Show file tree
Hide file tree
Showing 40 changed files with 607 additions and 221 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
### 2.2.0-beta

* Add support for WH26 and WN30
* Renamed WH31 and WH34 to WN31 and WN34 respectively


### 2.2.0-beta

* Add support for WH41, WH43, WH45, WH46, and WH57
* Implement Air Quality, Carbon Dioxide, and Lightning sensors
* Minor adjustments to thresholds for low battery indication
Expand Down
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,20 +114,22 @@ This plugin currently supports the Ecowitt devices shown in the table below. If

| Device | Description | Service Types| Product Image |
| -------- | ------- | ------- | ------ |
| GW1000 / GW1100 | WiFi Weather Station Gateway | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/GW1000-GW1100.jpeg" alt="GW1000" width="200"/> |
| GW1200 | WiFi Weather Station Gateway | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/GW1200.jpeg" alt="GW1200" width="200"/> |
| GW2000 | WiFi Weather Station Gateway | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/GW2000.jpeg" alt="GW2000" width="200"/> |
| 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"/> |
| GW2000 | WiFi Weather Station Gateway | <ul><li>Indoor Temperature</li><li>Indoor Humidity</li></ul> | <img src="./docs/assets/GW2000.jpeg" alt="GW2000" width="200"/> |
| HP2550 (and variants) | 7" TFT Color Display Console | | <img src="./docs/assets/HP2550.jpeg" alt="HP2550" width="200"/> |
| HP2560 (and variants) | 7" TFT Color Display Console with Indoor Sensor Antenna | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/HP2560.jpeg" alt="HP2560" width="200"/> |
| HP3500 (and variants) | 4.3" TFT Color Display Console | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/HP3500.jpeg" alt="HP3500" width="200"/> |
| WH25 | Indoor Temperature, Humidity and Barometric Sensor | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/WH25.jpeg" alt="WH25" width="200"/> |
| WH31 / WN31 (All variants)| Multi-Channel Temperature and Humidity Sensor | <ul><li>Temperature</li><li>Humdity</li></ul> | <img src="./docs/assets/WH31.jpeg" alt="WH31" width="200"/> |
| WH34 / WN34 (All variants)| Multi-Channel Temperature Sensor | <ul><li>Temperature</li></ul> | <img src="./docs/assets/WN34.jpeg" alt="WH34" width="200"/> |
| HP2560 (and variants) | 7" TFT Color Display Console with Indoor Sensor Antenna | <ul><li>Indoor Temperature</li><li>Indoor Humidity</li></ul> | <img src="./docs/assets/HP2560.jpeg" alt="HP2560" width="200"/> |
| HP3500 (and variants) | 4.3" TFT Color Display Console | | <img src="./docs/assets/HP3500.jpeg" alt="HP3500" width="200"/> |
| 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"/> |
| 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"/> |
| 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"/> |
| 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 (All variants)| Wireless Soil Moisture Sensor | <ul><li>Soil Moisture</li></ul> | <img src="./docs/assets/WH51.jpeg" alt="WH51" 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"/> |
| 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"/> |
Expand Down Expand Up @@ -166,7 +168,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>`WH31`<br>`WH34`<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/>`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/> |
| 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
28 changes: 20 additions & 8 deletions config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,13 +371,23 @@
"type": "boolean",
"required": false
},
"WH31": {
"title": "WH31",
"WH26": {
"title": "WH26",
"type": "boolean",
"required": false
},
"WH34": {
"title": "WH34",
"WN30": {
"title": "WN30",
"type": "boolean",
"required": false
},
"WN31": {
"title": "WN31",
"type": "boolean",
"required": false
},
"WN34": {
"title": "WN34",
"type": "boolean",
"required": false
},
Expand Down Expand Up @@ -663,22 +673,24 @@
"hidden.GW2000",
"hidden.HP2560",
"hidden.WH25",
"hidden.WH31"
"hidden.WH26",
"hidden.WN30"
]
},
{
"type": "flex",
"items": [
"hidden.WH34",
"hidden.WN31",
"hidden.WN34",
"hidden.WH40",
"hidden.WH41",
"hidden.WH45",
"hidden.WH46"
"hidden.WH45"
]
},
{
"type": "flex",
"items": [
"hidden.WH46",
"hidden.WH51",
"hidden.WH55",
"hidden.WH57",
Expand Down
Binary file added docs/assets/WH26.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/WN30.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"private": false,
"displayName": "Homebridge Ecowitt Weather Sensors",
"name": "homebridge-ecowitt-weather-sensors",
"version": "2.2.0-beta",
"version": "2.3.0-beta",
"description": "Complete HomeKit support for Ecowitt Weather Sensors through Homebrige",
"license": "Apache-2.0",
"icon": "https://raw.githubusercontent.com/rhockenbury/homebridge-ecowitt-weather-sensors/master/docs/assets/ecowitt-logo.png",
Expand Down
6 changes: 4 additions & 2 deletions src/EcowittAccessory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ import * as utils from './Utils';
//------------------------------------------------------------------------------

export class EcowittAccessory {
public requiredData: string[] = [];
public optionalData: string[] = [];
public requiredData: string[] = []; // fields that must be provided
public optionalData: string[] = []; // fields that are used if available
public unusedData: string[] = []; // fields that are not used / displayed

protected readonly accessoryId: string;
protected readonly shortServiceId: string;

Expand Down
Loading

0 comments on commit 18f5509

Please sign in to comment.