W mobilnej aplikacji SmartThings możemy tworzyć automatyzacje powiązane z lokalizacją. Wiele reakcji inteligentnego domu, podyktowane jest, zależnością od kilku lokalizacji telefonów naszych domowników. Przykładowo, kiedy wszyscy członkowie opuszczą obszar domu, Home Monitor ma uzbroić alarm. Niestety tutaj pojawia się mały problem, ponieważ nie jesteśmy w stanie podejrzeć w aplikacji, aktualnego statusu naszych domowników. Czy znajdują się oni na terenie naszego domu? Czy poza nim? Automatyzacja powinna się wykonać, a tak się nie stało. Z pomocą przychodzi symulowany czujnik obecności oraz SmartApp o nazwie Everyone’s Presence.
[UWAGA]: Symulowany czujnik obecności do działania na platformie SmartThings wymagał zainstalowania niestandardowych programów obsługi i dedykowanych SmartApp. Funkcja ta została jednak wycofana. Obecnie niemożliwe jest skorzystanie z przedstawionego poniżej rozwiązania.
Od 5 stycznia 2023 roku symulowane czujniki obecności nie działają prawidłowo, zalecamy ich usunięcie z ekosystemu SmartThings. Zapraszamy do nowego poradnika z tworzenia wirtualnego czujnika obecności, dostępny jest tutaj.
Wirtualny czujnik obecności w SmartThings
Panel „Historia” Edytuj
W głównym panelu wirtualnego czujnika obecności mamy tylko informację o obecności domownika na terenie domu: „present” oznacza, że użytkownik znajduje się na terenie domu a „Not present”, że poza nim. Obszar domu można ustawić w ustawieniach lokalizacji aplikacji. Panel „Historii” nie różni się znacznie od innych urządzeń, mamy dostęp do sortowania i przestudiowania historii obecności. W ustawieniach „Edytuj” mamy standardową możliwość zmiany nazwy, pokoju oraz przypisanie do panelu ulubionych.
Wirtualny czujnik obecności wykonuje przetwarzanie poleceń w chmurze, z tego też tytułu przy utracie połączenia z Internetem, nie jest możliwe wykonywanie aktualizacji stanu obecności.
Symulowany czujnik obecności przy tworzeniu automatyzacji „Jeśli … to Wtedy” pozwala na wybranie tylko warunku „Nieobecność” lub „Obecność”. Dodatkowo możemy zdecydować, jak długo zachować ten stan zanim uaktywni się automatyzacja oraz wybrać, jako warunek wstępny. Ze względu na specyfikę urządzenia, nie możliwe jest ustalanie warunku „wtedy”.
Tworzenie symulowanego czujnika obecności
Aby utworzyć wirtualne urządzenie będące czujnikiem obecności, należy zalogować się do IDE na https://account.smartthings.com, i kliknąć Log in. Koniecznie na to samo konto Samsung, na którym został zbudowany inteligentny dom SmartThings.

Następnie wchodzimy w My Devices. Ukaże nam się lista wszystkich urządzeń w naszym ekosystemie SmartThings.

Klikamy + New Devices

Na następnym ekranie konieczne jest wypełnienie takich pól jak:
- Name (nazwa): wpisz nazwę dla swojego urządzenia, np. Janusz – obecność
- Label (etykieta): nie jest konieczne jej wypełnienie
- Zigbee Id (identyfikator Zigbee): nie trzeba wypełniać
- Device Network Id (identyfikator sieci urządzenia): wypełnij bez akcentów, spacji lub specjalnych znaków, proponuję użycie ciągu losowych liter lub np. nazwy urządzenia, jak „obecnosc-janusz1”. UWAGA !: Identyfikatory nie mogą pokrywać się z innymi urządzeniami.
- Type (typ): wybierz z listy Simulated Presence Sensor
- Version (wersja): pozostaw Published
- Location (lokalizacja): wybierz swój dom
- Hub (centrala SmartThings): wybierz nazwę swojej centrali
- Group (grupa): pozostaw puste, w aplikacji SmartThings są to pokoje, czujnik pojawi się w sekcji „Brak przypisanego pokoju”
Po wypełnieniu kliknij Create, u dołu ekranu, wyświetli się komunikat o sukcesie.

Po utworzeniu wirtualnego czujnika obecności, możemy przejść do aplikacji mobilnej i odnaleźć nowe urządzenie. Pojawi się ono w sekcji pokoi, a konkretnie „Brak przypisanego pokoju”. Po wejściu w panel urządzenia i opcje edycji możemy przenieść czujnik do dowolnego pokoju.
Instrukcja dodawania SmartApps Everyone’s Presence
Aby symulowany czujnik obecności poprawnie działał potrzebne jest powiązanie go z lokalizacją danego smartfona domownika. W innym wypadku nie będzie on aktualizował swojego stanu. W tym celu posłuży nam SmartApps o nazwie Everyone’s Presence.
Przechodzimy do instalacji SmartApps. W pierwszej kolejności należy się zalogować do IDE na https://account.smartthings.com, i kliknąć Log in. Koniecznie na to samo konto Samsung, na którym został zbudowany inteligentny dom SmartThings.

Następnie wchodzimy w My SmartApps. Tutaj posiadamy listę wszystkich niestandardowych SmartApps do tej pory zainstalowanych.

Kliknij + New SmartApp i tym samym przechodzimy do instalowania.

My zdecydowaliśmy się na instalację aplikacji z posiadanego już kodu, więc na kolejnej stronie klikamy From Code. Wklejamy poniższy kod (Ctrl + V) i klikamy Create. Aktualny kod znajduje się w pliku everyones-presence.groovy.
/**
* Everyone's Presence
*
* Copyright 2015 Eric Roberts
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
* for the specific language governing permissions and limitations under the License.
*
*/
definition(
name: "Everyone's Presence",
namespace: "baldeagle072",
author: "Eric Roberts",
description: "Will set a simulated presence sensor based based on if anybody is home. If no people are home, it will set to 'not present'. If at least one person is home, it will set to 'present'.",
category: "Fun & Social",
iconUrl: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience.png",
iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience@2x.png",
iconX3Url: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience@2x.png")
preferences {
section("Select Presence Sensor Group") {
input "presenceSensors", "capability.presenceSensor", title: "Presence Sensors", multiple: true, required: true
input "simulatedPresence", "device.simulatedPresenceSensor", title: "Simulated Presence Sensor", multiple: false, required: true
}
}
def installed() {
log.debug "Installed with settings: ${settings}"
initialize()
}
def updated() {
log.debug "Updated with settings: ${settings}"
unsubscribe()
initialize()
}
def initialize() {
setPresence()
subscribe(presenceSensors, "presence", "presenceHandler")
}
def presenceHandler(evt) {
setPresence()
}
def setPresence(){
def presentCounter = 0
presenceSensors.each {
if (it.currentValue("presence") == "present") {
presentCounter++
}
}
log.debug("presentCounter: ${presentCounter}, simulatedPresence: ${simulatedPresence.currentValue("presence")}")
if (presentCounter > 0) {
if (simulatedPresence.currentValue("presence") != "present") {
simulatedPresence.arrived()
log.debug("Arrived")
}
} else {
if (simulatedPresence.currentValue("presence") != "not present") {
simulatedPresence.departed()
log.debug("Departed")
}
}
}

W kolejnym kroku po wyświetleniu komunikatu „Created SmartApp”, kończąc instalację, kliknij Publish, a następnie For Me w prawym górnym rogu. Pojawi się kończący komunikat „SmartApp published successfully”, świadczący o sukcesie operacji.

Teraz możemy przejść do dodania SmartApps do ekosystemu SmartThings i powiązania lokalizacji telefonu z wirtualnym czujnikiem obecności. Otwieramy aplikację na smartfonie. Na ekranie głównym aplikacji, klikamy Dodaj ( + ), następnie wybierz Smart App. Wybierz instalowaną wcześniej aplikację, czyli Everyone’s Presence.
Teraz przystąpimy do konfiguracji, lokalizacji i symulowanego czujnika obecności. W pierwszej kolejności, wybieramy smartfon na podstawie, którego będzie pobierana lokalizacja. Klikamy w sekcję „Presence Sensors” i wybieramy nazwę telefonu (nie pomyl z wirtualnym czujnikiem). W kolejnej sekcji „Simulated Presence Sensors” decydujemy który z wirtualnych czujników obecności będzie aktualizował swój stan, zgodnie z lokalizacją domownika. My wybieramy wcześniej utworzone urządzenie „Janusz – obecność”. Następnie nadajemy nazwę nowo tworzonej SmartApp, w naszym wypadku będzie to „Janusz lokalizacja SmartApp” oraz tryby lokalizacji. Na koniec klikamy Gotowe, utworzona SmartApp pojawi się w odpowiedniej sekcji w aplikacji SmartThings.
Wybranie smartfona Wybranie wirtualnego czujnika obecności Nadanie nazwy SmartApps Definiowanie trybów lokalizacji Wypełnione ustawienia SmartApp Sekcja SmartApp
Powtórz powyższe kroki instalacji dla wszystkich osób, które chcesz pokazać w aplikacji.
Usunięcie SmartApp Everyone’s Presence
Jeśli aplikacja SmartApp nie działa zgodnie z oczekiwaniami lub nie jest już potrzebna, można ją usunąć z aplikacji SmartThings. Pamiętaj, że od tej chwili nie będzie aktualizowany stan symulowanego czujnika obecności. Aby usunąć SmartApp, wykonaj następujące kroki:
- W aplikacji SmartThings, przejdź do sekcji Automatyzacje.
- Wybierz Więcej opcji ( ⋮ ) i dotknij Usuń.
- Przewiń w dół, aż znajdziesz sekcję SmartApps.
- Wybierz Minus (-) obok żądanej aplikacji SmartApp.
- Stuknij Usuń, aby potwierdzić.
Usunięcie Wirtualnego czujnika obecności
Usuwając symulowany czujnik obecności z aplikacji SmartThings, wykonaj następujące kroki:
- W aplikacji SmartThings, przejdź do panelu urządzenia.
- Wybierz Więcej opcji ( ⋮ ) i dotknij Edytuj.
- Stuknij Usuń urządzenie, a następnie Usuń, aby potwierdzić.
w sekcji „Presence Sensors” nie mam swojego Smartfona. Jak go dodać?
PolubieniePolubienie
W ustawieniach aplikacji SmartThings, zezwolić na używanie lokalizacji (Menu >> koło zębate >> Pobierz lokalizację z tego telefonu >> zaznaczyć), ewentualnie również sprawdzić ustawienia aplikacji na systemie Android/iOS czy ma zezwolenie na jej pobieranie.
PolubieniePolubienie