Repository navigation
Releases: ivanlee1007/Uninus-OpenCWA
Releases · ivanlee1007/Uninus-OpenCWA
Release list
Uninus OpenCWA 1.5.4
Uninus OpenCWA 1.5.4
- 專案、Home Assistant/HACS 顯示名稱、設定畫面與裝置品牌統一為 Uninus OpenCWA。
- GitHub repository 更名為
ivanlee1007/Uninus-OpenCWA;同步更新中英文文件、安裝與問題回報連結。 - 保留
opencwbintegration domain、安裝資料夾與既有識別碼,避免設定、作物子項目與自動化因品牌更名而失效。 - 整合與核心版本同步為 1.5.4,新增品牌相容性回歸測試。
Upgrade
HACS 自訂儲存庫請使用 https://github.com/ivanlee1007/Uninus-OpenCWA。手動安裝仍複製 custom_components/opencwb,不要將資料夾改名為 opencwa,也不要重複安裝。既有使用者自訂名稱不會強制改寫。
Verification
106 tests passed; configured flake8, compileall and whitespace validation passed. Independent review found no security or logic concerns. Pull request and merged-commit CI passed.
No live Home Assistant deployment or restart was performed. Original authorship and MIT license are retained.
v1.5.3 — CWA request fixes
修復
- 修正 CWA 請求重複參數與地名重複編碼。
- 使用資料集適用的 LocationName/Authorization/format,移除繼承的 OpenWeatherMap 參數。
- 觀測站仍於本地選擇最近站,預報筆數限制於本地套用。
驗證
105 項 Python 測試通過,編譯與 GitHub CI 通過。
未部署到 Home Assistant;請求建構缺陷已修正,但未宣稱已驗證現場逾時完全消失。
OpenCWA 1.5.2
OpenCWA 1.5.2 — Weather timeout resilience
Fixed
- Weather JSON requests use a 5-second connect timeout and 12-second read timeout, with at most two attempts and a 0.5-second retry delay for transient failures.
- HTTP 401/403 and malformed JSON are not retried. Error messages avoid exposing API keys or response bodies.
- Failed weather refreshes do not expose retained forecasts as current. A separate Weather Freshness sensor reports fresh/stale and the UTC last successful update.
- Warning integration behavior and its original 5-second timeout remain unchanged; warning safety issues are outside this release.
Verification
- Independent code review approved the weather-only change.
- 101 regression tests passed; 7 independent real loopback HTTP tests passed, including a 6-second response, timeout recovery, persistent timeout, and authorization failures.
- compileall, configured CI flake8 scope, and diff checks passed. GitHub Validate workflow passed for the release commit.
Limitations and update
- Real HA 2026.9.4 runtime, production HA, and live CWA feeds have not been exercised. Read timeout is socket inactivity, not a total streaming deadline.
- Persistent upstream failure still makes the weather entity unavailable; this release does not guarantee weather-chart-card can never show NaN.
- Back up your HA configuration, update OpenCWB to v1.5.2 in HACS, and restart HA yourself to load the new integration. No production HA was changed by this release.
OpenCWA 1.5.1
OpenCWA 1.5.1
Fixed
- Keep Crop Data Supported available when the provider confirms a crop is supported but has no matching local advisory rows.
- Supported crops with no local rows now report available/on instead of unavailable.
- Warning and advisory binaries remain fail-closed/unavailable for no-data, so missing rows are never presented as confirmed safe/off.
- Provider unavailable, stale, missing, and non-boolean support states remain unavailable.
Verification
- 83 tests passed.
- Exact CI flake8 and compile checks passed.
- Independent focused review and old-branch mutation test passed.
OpenCWA 1.5.0
OpenCWA 1.5.0 — Multi-crop agriculture
- One OpenCWA farm/location can now manage any number of crop records through native Home Assistant crop subentries.
- Add, edit, and remove crops independently; duplicate crop names are supported for separate plots or planting batches.
- Every crop has stable entity IDs, its own device, warning/advisory/notification state, and irrigation references.
- City weather, crop catalog, and warning rules are fetched once per farm update and shared across crops.
- Existing 1.4.x single-crop settings migrate into the first crop while preserving entity registry identity and customizations.
- Agriculture remains optional and default-off; provider failures remain isolated from CWA weather, forecast, and warnings.
- Options no longer return the stored agriculture token to the frontend schema; replacement and explicit clearing are supported.
Validated with 82 tests, Home Assistant Core 2026.7.2 live migration/add/edit/delete/disable/restart checks, and successful branch/master/tag CI.
OpenCWA v1.4.1
OpenCWA v1.4.1
作物名稱輔助選擇
- 將農業「作物名稱」改為可搜尋的 Home Assistant 下拉選單。
- 內建高雄農來訊
CropVTypecatalog 的 127 個官方C_NAME值。 - 加入常用名稱提示,例如
甘藍(高麗菜)、番石榴(芭樂)、蕹菜(空心菜)、羅勒(九層塔)。 - 選擇別名 label 時仍儲存 provider 官方值,避免俗名造成 unsupported/no_data。
- 保留 custom value,既有或新增加的作物名稱不會被強制清除。
- 顯示設定頁不會呼叫農業 provider;農業功能仍維持 optional 與 default-off。
驗證
- 65 unit tests、flake8、Python compilation、JSON validation 與敏感資訊掃描通過。
- 獨立 final review 通過。
- 已於 Home Assistant Core 2026.7.2 部署,實際 Web UI 驗證搜尋「高麗菜」可找到「甘藍(高麗菜)」與自訂值 fallback。
- HA config check、Core restart、Options Flow 與 master CI 通過。
OpenCWA v1.4.0
OpenCWA v1.4.0
農業資訊(選用、預設關閉)
- 新增高雄農來訊作物警戒與生產注意事項整合。
- 支援作物、生育期、災害規則、影響、防範與復耕資訊。
- 未設定農業 TOKEN 時,仍可使用公開的作物防災資料。
- 有效 TOKEN 可提供 ET0、Kc、ETc 與作物需水量參考;不直接控制灌溉設備。
安全與來源語意
- 農業 provider 完全 optional,預設停用;故障不阻斷 CWA weather、forecast 或 warning。
- provider unavailable/stale 時,binary 與 numeric sensors fail-safe unavailable,不呈現假安全。
- 明確標示
source_provider: 高雄農來訊、official_cwa_alert: false。 - TOKEN 使用 password selector,provider errors 與 logs 不回顯 credential。
驗證
- 64 unit tests、flake8、Python compilation、JSON validation 與敏感資訊掃描通過。
- 獨立 pre-commit review 通過。
- GitHub Actions Validate 通過。
- 已於 Home Assistant Core 2026.7.2 現場部署並驗證:default-off、Options Flow、tokenless enable/disable、來源 attribution、CWA 隔離、entity/registry 清理及零 OpenCWB errors。
OpenCWA v1.3.43
CWA REST alert-record parser fix
- Parse the live CWA REST API
dataset/records/recordstructure as independent alert records. - Restore each alert's official issue time, validity period, description, strong-wind level, and expiry handling in Home Assistant.
- Retain compatibility with flat and nested dataset XML forms.
Verification
- 30 tests passed
- flake8 passed for changed files
- compileall passed
- git diff --check passed
- Independent code review passed
- Actual live Home Assistant XML structure verified before implementation
OpenCWA v1.3.42
Land strong-wind advisory improvements
- Show the official CWA yellow/orange/red warning level and average-wind/gust Beaufort thresholds.
- Include equivalent lower-bound wind speeds, warning validity, and a plain-language danger explanation.
- Add actionable crop, greenhouse, netting, frame, film, and loose-material risk guidance.
- Clearly label agricultural impacts as threshold-based OpenCWA guidance, not an official CWA crop-loss forecast.
- Preserve each hazardous-weather dataset's own issue time, validity period, and official description when multiple alerts coexist.
- Prevent nested CWA Dataset wrappers from duplicating alerts or bypassing per-alert expiry.
Verification
- 29 tests passed
- flake8 passed
- compileall passed
- git diff --check passed
- Independent code review passed
v1.3.41
Location-aware typhoon alerts
- Alert only when one correlated CWA forecast track approaches Taiwan, may affect the configured coordinates, and an official CWA typhoon warning is active.
- Keep distant, missing, or incomplete track data in monitoring state.
- Display unnamed systems using the CWA tropical-depression number, such as TD12.
- Expose forecast distance and risk-decision attributes.