diff --git a/smartapps/smartthings/notify-me-when.src/i18n/messages.properties b/smartapps/smartthings/notify-me-when.src/i18n/messages.properties new file mode 100644 index 0000000..a190968 --- /dev/null +++ b/smartapps/smartthings/notify-me-when.src/i18n/messages.properties @@ -0,0 +1,31 @@ +'''Acceleration Detected'''.ko=가속화 감지됨 +'''Arrival Of'''.ko=도착 +'''Both Push and SMS?'''.ko=푸시 메시지와 SMS를 모두 사용하시겠습니까? +'''Button Pushed'''.ko=버튼이 눌렸습니다 +'''Contact Closes'''.ko=접점 닫힘 +'''Contact Opens'''.ko=접점 열림 +'''Departure Of'''.ko=출발 +'''Message Text'''.ko=문자 메시지 +'''Minutes'''.ko=분 +'''Motion Here'''.ko=동작 +'''Phone Number (for SMS, optional)'''.ko=휴대전화 번호(문자 메시지 - 옵션) +'''Receive notifications when anything happens in your home.'''.ko=집 안에 무슨 일이 일어나면 알림이 전송됩니다. +'''Smoke Detected'''.ko=연기가 감지되었습니다 +'''Switch Turned Off'''.ko=스위치 꺼짐 +'''Switch Turned On'''.ko=스위치 꺼짐 +'''Choose one or more, when...'''.ko=다음의 경우 하나 이상 선택 +'''Yes'''.ko=예 +'''No'''.ko=아니요 +'''Send this message (optional, sends standard status message if not specified)'''.ko=이 메시지 전송(선택적, 지정되지 않은 경우 표준 상태 메시지를 보냅니다) +'''Via a push notification and/or an SMS message'''.ko=푸시 알림 및/또는 문자 메시지를 통해 +'''Set for specific mode(s)'''.ko=특정 모드 설정 +'''Tap to set'''.ko=눌러서 설정 +'''Minimum time between messages (optional, defaults to every message)'''.ko=메시지작 간 최소 시간(선택 사항, 모든 메시지의 기본 설정) +'''If outside the US please make sure to enter the proper country code'''.ko=미국 이외 거주자는 적절한 국가 코드를 입력했는지 확인하십시오 +'''Water Sensor Wet'''.ko=Water Sensor에서 물이 감지되었습니다 +'''{{ triggerEvent.linkText }} has arrived at the {{ location.name }}'''.ko={{ triggerEvent.linkText }}님이 {{ location.name }}에 도착했습니다 +'''{{ triggerEvent.linkText }} has arrived at {{ location.name }}'''.ko={{ triggerEvent.linkText }}님이 {{ location.name }}에 도착했습니다 +'''{{ triggerEvent.linkText }} has left the {{ location.name }}'''.ko={{ triggerEvent.linkText }}님이 {{ location.name }}을(를) 떠났습니다 +'''{{ triggerEvent.linkText }} has left {{ location.name }}'''.ko={{ triggerEvent.linkText }}님이 {{ location.name }}을(를) 떠났습니다 +'''Assign a name'''.ko=이름 배정 +'''Choose Modes'''.ko=모드 선택 diff --git a/smartapps/smartthings/notify-me-when.src/notify-me-when.groovy b/smartapps/smartthings/notify-me-when.src/notify-me-when.groovy index 12fa2a7..f124260 100644 --- a/smartapps/smartthings/notify-me-when.src/notify-me-when.groovy +++ b/smartapps/smartthings/notify-me-when.src/notify-me-when.groovy @@ -20,19 +20,19 @@ * 2014-10-03: Added capability.button device picker and button.pushed event subscription. For Doorbell. */ definition( - name: "Notify Me When", - namespace: "smartthings", - author: "SmartThings", - description: "Receive notifications when anything happens in your home.", - category: "Convenience", - iconUrl: "https://s3.amazonaws.com/smartapp-icons/Meta/window_contact.png", - iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Meta/window_contact@2x.png" + name: "Notify Me When", + namespace: "smartthings", + author: "SmartThings", + description: "Receive notifications when anything happens in your home.", + category: "Convenience", + iconUrl: "https://s3.amazonaws.com/smartapp-icons/Meta/window_contact.png", + iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Meta/window_contact@2x.png" ) preferences { section("Choose one or more, when..."){ input "button", "capability.button", title: "Button Pushed", required: false, multiple: true //tw - input "motion", "capability.motionSensor", title: "Motion Here", required: false, multiple: true + input "motion", "capability.motionSensor", title: "Motion Here", required: false, multiple: true input "contact", "capability.contactSensor", title: "Contact Opens", required: false, multiple: true input "contactClosed", "capability.contactSensor", title: "Contact Closes", required: false, multiple: true input "acceleration", "capability.accelerationSensor", title: "Acceleration Detected", required: false, multiple: true @@ -47,11 +47,11 @@ preferences { input "messageText", "text", title: "Message Text", required: false } section("Via a push notification and/or an SMS message"){ - input("recipients", "contact", title: "Send notifications to") { - input "phone", "phone", title: "Phone Number (for SMS, optional)", required: false - paragraph "If outside the US please make sure to enter the proper country code" - input "pushAndPhone", "enum", title: "Both Push and SMS?", required: false, options: ["Yes", "No"] - } + input("recipients", "contact", title: "Send notifications to") { + input "phone", "phone", title: "Phone Number (for SMS, optional)", required: false + paragraph "If outside the US please make sure to enter the proper country code" + input "pushAndPhone", "enum", title: "Both Push and SMS?", required: false, options: ["Yes", "No"] + } } section("Minimum time between messages (optional, defaults to every message)") { input "frequency", "decimal", title: "Minutes", required: false @@ -71,7 +71,7 @@ def updated() { def subscribeToEvents() { subscribe(button, "button.pushed", eventHandler) //tw - subscribe(contact, "contact.open", eventHandler) + subscribe(contact, "contact.open", eventHandler) subscribe(contactClosed, "contact.closed", eventHandler) subscribe(acceleration, "acceleration.active", eventHandler) subscribe(motion, "motion.active", eventHandler) @@ -99,49 +99,55 @@ def eventHandler(evt) { } private sendMessage(evt) { - def msg = messageText ?: defaultText(evt) + String msg = messageText + Map options = [:] + + if (!messageText) { + msg = defaultText(evt) + options = [translatable: true, triggerEvent: evt] + } log.debug "$evt.name:$evt.value, pushAndPhone:$pushAndPhone, '$msg'" - if (location.contactBookEnabled) { - sendNotificationToContacts(msg, recipients) - } - else { + if (location.contactBookEnabled) { + sendNotificationToContacts(msg, recipients, options) + } else { + if (!phone || pushAndPhone != 'No') { + log.debug 'sending push' + options.method = 'push' + //sendPush(msg) + } + if (phone) { + options.phone = phone + log.debug 'sending SMS' + //sendSms(phone, msg) + } + sendNotification(msg, options) + } - if (!phone || pushAndPhone != "No") { - log.debug "sending push" - sendPush(msg) - } - if (phone) { - log.debug "sending SMS" - sendSms(phone, msg) - } - } if (frequency) { state[evt.deviceId] = now() } } private defaultText(evt) { - if (evt.name == "presence") { - if (evt.value == "present") { + if (evt.name == 'presence') { + if (evt.value == 'present') { if (includeArticle) { - "$evt.linkText has arrived at the $location.name" + '{{ triggerEvent.linkText }} has arrived at the {{ location.name }}' } else { - "$evt.linkText has arrived at $location.name" + '{{ triggerEvent.linkText }} has arrived at {{ location.name }}' } - } - else { + } else { if (includeArticle) { - "$evt.linkText has left the $location.name" + '{{ triggerEvent.linkText }} has left the {{ location.name }}' } else { - "$evt.linkText has left $location.name" + '{{ triggerEvent.linkText }} has left {{ location.name }}' } } - } - else { - evt.descriptionText + } else { + '{{ triggerEvent.descriptionText }}' } }