- Reject blank or whitespace-only PWS credentials in both the config flow and
the options flow. INVALID_CREDENTIALS only held placeholder strings, so an
empty API ID or key passed validation, the entry was created, and
_validate_credentials then rejected every incoming packet.
- Fall back to "UNKNOWN" host/port when get_url raises NoURLAvailableError.
The values are shown as Ecowitt setup instructions only, so an unresolvable
Home Assistant URL must not make the step unreachable.
- Catch TimeoutError alongside ClientError in the Windy and Pocasi push paths.
A timeout is not a ClientError and used to escape into the webhook handler,
answering the station with HTTP 500 even though the measured data was
already stored.
- Add regression tests for all three and pin that 0-5 battery descriptions
really reach the WSLink sensor platform.