diff --git a/apps/ui/templates/dashboard.html b/apps/ui/templates/dashboard.html index e3832d4..7ed877a 100644 --- a/apps/ui/templates/dashboard.html +++ b/apps/ui/templates/dashboard.html @@ -1661,7 +1661,8 @@ value="50" class="brightness-slider" id="slider-group-${group.id}" - oninput="updateGroupBrightnessDisplay('${group.id}', this.value)"> + oninput="updateGroupBrightnessDisplay('${group.id}', this.value)" + onchange="setGroupBrightness('${group.id}', this.value)"> ` : ''}
@@ -1692,6 +1693,46 @@ } } + // Set group brightness immediately when slider changes + async function setGroupBrightness(groupId, brightness) { + try { + const response = await fetch(api(`/groups/${groupId}/set`), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + action: { + type: 'power', + payload: { + power: 'on', + brightness: parseInt(brightness) + } + } + }) + }); + + if (!response.ok) { + const error = await response.json(); + throw new Error(error.detail || 'Request failed'); + } + + const result = await response.json(); + const publishedCount = result.execution_plan.filter(p => p.status === 'published').length; + + console.log(`Group ${groupId} brightness set to ${brightness}%: ${publishedCount} devices`); + + addEvent({ + action: 'group_brightness', + group_id: groupId, + brightness: brightness, + device_count: publishedCount + }); + + } catch (error) { + console.error('Failed to set group brightness:', error); + showToast(`Fehler beim Setzen der Helligkeit: ${error.message}`, 'error'); + } + } + // Execute group action async function setGroup(groupId, power, buttonElement) { const allButtons = buttonElement.parentElement.querySelectorAll('button');