Symulowany czujnik obecności – Skąd mam wiedzieć, kto jest w domu ?

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.

Wirtualny czujnik obecności w SmartThings

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.

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:

  1. W aplikacji SmartThings, przejdź do sekcji Automatyzacje.
  2. Wybierz Więcej opcji ( ⋮ ) i dotknij Usuń.
  3. Przewiń w dół, aż znajdziesz sekcję SmartApps.
  4. Wybierz Minus (-) obok żądanej aplikacji SmartApp.
  5. Stuknij Usuń, aby potwierdzić.

Usunięcie Wirtualnego czujnika obecności

Usuwając symulowany czujnik obecności z aplikacji SmartThings, wykonaj następujące kroki:

  1. W aplikacji SmartThings, przejdź do panelu urządzenia.
  2. Wybierz Więcej opcji ( ⋮ ) i dotknij Edytuj.
  3. Stuknij Usuń urządzenie, a następnie Usuń, aby potwierdzić.
Więcej informacji znajdziesz tutaj oraz tutaj.

2 myśli w temacie “Symulowany czujnik obecności – Skąd mam wiedzieć, kto jest w domu ?

    1. 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.

      Polubienie

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s