Changelog

for the component grstat/hdc1080 v1.0.2
# Changelog

## [1.0.0] - Massive Update

### Breaking Changes — Complete Restructure of original

The driver has been redesigned as a **managed sensor service**. Instead of manually triggering reads and handling callbacks, the driver now polls automatically and stores values internally. You just call getter functions when you need data.

- **New handle-based API:** `hdc1080_init()` now returns an opaque `hdc1080_handle_t`.
- **No more manual reads:** Removed `hdc1080_read()` — polling is automatic.
- **No more callbacks:** The driver manages its own timer callbacks internally.
- **New getter functions:** `hdc1080_get_temperature()`, `hdc1080_get_humidity()`, `hdc1080_get_dewpoint()`, `hdc1080_get_svp()`, `hdc1080_get_vpd()`.
- **Status byte pattern:** `hdc1080_get_status()`, `hdc1080_get_error_text()`, `hdc1080_clear_error()`.
- **Optional I2C management:** Driver can set up the I2C bus via Kconfig (`CONFIG_HDC1080_MANAGE_I2C`).
- **Kconfig for everything:** I2C pins, port, frequency, poll rate, conversion time — all configurable via menuconfig.

### Added

- `hdc1080_get_readings()` — get temp + humidity + status in one call.
- `hdc1080_get_dewpoint()` — pre-computed dew point.
- `hdc1080_get_svp()` — pre-computed saturation vapor pressure (kPa).
- `hdc1080_get_vpd()` — pre-computed vapor pressure deficit (kPa).
- `hdc1080_get_status()` — check sensor health.
- `hdc1080_get_error_text()` — human-readable error descriptions.
- `hdc1080_clear_error()` — acknowledge errors and resume polling.
- `hdc1080_status_t` enum with specific error codes.
- Internal periodic polling via esp_timer.
- Two-mutex design: data store mutex + I2C access mutex.
- Menuconfig: `CONFIG_HDC1080_MANAGE_I2C`, `CONFIG_HDC1080_I2C_SCL/SDA/PORT/FREQ_HZ`, `CONFIG_HDC1080_POLL_RATE_MS`.
- Error-pause pattern: polling stops on error until user acknowledges.
- Derived values computed once per poll cycle (not on every getter call).

### Removed

- `hdc1080_read()` — replaced by automatic polling.
- `hdc1080_get_config()` — sensor config is set at init time.
- `hdc1080_cb_t` callback type — no longer needed.
- `hdc1080_config_io_t` struct — replaced by `hdc1080_init_config_t`.
- Example `Kconfig.projbuild` — all config moved to component Kconfig.

### Migration from v1.x

1. Replace `hdc1080_init(&io_cfg, sensor_cfg)` with `hdc1080_init(&config, &handle)`.
2. Remove your callback function — the driver handles reads internally.
3. Remove `hdc1080_read()` calls — polling is automatic.
4. Use `hdc1080_get_temperature(handle, &val)` etc. to read values.
5. Check `hdc1080_get_status()` for errors instead of callback status param.
6. Call `hdc1080_clear_error()` to acknowledge errors.
7. Configure I2C pins/polling in menuconfig instead of code.

### Added

- Thread safety via FreeRTOS mutex.
- Kconfig for conversion time.
- Component registry metadata fields.

### Breaking Changes

- Migrated from legacy `driver/i2c.h` to `driver/i2c_master.h`.
- Complete API rename and restructure from v0.2.x.

## [0.2.2]

- Fixed a bug with deps.

## [0.2.0]

- Initial managed component release.