0.15.17
This commit is contained in:
@@ -52,12 +52,7 @@ function renderHouseClimate() {
|
||||
const planZones = app.controlPlan?.zones || [];
|
||||
const unitsWorking = (app.devices || []).some(device => device.power === true);
|
||||
const automationTriggered = planZones.some(zone => zone.desired_power === true || zone.demand === true);
|
||||
const hasAutomaticControl = (app.schedules || []).some(item => item.enabled)
|
||||
|| (app.automations || []).some(item => item.enabled)
|
||||
|| (app.flows || []).some(item => item.enabled && !item.draft)
|
||||
|| planZones.some(zone => zone.local_thermostat_power === true || !!zone.current_schedule_id || zone.desired_power === true);
|
||||
const emergencyVisible = emergencyActive || unitsWorking || hasAutomaticControl;
|
||||
const emergencyIdle = !emergencyActive && !unitsWorking && !automationTriggered && hasAutomaticControl;
|
||||
const emergencyVisible = emergencyActive || unitsWorking || automationTriggered;
|
||||
|
||||
if (powerOn) { powerOn.classList.remove('active'); powerOn.removeAttribute('aria-pressed'); }
|
||||
if (powerOff) { powerOff.classList.remove('active'); powerOff.removeAttribute('aria-pressed'); }
|
||||
@@ -66,10 +61,10 @@ function renderHouseClimate() {
|
||||
emergencyButton.dataset.value = emergencyActive ? 'false' : 'true';
|
||||
emergencyButton.classList.toggle('resume', emergencyActive);
|
||||
emergencyButton.classList.toggle('active', emergencyActive);
|
||||
emergencyButton.classList.toggle('idle', emergencyIdle);
|
||||
emergencyButton.classList.remove('idle');
|
||||
emergencyButton.setAttribute('aria-pressed', String(emergencyActive));
|
||||
emergencyButton.textContent = tr(emergencyActive ? 'house.emergencyResume' : 'house.emergencyStop');
|
||||
emergencyButton.title = tr(emergencyActive ? 'house.emergencyResumeHint' : emergencyIdle ? 'house.emergencyStopIdleHint' : 'house.emergencyStopHint');
|
||||
emergencyButton.title = tr(emergencyActive ? 'house.emergencyResumeHint' : 'house.emergencyStopHint');
|
||||
}
|
||||
node.innerHTML = `<div class="house-climate-head"><div><span class="eyebrow">${esc(tr('house.seasonMode'))}</span><h3>${esc(tr('house.smartThermostat'))}</h3><p>${esc(tr('house.setpointStrategy'))}</p></div><button type="button" class="outside-pill" data-action="open-outdoor-history" title="${esc(tr('house.outdoorHistoryOpen'))}" aria-label="${esc(tr('house.outdoorHistoryOpen'))}"><small>${esc(tr('house.outdoor'))}</small><strong>${esc(outdoor)}</strong></button></div>
|
||||
<div class="house-mode-row">
|
||||
@@ -150,7 +145,11 @@ function planEventMarkup(event) {
|
||||
|
||||
function automationTriggerLabel(item) {
|
||||
if (item.trigger_kind === 'time') return tr('automations.triggerAt', { time: item.at_time || '—' });
|
||||
if (item.trigger_kind === 'flow') return tr('flow.generated');
|
||||
if (item.trigger_kind === 'flow') {
|
||||
const automation = item.flow_id ? item : (app.automations || []).find(candidate => candidate.id === item.id);
|
||||
const flow = automation?.flow_id ? (app.flows || []).find(candidate => candidate.id === automation.flow_id) : null;
|
||||
return flow?.name ? `${tr('flow.generated')}: ${flow.name}` : tr('flow.generated');
|
||||
}
|
||||
const key = item.trigger_kind === 'temperature_above' ? 'automations.triggerAbove' : 'automations.triggerBelow';
|
||||
return tr(key, { temperature: fmtTemp(item.threshold) });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user