Zaświeć światło jak jestem w domu (GPS, geolokalizacja, proof of concept)

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Mój kolejny pomysł z wykorzystaniem API - włączanie i wyłączanie światła/pieca/czegokolwiek w zależności od tego gdzie jesteśmy.

W tym celu pobieramy nowe skrypty https://github.com/fracz/supla-scripts (doszedł tam skrypt o nazwie geo) a na Androida pobieramy aplikację https://play.google.com/store/apps/deta ... gger&hl=pl . Jest to bardzo prosta aplikacja która zapisuje co jakiś czas gdzie znajduje się nasz telefon do pliku GPX, ale także ma możliwość przesyłania współrzędnych w dowolne miejsce po HTTP. Wykorzystamy ten ficzur by powiedzieć skryptowi gdzie jesteśmy a on zajmie się resztą.

Aplikację konfigurujemy jak na screenie, w sekcji Sczegóły logowania -> Zapisuj do niestandardowego URL-a. Warto też ustawić sobie jak często aplikacja ma odczytywać współrzędne (Wydajność -> Interwał rejestrowania). Domyślnie jest to 60 sekund. Im częściej tym bardziej ucierpi bateria ale też supla będzie reagować szybciej na nasze wejście do domu. Po poprawnym ustawieniu aplikacji i rozpoczęciu logowania na głównym ekranie aplikacja będzie cyklicznie wysyłać współrzędne do skryptu.

Obrazek

Jeśli w skryptach włączona jest autentykacja HTTP, musimy ją tutać podać chamkso w URLu, na przykład:

http:// user:haslo@twojamalina.eu/supla-scripts/geo/%LAT/%LON

Musimy jeszcze skonfigurować co ma się dziać i gdzie. W tym celu kopiujemy przykładowy plik konfiguracyjny

cp geo/config.php.sample geo/config.php

I w nim wypełniamy następujące wartości:

'latitude' => 49.179560,
'longitude' => 20.088018,
'tolerance' => 1000,
'channel' => 123,
'actionInside' => 'turnOn',
'actionOutside' => 'turnOff',

latitude i longitude to współrzędnie miejsca gdzie ma się coś dziać. Skąd to wziąć? Jak na mapie google klikniecie sobie prawym przyciskiem i wybierzecie "Co tu jest" to się pokażą gotowe do skopiowania.

Obrazek

Dalej mamy tolerance (w metrach). Wartość 1000 oznacza że jak zbliżycie się na 1km do miejsca określonego przez współrzędne to akcja się wykona. Pozostaje do skonfigurowania id kanału oraz dwie akcje - actionInside wykona się gdy jesteśmy wewnątrz wyznaczonego przez współrzędne i promień obszaru. actionOutside wykona się gdy wyjdziemy poza niego.

W konfiguracji można skonfigurować kilka rzeczy które mają się dziać dla różnych współrzędnych i dla różnych tolerancji - wystarczy rozmnożyć te konfiguracje (to jest tablica).

Obecnie używam tego do włączania podświetlania schodów (w sumie każdy ficzur u mnie na tym testuję).

Docelowo można podrasować nieco skrypt tak by dało się np skonfigurować "włącz piec jeśli zbliżam się do domu" zamiast tylko takiego łopatologicznego zachowania "wchodzenia i wychodznia z obszaru" jak jest teraz. Trzeba by wtedy analizować kierunek przemieszczania się i odległość, czas itp.

Dwa największe problemy które widzę przy tym rozwiązaniu to zużycie baterii w smartfonie (niby aplikacja jest oszczędna i faktycznie po dwóch dniach używania mogę to potwierdzić, ale wiadomo że coś zżera) oraz to że bez przerwy na pasku na górze w telefonie jest ikonka działającego GPS Loggera (mnie to strasznie irytuje, ale może to tylko mnie).
koyak
Posty: 21
Rejestracja: pn wrz 11, 2017 11:12 am

A jest podobna apka na iOS? Z tego co szukałem to nic podobnego nie ma :/
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Powyższe rozwiązanie jest przekombinowane. Dużo prościej można to zrobić za pomocą Automate, które obsługuje voice i powiadomienia. Jest tam block "when in location", który może automatyczne wykonywać wywołanie do skryptów. Ale to też na Androida.

Jabłek nie znam i nie lubię więc ktoś inny musi pomóc. Od strony skryptów nie ma problemu - dogada się z każdym.
kayo
Posty: 3
Rejestracja: śr paź 04, 2017 5:42 am

Można też zastosować geolokację od Googla co daje nam brak przymusu dodatkowego programu na smartfonie i GPS też nie musi być włączony.
https://developers.google.com/maps/docu ... tion/intro
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Dobry pomysł! Serwer mógłby odpytywać Google API o lokalizację zamiast wymagać tego od smartfona. Nice, nie widziałem tego :)
koyak
Posty: 21
Rejestracja: pn wrz 11, 2017 11:12 am

Ja to zrobiłem w końcu jeszcze inaczej. Mój router sprawdza czy telefon jest podłączony do wifi.

W przypadku kiedy telefon rozłączy się z wifi wyłącza wszystko, natomiast jeżeli się podłączy np. podnosi rolety.
Awatar użytkownika
pzygmunt
Posty: 18287
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

koyak pisze: śr paź 04, 2017 9:34 am Ja to zrobiłem w końcu jeszcze inaczej. Mój router sprawdza czy telefon jest podłączony do wifi.

W przypadku kiedy telefon rozłączy się z wifi wyłącza wszystko, natomiast jeżeli się podłączy np. podnosi rolety.
Odpada. Smartfon odłącza się od wifi nawet jak jesteś w zasięgu sieci.
koyak
Posty: 21
Rejestracja: pn wrz 11, 2017 11:12 am

pzygmunt pisze: śr paź 04, 2017 9:36 am
koyak pisze: śr paź 04, 2017 9:34 am Ja to zrobiłem w końcu jeszcze inaczej. Mój router sprawdza czy telefon jest podłączony do wifi.

W przypadku kiedy telefon rozłączy się z wifi wyłącza wszystko, natomiast jeżeli się podłączy np. podnosi rolety.
Odpada. Smartfon odłącza się od wifi nawet jak jesteś w zasięgu sieci.
Ale dzierżawa DHCP zostaje, na biurku to działało zobaczymy w praktyce tylko czekam na na moduły do rolet :) Jakoś na pewno to obejdę bo MikroTik ma duży potencjał.
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

koyak pisze: śr paź 04, 2017 9:34 am W przypadku kiedy telefon rozłączy się z wifi wyłącza wszystko, natomiast jeżeli się podłączy np. podnosi rolety.
- Dlaczego wszystkie światła zgasły?
- Bo mi się telefon rozładował :lol:

A tak serio: co reaguje na połączenie z wifi? Telefon? I wtedy wysyła żądanie do supli?
Awatar użytkownika
nowy1
Posty: 339
Rejestracja: pt lip 01, 2016 11:51 am
Lokalizacja: Warszawa

Ja czekan znowu na czasy gdy jednym przyciskiem wyłączę wszystkie światła w domu :)
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”