Mobile Remote Manager dla systemu eHouse.
	Mobile Remote Manager jest aplikacją Java (MIDP 2.0, CLDC 1.1), służącą do instalacji na telefonie komórkowym lub PDA, do zdalnego zarządzania systemem inteligentnego domu eHouse. Umożliwia uruchamianie zdarzeń w systemie eHouse, poprzez wysyłanie komend sterujących SMS'em, e-Mail'em, lub lokalnie przez połączenie BlueTooth. Ponadto pozwala na odbieranie logów systemowych z systemu ehouse przez e-Mail. 

Wybór i sprawdzenie telefonu komórkowego pod kątem sterowania systemem eHouse.
	Do obsługi inteligentnego domu eHouse szczególnie polecane są telefony PDA z wbudowanym łączem BlueTooth, które zwiększają wygodę i umożliwiają darmowe - lokalne przesyłanie danych (przez łącze BlueTooth), bez opłat operatora za wysyłanie SMS'a lub e-Mail'a. Telefony pracujące na systemach operacyjnych SYMBIAN, WINDOWS Mobile itd. są znacznie wygodniejsze, gdyż aplikacja do sterowania może być cały czas uruchomiona w tle lub mamy do niej szybki dostęp, ze względu na wielozadaniowość systemu operacyjnego. Podstawowe wymagania stawiane telefonowi komórkowemu zapewniające wygodną pracę i pełną funkcjonalność aplikacji to:
-Zgodność z Java (MIDP 2.0, CLDC 1.1),
-Wbudowane łącze BlueTooth (Class 2 lub Class 1),
- Wbudowany system plików,
-Możliwość instalacji lokalnych certyfikatów bezpieczeństwa do uwierzytelniania aplikacji JAVA,
- Praca na systemie operacyjnym (Symbian, Windows Mobile, itp).

	Przed zakupem telefonu ponadto dobrze sprawdzić instalację certyfikatu oraz poprawność i funkcjonalność działania aplikacji na wybranym modelu, gdyż różni producencji telefonów komórkowych mogą ograniczać możliwości swoich urządzeń tak, że praca aplikacji Mobile Remote Manager może być uciążliwa lub wręcz niemożliwa. Nawet zapewnienie, że telefon posiada BlueTooth i Java w wersji MIDP 2.0,CLDC 1.1 jest nie wystarczające, gdyż część funkcji aplikacji może działać nieprawidłowo ze względu na ograniczenia danego modelu telefonu komórkowego, jak również ograniczeń i blokad nałożonych przez operatora sieci (np. blokada instalacji certyfikatów). Należy też brać pod uwagę że ten sam telefon w sklepie (bez abonamentu), może mieć większe możliwości niż kupiony u operatora telefoni komórkowej, ze względu na wspomniane wcześniej praktyki blokowania funkcji telefonów (np SimLock, certyfikaty autoryzujące). 

Kroki do sprawdzenia telefonu komórkowego przedstawione są poniżej:
1. Włożenie karty SIM i ustawienie daty w telefonie na 01 luty 2008 (Ze względu na tymczasowy certyfikat).
2. Sprawdzenie poprawności wysłania SMS'a i eMaila z telefonu komórkowego
3. Zainstalowanie certyfikatu testowego w telefonie. 
Aby zainstalować certyfikat uwierzytelniający aplikację Java należy, skopiować jego plik na telefon komórkowy a następnie w Manager'ze Certyfikatów należy go dodać. Ponadto w opcjach ustawień uprawnień dla certyfikatu należy zezwolić na: instalację aplikacji, instalację java, bezpieczną sieć i zablokować sprawdzanie certyfikatów OnLine. Jeśli certyfikatu nie udało się zainstalować może to świadczyć o blokadach nałożonych przez operatora sieci, lub zbyt małej funkcjonalności telefonu komórkowego. Takiego modelu telefonu zdecydowanie nie należy kupować. 
4. Zainstalowanie aplikacji na telefon.
W telefonie wybrać instalacje aplikacji i wskazać plik instalacyjny z rozszerzeniem ".jar" lub ".jad" o nazwie "bt-signed" - dla telefonu z wbudowanym łączem BlueTooth lub "signed" - bez łącza BT. Dodatkowo w Manager'ze Aplikacji telefonu komórkowego należy dać prawa dostępu, aby wyeliminować ciągłe zapytania telefonu o zgodę, na wykonanie różnych typów operacji: 
-  Dostęp do internetu: Sesja lub Jednorazowo (jeśli będziemy wysyłać sygnały sterujące przez email).
- Wiadomości: Jedenorazowo (jeśli będziemy wysyłać sygnały sterujące przez SMS).
- Automatyczne wywołanie aplikacji (Jednorazowo lub Sesja)
- Połączenia lokalne: Dla BlueTooth (Zawsze Włączone lub Sesja)
- Dostęp z odczytem danych: (Zawsze włączone)
- Dostęp z zapisem danych: (Zawsze włączone)

5. Konfiguracja aplikacji.
W katalogu isys dostarczonym z instalacją testową w pliku sms.cfg zmienić nr telefonu pod którym będziemy odbierać sms'y (na końcu nie kasować pustej linii). 
W pliku "bluetooth.cfg" zmienić adres urządzenia do odbioru (jeśli urządzenie będzie wysyłało komendy BT). Na tym adresie BT musi być zainstalowana aplikacja BlueGate.exe w przypadku komputera PC.
 Przegrać katalog "isys" wraz z zawartością, w jedną z następujących lokalizacji: "D:/isys/","C:/isys/","isys/","Galeria/isys/","Gallery/isys/", "predefgallery/isys/","Moje Pliki/isys/","My files/isys". 

6. Sprawdzenie poprawności działania aplikacji.
Uruchomić aplikację testehouse.
- powinno pojawić się okno z polami wyboru Device, Event z wypełnionymi polami  (jeśli pola te są puste - aplikacja nie może odczytać plików konfiguracyjnych z katalogu "isys" i może być konieczne wgranie katalogu w inne miejsce ze względu na zabezpieczenia systemu plików). Jeśli w polach wyboru pojawią się "krzaczki" zamiast regionalnych znaków należy ustawić stronę kodową telefonu na unicode,rejon geograficzny i język (POLSKI). Jeśli to nie zadziała, to może oznaczać, że telefon nie ma obsługuje znaków regionalnych.

- Do tej pory aplikacja nie powinna zadawać żadnych pytań (jeśli ustawiono prawa dostępu jak opisano powyżej). W przeciwnym razie oznacza to, że nie są brane pod uwagę ustawienia bezpieczeństwa aplikacji i certyfikatu. Po zweryfikowaniu prawidłowości ustawień dla aplikacji i certyfikatu jeśli aplikacja nadal pyta o dostęp do każdego pliku, oznacza to poważne ograniczenia i blokady nałożone na telefon komórkowy i dlatego lepiej takiego modelu nie kupować.

-Sprawdzenie odbioru emaila. Konfiguracja połączenia z internetem musi być wcześniej ustawiona w telefonie. W menu wybrać opcję "Receive Files via eMail". Na ekrania telefonu komórkowego powinny pojawić się 3 plusy. W takim czy innym przypadku po upływie paru minut należy z menu wybrać "View Log" i sprawdzić jego zawartość czy aplikacja połączyła się z serverem poczty. Log powinien wyglądać podobnie:
+OK Hello there
USER ....................
+OK Password required.
PASS ******
+OK logged in
STAT
+OK .......
QUIT
Oznacza to że operacja przebiegła poprawnie i można zamknąć log ("Close Log"). W przeciwnym razie należy sprawdzić ustawienia połączenia z internetem, może to być też kwestia wykupienia lub odblokowania odpowiednich usług u operatora GSM.

-Sprawdzenie wysyłania eMaila. Z menu wybierz opcję "Add Event", aby dodać zdarzenie do wysłania. Następnie z menu wybierz  "Send via eMail". Aplikacja zapyta się o zgodę na wysłanie eMail. Po udzieleniu pozwolenia przez użytkownika pojawia się wiadomość "Sending Email" i przy każdym poprawnym przesyłaniu danych na ekranie pojawia się "+", a na zakończenie powinniśmy otrzymać "eMail Sent OK". Po zakończeniu należy wejść do logu, który powinien wyglądać podobnie:
..................................................................
>EHLO there
<250-********************* Hello There [12.34.56.78]
....
....
...
...
AUTH PLAIN **************************************
<235 Authentication succeeded
>Mail FROM:   ********@isys.pl
<250 OK
>RCPT TO:     *********@isys.pl
<250 Accepted
>DATA
<354 end data with <CR><LF>.<CR><LF>
>Sending headers and message body
<250 OK id=*****************
>QUIT
<221 ************** closing connection

W przypadku problemów należy wielokrotnie przetestować próbę połączenia ze względu na możliwoć braku zasięgu lub błędy komunikacji na łączach. Należy ustawić telefon w miejscu, gdzie poziom sygnału jest duży.
Jeśli to nie pomoże należy zastosować się do wskazówek z poprzedniego punktu.

-Sprawdzenie wysyłania SMS. Z menu wybierz opcję "Add Event" aby dodać zdarzenie do wysłania. Następnie z menu wybierz  "Send via SMS". Aplikacja zapyta się o zgodę na wysłanie SMS. Po udzieleniu pozwolenia przez użytkownika powinniśmy otrzymać "SMS Sent OK", a na telefonie komórkowym, którego numer wpisaliśmy w pliku "sms.cfg", powinna przyjść wiadomość.

-Sprawdzenie wysłania komendy przez BlueTooth. Aby przetestować wysyłanie wiadomości poprzez łącze BlueTooth, urządzenie, którego adres jest wpisany do pliku bluetooth.cfg musi znajdować się w pobliżu i dla pełnego sprawdzenia powinno mieć skonfigurowaną i uruchomioną aplikację BlueGate.exe która wysyła potwierdzenia odbioru. Aplikacja ta powinna być ustawiona tak, aby odbierać z portu szeregowego B stosu BlueTooth. Włączyć urządzenie BlueTooth w  telefonie i komputerze odbierającym. Z menu wybierz opcję "Add Event" aby dodać zdarzenie do wysłania. Urządzenia powinny być jak najbliżej aby wyeliminować błędy transmisji i zrywanie połączeń. Następnie z menu wybierz  "Send via BlueTooth". Jeśli po krótkim czasie (do minuty) pojawi się komunikat "Sent via BlueTooth OK" znaczy, że wszystko przebiegło poprawnie. W przeciwnym razie należy wejść do Logu transmisji ("View Log").
Log Transmisji BlueTooth powinien wyglądać podobnie:
Inquiry in Progress		(a)
Device Found:  *********************
Host ********** (****************) In Range
Searching for eHouse Service
eHouse Service Found
Connected to eHouse Service 
Reading Response from Server  (b)
Data performed Successfully by Server

Jeśli pojawi się część logu do punktu (a) oznacza to, że urządzenie z listy bluetooth.cfg nie zostało wykryte w zasięgu telefonu lub nie jest włączone.
Jeśli część logu nie dojdzie do punktu (b) oznacza to, że urządzenie jest źle skonfigurowane lub nie autoryzowane. Należy urządzenia sparować tak, aby nie pytały za każdym o kod autoryzacji.
Jeśli log zatrzymał się na punkcie (b) oznacza to, że aplikacja do odbioru danych nie jest uruchomiona lub odbiera na złym porcie i nie wysłała potwierdzenia odbioru informacji z BlueTooth (należy w jej konfiguracji zmienić port szeregowy oraz uruchomić ją ponownie).

Instalacja oprogramowania na telefonie komórkowym PDA.

Aby zainstalować oprogramowanie na telefonie komórkowym należy wykonać szereg operacji manualnie, które nie mogą zostać wykonane automatycznie, ze wzgledu na ograniczenia dostępu z poziomu aplikacji Java.
1. Zainstalowanie certyfikatu w telefonie.
    Aby zainstalować certyfikat uwierzytelniający aplikację Java, należy skopiować jego plik na telefon komórkowy a następnie w menager'ze Certyfikatów należy go dodać. Ponadto w opcjach ustawień uprawnień dla certyfikatu należy zezwolić na: instalację aplikacji, instalację java, bezpieczną sieć i zablokować sprawdzanie certyfikatów OnLine. Jeśli certyfikatu nie udało się zainstalować, może to świadczyć o blokadach nałożonych przez operatora sieci, lub zbyt małej funkcjonalności telefonu komórkowego. 
2. Zainstalowanie aplikacji na telefon. 
W telefonie wybrać instalacje aplikacji i wskazać plik instalacyjny z rozszerzeniem ".jar" lub ".jad" o nazwie "bt-signed" - dla telefonu z wbudowanym łączem BlueTooth lub "signed" - bez łącza BT. Dodatkowo w Menager'ze Aplikacji telefonu komórkowego należy nadać prawa dostępu, aby wyeliminować ciągłe zapytania telefonu o zgodę na wykonanie różnych typów operacji: 
-  Dostęp do internetu: Sesja lub Jednorazowo (jeśli będziemy wysyłać sygnały sterujące przez email.
- Wiadomości: Jedenorazowo (jeśli będziemy wysyłać sygnały sterujące przez SMS).
- Automatyczne wywołanie aplikacji (Jednorazowo lub Sesja)
- Połączenia lokalne: Dla BlueTooth (Zawsze Włączone lub Sesja)
- Dostęp z odczytem danych: (Zawsze złączone)
- Dostęp z zapisem danych: (Zawsze włączone)

W przypadku, gdy nie udało się zainstalować certyfikatu do podpisu aplikacji, należy wybrać instalacje bez podpisu cyfrowego "notsigned". Należy się jednak liczyć z pewnymi niedogodnościami (wielokrotne pytanie o zgodę na wykonanie różnych operacji w czasie działań aplikacji).

3. Z servera aplikacji eHouse z katalogu "mobile" należy przegrać zawartość do katalogu "isys" w jedną z następujących lokalizacji: "D:/isys/","C:/isys/","isys/","Galeria/isys/","Gallery/isys/", "predefgallery/isys/","Moje Pliki/isys/","My files/isys". Jeśli aplikacja nie znajdzie katalogu "isys" w tych lokalizacjach, to przeszuka wszystkie katalogi główne "roots" w poszukiwaniu powyższych katalogów. Im dalej na liście znajduje się ten katalog, tym dłużej trwa start aplikacji.
Poza plikami generującymi się automatycznie, należy utworzyć lub zmienić główne pliki konfiguracyjne aplikacji bluetooth.cfg, email.cfg, sms.cfg.

Konfiguracja BlueTooth.
Plik "bluetooth.cfg" służy do konfiguracji połączenia BlueTooth i zawiera adresy autoryzowanych urządzeń BT, które mogą odbierać komendy dla aplikacji eHouse, 1 adres na 1 linie (zakończoną enterem). Maksymalnie można wpisać 10 adresów odbiorników bluetooth. Aplikacja Java przy próbie łączności przez łącze BlueTooth, wyśle komendy do pierwszego napotkanego urządzenia z listy autoryzowanych adresów. Nie należy wpisywać adresów nie odbierających komend z systemu eHouse, gdyż transmisja wymaga odebrania potwierdzenia przez system eHouse. Dodatkowo w telefonie komórkowym należy autoryzować - "sparować" ze wszystkimi urządzeniami BT, odbierającymi komendy systemu eHouse, aby zapewnić bezproblemową współpracę. Analogicznie na wszystkich urządzeniach odbierających transmisję BlueTooth należy autoryzować "sparować" telefony komórkowe  lub PDA, które będą wysyłały sygnały BlueTooth.
W ustawieniach wszystkich urządzeń odbierających sygnały BT, należy nadać ten sam klucz "passkey" i typ połączenia AUTHENTICATE+ENCRYPT (wymaga logowania i kodowania danych). 
	Ze względu na ograniczony zasięg łącza BlueTooth (Szczególnie dla telefonów z BT Class II - maksymalny zasięg jest rzędu 10m), może następować zrywanie połączeń i problemy z łącznością w niektórych miejscach, należy więc tak dobrać ilość i lokalizację odbiorników BT, aby zapewnić wymagane pokrycie zasięgu w domu i na działce. Odbiorniki BT mogą być podłączone do komputerów PC (w szczególności servera aplikacji eHouse), jak również do zainstalowanych w domu RoomManagerów. Przesyłanie danych po BlueTooth jest bezpłatne i ma charakter lokalny.
Uwagi na temat korzystania z BlueTooth. 
BlueTooth musi zostać włączone na telefonie komórkowym wysyłającym komendy do systemu ehouse. Nie należy ustawiać aplikacji korzystających z zasobu telefonu komórkowego, aby automatycznie łączyły się z telefonem, gdy tylko znajdzie się on w zasięgu, gdyż najczęściej zajmuje to zasoby telefonu ("dopuszczalne połączenia BT"), co uniemożliwia jakąkolwiek łączność, poza tymi "manager'ami". Dotyczy to np. aplikacji Nokia PC SUITE, połączeń Dial UP przez BlueTooth, file managera BlueSoleil i podobnych aplikacji.

Przykład pliku bluetooth.cfg
01078083035F
010780836B15
0011171E1167

Konfiguracja SMS
Do konfiguracji sterowania systemem eHouse poprzez SMS'y służy plik "sms.cfg".
W pliku tym znajduje się tylko nr telefonu komórkowego (bramki sms), odbierającego komendy systemu eHouse. Bramka ta musi być podłączona kablem do servera aplikacji eHouse, aby umożliwić ten tryb transmisji. Wysyłanie komend SMS'owych jest płatne i zależy od taryf operatora.
Przykład pliku sms.cfg
+48511129184

Konfiguracja e-Mail
Do konfiguracji łączności z systemem eHouse poprzez pocztę elektroniczną e-Mail służy plik email.cfg.
Każda linia zawierają następującą informację:
nr lini		parametr				przykładowa wartość
1		adres skrzynki wysyłającej email 	tremotemanager@isys.pl
2		adres skrzynki odbiorczej		tehouse@isys.pl
3		nazwa hosta dla servera SMTP		there
4		adres servera POP3:port nr		mail.isys.pl:110
5		nazwa użytkownika servera POP3	tremotemanager+isys.pl
6		hasło dla użytkownika servera POP3 	123456
7		adres servera smtp:port nr 		mail.isys.pl:25
8		nazwa użytkownika servera SMTP	tremotemanager+isys.pl
9		hasło dla użytkownika servera SMTP	123456
10		Temat wiadomości			eHouse Controll
11		Logowanie (Autoryzacja) SMTP		y,Y,1 jeśli tak; n,N,0 - nie
12
Taka konfiguracja pozwala na wysyłanie komend dla systemu eHouse i odbieranie logów systemowych poprzez pocztę elektroniczną. Aby umożliwić komunikację przez internet w telefonie komórkowym musi być aktywna usługa połączeń danych przez internet. Dodatkowo server systemu eHouse musi być podłączony do internetu i skonfigurowany do cyklicznego odbioru email'i za skrzynki, na której wysyłane są komendy. 
Możliwe jest tylko zdefiniowanie jako serwer smtp  i pop serwera mail.isys.pl dla bezpieczeństwa danych i systemu.
Wysyłanie eMail'i z telefonu komórkowego jest płatne i zależy od taryf operatorów GSM.
Praca aplikacji Mobile Remote Manager
Aplikacja ta posiada prosty i intuicyiny interfejs użytkownika, aby umożliwić poprawną pracę na jak najwiekszej liczbie telefonów komórkowych. Ze względu na dużą różnorodność parametrów i wyświetlaczy, nazwy i opcje są skrócone do minimum, aby były widoczne i działały na jak największej grupie telefonów komórkowych, Dane aplikacji java (nazwy urządzeń i zdarzeń są generowane każdorazowo przy uruchomieniu aplikacji ehouse z parametrem "/mobile" i muszą być odświeżane i wgrywane na telefon po zmianach nazw w systemie eHouse lub dodawaniu nowych zdarzeń i urządzeń.
	Nazwy urządzeń znajdują się w pliku devices.txt ich kolejność może być dowolnie zmieniana, tak by nie zmienić formatu pliku tekstowego. W jednej lini może znajdować się jedno urządzenie, a na końcu pliku pusta linia.
	Nazwy zdarzeń znajdują się w plikach o nazwie takiej, jak nazwa urządzenia (ze zmianą polskich znaków na podstawowe ą->a,ł->l itd., aby uniknąć problemów systemowych na telefonie komórkowym) z rozszerzeniem ".txt". Kolejność zdarzeń można edytować tak, by nie zmieniać nazwy zdarzeń i aby zachować spójność pliku: jedna linia 1 zdarzenie, a na końcu pliku 1 pusta lina. 

	Wszystkie pliki konfiguracyjne są tworzone na komputerze PC będącym serverem aplikacji eHouse, z domyślną stroną kodową (windows ...) i nie należy tego zmieniać, np. przy używaniu innych systemów operacyjnych.W przeciwnym wypadku znaki regionalne będą zastąpiane "krzaczkami" lub aplikacja będzie sygnalizować poważniejsze błędy.
Aplikacja posiada 3 pola wyboru:
Urządzenie - Device,
Zdarzenie - Event,
Mode - Tryb
oraz następujące komendy do uruchomienia (elementy menu)
"Add Event - Dodaj Zdarzenie",
"Send via BlueTooth - Wyślij przez BlueTooth",
"Send via SMS - Wyślij SMS'em",
"Send via eMail - Wyślij eMail'em",
"Receive files via eMail - Odbieranie logów przez eMail",
"Cancel Operation - Anuluj Transmisję",
"Kill Application - Bezwarunkowe zamykanie aplikacji",
"View Log - Zobacz log z ostatniej transmisji",
"Close Log - Zamknij log",
"Exit - Wyjście",

Wysyłanie komend dla systemu "eHouse"
	Chcąc dodać zdarzenie do wysłania, należy wybrać określone urządzenie, następnie zdarzenie oraz tryb: now - teraz (bezwłocznie) lub schedule - terminarz (zaprogramowany).
Następnie należy nacisnąć na telefonie komórkowym przycisk menu i wybrać "Add Event - Dodaj Zdarzenie". Czynności te należy powtórzyć dla każdego zdarzenia, które chcemy wysłać.
Następnie z menu należy wybrać typ transmisji, którą chcemy przesłać dane "Send via BlueTooth", "Send via SMS", "Send via eMail".  Dane w kolejce do wysłania są automatycznie kasowane po poprawnym przesłaniu na server eHouse.

Odbieranie logów systemowych
Jeśli opcja wysyłania logów na adres email jest włączona to można korzystać z tych logów na telefonie komórkowym. Wybierając z menu "Receive files via eMail", odbieramy wszystkie pliki logów systemowych generowanych przez aplikacje ehouse, które są konwertowane do systemu plików telefonu komórkowego i zapisywane w telefonie w katalogu "isys/logs/".
Anulowanie Bieżącej Transmisji
Ze względu na mobilny charakter telefonu komórkowego i możliwe problemy z zasięgiem lub transmisją przy korzystaniu z każdego medium transmisji, wprowadzono dodatkowy mechanizm bezpieczeństwa, pozwalający na bezwarunkowe przerwanie transmisji. Jeśli uznamy, że transmisja trwa zbyt długo lub komunikaty wskazują na problemy z transmisją, można skorzystać z tej funkcji. Wszystkie połączenia są zamykane i aby wysłać dane powtórnie należy dodać jeszcze 1 zdarzenie do wysłania lub wyjść i ponownie wejść do aplikacji.
Oglądanie Logu aplikacji
Każda bierząca transmisja sieciowa aplikacji "Mobile Remote Manager" jest logowana i w przypadku wątpliwości możemy obejrzeć status transmisji wybierając z menu "View Log - Zobacz log". Należy zamknąć okno logów wybierając "Close Log - Zamknij Log".

Kontakt
iSys
http://www.isys.pl
biuro@isys.pl