{{ t('dashboard.title') }}
{{ t('dashboard.welcome', { name: userName }) }}
{{ t('dashboard.time.title') }}
{{ currentTime }}
{{ currentDate }}
{{ t('dashboard.weather.title') }}
{{ weather.location }}
{{ weather.temp }}
{{ weather.desc }}
{{ weather.humidity }} | {{ weather.wind }}
{{ weather.error }}
{{ s.title }}
{{ formatScheduleTime(s.scheduledAt, s.delaySeconds) }}
{{ note.text }}
{{ t('common.noData') }}
{{ t('dashboard.scenes.title') }}
{{ locale === 'zh' ? '户型灯光控制' : 'Floor Plan Lighting' }}
floor plan
{{ zone.name }} {{ zone.on ? 'ON' : 'OFF' }}
{{ fpGetRoomInfo(zone.id).temp }}
{{ fpGetRoomInfo(zone.id).humi }}
{{ fpGetRoomInfo(zone.id).light }}
{{ locale === 'zh' ? '有人' : 'Occupied' }}
{{ fpGetRoomInfo(zone.id).devices.airConditioner.temperature }}° {{ fpGetRoomInfo(zone.id).devices.heater.temperature }}°
{{ locale === 'zh' ? '未绑定' : 'Unbound' }}
{{ zone.name }} {{ zone.on ? 'ON' : 'OFF' }}
{{ fpGetRoomInfo(zone.id).temp }}
{{ fpGetRoomInfo(zone.id).humi }}
{{ fpGetRoomInfo(zone.id).light }}
{{ locale === 'zh' ? '有人' : 'Occupied' }}
{{ fpGetRoomInfo(zone.id).devices.airConditioner.temperature }}° {{ fpGetRoomInfo(zone.id).devices.heater.temperature }}°
{{ locale === 'zh' ? '未绑定' : 'Unbound' }}
{{ fpZones.filter(z => z.on).length }}/{{ fpZones.length }} {{ locale === 'zh' ? '灯已开启' : 'lights on' }}
{{ currentDate }}
{{ currentTime }}
{{ store.door.locked ? (locale === 'zh' ? '已锁定' : 'Locked') : (locale === 'zh' ? '未锁定' : 'Unlocked') }}
{{ weather.location }}
{{ weather.temp }}
{{ weather.desc }}
{{ weather.humidity }} {{ weather.wind }}
{{ locale === 'zh' ? '家居概览' : 'Home' }}
{{ store.customRooms.length }} {{ locale === 'zh' ? '房间' : 'Rooms' }}
{{ fpZones.filter(z => z.on).length }} {{ locale === 'zh' ? '灯光' : 'Lights' }}
{{ store.door.visitorCount || 0 }} {{ locale === 'zh' ? '访客' : 'Visitors' }}
{{ store.activities[0].device || store.activities[0].action }} · {{ formatTimeAgo(store.activities[0].timestamp) }}
{{ t('dashboard.environment') }}
{{ room.name }}
{{ t('rooms.sensors.temperature') }} {{ (store.sensors[room.id]?.temperature || 0).toFixed(1) }}°C
{{ t('rooms.sensors.humidity') }} {{ Math.round(store.sensors[room.id]?.humidity || 0) }}%
{{ t('rooms.sensors.light') }} {{ Math.round(store.sensors[room.id]?.lightLevel || 0) }} lx
{{ t('rooms.sensors.smoke') }} {{ (store.sensors[room.id]?.smokeLevel || 0).toFixed(1) }}
{{ t('admin.sensors.waterLeak') }} {{ store.sensors[room.id]?.waterLevel ? '⚠' : '✓' }}
{{ t('admin.sensors.people') }} {{ store.sensors[room.id]?.peopleDetection ? '✓' : '--' }}
{{ $t('rooms.devices.mainLight') }} {{ store.devices[room.id].airConditioner.status ? (store.devices[room.id].airConditioner.mode === 'heat' ? (locale === 'zh' ? '制热' : 'Heat') : store.devices[room.id].airConditioner.mode === 'fan' ? (locale === 'zh' ? '送风' : 'Fan') : (locale === 'zh' ? '制冷' : 'Cool')) + ' ' + store.devices[room.id].airConditioner.temperature + '°' : (locale === 'zh' ? '空调' : 'AC') }} {{ locale === 'zh' ? '风扇' : 'Fan' }} {{ locale === 'zh' ? '音响' : 'Speaker' }} {{ locale === 'zh' ? '窗帘' : 'Curtain' }} {{ store.devices[room.id].heater.status ? store.devices[room.id].heater.temperature + '°' : (locale === 'zh' ? '加热器' : 'Heater') }} {{ locale === 'zh' ? '蜂鸣器' : 'Buzzer' }}
{{ t('dashboard.quickActions') }}
{{ t('dashboard.door.title') }}
{{ t('dashboard.door.manageSecurity') }}
{{ monitorStatusText }}
{{ faceDetectName }}
{{ store.door.locked ? t('dashboard.door.locked') : t('dashboard.door.unlocked') }}
{{ t('dashboard.door.security') }} {{ t('dashboard.door.normal') }}
{{ t('dashboard.door.autoLock') }}
{{ store.door.autoLockSeconds }}{{ t('dashboard.door.seconds') }}
{{ t('dashboard.door.remoteUnlock') }}
{{ t('dashboard.door.lastActivity') }} {{ store.door.lastActivity || '--:--' }}
{{ t('dashboard.door.unlockHistory') }}
{{ h.name || h.method }} {{ h.time }}
{{ t('dashboard.door.lastActivity') }}
{{ t('common.noData') }}
{{ act.device || act.action || '' }} {{ act.action || '' }}
{{ formatTimeAgo(act.timestamp) }}