Menu ▾ ▴

Home

Jim Duda

Misterhouse Android Application

Quick Notes
After configuring the Host, you won't see anything happen until you press the "All Others" selection on the main menu.
Someone has reported that to enable the xml_server to work (which is needed for this android application), you must do this:
edit the file 'password_allow' under mh/data and add '&xml' on a separate line.
Be advised that adding entries to 'password_allow' may represent a security risk.

Known Issues
Audio (pushed Speak and Play Events) doesn't work for API 2.2 (Froyo)
Connecting using SSL doesn't work for API 2.2 (Froyo) with an unauthenticated web server certificate
SSH Tunneling of Misterhouse Port (for Service doing Speak and Play Events) doesn't work with numerical IP addresses. I does however work for domain names (very strange).
The application doesn't work properly when used in Horizontal mode. For some reason, the changing of List Displays fails to work in Horizontal Mode. (FIXED in Version 1.0.4)

Future
Support Caller ID popup (similar to Caller ID display on Audrey).
Display Speak events using a Pop Up message.
Add support for Cut/Paste in addition to Copy/Paste
Better Display Formatting for Tablet devices
Add support for Volume Control (geared towards Tablets)
More consideration for Security.
Improve performance of sending XML data over WAN/LAN

Service Notes
The Service is the communication interface between Misterhouse and the Android App, which uses a separate socket connection on the port identified as Misterhouse Port in the Menu->Host configuration. The Service allows for Speak and Play events to be delivered from Misterhouse asynchronously to all of your Android Applications.
The service interface between Misterhouse and Android API 2.2 and 2.2.1 (Froyo) is not working properly. The Android application is having problems playing audio with this API level. I'm working on trying to resolve this situation. I can confirm that Speak and Play events work properly with API 2.3 (Gingerbread). I have tested this configuration on the emulator.
You need to enable the android_server.pl code module in misterhouse for the interface to work.
You need to enable the Service in the Menu->Settings area within the Android APP.
Note that the Service may consume additional battery power in phone environments.
The Service only supports Speak and Play events. Other events supported in the future (example, Caller ID).

Basic Usage
Nothing will happen until you select "All Others" or "Categories" on the main page!!
Each list entry is either an Group or an Object.
All Groups contain either other Groups or Objects.
Default Groups are provided by the xml_server in Misterhouse.
Additional Groups can be created to organized Groups and Objects.
Objects are the objects created in your Misterhouse code.
Currently, only State values in Objects can be manipulated.
Voice_Cmd Objects can be activated.
Each Group or Item has a context menu. Hold the item in the list for a couple of seconds to get the context menu.
The Context Menu allows you to manipulate Groups and Items.

Main Screen
The first screen is the Main Group and will display three items; Favorites, All Others, and Categories
Favorites is an empty group. It cannot be deleted. You can fill Favorites with Objects or other Groups.
All Others contains all of the Objects made available by the xml_server interface. You can use Copy and Paste to organize items from All Others to either the Main Group, Favorites, or other groups you create.
Categories are the list of all created Voice Commands organized according to their Category definition.
New groups can be created using the Add Group option in any Context Menu.
You can add Items or Groups to Groups using the Copy, Cut, and Paste features in Context Menus.
Configuration
When running the app for the first time, you'll need to configure a Host. The Host is you're Misterhouse server.
You'll be directed immediately to the Host configuration, which can also be found in Menu->Hosts.

Menu Hosts
There can be multiple hosts configured. In most cases, you'll only need one. You may have different hosts if you have different firewall configuration for inside and outside your home.
To create a New Host, use the "click to add" button.

Connection Name:
The Connection Name is a handle to identify your host. For example MyMisterhouseHost

Internet Host Address:
The Internet Host Address field stores the IP address of your Misterhouse server. For example, MyServerName or 192.168.1.1, etc.

If you use a non standard port number (i.e. 80 for HTTP, 443 for SSL), then simply add your non standard port number to the end of the address, like this:
MyServerName:8080
192.168.1.72:247

Misterhouse Room Name:
If you want to address Speak or Play events to a specific Android device, you can identify the devices uniquely play Room name. This will correspond to the room=> parameter of Speak and Play methods. You can choose to leave this field empty if you don't want to use rooms.

Misterhouse Web Root:
The Misterhouse Web Root field is used to store the additional internet address beyond your Internet Host Address. You'll need this sometimes if you are running your Misterhouse HTTP server behind apache. For example, assume you used http://MyServerName/Misterhouse/ia5/index.html to access your Misterhouse web page. In this example, you need to put Misterhouse in the Web Root field.

SSL Connection:
Set this checkbox if your Misterhouse HTTP server uses SSL. If you use https://MyServerName, then you need SSL

Authentication:
Set this checkbox if you use HTTP Auth and need a username and password to access the Misterhouse HTTP server. When using HTTP Authentication, you must fill in the corresponding Web Login Name and Web Login Password fields.

Misterhouse Port Number

Note: Do Not confuse this with an HTTP port. This field has nothing to do with the HTTP port,

The Misterhouse Port Number is the TCP port used for communication between the Misterhouse server and the Andoid(s). The default is 4444 but can be changed using the server_android_port configuration value in mh.ini. You don't have to expose this port number through your firewall if you also use the SSH tunneling method (see below). The android_server.pl code module needs to be enabled in the Misterhouse server for asynchronous communication between android and misterhouse for Speak and Play events.

SSH Connection:
If you don't want to expose Misterhouse Port Number through your firewall, but your firewall allows SSH, then you want to use the SSH Connection check box. This will tunnel the Misterhouse Port Number through the SSH connection. This is the preferred method when using a firewall. When using SSH, you must also configure the corresponding SSH Port, SSH User, and SSH Password fields.

Saving Settings
To save your new connection, use the OKAY button.

Your new connection will appear in the Host Listing.

The currently selected host will be highlighted. Simply select the host you want to use and the dialog box will close.

Menu Settings

Mute Audio:
Use this checkbox to disable all audio events from Speak and Play from the server.

Enable Object Filters
Each Object has a means to Filter it's display via an item in the Objects context menu. This check box globally controls whether items identified to be filtered will be displayed or not. If You have this check box on and items are filtered, you will never see them until this check box is removed. So, if you filter an object, but want to restore the object, you first need to uncheck this check box in order to find the object you filtered and remove its filtering.

FIlter Objects Without State
This check box will filter out all objects which don't have any state information. This check box is useful since the xml_server provides a much larger array of objects, most of which cannot be controlled if they don't have state information.

Enable Service:
This check box enables the Misterhouse Service which performs background communication between the android device and Misterhouse server. This service will run even when the Misterhouse application has been closed. This service provides Speak ad Play events to be pushed to the android device. You might want to disable the service if you dont' want Speak or Play events, or you are concerned that the service is consuming too much battery power. In order to receive speak and play events, you must enable the android_server code application in your Misterhouse server.

Menu About
If you click on the Misterhouse icon in the About dialog, you'll be redirected to your main Misterhouse web page using the internal browser. The browser referes to the ia5 page.