Premise Audrey and Premise... Driver available?

Motorola Premise
I've been using it for nearly two years so it's well past beta stage. I never shared it because I felt there'd be no demand for it; the combination of Premise and a 3COM Audrey is fairly obscure.

The Audrey driver includes a text-to-voice (TTS) feature that relies on Windows' SAPI COM object. If you recall, this is the COM object that Premise is unable to use when running on a 64-bit operating system. In other words, the Audrey driver's TTS feature runs exclusively on 32-bit XP (and probably 32-bit Vista and Win 7). The other requirement is that I've designed the Audrey driver to work with an Audrey that's been flashed with the Mr. Audrey image.

If none of these requirements present an obstacle, then I'm willing to share the driver.
 
V3.3 should be OK.

The attached file contains my Audrey driver in a Module called "ErgoAudrey.xdo". Import it, right-click CustomDevices and create a New > AudreyControl. It'll automatically create a new web-root, in Premise's web-server, called "Audrey". This is where the driver deposits WAV files and HTML pages that are to be rendered on a remote Audrey. Right-click AudreyControl and select New > Audrey and give it a descriptive "Name" (i.e. "Bedroom" or "Kitchen"). Enter the Audrey's IP address in the "HostName" property.

I've never documented this driver but, in a nutshell, it let's you:
  1. Define and control an individual Audrey or user-defined groups of Audreys
  2. Automatically creates an "All" group containing all Audreys
  3. Turn an Audrey's screen on/off
  4. Adjust volume
  5. Play sound effects
  6. Play a WAV file
  7. Speak text (Text-To-Speech)
  8. Display a URL
  9. Display a message (with/without an OK button or have the message clear itself after x seconds)
  10. Change the displayed channel
  11. Turn on/off/blink the Audrey's top/front LED lights
There are several items in the driver that are non-fucntional because I simply did not finish them:
  • Contrast
    Adjust the display contrast ... I couldn't get this work.
  • WatchdogControl
    Periodically poll the Audrey and determine its operating state. I lost interest and never completed this feature.
  • Watchdog
    Periodocally reboot the Audrey by toggling an Appliance module. In practice, my Audreys work reliably and I rarely need to reboot them.

Here's an example of how easy it is to turn on all Audreys. I use it in when my SecuritySystem is Disarmed.
Code:
Devices.CustomDevices.AudreyControl.Groups.All.Screen = true

This one turns on all Audreys. I use "SetValueForced" because an Audrey does not report its state. For example, if you turn off its screen, the driver will be unaware of it (and continue to report that the Audrey is still on). If "State" is already "true", Premise won't do anything if you say "State=true". However, SetValueForced will force the state-change.

Code:
if sysevent.newVal then
	Devices.CustomDevices.AudreyControl.Groups.All.SetValueForced "Screen", true
end if
This one forces all Audreys to Channel 4 (Clock).
Code:
'
if sysevent.newVal then
	Devices.CustomDevices.AudreyControl.Groups.All.SetValueForced "Channel", 4 ' Clock
end if

This one plays a WAV file (the song of a Hermit Thrush) to wake us up on weekdays. The WAV file must reside in the web-root folder (c:\Program Files\Premise\SYS\Web\audrey)
Code:
	' Master Audrey
	with Devices.CustomDevices.AudreyControl.Master
		.MasterVolume = 40
		.SoundFileName = "hermit"
		.PlaySoundFile = true
	end with

This one runs one minute after the bird song wakes us up and announces the current weather report, upcoming birthdays, tasks, appointments, etc. This content is generated by my Newscaster module.
Code:
with Devices.CustomDevices.AudreyControl.Master
	.ContentType = 8 ' XML text
	.Content = Home.Newscaster.Newscast
	.Speak = true
end with
 

Attachments

I really like that idea! I think I'm going to need two Audrey's now :)

This one runs one minute after the bird song wakes us up and announces the current weather report, upcoming birthdays, tasks, appointments, etc. This content is generated by my Newscaster module.
Code:
with Devices.CustomDevices.AudreyControl.Master
	.ContentType = 8 ' XML text
	.Content = Home.Newscaster.Newscast
	.Speak = true
end with
 
Hmm... I set everything up, but I'm thinking I need to have a few things installed for the speach to work like the MS-SAPI driver by Rob?

Also, I only get a white screen when I go to the Mister Audrey Main screen. Should I see an minibrowser type interface? Do I also need your improved minibrowser installed that you finished up a while back?

I am able to make the sound effects work, screen on/off etc...
 
The ability to play WAV files, or display web pages, on an Audrey requires that the Audrey know where to find the files. The key is to configure the Audrey's "MH_HostAddress" parameter.

Turn the Audrey's Channel knob to "Mr. Audrey Settings". On the bottom of the displayed page there are three buttons, click "MrAudrey Settings". Set "MH_HostAddress" to the URL of your Premise web server's address. Example: "http://192.168.1.1/" (assumes port 80).

The Audrey driver does its own TTS. Check this post regarding Audrey's speech and "playsound_noph".

Assuming you have my revised Minibrowser installed, here's what you need to get Audrey's "Main" channel to display the "XBrowser" user-interface.

Bring up the command shell on the Audrey and run the two commands shown in the attached image (don't forget that Audrey's operating system is QNX and its files and directories are case-sensitive).

While in the vi editor, add "/xb" to the existing text in the location shown in the other attached image. In effect, this script will get the URL from MH_HostAddress and then tack on "/xb" to get something like "http://192.168.1.1/xb"

If your unfamiliar with the vi editor, you can use Audrey's visual Editor. Turn the Channel knob to "Photon Session". Click the Menu button and select "Editor". The Editor does not display directories whose name begin with a period (like .template) so, instead of point/click navigation, you'll have tp type in the file path.

NOTE
Cocoontech's editor prevents me from entering certain kinds of text so that's why they are displayed in the attached image files.
 

Attachments

  • modification.png
    modification.png
    4 KB · Views: 16
  • commands.png
    commands.png
    2.1 KB · Views: 14
Doh! I had it pointed to http://192.168.1.1/audrey (using port 80)... Thanks 123!

Doh! I also think I need to install MS SAPI 5.1 on my server since I reformatted it a while back; unless this is pre installed in XP 32 bit SP1, which I doubt.

UPDATE: I have the PPC page showing up now thanks to 123! This week, I'm going to upgrade to the 123's minibrowser. It amazes me how much control 123's Premise driver has over the Audrey. :)
 
One last question... The message properties look very useful, but when I send a message, I get a blank screen (even after setting the timeout, text color etc...). Is there an shtml file I need to edit on the Audrey?
 
Back
Top