Для работы сервиса присутствия, который использует mDNS и механизмы определения подключения устройства к сети от Apple, в качестве базового приложения можно использовать Remote Speak.
Оно позволяет во первых подключить ваш Android смартфон в качестве датчика присутствия в Sprut.hub, чтобы при подключении к домашней сети, ваш хаб определял, что вы дома.
Для разных моделей Android, таймаут могут отличаться и стандартных 300 секунд может быть недостаточно, чтобы система не "теряла" ваш телефон, даже если он находится дома и на зарядке, так как различные версии Android периодически отключают телефон от WiFi сети, что может послужить триггером для перевода датчика присутствия в режим "не дома". Таймаут подбирается индивидуально.
Чтобы Android смартфон, мог работать в качестве датчика присутствия, в приложении Remote Speak необходимо включить службу mDNS.
Голосовые уведомления
Для отправки голосовых уведомлений на ваш Android смартфон, необходимо создать глобальный сценарий со следующим кодом:
var rsLocales = ["bn-BD", "bn-IN", "cs-CZ", "da-DK", "de-DE", "el-GR", "en-AU", "en-GB", "en-IN", "en-US", "es-ES", "es-US", "fi-FI", "fil-PH", "fr-BE", "fr-FR", "hi-IN", "hu-HU", "in-ID", "it-IT", "ja-JP", "km-KH", "ko-KR", "nb-NO", "ne-NP", "nl-NL", "pl-PL", "pt-BR", "pt-PT", "ru-RU", "si-LK", "sv-SE", "th-TH", "tr-TR", "uk-UA", "vi-VN", "yue-HK"];
// Токен из приложения https://play.google.com/store/apps/details?id=org.makesimple.remotespeak
var rsTokens = [
"ваш_токен_из_приложения_Remote_Speak_App_на_первом_смартфоне",
"ваш_токен_из_приложения_Remote_Speak_App_на_втором_смартфоне"
]
function sayToAndroid(id, text) {
sayToAndroidLang(id, "ru-RU", text);
}
function sayToAndroidLang(id, lang, text) {
try {
// token = rsTokens
const postData = {
to: rsTokens[id],
priority: 'high',
data: {
lang: lang,
msg: text
}
};
HttpClient.POST("https://fcm.googleapis.com")
.path("/fcm/send")
.header("Content-Type", "application/json")
.header("Authorization", "key=AIzaSyCau_csJXUd5RFFjdKGKH6h9Tvaz4sLj5Y")
.body(JSON.stringify(postData))
.send().getStatusText()
} catch (e) {
log.error(e.message);
}
}
sayToAndroid(0, "Хаб успешно запущен")
В данном сценарии, можно указывать несколько токенов от нескольких смартфонов на базе Android, чтобы можно было отправлять разные сообщения на несколько разных смартфонов. Отправка уведомлений на смартфон, осуществляется уже в блочном сценарии с помощью блока кода, в который вы вставляете следующую команду
global.sayToAndroid(0, "Текст который надо проговорить")
Где 0 - это порядковый номер вашего токена (смартфона). То есть первый токен в глобальном сценарии - имеет идентификатор "0", второй токен - имеет идентификатор "1" и так далее. Если у вас два смартфона, то для отправки на второй надо в блоке кода, указать уже
global.sayToAndroid(1, "Сообщение для второго смартфона")