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 Viewon 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
Customizedpage - Choose
Enable - For
Protocol Type Same AschooseEcowitt
- 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 / Hostnameenter your HA Server ip address, eg. 192.168.0.10 - For
Pathenter:/api/webhook/pws -
Portenter a port number8123 -
Upload Interval, leave it60seconds - 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



