Repository navigation
Releases
v1.0.9
Packaging fix only — no functional change to the integration.
Fix
HACS validation — hacs.json carried a "domains" key, which is not part of the hacs.json schema for integrations (the domain is read from the integration's own manifest.json). HACS rejected it with extra keys not allowed @ data['domains'].
The key has been removed and repository topics added, so HACS validation now passes.
Nothing in custom_components/ changed. Upgrading from v1.0.8 is optional.
Full changelog: v1.0.8...v1.0.9
v1.0.8
Fixed: HVAC "Auto" did nothing
Setting the thermostat to Auto from Home Assistant put it into an Auto mode that accepted the setpoints but never actually called for heat or cool. Using Auto Furnace on the thermostat's own screen worked.
Cause: HA's auto was hardcoded to device mode 8 (plain Auto), which has no heat source bound to it. Furnace units do not even advertise mode 8 in their capability mask (MAV), yet they still acknowledge a change to it and then run nothing. The modes that work are the per-heat-source variants the thermostat screen shows as Auto Furnace (11), Auto Heat Pump (10) and Auto Heat Strip (9).
Fix: Auto is now resolved against the device's MAV capability mask, the same way heat already was:
- HA
autoselects the Auto variant your thermostat actually advertises, preferring the one driven by the zone's current heat source. Plain mode 8 is used only when it is all the device offers. - The heat source carries across a heat ⇄ auto switch, so going from Furnace heat to Auto lands on Auto Furnace.
- Heat-source presets now work in Auto, letting you switch between Auto Furnace / Auto Heat Pump / Auto Heat Strip on units with more than one heat source. The preset displayed while in Auto is now correct — it previously showed a meaningless first-in-list value.
Verified on a unit reporting MAV=0x816 (fan-only, cool, furnace, auto furnace): HA auto writes {"zone":0,"power":1,"mode":11} and the thermostat echoes back mode 11 — identical to pressing Auto Furnace on the device.
Also fixes the README debug-logging snippet, which named the pre-rename custom_components.easytouch logger and therefore captured nothing.
v1.0.7
v1.0.6
What's Changed
Bug Fixes
- Multi-zone entity naming: Zone 0 was unnamed on multi-zone devices, causing entities to appear as 'EasyTouch 355000406' and 'EasyTouch 355000406 Zone 2' with no 'Zone 1'. All zones on multi-zone devices now get explicit 'Zone N' labels. Single-zone devices are unaffected.
Improvements
- Log message fix: 'Get Config zone N failed -- continuing' was misleading; the code actually aborts and reconnects. Now correctly says 'aborting, will retry on reconnect'.
- Poll loop log fix: 'Poll loop ended unexpectedly: ' with empty message now includes the exception type name for easier diagnosis.
- Config discovery log: Completion log now distinguishes active zones (MAV != 0) from all probed slot indices.
v1.0.5
Fix
- Add
bluetooth_adaptersto manifest dependencies so HA waits for all remote BLE adapters (including ESPHome proxies) to initialise before starting the integration. This eliminates the startup race that could cause slow or failed first-connect attempts. - Declare
bleak>=0.21.0explicitly in requirements (was already imported directly but undeclared).
v1.0.4
What's Changed
Bug Fix
- Self-heal on startup slot exhaustion: When all Bluetooth proxy/adapter connection slots are occupied at boot (e.g. other integrations connect first), EasyTouch previously failed silently and stayed permanently unavailable until HA was restarted. The integration now enters the standard exponential-backoff reconnect loop on startup failure and connects automatically once a slot becomes free.
v1.0.3 — Breaking Change: Domain Renamed
⚠️ Breaking Change: Integration Domain Renamed
The integration domain has been renamed from easytouch to ha_easytouch.
Why
To avoid conflicts with existing Home Assistant core integrations and to comply with HACS default store submission requirements.
Action Required
This upgrade requires manual steps. Home Assistant cannot automatically migrate config entries when the domain changes.
- Note your current settings (device address, PIN, any options)
- Remove the integration: Settings → Devices & Services → Micro-Air EasyTouch → ⋮ → Delete
- Update the integration via HACS or by replacing files manually
- Re-add the integration: Settings → Devices & Services → Add Integration → search for "EasyTouch"
- Reconfigure any automations or scripts referencing the old entity IDs (they will have changed from
easytouch.*toha_easytouch.*)
v1.0.2
v1.0.1 — Bug fixes
Micro-Air EasyTouch — v1.0.1
Bug fixes
-
UI bounce-back after mode change — Entity now applies optimistic state immediately before sending the BLE command, so the climate card reflects the new mode during the status-suppression window instead of snapping back to the old state.
-
Spurious "Fan mode is not valid" toast on HA-initiated commands — Optimistic update ensures
fan_modesandfan_modeare consistent when the UI card refreshes, preventing the frontend from sending a staleset_fan_mode("")call. -
Spurious "Fan mode is not valid" toast on device-initiated mode changes — When the physical thermostat changes mode without an HA command,
hvac_modeandfan_modeno longer change in the same state write. The currentfan_modeis preserved (if still valid in the new mode) on the transition poll; the correct device fan speed syncs on the following poll. This prevents the native climate card from interpreting a two-field simultaneous change as a user action and issuing a blankset_fan_modecall.
v1.0.0 — Initial release
Micro-Air EasyTouch — v1.0.0
Initial release of the Home Assistant integration for Micro-Air EasyTouch RV thermostats.
Features
- Persistent BLE connection — no connect/disconnect churn between polls
- Multi-zone support (zones 0–3, auto-detected via Get Config)
- Full climate entity per zone: HVAC mode, fan mode, temperature setpoints
- Heat-source preset modes (Heat Pump, Furnace, Heat Strip, Electric Heat, Gas Heat)
- Setpoint range enforcement from device config (SPL array)
- Status suppression after commands to prevent UI bounce-back
- Device reboot button
- Data-health binary sensor
- Device info from BLE 0x180A service (serial number, firmware, model)
- Exponential backoff reconnection
Supported HVAC modes
off, cool, heat, auto, fan_only, dry
Fan modes
auto, low, high (per-mode availability from device FA array)
Requirements
- Home Assistant 2024.1.0+
bleak-retry-connector >= 3.1.0