Commit Graph

29 Commits

Author SHA1 Message Date
Necroneco
dd341eeb24 fix: migrate the unique_id of the service entities (#1778)
The description of the service was appended to the unique_id of the service
entities without a migration step, so the entities registered before that
change were replaced by new ones. The entity_id of the new entity is
different, which silently breaks every automation, script and dashboard
referring to the old one.

Look up the entities that are still registered under the old unique_id when
the entry is set up, and rewrite it in place. The entity_id is left
untouched, so nothing referring to it has to be updated.

The lookup is keyed on the unique_id only and scoped to the config entry, and
nothing is written when the current unique_id is already registered, so it is
idempotent and cannot replace an entity that is in use. An entity that cannot
be migrated is reported and skipped, the others are still migrated.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 15:55:07 +08:00
Necroneco
48b0248892 fix: use a valid entity_id with the platform domain (#1777)
Some checks failed
Tests / check-rule-format (push) Has been cancelled
Validate / validate-hassfest (push) Has been cancelled
Validate / validate-hacs (push) Has been cancelled
Validate / validate-lint (push) Has been cancelled
Validate / validate-setup (push) Has been cancelled
Home Assistant reports the entity_id set by the integration as invalid when
its domain is not the platform domain, or when the object_id contains
characters that are not allowed, e.g. a MIoT-Spec-V2 description in Chinese
or a description that is empty once slugified. Both are deprecated and stop
working in 2027.5.0 and 2027.2.0.

Derive the platform domain from the Home Assistant entity base class that
each entity mixes in, and slugify the object_id.

The unique_id keeps using the integration domain and the raw description, so
it stays byte for byte identical for the entities that are already
registered. The entity_id of an already registered entity is owned by the
entity registry and is not changed either, and a newly registered entity gets
the same entity_id as before, since the registry was already slugifying the
object_id it was given.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: LiShuzhen <SusanPhevos@gmail.com>
2026-09-23 15:48:13 +08:00
skyboooox
f290ff17d8 Fix sensor state class and units (#1595)
Some checks failed
Tests / check-rule-format (push) Has been cancelled
Validate / validate-hassfest (push) Has been cancelled
Validate / validate-hacs (push) Has been cancelled
Validate / validate-lint (push) Has been cancelled
Validate / validate-setup (push) Has been cancelled
2026-01-28 15:31:27 +08:00
Li Shuzhen
001af5384a docs: update changelog and version to v0.4.7 (#1599)
Some checks failed
Tests / check-rule-format (push) Has been cancelled
Validate / validate-hassfest (push) Has been cancelled
Validate / validate-hacs (push) Has been cancelled
Validate / validate-lint (push) Has been cancelled
Validate / validate-setup (push) Has been cancelled
2026-01-07 10:45:07 +08:00
Li Shuzhen
86a739b503 feat: add tv-box device as media player entity (#1562) 2025-12-18 09:04:59 +08:00
Li Shuzhen
e6750bb746 feat: format value, then evaluate by expression, and set precision at last (#1516) 2025-11-25 09:31:40 +08:00
Li Shuzhen
1b87381f43 Fix specs (#1517)
Some checks failed
Tests / check-rule-format (push) Has been cancelled
Validate / validate-hassfest (push) Has been cancelled
Validate / validate-hacs (push) Has been cancelled
Validate / validate-lint (push) Has been cancelled
Validate / validate-setup (push) Has been cancelled
* fix: xiaomi.waterpuri.s1200g filter property unit (#1489)

* fix: xiaomi.aircondition.c24 power consumption device class (#1243)

* fix: cuco.plug.cp7pd power consumption and power value precision (#1502)

* fix: lxzn.valve.02 electricity property unit (#1514)
2025-11-24 17:11:38 +08:00
Li Shuzhen
3e33804477 Fix specs (#1496)
* fix: roidmi.vacuum.v60 duplicated service name for vacuum entity

* fix: cykj.hood.jyj22 spec urn version 4 (#1477)

* fix: lumi.motion.bmgl01 siid=2 piid=2 value-list (#1444)

* fix: ykcn.valve.cbcs power property value unit (#1488)

* fix: ainice.sensor_occupy.3b siid=2 piid=5,11,14,17 device_class (#1495)

* fix: qdhkl.airc.a42 hvac mode (#1483)
2025-11-11 08:56:33 +08:00
Li Shuzhen
65a7a6d22a fix: correct the property value format after expression calculation (#1366) 2025-08-19 14:36:30 +08:00
Li Shuzhen
6069eaaba8 feat: exclude unsupported model (#1205)
* feat: ignore unsupported models (#933)

* fix: remove unnecessary logs
2025-06-30 11:12:58 +08:00
Li Shuzhen
f384034854 Fix specs (#1037) 2025-04-29 09:11:17 +08:00
Li Shuzhen
899d616da4 feat: custom defined MIoT-Spec-V2 instance (#953) 2025-04-05 11:37:17 +08:00
Necroneco
07cb4ed193 feat: avoid setting icon when device_class is defined (#855) 2025-03-12 15:17:02 +08:00
Necroneco
e69448f2eb feat: add entity_category for indicator-light (#697)
Some checks failed
Tests / check-rule-format (push) Has been cancelled
Validate / validate-hassfest (push) Has been cancelled
Validate / validate-hacs (push) Has been cancelled
Validate / validate-lint (push) Has been cancelled
Validate / validate-setup (push) Has been cancelled
2025-03-05 16:13:17 +08:00
Paul Shawn
52fd6371ab fix: fix water heater error & some type error (#684)
* fix: fix water heater target-temp error

* feat: update miot device logic

* fix: fix some type error
2025-01-22 19:55:41 +08:00
Paul Shawn
8778b00c3a feat: support modify spec and value conversion (#663)
* fix: fix miot_device type error

* fix: fix type error

* feat: remove spec cache storage

* feat: update std_lib and multi_lang logic

* feat: update entity value-range

* feat: update value-list logic

* feat: update prop.format_ logic

* fix: fix miot cloud log error

* fix: fix fan entity

* style: ignore type error

* style: rename spec_filter func name

* feat: move bool_trans from storage to spec

* feat: move sepc_filter from storage to spec, use the YAML format file

* feat: same prop supports multiple sub

* feat: same event supports multiple sub

* fix: fix device remove error

* feat: add func slugify_did

* fix: fix multi lang error

* feat: update action debug logic

* feat: ignore normal disconnect log

* feat: support binary mode

* feat: change miot spec name type define

* style: ignore i18n tranlate type error

* fix: fix pylint warning

* fix: miot storage type error

* feat: support binary display mode configure

* feat: set default sensor state_class

* fix: fix sensor entity type error

* fix: fix __init__ type error

* feat: update test case logic

* fix: github actions add dependencies lib

* fix: fix some type error

* feat: update device list changed notify logic

* feat: update prop expr logic

* feat: add spec modify

* feat: update device sub id logic

* feat: update get miot client instance logic

* fix: fix some type error

* feat: update miot device unit and icon trans

* perf: update spec trans entity logic

* feat: update spec trans entity rule

* feat: update spec_modify

* feat: update sensor ENUM icon

* fix: fix miot device error

* fix: fix miot spec error

* featL update format check and spec modify file

* feat: update checkout rule format

* feat: handle special property.unit

* feat: add expr for cuco-cp1md

* feat: fix climate hvac error

* feat: set sensor suggested display precision

* feat: update climate set hvac logic

* feat: add expr for cuco-v3

* feat: update spec expr for chuangmi-212a01
2025-01-22 19:21:02 +08:00
Paul Shawn
ef56448dbb refactor: refactor miot device and spec (#592)
* fix: fix miot_device type error

* fix: fix type error

* feat: remove spec cache storage

* feat: update std_lib and multi_lang logic

* feat: update entity value-range

* feat: update value-list logic

* feat: update prop.format_ logic

* fix: fix miot cloud log error

* fix: fix fan entity

* style: ignore type error

* style: rename spec_filter func name

* feat: move bool_trans from storage to spec

* feat: move sepc_filter from storage to spec, use the YAML format file

* feat: same prop supports multiple sub

* feat: same event supports multiple sub

* fix: fix device remove error

* feat: add func slugify_did

* fix: fix multi lang error

* feat: update action debug logic

* feat: ignore normal disconnect log

* feat: support binary mode

* feat: change miot spec name type define

* style: ignore i18n tranlate type error

* fix: fix pylint warning

* fix: miot storage type error

* feat: support binary display mode configure

* feat: set default sensor state_class

* fix: fix sensor entity type error

* fix: fix __init__ type error

* feat: update test case logic

* fix: github actions add dependencies lib

* fix: fix some type error

* feat: update device list changed notify logic
2025-01-17 18:14:31 +08:00
tiger
5438698a6e feat:add missing parameter state_class (#101)
* feat: add state_class for sensor

* feat: add optional state_class and unit_of_measurement for properties

* feat:add support for state_class and unit process

* style: fix pylint format

* style: fix pylint format

* sytle: change logic to suit conversation

---------

Co-authored-by: LiShuzhen <SusanPhevos@gmail.com>
2025-01-03 20:42:34 +08:00
RangerCD
7654e5e518 fix: ignore undefined piid and keep processing following arguments (#377) 2024-12-24 21:03:11 +08:00
Paul Shawn
0f5da18108 fix: fix unit convert attribute error (#396) 2024-12-24 21:02:36 +08:00
Paul Shawn
c1867e2baf fix: fix type error, wrong use of any and Any (#338)
* fix: fix type error, wrong use of any and Any

* fix: wrong use of session close

* fix: fix test_lan type error

* fix: remove __del__

* feat: oauth, http add deinit_async
2024-12-22 10:46:58 +08:00
Guoliang Li
ce4f23b1bd style: fix the trailing space problem reported by pylint 2024-12-18 15:56:45 +08:00
Guoliang Li
e70acd8421 style: update comments to meet coding standards 2024-12-18 15:56:45 +08:00
Guoliang Li
b498a708ac style: ignore pylint warning 2024-12-18 15:56:45 +08:00
KNOOP
c744919032 fix: handle UnitOfConductivity import #54
Move unit imports inside function 和 add fallback for older versions. Resolves
2024-12-18 15:56:45 +08:00
KNOOP
6bb4bf32d7 fix: handle UnitOfConductivity import
Move unit imports inside function and add fallback for older versions.

Resolves #123
2024-12-18 15:56:45 +08:00
topsworld
7a336c31fe style: ignore pylint wanring ('inconsistent-quotes') 2024-12-16 10:41:30 +08:00
topsworld
99e89d78e0 style: pylint check add ignore item 2024-12-10 19:11:25 +08:00
topsworld
838fff399b feat: first commit 2024-12-10 17:36:32 +08:00