mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 16:38:31 +00:00
fix v1.9.1: уровень сигнала Zigbee читается также из атрибута linkquality/lqi и сенсоров *_lqi (ZHA) — покрывает устройства с отключённым сенсором сигнала
This commit is contained in:
@@ -10,7 +10,7 @@ PLANS_DIR = "houseplan/plans" # относительно каталога ко
|
|||||||
FILES_URL = "/houseplan_files/files"
|
FILES_URL = "/houseplan_files/files"
|
||||||
FILES_DIR = "houseplan/files"
|
FILES_DIR = "houseplan/files"
|
||||||
CONF_ADMIN_ONLY = "admin_only"
|
CONF_ADMIN_ONLY = "admin_only"
|
||||||
VERSION = "1.9.0"
|
VERSION = "1.9.1"
|
||||||
|
|
||||||
DEFAULT_CONFIG: dict = {
|
DEFAULT_CONFIG: dict = {
|
||||||
"spaces": [],
|
"spaces": [],
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -15,5 +15,5 @@
|
|||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"issue_tracker": "https://github.com/justbusiness/houseplan-card/issues",
|
"issue_tracker": "https://github.com/justbusiness/houseplan-card/issues",
|
||||||
"requirements": [],
|
"requirements": [],
|
||||||
"version": "1.9.0"
|
"version": "1.9.1"
|
||||||
}
|
}
|
||||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
@@ -1,5 +1,12 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v1.9.1 — 2026-07-05 (сигнал Zigbee: чтение из атрибута + ZHA)
|
||||||
|
- Уровень сигнала теперь берётся не только из выделенного сенсора `*_linkquality` (Z2M), но и:
|
||||||
|
из сенсоров `*_lqi` (ZHA), и из АТРИБУТА `linkquality`/`lqi` на любой сущности устройства.
|
||||||
|
Это покрывает устройства, у которых отдельный сенсор сигнала отключён, но значение есть в атрибуте.
|
||||||
|
- ПРИМЕЧАНИЕ: если у устройства сенсор `*_linkquality` отключён (disabled_by=integration) И значение
|
||||||
|
нигде не публикуется как атрибут — сигнал показать нельзя, нужно включить сенсор в реестре HA.
|
||||||
|
|
||||||
## v1.9.0 — 2026-07-05 (UX: перетаскивание всегда, расталкивание, показать все, адаптив)
|
## v1.9.0 — 2026-07-05 (UX: перетаскивание всегда, расталкивание, показать все, адаптив)
|
||||||
- **Перетаскивание значков доступно всегда** — отдельный «режим правки» убран (кнопка ✥ удалена).
|
- **Перетаскивание значков доступно всегда** — отдельный «режим правки» убран (кнопка ✥ удалена).
|
||||||
Клик по значку открывает карточку устройства (правка метаданных — через кнопку «Редактировать»
|
Клик по значку открывает карточку устройства (правка метаданных — через кнопку «Редактировать»
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "houseplan-card",
|
"name": "houseplan-card",
|
||||||
"version": "1.9.0",
|
"version": "1.9.1",
|
||||||
"description": "Interactive house plan Lovelace card for Home Assistant (dacha Kirillovskoe)",
|
"description": "Interactive house plan Lovelace card for Home Assistant (dacha Kirillovskoe)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
+14
-3
@@ -13,7 +13,7 @@ import {
|
|||||||
} from './logic';
|
} from './logic';
|
||||||
import './editor';
|
import './editor';
|
||||||
|
|
||||||
const CARD_VERSION = '1.9.0';
|
const CARD_VERSION = '1.9.1';
|
||||||
const LS_KEY = 'houseplan_card_layout_v1';
|
const LS_KEY = 'houseplan_card_layout_v1';
|
||||||
const LS_CFG = 'houseplan_card_cfg_v1'; // кэш серверного конфига+раскладки для мгновенного рендера
|
const LS_CFG = 'houseplan_card_cfg_v1'; // кэш серверного конфига+раскладки для мгновенного рендера
|
||||||
const LS_ZOOM = 'houseplan_card_zoom_v1';
|
const LS_ZOOM = 'houseplan_card_zoom_v1';
|
||||||
@@ -551,10 +551,21 @@ class HouseplanCard extends LitElement {
|
|||||||
const vals: number[] = [];
|
const vals: number[] = [];
|
||||||
for (const eid of entIds) {
|
for (const eid of entIds) {
|
||||||
const st = this.hass.states[eid];
|
const st = this.hass.states[eid];
|
||||||
const isLqi = /_linkquality$/.test(eid) || (st?.attributes?.unit_of_measurement || '') === 'lqi';
|
if (!st) continue;
|
||||||
if (!isLqi || !st) continue;
|
const unit = (st.attributes?.unit_of_measurement || '').toLowerCase();
|
||||||
|
// 1) выделенный сенсор сигнала: Z2M *_linkquality, ZHA *_lqi, либо единицы «lqi»
|
||||||
|
if (/_(linkquality|lqi)$/.test(eid) || unit === 'lqi') {
|
||||||
const v = parseFloat(st.state);
|
const v = parseFloat(st.state);
|
||||||
if (!isNaN(v)) vals.push(v);
|
if (!isNaN(v)) vals.push(v);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 2) сигнал как АТРИБУТ на любой сущности устройства (Z2M linkquality / ZHA lqi) —
|
||||||
|
// покрывает устройства, у которых отдельный сенсор сигнала отключён
|
||||||
|
const av = st.attributes?.linkquality ?? st.attributes?.lqi;
|
||||||
|
if (av != null) {
|
||||||
|
const v = parseFloat(av);
|
||||||
|
if (!isNaN(v)) vals.push(v);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!vals.length) return null;
|
if (!vals.length) return null;
|
||||||
return Math.round(vals.reduce((a, b) => a + b, 0) / vals.length);
|
return Math.round(vals.reduce((a, b) => a + b, 0) / vals.length);
|
||||||
|
|||||||
Reference in New Issue
Block a user