Since a month I am using Home Assistant. After reading a lot of the fragmented documentation and with some help on the forum, finally I got my Ventus W830 weatherstation connected. Data is directly send to HA!!! So this configuration does NOT require that you register your PWS to cloud accounts, like WeatherUnderground (support will finish in the near future!), Ecowitt (also displays your indoor sensors in the cloud!), WeatherCloud, WOW, etc, or the use of WeeWX (extra software).
In general, if your PWS is supplied with EasyWeather
software, it is likely that the PWS will work with this configuration.
Your PWS needs to be connected to your network. This can be done by using the WS View
app.
WS View (WS Tool)
If supported by your PWS, connect your PWS with WS View
(and also the âolderâ WS Tool
) to your router by wifi, so that your PWS can upload weather data to Domoticz.
- Install
WS View
on your mobile device
- , or
WS Tool
- Follow the instructions to connect your PWS to your router
- Goto to Device List in Menu and choose your PWS
- Click on Next untill you are on on the
Customized
page - Choose
Enable
- For
Protocol Type Same As
chooseEcowitt
- With Ecowitt the data will be send with a POST. Wunderground is using a GET, which is not (yet) supported by a HA webhook.
- For
Server IP / Hostname
enter your HA Server ip address, eg. 192.168.0.10 - For
Path
enter:/api/webhook/pws
-
Port
enter a port number8123
-
Upload Interval
, leave it60
seconds - Click on
Save
Place the following in your configuration.yaml
:
template:
- trigger:
- platform: webhook
webhook_id: pws
sensor:
#
# --------------------------------------------------------------------------------
#
# Temperature
- name: "PWS - Temperature"
device_class: temperature
state: "{{ ((trigger.data.tempf | float - 32) / 1.8) | round(1) }}"
unit_of_measurement: "°C"
- name: "PWS - Temperature (indoor)"
device_class: temperature
state: "{{ ((trigger.data.tempinf | float - 32) / 1.8) | round(1) }}"
unit_of_measurement: "°C"
#
# --------------------------------------------------------------------------------
#
# Humidity
- name: "PWS - Humidity"
device_class: humidity
state: "{{ trigger.data.humidity }}"
unit_of_measurement: "%"
- name: "PWS - Humidity (indoor)"
device_class: humidity
state: "{{ trigger.data.humidityin }}"
unit_of_measurement: "%"
#
# --------------------------------------------------------------------------------
#
# Barometer
- name: "PWS - Barometer (relative)"
device_class: pressure
state: "{{ (trigger.data.baromrelin | float * 33.86) | round(1) }}"
unit_of_measurement: "hPa"
- name: "PWS - Barometer (absolute)"
device_class: pressure
state: "{{ (trigger.data.baromabsin | float * 33.86) | round(1) }}"
unit_of_measurement: "hPa"
#
# --------------------------------------------------------------------------------
#
# Rain
- name: "PWS - Rainrate"
state: "{{ (trigger.data.rainratein | float * 25.4) | round(0) }}"
unit_of_measurement: "mm/h"
- name: "PWS - Rain"
state: "{{ (trigger.data.dailyrainin | float * 25.4) | round(0) }}"
unit_of_measurement: "mm"
#
# --------------------------------------------------------------------------------
#
# Sun
- name: "PWS - Solar radiation"
device_class: illuminance
state: "{{ trigger.data.solarradiation }}"
unit_of_measurement: "W/m²"
- name: "PWS - UV"
device_class: illuminance
state: "{{ trigger.data.uv }}"
unit_of_measurement: "UV Index"
#
# --------------------------------------------------------------------------------
#
# Wind
- name: "PWS - Wind speed"
state: "{{ (trigger.data.windspeedmph | float * 0.44704) | round(1) }}"
unit_of_measurement: "m/s"
- name: "PWS - Wind gust"
state: "{{ (trigger.data.windgustmph | float * 0.44704) | round(1) }}"
unit_of_measurement: "m/s"
- name: "PWS - Wind direction"
state: "{{ trigger.data.winddir }}"
unit_of_measurement: "°"
#
# --------------------------------------------------------------------------------
#
# Misc
- name: "PWS - Stationtype"
state: "{{ trigger.data.stationtype }}"
unit_of_measurement: ""
#
# --------------------------------------------------------------------------------
#
# Ecowitt does not support the extra information as with Wunderground, so lets calculate them
#
# Dewpoint
# https://www.ajdesigner.com/phphumidity/dewpoint_equation_dewpoint_temperature.php
- name: "PWS - Dewpoint"
state: "{{ ((trigger.data.humidity | float / 100) ** (1 / 8) * (112 + 0.9 * ((trigger.data.tempf | float - 32) / 1.8)) + 0.1 * ((trigger.data.tempf | float - 32) / 1.8) - 112) | round(1) }}"
unit_of_measurement: "°C"
Place the following lines in the customize.yaml
, to get better icons for some entities:
sensor.pws_wind_speed:
icon: mdi:weather-windy
sensor.pws_wind_gust:
icon: mdi:weather-windy
sensor.pws_wind_direction:
icon: mdi:weather-windy
sensor.pws_rainrate:
icon: mdi:weather-rainy
sensor.pws_rain:
icon: mdi:weather-rainy