Skip to content

Releases

v1.9.0

Choose a tag to compare

@foXaCe foXaCe released this 17 Aug 05:27

v1.9.0 — Integration overhaul

Added

  • Price sensor metrics as dedicated entities (market cap, volume, 1h-1y changes, supplies, ATH, rank) — 13 per coin
  • Mining metrics as dedicated entities (difficulty, block height, retarget, halving, fees, hashrate, workers, blocks)
  • sensor_descriptions.py: frozen+kw_only EntityDescription with value_fn
  • 33 entity translation keys (EN + FR, vouvoiement) + icons.json + brand/ icons
  • Automation examples + use cases in README

Changed

  • Minimum HA bumped to 2025.11 (UpdateFailed retry_after)
  • Structure: const/const.py → const.py, helper/ → api/, options_flow.py
  • Perf: entry setup 0.77s → 0.01s (background first refresh)

Fixed

  • Rate-limit backoff honors CoinGecko Retry-After
  • no_results error lost in reconfigure flow
  • Gitleaks false positive (translation_key)

v1.8.4

Choose a tag to compare

@github-actions github-actions released this 16 Aug 08:54

📦 Uncategorized

  • chore(deps): update dependency ruff to >=0.15.20
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.20
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v2.2.0
  • chore(deps): update dependency ruff to >=0.15.21
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.21
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v2.3.0
  • chore(deps): update pre-commit hook codespell-project/codespell to v2.4.3
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.22
  • chore(deps): update dependency ruff to >=0.15.22
  • chore(deps): update dependency pre-commit to >=4.6.1
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.16.0
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.16.1
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.16.2
  • chore(deps): update dependency pre-commit to >=4.6.2
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.16.3
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v2.3.1

v1.8.3

Choose a tag to compare

@github-actions github-actions released this 25 Jun 13:10
56c3c23

📦 Uncategorized

  • chore(config): migrate Renovate config
  • chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.19
  • chore(deps): update home-assistant
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.20.2
  • chore(deps): update dependency pre-commit to >=3.8.0
  • chore(deps): update dependency mypy to >=1.20.2
  • chore(deps): update dependency pytest to >=8.4.2
  • chore(deps): update pre-commit hook codespell-project/codespell to v2.4.2
  • chore(deps): update dependency pytest-asyncio to >=0.26.0
  • chore(deps): update dependency ruff to >=0.15.19
  • chore(deps): update actions/dependency-review-action action to v5
  • chore(deps): update dependency pre-commit to v4
  • chore(deps): update dependency pytest-asyncio to v1
  • chore(deps): update actions/checkout action to v7
  • chore(deps): update home-assistant
  • chore(deps): update actions/setup-python action to v6
  • chore(deps): update actions/stale action to v10
  • chore(deps): update dependency pytest to v9
  • chore(deps): update dependency mypy to v2
  • chore(deps): update codecov/codecov-action action to v7
  • chore(deps): update dependency pytest-cov to v7
  • chore(deps): update github/codeql-action action to v4
  • chore(deps): update mikepenz/release-changelog-builder-action action to v6
  • chore(deps): update gitleaks/gitleaks-action action to v3
  • refactor: dedupe price unique_id, drop dead code, hoist imports
  • chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v2
  • chore(deps): update softprops/action-gh-release action to v3
  • chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v6
  • chore(release): 1.8.3

v1.8.2

Choose a tag to compare

@github-actions github-actions released this 24 Jan 07:54

Fixed

  • Sensor: Remove incompatible device_class monetary (was causing HA warnings with state_class measurement)

v1.8.1

Choose a tag to compare

@foXaCe foXaCe released this 23 Jan 21:51

Fixed

  • CI: Ignore PT001 in tests to avoid ruff auto-fix conflict
  • CI: Use space-separated ignore list for HACS validation
  • CI: Ignore HACS topics and issues checks
  • HACS: Remove invalid keys from root hacs.json and duplicate file
  • CI: Resolve pre-commit and mypy compatibility issues

Changed

  • Refactor: Upgrade to Home Assistant Quality Scale standards
    • Added circuit breaker and rate limiting patterns to API clients
    • Improved exception handling with typed exceptions
    • Added UTC-aware datetime usage
    • Enhanced resilience with retry logic and exponential backoff

v1.8.0 - Complete CKPool Mining Stats

Choose a tag to compare

@foXaCe foXaCe released this 04 Oct 13:25

✨ New Features

  • Workers Count: Display active worker count
  • Best Share: Show best share with auto-formatting (M/G units)
  • Best Ever: Display all-time best share

📊 Complete Mining Dashboard

Your CKPool sensor now displays:

  • Hashrate: Current mining speed (1m average)
  • Hashrate 1h: 1-hour average
  • Hashrate 24h: 24-hour average
  • Workers: Active miners count
  • Best Share: Current best (e.g., "153.78 M")
  • Best Ever: All-time best (e.g., "1.32 G")
  • Blocks Found: Total blocks mined

🎯 Example Output

Sensor: 1110 GH/s

Attributes:
- Hashrate 1h: 1050 GH/s
- Hashrate 24h: 1030 GH/s
- Workers: 1
- Best Share: 153.78 M
- Best Ever: 1.32 G
- Blocks Found: 0

🔧 Technical Details

  • Parses worker count from workers array in HTML
  • Extracts bestShare (JavaScript number format)
  • Extracts bestEver (escaped string format)
  • Auto-formats large numbers with M (millions) and G (billions) units

Restart Home Assistant to see all the new stats!

v1.7.2 - Fix EU Pool Escaped JSON Parsing

Choose a tag to compare

@foXaCe foXaCe released this 04 Oct 13:16

🐛 Critical Bug Fix

  • Fix EU pool HTML parsing - Correctly handle escaped JSON strings from Next.js
  • EU pool embeds JSON data as escaped strings (\"hashrate1m\":\"1110000000000\")
  • Sensor now displays correct hashrate instead of "Unknown"

✅ Verified Working

Tested with real EU pool data:

  • Hashrate: 1110 GH/s (1.11 TH/s) ✅
  • 1-hour average: 1050 GH/s ✅
  • 24-hour average: 1030 GH/s ✅

🔧 Technical Details

The EU pool's Next.js frontend escapes JSON data in JavaScript strings. This release adds proper regex patterns to extract data from the escaped format:

  • Before: "hashrate1m":"..." ❌
  • After: \"hashrate1m\":\"...\" ✅

Action Required: Restart Home Assistant to apply the fix.

v1.7.1 - EU Pool HTML Parsing Fix

Choose a tag to compare

@foXaCe foXaCe released this 04 Oct 12:58

🐛 Bug Fixes

  • Fix EU pool (eusolostats.ckpool.org) returning "Unknown" state
  • Add automatic HTML parsing for EU pool Next.js page
  • Detect content type and handle both JSON API (Global pool) and HTML (EU pool) transparently
  • Extract hashrate data from embedded JSON in HTML

🔧 Technical Details

The EU pool uses a Next.js frontend that embeds JSON data in HTML instead of providing a direct JSON API. This release adds smart detection and parsing for both formats:

  • Global pool (solo.ckpool.org): Direct JSON API ✅
  • EU pool (eusolostats.ckpool.org): HTML with embedded JSON ✅

Your mining stats will now display correctly regardless of which pool you use!

v1.7.0 - CKPool Multi-Region Support

Choose a tag to compare

@foXaCe foXaCe released this 04 Oct 12:52

✨ New Features

  • CKPool Pool Region Selection: Choose between EU pool (eusolostats.ckpool.org) and Global pool (solo.ckpool.org)
  • Automatic Format Detection: Seamlessly handles both EU pool format (integers in H/s) and Global pool format (strings with units like "3.12T")
  • Default to EU Pool: Pre-selected for European users

🐛 Bug Fixes

  • Fix CKPool sensor showing "Unknown" for addresses without mining history (now shows 0 GH/s)
  • Handle HTTP 404 responses gracefully
  • Parse JSON response correctly instead of attempting HTML parsing

🔧 Improvements

  • Robust hashrate unit conversion supporting K, M, G, T, P units
  • Better error handling and logging
  • Add bestshare attribute to sensor

📝 Notes

  • Existing CKPool sensors will default to EU pool - reconfigure if using Global pool
  • Hashrate displayed in GH/s for consistency

v1.6.1 - CKPool Mining Sensor Fix

Choose a tag to compare

@foXaCe foXaCe released this 04 Oct 12:19

Bug Fixes

  • Fix CKPool mining sensor returning unknown state instead of 0 when address has no mining history
  • Handle HTTP 404 responses for addresses without mining activity
  • Parse JSON response from CKPool API instead of attempting HTML parsing
  • Improve hashrate unit conversion robustness (K, M, G, T, P)
  • Add bestshare field to sensor attributes