🧰 New: write_resource / read_resource services
Two new Home Assistant actions make it possible to script direct reads and writes against any known resource on a device, instead of going through an entity or the Debug write panel:
localthings.write_resource— an ordered sequence of up to 10{href, payload, settle}writes on one device, with optional post-write verification (held) to confirm a value actually survived instead of being silently reverted by the appliance.localthings.read_resource— a live GET on a given href, or the full cached snapshot when none is given.
The Debug write panel now calls write_resource under the hood, so there's a single code path for raw writes. (#326)
🚀 Highlights
- Closed five device-support gaps in one pass: the AILP_DA-AC-FAC-02011 air conditioner gets sound and absence-clean controls, TP1X_REF_21K fridges get their internal air filter, gas cooktops get alarms/child-lock, wall ovens get a diagnosis sensor plus a fix for a lamp switch that always registered even on boards that didn't support it, and six-burner cassette A/C units get accent/indicator lighting. (#323, closes #319, #318, #314, #300, #288)
- Fixed three reconnect/retry gaps: a pasted certificate with a hidden BOM or CRLF line endings failed to parse, the connection-mode sensor could get stuck reporting "Push" after a device fell off the network, and a command sent right after the device closed its session was silently dropped instead of retried. (#306, closes #291, #287, #294)
✨ Added
- Legacy air conditioners now derive their available comfort presets (WindFree, Fast Turbo, 2-Step, Comfort, Quiet, Good Sleep, Smart Saver) per HVAC mode from the unit's own capability bits instead of a fixed list. Thanks to @perseus177! (#304)
- Legacy air conditioners can stop a running auto-clean cycle early and report its progress. Thanks to @perseus177! (#290)
- AVT-WW-TP1/TP1X_DA-AC-AIR/A-VTWW-TP2 air purifiers get their AI Purify sensing engine: sensing mode, master switch, interval, sensing-skip window, and diagnostics — nine new entities. Thanks to @kkqq9320! (#268, part of #84)
- Complete Korean translation. Thanks to @atc722! (#283)
- The config flow keeps what you typed when a step fails validation, instead of clearing the form. Thanks to @edenhaus! (#310)
- Added a README note about the deregistration footgun: removing appliances from the SmartThings can reset them if the device still has internet access. Thanks to @rtvanhook! (#284)
🐛 Fixed
- Legacy air conditioners' Good Sleep timer was writing half the requested duration — the token counts half-hours, not hours, so 12h could never be reached. Thanks to @perseus177! (#296)
- Legacy air conditioners' filter alarm can now be reset locally via the
FilterCleanAlarm_Cleartoken. (#293) - Particulate sensors (
dust/fine_dust/super_fine_dust) now carrystate_class=measurementso Home Assistant keeps long-term statistics for them. Thanks to @kkqq9320! (#267, addresses #266) - Added Samsung NV9000D induction cooktop coverage; reclassified read-only sensors that were incorrectly marked as config-category (which HA rejects) to diagnostic; and fixed a batch parser that discarded the first
/device/0resource on firmware that omits the leading collection representation. Thanks to @atc722! (#281) - Fixed an Italian translation typo ("Intenseo a freddo" → "Intenso a freddo"). Thanks to @g1za! (#280)