Ok - finally solved it.  For those experiencing the same:
 
If you setup cameras to do the motion detection, you must set the event names to match what MH expects!  I added detailed to the ZoneMinder wiki in case anyone needs more info.
 
Thanks to those who helped out!  (I bugged a couple of people by email)

From: Michelle Dupuis [mdupuis@ocg.ca]
Sent: Sunday, July 29, 2012 12:04 PM
To: The main list for the MisterHouse home automation program
Subject: Re: [mh] MH not getting xAP events (from ZoneMinder)

I thought I would add a bit more info...I ran xapalyzer (on the mh box) and see the xAP messages coming from my zoneminder:
 
ap-header
{
v=12
hop=1
uid=FFEA0905
class=VMI.AlarmEvent
source=zm.zoneminder.house:Back_Yard
pid=14154
}
Alarm
{
AlarmId=102573
Cause=Door
Duration=0.00
State=on
}
and I have these settings in my mh.ini:
 
# Let MH be a hub, even if a bad one
xap_nohub = 0
# Setup xAP and xPL to listen on on security network
ipaddress_xap_broadcast = 172.31.251.255
ipaddress_xap = 172.31.251.37
 
So it looks like MH just isn't getting the xAP messages...(so I assume a MH issue)?  I tried to understand the no/nohub issue and I have no hubs running (other than enabling the one in MH).  Hope that's right.
 
Damn its fun automating stuff!
 

From: Michelle Dupuis [mdupuis@ocg.ca]
Sent: Sunday, July 29, 2012 11:24 AM
To: misterhouse-users@lists.sourceforge.net
Subject: [mh] MH not getting xAP events (from ZoneMinder)

Now that I've got some basic misterhouse X10 stuff working (and I'm learning the basics of perl), I thought I would bite of something bigger for fun: xAP
 
I have set the my mh.ini options to listen on the correct interface, and netstat shows:
udp        0      0 172.31.251.37:52249         172.31.251.255:3639         ESTABLISHED 5052/perl
 
and misterhouse startup with debug shows:
ng simple Text distance function
 - creating xap_send        on udp  3639 send
db xAP_Items open_port: p=3639 pn=xap_send l=0 s=IO::Socket::INET=GLOB(0x9339340)
 - creating xap_listen_core on udp 49152 listen
db xAP_Items open_port: p=49152 pn=xap_listen_core l=1 s=IO::Socket::INET=GLOB(0x9342490)
and I have zmxap running on my misterhouse box with log entries like this:
 
######## in sendAlarmEvent
####### state=2 and cause=Driveway
###### starting fetch of event_data
###### completed fetch of event_data
######## completed sendAlarmEvent
07/29/2012 11:18:15 [INFO] (checkState) Driveway - initiating alarm state
######### completed sendTrackingEvent
07/29/2012 11:18:18 [INFO] (checkState) Driveway - resuming idle state
######## in sendAlarmEvent
####### state=0 and cause=Motion
###### starting fetch of event_data
 
yet these events aren't showing up on the MH console.  Where should I look next?