Commit Graph

278 Commits (793ea1991a4760fd1beb9f452e34bc129c798dc1)

Author SHA1 Message Date
SchiZzA 03d4e43a08
Organize imports in `__init__.py` 2026-07-25 21:45:08 +02:00
SchiZzA dfd2a2c05a
Added support for GET and POST endpoints. 2026-07-25 21:45:08 +02:00
SchiZzA 0060369d8a
Add health diagnostic sensor and extensive tests for sws12500
integration

- Introduce HealthDiagnosticSensor for device health status reporting
- Add new constants and data keys for health sensor integration
- Wire health_sensor module into sensor platform setup
- Refactor sensor descriptions to improve derived sensor handling
- Implement pytest fixtures and comprehensive tests covering:
  - Config flows and options validation
  - Data reception and authentication
  - Sensor platform setup and dynamic sensor addition
  - Push integration with Pocasi.cz and Windy API
  - Route dispatching and error handling
  - Utilities, conversions, and translation functions
2026-07-25 21:45:08 +02:00
SchiZzA 56c73a46a2
Remove numpy dependency and simplify range checks in heat_index function 2026-07-25 21:45:08 +02:00
SchiZzA 8aaa1aa2df
Fix typo in fallback handler name from unregistred to unregistered 2026-07-25 21:45:08 +02:00
SchiZzA 68302c3cfb
Anonymize data payload in PocasiPush logging 2026-07-25 21:45:08 +02:00
SchiZzA e6e173e229
Remove verify_ssl=False from async_get_clientsession calls 2026-07-25 21:45:07 +02:00
SchiZzA aff850492d
Update Windy integration to use station ID and password authentication
- Replace API key with station ID and password for authentication
- Change Windy API endpoint to v2 observation update
- Adapt data conversion for WSLink to Windy format
- Update config flow and translations accordingly
2026-07-25 21:45:07 +02:00
SchiZzA 2cbc198fd0
Update README.md 2026-07-25 21:45:07 +02:00
schizza 078af9a325
Cherry pick README.md 2026-07-25 21:45:07 +02:00
SchiZzA 144108fba1
Refactor SWS12500 integration for push-based updates
- Add detailed architecture overview in __init__.py
- Introduce shared runtime keys in data.py to avoid key conflicts
- Implement dual route dispatcher for webhook endpoint selection
- Enhance sensor platform for dynamic sensor addition without reloads
- Rename battery level "unknown" to "drained" with updated icons
- Improve utils.py with centralized helpers for remapping and discovery
- Update translations and strings for consistency
2026-07-25 21:45:07 +02:00
SchiZzA 42e7225477
Improve data validation and error logging in utils.py 2026-07-25 21:45:07 +02:00
SchiZzA 21e1b81bb8
Rename battery_level_to_text to battery_level and update docstring 2026-07-25 21:45:06 +02:00
SchiZzA c530a74503
Fix logging of unregistered route to include path 2026-07-25 21:45:06 +02:00
SchiZzA d814c9942d
Improve type safety, add data validation, and refactor route handling
- Add typing and runtime checks with py_typecheck for config options and
  incoming data
- Enhance authentication validation and error handling in data
  coordinator
- Refactor Routes class with better dispatch logic and route
  enabling/disabling
- Clean up async functions and improve logging consistency
- Add type hints and annotations throughout the integration
- Update manifest to include typecheck-runtime dependency
2026-07-25 21:45:06 +02:00
SchiZzA 35fd0585f9
Config_flow for Ecowitt 2026-07-25 21:45:06 +02:00
SchiZzA aaaab107de
Refactor config_flow, add support for Ecowitt configuration 2026-07-25 21:45:06 +02:00
SchiZzA 7582f1e9b4
fix: Corrected RAIN and DAILYRAIN for PWS protocol.
The `RAININ` suppose to be accumulated rainfall in 60 minutes. So the
unit must be in `mm/h` or `in/h`.
In the opposite `DAILYRAIN` is rain in the day do far, represented in
accumulated `mm` or `in`.
2026-05-18 20:49:01 +02:00
SchiZzA 485c56a6b8
Bump version to 1.8.5
- Bump version to 1.8.5.
- update README
2026-05-12 00:32:37 +02:00
SchiZzA 93fd85a487
Add HCHO / VOC air-quality sensors (T9 module)
Support the WSLink t9 air-quality module:
  - t9hcho (formaldehyde, ppb),
  - t9voclv (VOC level 1-5 -> ENUM state)
  - t9bat (0-5 battery -> percentage).

  The t9hcho/t9voclv/t9bat values are dropped when
  t9cn reports the module as disconnected,
  so no empty entities are created.

  - const: HCHO/VOC/T9_BATTERY keys, VOCLevel enum +
  VOC_LEVEL_MAP, BATTERY_NON_BINARY, CONNECTION_GATED_SENSORS,
  REMAP_WSLINK_ITEMS entries
  - utils: voc_level_to_text(),
  battery_5step_to_pct(), connection gating
  - sensors_wslink: HCHO / VOC / T9_BATTERY entity
  descriptions
  - translations (en, cs): hcho, voc (+ states),
  t9_battery
  - tests: tests/conftest.py +
  tests/test_t9_air_quality.py
2026-05-11 23:55:36 +02:00
Lukas Svoboda 8547e7a7f5
Update README.md 2026-04-11 17:26:16 +02:00
Lukas Svoboda 6ba7d284de
Update README with Ecowitt station support details
Added information about Ecowitt station support and pre-release details.
2026-04-11 16:53:32 +02:00
Lukas Svoboda 4208d9d3c9
Update README with integration renaming and setup details
Clarified integration renaming and migration plans, updated WSLink app instructions, and corrected minor typos.
2026-04-10 18:42:52 +02:00
SchiZzA bab704b125
Bump version to 1.8.4 2026-03-05 15:56:02 +01:00
SchiZzA faf07189c5
Updated `config_flow`.
Updated `config_flow` as in HA 2026.3+ will crash on reconfiguring
options.
2026-03-05 15:53:03 +01:00
SchiZzA 5a1d04944e
Bump version. 2026-02-28 18:43:18 +01:00
SchiZzA 30b88a0f13
Fix options flow and route switching after config updates
- Keep OptionsFlow state in sync by building defaults from entry data + options
- Store the config entry on the coordinator for consistent access
- Make route registry method-aware and switch handlers by url_path with
  awarness of POST/GET method.
- Fixed an issue, when on config update needs restart of HomeAssistant
  to reload integration.
2026-02-28 18:37:19 +01:00
SchiZzA 048bd6bd4c
Fix Windy credential validation for None/blank options
Normalize Windy station ID and password from config options and require both values before enabling Windy resend.
2026-02-26 19:33:36 +01:00
Lukas Svoboda 3822557f74
Merge pull request #96 from schizza/fix/push_data_not_accepted
Added support for POST and GET methods in WSLink.
2026-02-26 19:07:16 +01:00
SchiZzA 96094105e0
Added support for POST and GET methods in WSLink.
Some stations sending data in POST method and some in GET method.
We now support both variants.
2026-02-26 18:09:52 +01:00
SchiZzA 6b8fdd5477
Accept push data for WSLink. 2026-02-25 08:30:55 +01:00
SchiZzA b0bae69f33
Update version. 2026-02-23 18:41:58 +01:00
Lukas Svoboda 5ca0d65cd6
Fixing error when Windy was not set correctly. (#95)
* Fixing error when Windy was not set correctly.

Fixed an issue when integration fails to send data to Windy and crashed,
so no data was accepted from station.
Windy resend is disabled on misconfiguration detect.

* Fixed WSLink bool in resend function.
2026-02-23 18:31:25 +01:00
SchiZzA 55652415f4
Update README.md 2026-02-03 17:48:23 +01:00
SchiZzA ab69cea054
Update README to reflect new stations and future plans
- Add support for SWS 10500 and Pocasi Meteo
- Announce upcoming Ecowitt support and integration rename
- Clarify WSLink SSL proxy requirements and upgrade instructions
2026-02-03 17:43:39 +01:00
Lukas Svoboda 965f562c53
Merge pull request #92 from schizza/wslink_api_update
Update Windy integration to use new API endpoint
2026-01-30 17:17:08 +01:00
SchiZzA cf1026f2b9
Update Windy integration to use station ID and password authentication
- Replace API key with station ID and password for Windy data push
- Change Windy update URL and add authorization header
- Update config flow and constants to support new credentials
- Adjust data mapping for WSLink compatibility
- Change WSLink endpoint HTTP method to POST
2026-01-30 17:14:21 +01:00
Lukas Svoboda 9f36ab5d4c
Add CODEOWNERS file with owner assignment 2026-01-17 10:26:07 +01:00
Lukas Svoboda 94ec3cb0e5
Merge pull request #86 from schizza/fix/index_computing
Fix Heat Index and Chill Index
2025-12-22 11:47:42 +01:00
SchiZzA 743e62c6dd
Fix Heat Index and Chill Index
Fixed computing Heat and Chill index in cases that outside senosor
battery is drained and station stop sending data for outside temp,
humidity and wind.
2025-12-22 11:47:02 +01:00
Lukas Svoboda 6edaec73d8
Merge pull request #83 from schizza/recactor/fixes
Recactor/fixes
2025-11-17 00:29:50 +01:00
Lukas Svoboda 44d0ee5c7b
Merge branch 'stable' into recactor/fixes 2025-11-17 00:29:40 +01:00
SchiZzA e482fcea2b
Fix typecheck issues 2025-11-17 00:28:37 +01:00
Lukas Svoboda 826a9a71cc
Merge pull request #82 from schizza/readme_update
Update README
2025-11-16 22:40:14 +01:00
SchiZzA 08de8b5570
Update README 2025-11-16 22:36:05 +01:00
SchiZzA 0679f1e559
Fix typos, fix await in windy_func 2025-11-16 19:18:29 +01:00
Lukas Svoboda 0c42c8d827
Merge pull request #81 from schizza/feature/pocasi_cz
Support for resending data to Pocasi Meteo CZ
2025-11-16 19:09:53 +01:00
SchiZzA de346ed914
Fix: Retain dat for other options, while configuring Pocasi CZ 2025-11-16 19:02:24 +01:00
SchiZzA 7950e1be46
Add Pocasi CZ push to server support
Added `pocasi_cz.py` component to handle resending data to Pocasi CZ
server.
2025-11-16 18:37:01 +01:00
SchiZzA 0d47e14834
Add Počasí Meteo CZ integration to options flow and constants
Introduce new config step for Počasí Meteo CZ with validation and UI
schema. Define related constants and translation keys for setting up
data forwarding.
2025-11-16 15:37:13 +01:00