Skip to content

Xorfor/HA-PWS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PWS

This Home Assistant configuration allows you to get the data directly from your own PWS (personal weather station). So this does NOT require that you register your PWS to cloud accounts, like WeatherUnderground (support will finish in the near future!), Ecowitt, WeatherCloud, WOW (takes weeks to get key), etc, or the use of WeeWX (extra software).

This configuration will directly capture the data from your weather station!

Support

By me a 🍺

Supported devices

In general, if the station is supplied with EasyWeather software (version 1.4.x, 1.5.x, 1.6.x), it is likely that the station will work with this HA Configuration!

Prerequisites

Your PWS needs to be connected to your network. This can be done by using WS View app.

WS View Plus (WS View or WS Tool)

If supported by your PWS, connect your PWS with WS View Plus (and also the 'older' WS View or WS Tool) to your router by wifi, so that your PWS can upload weather data to Home Assistant.

  1. Install WS View Plus on your mobile device
  2. , or WS View
  3. , or WS Tool
  4. Follow the instructions to connect your PWS to your router
  5. Goto to Device List in Menu and choose your PWS
  6. Click on Next until you are on on the Customized page
  7. Choose Enable
  8. For Protocol Type Same As choose Ecowitt
    • With Ecowitt the data will be send with a POST. Wunderground is using a GET, which is not (yet) supported by a HA webhook.
  9. For Server IP / Hostname enter your HA Server ip address, eg. 192.168.0.10
  10. For Path enter: /api/webhook/pws
  11. Port enter a port number 8123
  12. Upload Interval, leave it 60 seconds
  13. Click on Save

Configuration

Use the latest version of HA!

Use the configuration.yaml to setup the PWS entities.

Use the customize.yaml to get appropriate icons for the entities

Sensors

ID Type UoM Description
sensor.pws_temperature Float °C Outdoor temperature
sensor.pws_temperature_indoor Float °C Indoor temperature
sensor.pws_humidity Int % Outdoor humidity
sensor.pws_humidity_indoor Int % Indoor humidity
sensor.pws_barometer_relative Float hPa Pressure (relative)
sensor.pws_barometer_absolute Float hPa Pressure (absolute)
sensor.pws_rainrate Float mm/h Current rain rate
sensor.pws_rain Float mm Rain daily total
sensor.pws_solar_radiation Float W/m2 Solar radiation
sensor.pws_uv Int UV Index UV Index
sensor.pws_wind_speed Float m/s Wind speed
sensor.pws_wind_gust Float m/s Wind gust
sensor.pws_wind_direction Int ° Wind direction
sensor.pws_wind_direction_text Text Wind direction in text, like 'NNE', 'N', 'SSW', 'SW', etc. (calculated, based on sensor.pws_wind_direction)
sensor.pws_stationtype Text Firmware name/version, eg. EasyWeatherV1.6.4
sensor.pws_model Text Weatherstation model, eg. WS2900
sensor.pws_dewpoint Float °C Dew point (calculated, because it is not supported in the Ecowitt protocol)
sensor.pws_windchill Float °C Windchill (calculated, because it is not supported in the Ecowitt protocol)
sensor.pws_heat_index Float °C Heat index (calculated, based on sensor.pws_temperature and sensor.pws_humidity)
sensor.pws_platform Text HA platform in this configuration, eg. webhook (for debugging)
sensor.pws_webhook_id Text HA name for this webhook in the configuration, pws (for debugging)

Screenshots

Screenshot Screenshot

Data

Example of data received from the PWS:

Data: {
  "PASSKEY": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
  "baromabsin": "30.039",
  "baromrelin": "30.068",
  "dailyrainin": "0.921", 
  "dateutc": "2022-09-17 21:19:41", 
  "eventrainin": "1.461", 
  "hourlyrainin": "0.031", 
  "humidity": "95", 
  "humidityin": "59", 
  "maxdailygust": "19.5", 
  "model": "WS2900", 
  "monthlyrainin": "3.461", 
  "rainratein": "0.000", 
  "solarradiation": "0.00", 
  "stationtype": "EasyWeatherV1.6.4", 
  "tempf": "52.9", 
  "tempinf": "68.2", 
  "totalrainin": "131.039", 
  "uv": "0", 
  "weeklyrainin": "1.472", 
  "winddir": "173", 
  "windgustmph": "1.1", 
  "windspeedmph": "0.9", 
  "yearlyrainin": "131.039"
  }

Data can be retrieved by using this general automation:

alias: Webhook Debugger
description: PWS Debugger
trigger:
  - platform: webhook
    webhook_id: pws
action:
  - service: persistent_notification.create
    data_template:
      message: |-
        {% if 'data' in trigger %}
          Data: {{ dict(trigger.data)|tojson }}
        {% elif 'json' in trigger %}
          JSON: {{ dict(trigger.json)|tojson }}
        {% endif %} {% if 'query' in trigger and trigger.query|length > 0 %}
          Query: {{ dict(trigger.query)|tojson }}
        {% endif %}

Possibilities

Display rain per day

Display rainrate over a week

About

Capture data directly from your PWS into Home Assistant

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published