github mbillow/localthings v0.20.0

3 hours ago

🧰 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_Clear token. (#293)
  • Particulate sensors (dust/fine_dust/super_fine_dust) now carry state_class=measurement so 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/0 resource 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)

Don't miss a new localthings release

NewReleases is sending notifications on new releases.