456 files

This commit is contained in:
Home Assistant Version Control committed 2026-10-01 05:38:21 +00:00
1 parent 4192ecbaae
commit 5d6d845ebf
456 files changed
+64951 -3828

No files matched your search

@@ -45,14 +45,51 @@ SIGNATURES: dict[str, IntegrationSignature] = {
),
"philips_shaver": IntegrationSignature(
name="Philips shaver",
verified="2026-09-25 @ mtheli/philips_shaver main",
verified="2026-09-25 @ mtheli/philips_shaver main; resets + cartridge 2026-09-27 @ 31bedaa",
source=(
"mtheli/philips_shaver custom_components/philips_shaver/sensor.py "
"PhilipsHeadRemainingSensor: _attr_translation_key 'head_remaining', "
"PERCENTAGE (coordinator: CHAR_HEAD_REMAINING byte — the shaver's own "
"head-life counter). 'cleaning_cycles_remaining' is skipped: an "
"integration-side evaporation estimate, not a device value."
"head-life counter). button.py PhilipsBladeReplacementButton tk "
"'blade_replacement' writes 0x01 to the head-replacement characteristic and "
"sets head_remaining = 100 (a no-op, logged, while the BLE link is down). "
"2026-09-27: PhilipsRemainingCleaningCyclesSensor tk "
"'cleaning_cycles_remaining' (unitless, 0-30 = CARTRIDGE_CAPACITY) — the "
"Quick Clean cartridge's remaining cycles, estimated from the shaver's own "
"cleaning counter plus fluid evaporation (the Philips app's model); only on "
"shavers with a cleaning station. Its reset is PhilipsCartridgeResetButton tk "
"'cartridge_reset' (back to 30) → value_below 3 cycles, the reset restores it."
),
tasks=(ConsumableSignature(("head_remaining",), "Replace Shaver Head", "percent_left"),),
tasks=(
ConsumableSignature(
("head_remaining",),
"Replace Shaver Head",
"percent_left",
resets=(("head_remaining", "blade_replacement"),),
),
ConsumableSignature(
("cleaning_cycles_remaining",),
"Replace Cleaning Cartridge",
"value_below",
delta_units=3,
resets=(("cleaning_cycles_remaining", "cartridge_reset"),),
),
),
),
"philips_sonicare_ble": IntegrationSignature(
name="Philips Sonicare (BLE)",
verified="2026-09-27 @ mtheli/philips_sonicare_ble master (93c4257, HACS default)",
source=(
"mtheli/philips_sonicare_ble custom_components/philips_sonicare_ble/sensor.py "
"SonicareBrushHeadWearSensor: _attr_translation_key 'brushhead_wear', "
"PERCENTAGE = coordinator brushhead_wear_pct = NFC head lifetime usage / "
"lifetime limit × 100 (capped 100) — wear counting UP, back to 0 on a new head "
"(auto-resolve). Created only for handles with the NFC brush-head service "
"(SVC_BRUSHHEAD or Condor). The brush-head entities live on a SUB-DEVICE "
"'<name> Brush Head' (entity.py PhilipsBrushHeadEntity, via_device = the "
"handle), so the proposal lands on that sub-device. 'brushhead_sessions_left' "
"is the same head in sessions — one signal per duty."
),
tasks=(ConsumableSignature(("brushhead_wear",), "Replace Brush Head", "alert_above", delta_units=90),),
),
}