Zdalny kontroler X10 (ang. Remote Control X10) jest aplikacją do zdalnego zarządzania urządzeniami. Użytkownik może sterować urządzeniami za pomocą protokołu X10 [42], który umożliwia komunikację z urządzeniem za pomocą komunikatów przesyłanych przewodami elektrycznymi. Schemat elementów aplikacji można zobaczyć na rys. 6.7. Aplikacja składa się z:
Użytkownik loguje się do systemu podając nazwę i hasło, które w postaci krotki zostają przesłane do przestrzeni krotek. Serwis X10 pobiera krotkę i weryfikuje użytkownika. Jeśli użytkownik może się zalogować, serwis przesyła opis formularza do przestrzeni krotek. Klient pobiera opis formularza przez serwer proxy z przestrzeni krotek i interpretuje go, w wyniku czego otrzymuje formularz. Na rysunku 6.8 przedstawiam formularz główny, który się pojawia po zalogowaniu do systemu. Użytkownik może zdefiniować kod sieci domowej (ang. HouseCode) np. N, a następnie wybrać operację jaką chce wykonać: wyłączyć wszystkie urządzenia -- All Units Off, włączyć wszystkie lampy -- All Light On, wyłączyć wszystkie lampy -- All Light Off, sprawdzić status pojedynczego urządzenia -- Status Device lub dodać nowe urządzenie do systemu -- Create New Device. Po wybraniu przycisku All Units Off klient wysyła krotkę:
Przycisk Status Device z rys. 6.8 powoduje pobranie opisu formularza z listą urządzeń dostępnych w domu o podanym kodzie. Przykładowy efekt jest pokazany na rys. 6.10. Użytkownik ma możliwość zarządzania konkretnym urządzeniem. Po naciśnięciu przycisku Check, użytkownik przejdzie do formularza pokazanego na rys. 6.11.
Na rysunku 6.11 pokazano dwa różne widoki dla urządzenia, w zależności od znalezionej informacji w systemie. W tym przypadku jest to lampa i urządzenie. Dostępne operacje to włączenie i wyłączenie. Po naciśnięciu przycisku OFF lub ON zostaje wysłana krotka:
Ustawienie nowej wartości dla jasności i naciśnięcie przycisku BRIGHT powoduje wysłanie krotki:
Wszystkie krotki postaci [X10CMD,....] są obsługiwane przez serwis X10. W momencie pojawienia się krotki w tej postaci w przestrzeni, zostaje uruchomiony wątek przez serwis, który będzie odpowiedzialny za wykonanie danej operacji. Wątki są kolejkowane przez serwis, w ten sposób zachowana jest kolejność wykonywanych operacji na urządzeniu.
Podsumowując, aplikacja zapewnia oprogramowanie dla urządzeń domowych do komunikacji z PalmPilotem za pomocą protokołu X10. Interfejs użytkownika zmienia się, w zależności od dostępnych urządzeń i akcji jakie wykonują inni użytkownicy.