Zoneminder send alarm events to XBMC

Forum for questions and support relating to the 1.25.x releases only.
Locked
Dre
Posts: 4
Joined: Mon Feb 04, 2013 3:41 am

Zoneminder send alarm events to XBMC

Post by Dre »

I would like to have zoneminder when detect a motion would send the image through URL to XBMC and will popup a window with image , camera name and time stamp, I would realy love to get that done
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Re: Zoneminder send alarm events to XBMC

Post by mrd »

I like this idea... I will look at what it takes to make it work maybe...
MRD
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Re: Zoneminder send alarm events to XBMC

Post by jameswilson »

Myth had or even has a similar feature. GUess you could pick up from there?
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
Dre
Posts: 4
Joined: Mon Feb 04, 2013 3:41 am

Re: Zoneminder send alarm events to XBMC

Post by Dre »

I don't think it is that hard , the problem for is I don't know how to code to send event pop ups to XBMC you can use XBMC Json-rpc
Azelphur
Posts: 6
Joined: Thu Feb 07, 2013 9:00 pm

Re: Zoneminder send alarm events to XBMC

Post by Azelphur »

I don't know the zoneminder side, but I do know the XBMC side.

I have a shell script that does exactly what you want, posts notifications to XBMC.

Unfortunately the forum won't let me post it as my post "looks too spamy" :(

If you're on IRC/Freenode, give me a nudge and I'll send you the script.

Edit: here's the script, managed to kinda work around the forum block. pastebin . com/cey1uzzj
Dre
Posts: 4
Joined: Mon Feb 04, 2013 3:41 am

Re: Zoneminder send alarm events to XBMC

Post by Dre »

still trying to get this to work can someone point me in the write direction
dont know about python script or perl but i am willing to try
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Re: Zoneminder send alarm events to XBMC

Post by mrd »

What you need to do is pretty simple. You have two basic choices:

- You can use the the "Filter" functionality to execute a script like the one that Azelphur provided to do what you want, but you will need to add functionality to grab the image that triggered the event. For that you can look at the email modules to see how they do it in Perl.

- You can write a daemon to watch for events like the one described in the wiki:
How can I use ZoneMinder to trigger something else when there is an alarm? http://www.zoneminder.com/wiki/index.php/FAQ
You will also have to add an api call to get the image you want, but that should be pretty easy and someone has probably posted it here in the forums. Of course, you need to port the script that Azelphur sent to Perl as well, but that should be a pretty simple Google learning opportunity.

I like the idea of this and will eventually put it all together, but I'm neck deep in an Android app that I am trying to release in the next few weeks.
MRD
Dre
Posts: 4
Joined: Mon Feb 04, 2013 3:41 am

Re: Zoneminder send alarm events to XBMC

Post by Dre »

hey guys i was on line searching and found this , i think this a good way to start http://homeawesomation.wordpress.com/20 ... mc-update/
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Re: Zoneminder send alarm events to XBMC

Post by mrd »

OK... I have something working...

It isn't perfect, but it is a start. There are 2 major issues with this approach:

1 - You need to specify the script as an 'Execute command on all matches' script in your ZM filter configuration. This works, but
it is not executed very quickly due to the way ZM handles filters. Ideally, you will probably want this to run as part of a daemon that
watches /var/log/messages so that it is triggered almost instantly, instead of 60 seconds after the event is finished. I can do that easily and
send you the script at some point.

2. Right now this will display the live video of your camera for 15 seconds full-screen and that is not ideal either so I will look at making it appear
as a small window, but that requires you to have to install an AddOn for XBMC and I was hoping to avoid that. It also stops any video that is
currently playing, but we can avoid that when I make it an overlay window.

Hopefully you have some Linux skill and the commands below make sense.
P.S. Make sure you have curl installed on your system.

See below:

root@system-z:/var/lib/zm/bin# pwd
/var/lib/zm/bin
root@system-z:/var/lib/zm/bin# ls -l
total 4
-rwxrwxrwx 1 www-data www-data 835 2013-02-26 20:17 xbmc_alert.sh
root@system-z:/var/lib/zm/bin# chown -R www-data
root@system-z:/var/lib/zm/bin# chgrp -R www-data

root@system-z:/var/lib/zm/bin# cat xbmc_alert.sh

Code: Select all

#!/bin/bash

#ZoneMinder Info
zm_monitor=`basename \`dirname $1\``
zm_ip="192.168.1.100"
zm_user="admin"
zm_password="password"

#XBMC Info
xbmc_ip="192.168.1.101"
xbmc_user="XBMC"
xbmc_password="xbmc"

#Sleep time
sleeptime=15

curl -v -u ${xbmc_user}:${xbmc_password} -d \
"{ \"jsonrpc\": \"2.0\", \"method\": \"Player.Open\", \
\"params\": { \"item\": { \"file\": \
\"http://${zm_ip}/cgi-bin/nph-zms?mode=jpeg&monitor=${zm_monitor}&scale=100&user=${zm_user}&pass=${zm_password}\" }}, \
\"id\": 1 }" -H "Content-type:application/json" \
-X POST "http://${xbmc_ip}:8080/jsonrpc"

sleep $sleeptime

#Stops the player/picture:
curl -v -u ${xbmc_user}:${xbmc_password} -d \
"{\"jsonrpc\": \"2.0\", \"method\": \"Player.Stop\", \
\"params\": { \"playerid\": 1 }, \
\"id\": 1}" -H "Content-type:application/json" \
-X POST "http://${xbmc_ip}:8080/jsonrpc"

exit 0
MRD
ssshake
Posts: 1
Joined: Fri Mar 22, 2013 11:36 pm

Re: Zoneminder send alarm events to XBMC

Post by ssshake »

Dre thanks for posting the link to my blog post. I'm very happy about that project.

MRD. I know you were hoping to avoid an addon/python script but I dont see how you can avoid the stopping of current video playing with your current set up. My script is pretty cool because it pops up over top of what's currently playing, has a time stamp and a message. Also it can be invoked by a key on my remote control for random viewings. Supports transparencies, and because of how it's been done the window size can be configured to any size.

I don't think its a big deal to import an xbmc script, the product is geared for addons after all. If you have multiple XBMC instances like me, you can specify in your config to use a network share for your scripts, so you dont have to install the script manually on each system.

I've only used zoneminder a few times and very little, one thing that sticks out is your solution uses a video stream (i'm guessing) where as mine does a refresh of the still image that the ip camera provides. However I'm sure you could take my existing script and use it for your needs.. or write one from scratch. Having said that is there any advantage to using a video stream? My still image approach refreshes quick enough to give a decent frame rate. Like your solution I'm still relying on an external source (linux box) to send a command to xbmc telling it to run the script.
mrd
Posts: 269
Joined: Wed Apr 26, 2006 12:39 am
Location: Boston USA

Re: Zoneminder send alarm events to XBMC

Post by mrd »

I completely agree with your comments and I plan to do more with an add-on similar to what yours does when I get some free time. I just wanted to give Dre something useful while he waits..:-)

I still think it is possible to do the pop-up window with out any add-on though, but it might just be easier to go the add-on route.
MRD
Locked