Loading repository data…
Loading repository data…
MaxensF / repository
A Home Assistant custom integration to receive and display data from Personal Weather Stations (PWS) via HTTP.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
This custom Home Assistant integration allows you to receive real-time data from your Personal Weather Station and expose it as sensors inside Home Assistant. It uses an HTTP endpoint to receive sensor updates and automatically creates or updates sensors for temperature, humidity, pressure, and more.
The integration relies on a predefined list of sensors in SENSOR_LIST.
Typical supported keys include:
temperature)humidity)pressure)wind_speed)rainfall)Each sensor supports metadata such as name, unit of measurement, icon, and device class.
The following personal weather stations have been confirmed to work with this integration:
Other stations may also work if they can send HTTP/HTTPS GET requests with query parameters matching the keys defined in . Feel free to try your own weather station and see if it works, and consider contributing any new compatible models to the project!
SENSOR_LISTSome weather stations do not natively support custom upload URLs. Two workarounds are available:
[!WARNING] WSLink Add-on v0.0.7 is currently broken and is not compatible with this integration. Until the issue is resolved, please use @derbmann's fork.
https://my-home-assistant.duckdns.org or http://192.168.1.100:8123).bresser_station).[!IMPORTANT]
Bresser stations support either HTTP or HTTPS. If your connection fails, switch to the alternative protocol and update your URL in the WSLink App accordingly.
This integration is available in the default HACS store. You do not need to add a custom repository anymore!
custom_components/personal_weather_station.__init__.py, sensor.py, manifest.json, etc.).Set at least these parameters :
http://<HOME_ASSISTANT_IP>:8123Important : In your weather station configuration, make sure to set the URL to point to your Home Assistant instance
The integration exposes an HTTP endpoint that your weather station can call:
http://<home_assistant_ip>:8123/weatherstation/updateweatherstation.php
Query parameters format:
?ID=<device_id>&PASSWORD=<password>&temperature=22.5&humidity=55
ID: Unique device ID (required).PASSWORD: a password known only to you (this is the station key).SENSOR_LIST.Make sure to set these parameters in the WSLink application:
http://<HOME_ASSISTANT_IP>:8123 (for http) or <HOME_ASSISTANT_DOMAIN> (for https) (depending on weather your Weather Station only supports http or https)This configuration will allow your Weather Station to send weather data correctly to Home Assistant via the PWS integration. As this integration only allows you to configure one station key, all of your Weather Stations should use the same.
[!IMPORTANT]
Bresser weather stations running firmware version 3.02 or later require SSL. With these versions, using HTTP will cause a silent failure, meaning no data will be transmitted. Note: There might be versions prior to 3.02 that also require SSL, but 3.02 is the first known version that definitively needs it. Home Assistant must therefore be configured with SSL enabled, and the URL configured in WSLink must use https instead of http.
Weather Station <ID>.http://192.168.1.23:8123/weatherstation/updateweatherstation.php?ID=my_station&PASSWORD=<password>&temperature=22.5&humidity=55
temperature and humidity for device my_station.The integration automatically creates entities based on the parameters received in each HTTP request. When a new parameter is sent that does not yet exist as a sensor in Home Assistant, the integration will generate a new entity for it under the device corresponding to the ID of the request.
Multiple requests can be sent sequentially to create new entities. You do not need to include all parameters in a single request. Any new parameter sent in a later request will automatically create its corresponding entity.
Entities have no default values, as they are created only when a value is received from the station. They always reflect the last received value.
HTTP request:
http://192.168.1.23:8123/weatherstation/updateweatherstation.php?ID=my_station&tempf=72&humidity=55&winddir=180
Will create the my_station device. Following entities will be attached to this device:
my_station.tempfmy_station.humiditymy_station.winddirSubsequent requests with new parameters (e.g., rainin=0.1) will create additional entities automatically without manual configuration.
When a value is received from the weather station, the integration automatically updates the corresponding entity:
This ensures that each entity always reflects the last received value in the appropriate type, while preserving non-numeric values as strings.
[!NOTE] This integration does not perform unit conversions itself. All values are stored as received in Weather Underground format (°F, mph, inHg, inches), and Home Assistant handles any necessary conversion to metric units if your system is configured in metric mode
When the integration is removed:
add_entities are removed.aiohttphttp, sensorcustom_components/personal_weather_station.__init__.py: Integration setup and HTTP endpoint.sensor.py: Sensor and device classes (PwsSensor and PwsDevice).const.py: DOMAIN and SENSOR_LIST.manifest.json: Integration metadata.Contributions are welcome!
Please read the Contributing Guidelines before opening an issue or submitting a pull request.
This software is released into the public domain under the Unlicense: