mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 16:38:31 +00:00
v1.44.6: room climate counts only air temperature
After v1.44.5 read the area registry instead of visible icons, every hidden temperature entity in the area became a candidate, including ones measuring something other than room air. Verified against a live 60-area install: a NAS processor temperature, kettle water, a 90 C sauna heater and a virtual better_thermostat all leaked into room averages. - areaClimate(): skip entity_category (diagnostic/config), skip EXCLUDED_DOMAINS platforms, skip entity ids naming a non-air medium (water/coolant/flow_temp/ return_temp/target/setpoint/chip/cpu/processor/board/device_temp/batter/ freezer/fridge/oven/kettle/boiler). - rules.ts: kettle/thermopot -> mdi:kettle, sauna/harvia -> mdi:hot-tub, so they no longer fall through to the generic thermometer rule. - test: all four real false positives asserted out, one real sensor left. - docs: CHANGELOG.md + CHANGELOG.ru.md + STATUS.md snapshot.
This commit is contained in:
@@ -400,3 +400,39 @@ test('areaClimate: counts sensors that are NOT on the plan (field report)', () =
|
||||
};
|
||||
assert.equal(areaClimate(hass2, 'kitchen', 'temp'), null);
|
||||
});
|
||||
|
||||
test('areaClimate: only ROOM AIR counts (field question, 2026-07-27)', () => {
|
||||
const hass = {
|
||||
devices: {
|
||||
good: { id: 'good', name: 'Датчик температуры спальня', area_id: 'bed' },
|
||||
kettle: { id: 'kettle', name: 'Polaris PWK-1725CGLD', model: 'Kettle', area_id: 'bed' },
|
||||
nas: { id: 'nas', name: 'System Monitor', area_id: 'bed' },
|
||||
sauna: { id: 'sauna', name: 'Сауна Harvia', area_id: 'bed' },
|
||||
trv: { id: 'trv', name: 'Термоголовка в спальне', area_id: 'bed' },
|
||||
bt: { id: 'bt', name: 'Спальня better thermostat', area_id: 'bed' },
|
||||
zb: { id: 'zb', name: 'SLZB-06MU', area_id: 'bed' },
|
||||
},
|
||||
entities: {
|
||||
'sensor.good_t': { device_id: 'good', platform: 'mqtt' },
|
||||
// вода в чайнике
|
||||
'sensor.kettle_current_temperature': { device_id: 'kettle', platform: 'syncleo_kettle' },
|
||||
// температура процессора: и diagnostic, и исключённая интеграция
|
||||
'sensor.nas_processor_temperature': { device_id: 'nas', platform: 'systemmonitor', entity_category: 'diagnostic' },
|
||||
'sensor.sauna_temperature': { device_id: 'sauna', platform: 'harvia_sauna' },
|
||||
'sensor.trv_local_temperature': { device_id: 'trv', platform: 'mqtt' },
|
||||
'sensor.bt_temperature': { device_id: 'bt', platform: 'better_thermostat' },
|
||||
'sensor.zb_core_chip_temp': { device_id: 'zb', platform: 'smlight', entity_category: 'diagnostic' },
|
||||
},
|
||||
states: {
|
||||
'sensor.good_t': { state: '22.0', attributes: { device_class: 'temperature', unit_of_measurement: '°C' } },
|
||||
'sensor.kettle_current_temperature': { state: '95', attributes: { device_class: 'temperature', unit_of_measurement: '°C' } },
|
||||
'sensor.nas_processor_temperature': { state: '61', attributes: { device_class: 'temperature', unit_of_measurement: '°C' } },
|
||||
'sensor.sauna_temperature': { state: '90', attributes: { device_class: 'temperature', unit_of_measurement: '°C' } },
|
||||
'sensor.trv_local_temperature': { state: '24', attributes: { device_class: 'temperature', unit_of_measurement: '°C' } },
|
||||
'sensor.bt_temperature': { state: '22.0', attributes: { device_class: 'temperature', unit_of_measurement: '°C' } },
|
||||
'sensor.zb_core_chip_temp': { state: '48', attributes: { device_class: 'temperature', unit_of_measurement: '°C' } },
|
||||
},
|
||||
};
|
||||
// остаётся ровно один настоящий датчик воздуха
|
||||
assert.equal(areaClimate(hass, 'bed', 'temp'), 22);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user