나의 찾기 데이터 조회 프로필 분리
This commit is contained in:
@@ -58,7 +58,7 @@ PWA standalone으로 진입한 경우에는 설치형 앱 사용성을 우선해
|
||||
|
||||
실시간 화면은 현재 위치와 상태를 조회하고, 기본 기간 입력값에 해당하는 최근 하루 이동 기록도 지도에 함께 표시합니다. 라이브 모드의 기본 기간은 현재 시각 기준 24시간 전 정각부터 다음 정각까지이며, 정시가 지나면 입력 구간도 한 시간씩 같이 이동해 새 시간대 기록이 경로선에 계속 포함됩니다. 자동 위치 이동이 켜져 있어도 새 위치를 받을 때마다 경로선과 기록 요약을 같은 히스토리 기준으로 다시 그립니다. 기간 입력을 변경하면 해당 범위의 이동 기록을 `history=1` 옵션으로 다시 요청합니다. 서버는 Home Assistant 히스토리 API를 실행한 뒤 시간과 좌표가 같은 중복 지점만 제거하고, 설정 시간 안의 병합 지점을 전부 응답합니다.
|
||||
|
||||
상태 조회는 `seoul`, `main` Home Assistant의 `/states`를 모두 읽어 entity별로 병합합니다. 한쪽에만 의미 있는 값이 있으면 해당 값을 사용하고, 양쪽 모두 값이 있으면 더 최신 `last_updated` 또는 `last_changed` 값을 사용합니다. 선택된 상태의 attributes에 빈 값이 있으면 다른 쪽 attributes로 채워 빈칸을 줄입니다.
|
||||
상태 조회는 `/custom/common/config.php`의 `findmydevice_data_profiles`에 적힌 `seoul`, `main` Home Assistant `/states`를 모두 읽어 entity별로 병합합니다. 한쪽에만 의미 있는 값이 있으면 해당 값을 사용하고, 양쪽 모두 값이 있으면 더 최신 `last_updated` 또는 `last_changed` 값을 사용합니다. 선택된 상태의 attributes에 빈 값이 있으면 다른 쪽 attributes로 채워 빈칸을 줄입니다. 위치 갱신 명령은 서울 HA로만 보내지만, 데이터 조회는 서울과 목포/백업 HA를 계속 함께 사용합니다.
|
||||
|
||||
히스토리 조회도 `seoul`, `main` Home Assistant history를 모두 읽습니다. 서버는 시간과 좌표를 기준으로 중복 지점을 제거하고 시간순으로 병합합니다. 응답에는 병합 전 출처별 지점 수인 `historySourceCounts`도 포함합니다.
|
||||
|
||||
|
||||
+2
-3
@@ -90,8 +90,7 @@ function findmydevice_mobile_command(string $message, array $data = []): bool
|
||||
function findmydevice_ha_profiles(): array
|
||||
{
|
||||
$config = custom_config();
|
||||
$refresh = $config['findmydevice_location_refresh'] ?? [];
|
||||
return array_values(array_unique(array_filter(array_map('strval', (array)($refresh['profiles'] ?? [$refresh['profile'] ?? 'seoul'])))));
|
||||
return array_values(array_unique(array_filter(array_map('strval', (array)($config['findmydevice_data_profiles'] ?? ['seoul', 'main'])))));
|
||||
}
|
||||
|
||||
function findmydevice_state_timestamp(?array $state): int
|
||||
@@ -353,7 +352,7 @@ if (isset($_GET['action']) && $_GET['action'] === 'webhook') {
|
||||
|
||||
$config = custom_config();
|
||||
$entities = $config['entities'];
|
||||
$findmydeviceHaProfiles = ['seoul', 'main'];
|
||||
$findmydeviceHaProfiles = findmydevice_ha_profiles();
|
||||
$findmydeviceHomeConfig = is_array($config['findmydevice_home'] ?? null) ? $config['findmydevice_home'] : [];
|
||||
$findmydeviceHome = [
|
||||
'latitude' => isset($findmydeviceHomeConfig['latitude']) ? (float)$findmydeviceHomeConfig['latitude'] : null,
|
||||
|
||||
Reference in New Issue
Block a user