Skip to content

Releases: ivanlee1007/Uninus-OpenCWA

Uninus OpenCWA 1.5.4

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 10 Oct 12:36
0ddef06

Uninus OpenCWA 1.5.4

  • 專案、Home Assistant/HACS 顯示名稱、設定畫面與裝置品牌統一為 Uninus OpenCWA。
  • GitHub repository 更名為 ivanlee1007/Uninus-OpenCWA;同步更新中英文文件、安裝與問題回報連結。
  • 保留 opencwb integration 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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 10 Oct 10:10
4e6be8a

修復

  • 修正 CWA 請求重複參數與地名重複編碼。
  • 使用資料集適用的 LocationName/Authorization/format,移除繼承的 OpenWeatherMap 參數。
  • 觀測站仍於本地選擇最近站,預報筆數限制於本地套用。

驗證

105 項 Python 測試通過,編譯與 GitHub CI 通過。

未部署到 Home Assistant;請求建構缺陷已修正,但未宣稱已驗證現場逾時完全消失。

OpenCWA 1.5.2

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 03 Oct 14:36

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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 20 Jul 03:09

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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 19 Jul 14:45

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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 19 Jul 09:44

OpenCWA v1.4.1

作物名稱輔助選擇

  • 將農業「作物名稱」改為可搜尋的 Home Assistant 下拉選單。
  • 內建高雄農來訊 CropVType catalog 的 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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 19 Jul 06:16

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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 17 Jul 14:01

CWA REST alert-record parser fix

  • Parse the live CWA REST API dataset/records/record structure 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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 17 Jul 13:44

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

Choose a tag to compare

@ivanlee1007 ivanlee1007 released this 17 Jul 12:52

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.