업데이트 트리거 표시명 정리
This commit is contained in:
+119
-11
@@ -516,6 +516,60 @@ function mappedText($state, $lang, $map) {
|
|||||||
return $map[$lang][$state] ?? $map[$lang][strtolower((string)$state)] ?? $state;
|
return $map[$lang][$state] ?? $map[$lang][strtolower((string)$state)] ?? $state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function findmydevice_starts_with(string $value, string $prefix): bool
|
||||||
|
{
|
||||||
|
return strncmp($value, $prefix, strlen($prefix)) === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function readableTriggerCode(string $value, string $lang): string
|
||||||
|
{
|
||||||
|
$text = trim(preg_replace('/\s+/', ' ', str_replace(['_', '.', '-'], ' ', $value)));
|
||||||
|
if ($text === '') {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $lang === 'ko' ? $text : ucwords(strtolower($text));
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatTriggerValue($state, string $lang, array $map): ?string
|
||||||
|
{
|
||||||
|
if ($state === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$state = trim((string)$state);
|
||||||
|
if ($state === '' || $state === 'unknown' || $state === 'unavailable') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$language = isset($map[$lang]) ? $lang : 'ko';
|
||||||
|
if (isset($map[$language][$state])) {
|
||||||
|
return $map[$language][$state];
|
||||||
|
}
|
||||||
|
|
||||||
|
$prefixes = [
|
||||||
|
'android.intent.action.' => $language === 'ko' ? 'Android 동작' : 'Android action',
|
||||||
|
'android.bluetooth.device.action.' => $language === 'ko' ? '블루투스 기기' : 'Bluetooth device',
|
||||||
|
'android.bluetooth.adapter.action.' => $language === 'ko' ? '블루투스' : 'Bluetooth',
|
||||||
|
'android.media.' => $language === 'ko' ? '미디어' : 'Media',
|
||||||
|
'android.net.wifi.' => $language === 'ko' ? 'Wi-Fi' : 'Wi-Fi',
|
||||||
|
'android.net.' => $language === 'ko' ? '네트워크' : 'Network',
|
||||||
|
'android.nfc.action.' => $language === 'ko' ? 'NFC' : 'NFC',
|
||||||
|
'android.os.action.' => $language === 'ko' ? 'Android 시스템' : 'Android system',
|
||||||
|
'android.app.action.' => $language === 'ko' ? 'Android 앱' : 'Android app',
|
||||||
|
'io.homeassistant.companion.android.' => $language === 'ko' ? 'Home Assistant 앱' : 'Home Assistant app',
|
||||||
|
'com.google.android.gms.location.' => $language === 'ko' ? 'Google 위치' : 'Google location',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($prefixes as $prefix => $label) {
|
||||||
|
if (findmydevice_starts_with($state, $prefix)) {
|
||||||
|
return $label . ': ' . readableTriggerCode(substr($state, strlen($prefix)), $language);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return readableTriggerCode($state, $language);
|
||||||
|
}
|
||||||
|
|
||||||
function durationText(int $seconds, string $lang): ?string
|
function durationText(int $seconds, string $lang): ?string
|
||||||
{
|
{
|
||||||
if ($seconds <= 0) return null;
|
if ($seconds <= 0) return null;
|
||||||
@@ -815,19 +869,46 @@ $triggerMap = [
|
|||||||
'ko' => [
|
'ko' => [
|
||||||
"Launch" => "앱 실행",
|
"Launch" => "앱 실행",
|
||||||
"Background Fetch" => "백그라운드 갱신",
|
"Background Fetch" => "백그라운드 갱신",
|
||||||
"Push Notification" => "푸시",
|
"Push Notification" => "푸시 알림",
|
||||||
"Periodic" => "주기적",
|
"Periodic" => "주기 갱신",
|
||||||
"Significant Location Change" => "중요한 위치 변화",
|
"Significant Location Change" => "큰 위치 변화",
|
||||||
"Manual" => "수동",
|
"Manual" => "수동 갱신",
|
||||||
"Signaled" => "시그널 됨",
|
"Signaled" => "외부 신호",
|
||||||
"Siri" => "Siri 실행",
|
"Siri" => "Siri 실행",
|
||||||
"Watch Context" => "워치 상태 전송",
|
"Watch Context" => "워치 상태 전송",
|
||||||
"Geographic Region Entered" => "지정 지역에 들어옴",
|
"Geographic Region Entered" => "지정 지역에 들어옴",
|
||||||
"Geographic Region Exited" => "지정 지역을 벗어남",
|
"Geographic Region Exited" => "지정 지역을 벗어남",
|
||||||
"android.intent.action.TIME_TICK" => "Android 시간 틱",
|
"SensorWorker" => "센서 자동 갱신",
|
||||||
|
"android.app.action.NEXT_ALARM_CLOCK_CHANGED" => "다음 알람 변경",
|
||||||
|
"android.bluetooth.device.action.ACL_CONNECTED" => "블루투스 기기 연결",
|
||||||
|
"android.bluetooth.device.action.ACL_DISCONNECTED" => "블루투스 기기 연결 해제",
|
||||||
|
"android.intent.action.ACTION_POWER_CONNECTED" => "충전기 연결",
|
||||||
|
"android.intent.action.ACTION_POWER_DISCONNECTED" => "충전기 분리",
|
||||||
|
"android.intent.action.BATTERY_CHANGED" => "배터리 상태 변경",
|
||||||
|
"android.intent.action.CONFIGURATION_CHANGED" => "기기 설정 변경",
|
||||||
|
"android.intent.action.HEADSET_PLUG" => "헤드셋 연결 변경",
|
||||||
|
"android.intent.action.PHONE_STATE" => "전화 상태 변경",
|
||||||
|
"android.intent.action.TIME_TICK" => "1분 주기 갱신",
|
||||||
"android.intent.action.SCREEN_ON" => "화면 켜짐",
|
"android.intent.action.SCREEN_ON" => "화면 켜짐",
|
||||||
"android.intent.action.SCREEN_OFF" => "화면 꺼짐",
|
"android.intent.action.SCREEN_OFF" => "화면 꺼짐",
|
||||||
"io.homeassistant.companion.android.UPDATE_SENSORS" => "센서 업데이트",
|
"android.intent.action.USER_PRESENT" => "잠금 해제",
|
||||||
|
"android.intent.action.BOOT_COMPLETED" => "부팅 완료",
|
||||||
|
"android.intent.action.MY_PACKAGE_REPLACED" => "Home Assistant 앱 업데이트",
|
||||||
|
"android.intent.action.PACKAGE_REPLACED" => "앱 패키지 업데이트",
|
||||||
|
"android.media.AUDIO_BECOMING_NOISY" => "오디오 출력 변경",
|
||||||
|
"android.media.RINGER_MODE_CHANGED" => "벨소리 모드 변경",
|
||||||
|
"android.media.VOLUME_CHANGED_ACTION" => "볼륨 변경",
|
||||||
|
"android.net.conn.CONNECTIVITY_CHANGE" => "네트워크 연결 변경",
|
||||||
|
"android.net.wifi.STATE_CHANGE" => "Wi-Fi 연결 변경",
|
||||||
|
"android.net.wifi.WIFI_AP_STATE_CHANGED" => "핫스팟 상태 변경",
|
||||||
|
"android.net.wifi.WIFI_STATE_CHANGED" => "Wi-Fi 상태 변경",
|
||||||
|
"android.nfc.action.ADAPTER_STATE_CHANGED" => "NFC 상태 변경",
|
||||||
|
"android.os.action.DEVICE_IDLE_MODE_CHANGED" => "절전 대기 상태 변경",
|
||||||
|
"android.bluetooth.adapter.action.STATE_CHANGED" => "블루투스 상태 변경",
|
||||||
|
"android.location.PROVIDERS_CHANGED" => "위치 제공자 변경",
|
||||||
|
"android.location.MODE_CHANGED" => "위치 모드 변경",
|
||||||
|
"com.google.android.gms.location.LOCATION_UPDATE" => "Google 위치 갱신",
|
||||||
|
"io.homeassistant.companion.android.UPDATE_SENSORS" => "센서 갱신 명령",
|
||||||
],
|
],
|
||||||
'en' => [
|
'en' => [
|
||||||
"Launch" => "Launch",
|
"Launch" => "Launch",
|
||||||
@@ -841,10 +922,37 @@ $triggerMap = [
|
|||||||
"Watch Context" => "Watch Context",
|
"Watch Context" => "Watch Context",
|
||||||
"Geographic Region Entered" => "Geographic Region Entered",
|
"Geographic Region Entered" => "Geographic Region Entered",
|
||||||
"Geographic Region Exited" => "Geographic Region Exited",
|
"Geographic Region Exited" => "Geographic Region Exited",
|
||||||
"android.intent.action.TIME_TICK" => "Android Time Tick",
|
"SensorWorker" => "Sensor Worker",
|
||||||
|
"android.app.action.NEXT_ALARM_CLOCK_CHANGED" => "Next Alarm Changed",
|
||||||
|
"android.bluetooth.device.action.ACL_CONNECTED" => "Bluetooth Device Connected",
|
||||||
|
"android.bluetooth.device.action.ACL_DISCONNECTED" => "Bluetooth Device Disconnected",
|
||||||
|
"android.intent.action.ACTION_POWER_CONNECTED" => "Power Connected",
|
||||||
|
"android.intent.action.ACTION_POWER_DISCONNECTED" => "Power Disconnected",
|
||||||
|
"android.intent.action.BATTERY_CHANGED" => "Battery Changed",
|
||||||
|
"android.intent.action.CONFIGURATION_CHANGED" => "Configuration Changed",
|
||||||
|
"android.intent.action.HEADSET_PLUG" => "Headset Changed",
|
||||||
|
"android.intent.action.PHONE_STATE" => "Phone State Changed",
|
||||||
|
"android.intent.action.TIME_TICK" => "Minute Tick",
|
||||||
"android.intent.action.SCREEN_ON" => "Screen On",
|
"android.intent.action.SCREEN_ON" => "Screen On",
|
||||||
"android.intent.action.SCREEN_OFF" => "Screen Off",
|
"android.intent.action.SCREEN_OFF" => "Screen Off",
|
||||||
"io.homeassistant.companion.android.UPDATE_SENSORS" => "Sensor Update",
|
"android.intent.action.USER_PRESENT" => "User Unlocked",
|
||||||
|
"android.intent.action.BOOT_COMPLETED" => "Boot Completed",
|
||||||
|
"android.intent.action.MY_PACKAGE_REPLACED" => "Home Assistant App Updated",
|
||||||
|
"android.intent.action.PACKAGE_REPLACED" => "App Package Updated",
|
||||||
|
"android.media.AUDIO_BECOMING_NOISY" => "Audio Output Changed",
|
||||||
|
"android.media.RINGER_MODE_CHANGED" => "Ringer Mode Changed",
|
||||||
|
"android.media.VOLUME_CHANGED_ACTION" => "Volume Changed",
|
||||||
|
"android.net.conn.CONNECTIVITY_CHANGE" => "Network Changed",
|
||||||
|
"android.net.wifi.STATE_CHANGE" => "Wi-Fi Connection Changed",
|
||||||
|
"android.net.wifi.WIFI_AP_STATE_CHANGED" => "Hotspot State Changed",
|
||||||
|
"android.net.wifi.WIFI_STATE_CHANGED" => "Wi-Fi State Changed",
|
||||||
|
"android.nfc.action.ADAPTER_STATE_CHANGED" => "NFC State Changed",
|
||||||
|
"android.os.action.DEVICE_IDLE_MODE_CHANGED" => "Device Idle Mode Changed",
|
||||||
|
"android.bluetooth.adapter.action.STATE_CHANGED" => "Bluetooth State Changed",
|
||||||
|
"android.location.PROVIDERS_CHANGED" => "Location Provider Changed",
|
||||||
|
"android.location.MODE_CHANGED" => "Location Mode Changed",
|
||||||
|
"com.google.android.gms.location.LOCATION_UPDATE" => "Google Location Update",
|
||||||
|
"io.homeassistant.companion.android.UPDATE_SENSORS" => "Sensor Update Command",
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -899,7 +1007,7 @@ if (isset($_GET['hashonly']) && $_GET['hashonly'] == '1') {
|
|||||||
'longitude' => $deviceData['attributes']['longitude'] ?? null,
|
'longitude' => $deviceData['attributes']['longitude'] ?? null,
|
||||||
'accuracy' => $deviceData['attributes']['gps_accuracy'] ?? null,
|
'accuracy' => $deviceData['attributes']['gps_accuracy'] ?? null,
|
||||||
'updated' => $deviceData['last_changed'] ?? null,
|
'updated' => $deviceData['last_changed'] ?? null,
|
||||||
'trigger' => $triggerMap[$lang][$triggerData['state']] ?? $triggerData['state'] ?? null,
|
'trigger' => formatTriggerValue($triggerData['state'] ?? null, $lang, $triggerMap),
|
||||||
'address' => $address,
|
'address' => $address,
|
||||||
'state' => $batteryStateMap[$lang][$batteryState] ?? $batteryState ?? null,
|
'state' => $batteryStateMap[$lang][$batteryState] ?? $batteryState ?? null,
|
||||||
'level' => $batteryLevelData['state'] ?? null,
|
'level' => $batteryLevelData['state'] ?? null,
|
||||||
@@ -925,7 +1033,7 @@ echo json_encode([
|
|||||||
'longitude' => $deviceData['attributes']['longitude'] ?? null,
|
'longitude' => $deviceData['attributes']['longitude'] ?? null,
|
||||||
'accuracy' => $deviceData['attributes']['gps_accuracy'] ?? null,
|
'accuracy' => $deviceData['attributes']['gps_accuracy'] ?? null,
|
||||||
'updated' => $deviceData['last_changed'] ?? null,
|
'updated' => $deviceData['last_changed'] ?? null,
|
||||||
'trigger' => $triggerMap[$lang][$triggerData['state']] ?? $triggerData['state'] ?? null,
|
'trigger' => formatTriggerValue($triggerData['state'] ?? null, $lang, $triggerMap),
|
||||||
'address' => $address,
|
'address' => $address,
|
||||||
'state' => $batteryStateMap[$lang][$batteryState] ?? $batteryState ?? null,
|
'state' => $batteryStateMap[$lang][$batteryState] ?? $batteryState ?? null,
|
||||||
'level' => $batteryLevelData['state'] ?? null,
|
'level' => $batteryLevelData['state'] ?? null,
|
||||||
|
|||||||
Reference in New Issue
Block a user