new Trendnet TV-IP400W controller for Zoneminder 1.23.x

Home Automation 10 Comments »

I’ve finally gotten around to rewriting my old Trendnet PTZ controller for Zoneminder 1.22.x to support the new API for Zoneminder 1.23.x. It includes all the old features (moving the camera in horizontally, vertically, diagonally, and going to preset and home position) as well as a new bonus feature: move the camera simply by clicking a point in the live video that you want the camera to recenter on. This is not extremely accurate, but good enough for most uses, and faster than having to click an arrow 20 times.

Here’s the basic steps on how to get this Trendnet TV-IP400 / IV-IP400W driver to work in ZoneMinder: Read More »

Ruby controller for the Trendnet TV-IP400W PTZ camera

development, Home Automation 2 Comments »

I thought I’d follow up on my post of a little while ago about the drivers for the Trendnet TV-IP400W Pan-Tilt-Zoom camera. I wrote a ruby driver for this thing, which makes it trivial to control the camera from any Ruby application. It’s just a single Ruby file, and though I’ve entertained the thought of figuring out how to pour it into a gem and publish it to the plugin repository, I’d probably only do that if there are a significant amount of people interested in using it and/or contributing to it.

As with the old Perl driver for Zoneminder (which I’ve been told doesn’t work anymore with the latest version of ZM, since the interfaces for the PTZ drivers have completely changed), this driver only controls the pan and tilt functions of the camera. Actually, you can also put it in swing mode and store or access preset positions, but none of the available functions actually do anything with the video stream. The video can simply be accessed at:

http://yourcam/image.jpg to grab a single frame of the current camera view
http://yourcam/video.cgi to get the mjpeg stream from the camera

There’s no real zoom control since the cam only has a digital zoom, which I believe is implemented in the client software only (so there’s no way to actually have it stream a zoomed image to your client).

Read More »

The Trendnet TV-IP400 / TV-IP400W protocol

development, Home Automation 9 Comments »

The Trendnet TV-IP400 is a fun little camera that will work great for home surveillance, as a controllable web cam, etc. The only problem is that the software that comes with it really sucks. I reverse engineered the protocol that is used to control the camera, and wrote a ZoneMinder driver for it… go here for more information. This follow up describes the control protocol that I reverse engineered, and contains most information that you’ll need if you want to write your own driver. I’m assuming that you are familiar with HTTP requests and that you know how to send GET and POST requests to an IP address.

Feel free to use the information in this page in any way you want. I make no guarantees as to its accuracy or completeness. If you write any software based on this info, please let me know!

Read More »

Controlling the Trendnet TV-IP400W camera with ZoneMinder

development, Home Automation 20 Comments »

Update (7/18/08): this driver and instructions work for ZoneMinder 1.22.x only, see my update for ZM 1.23.x support.

I can’t even remember when was the last time that I had to reverse engineer something.. it may have been as long ago as my college days. But last week I had a couple of evenings of fun figuring out the inner workings of my Trendnet TV-IP400W. This is a cool little internet camera with built in wifi and a built in web server. You can control it from a browser and you can actually pan and tilt this camera around the room, so even though the picture quality isn’t great (probably comparable to your average webcam), it can be very useful if you want to keep an eye on your house, your pets, your baby, etc from anywhere in the world. The best part: you can pick one up online for less than $200, which is a steal for a pan/tilt IP camera.

The built in web server is useful for checking up on the live situation, but it does not have any features to automatically notify something or someone if motion is detected in front of the camera. The windows control application does do motion triggered recording, but if you want to monitor your camera from outside your home you’ll have to set it up to email all the videos to yourself, as the windows app can’t function as a web interface.

All of this makes this camera more of a toy, with limited remote monitoring features. But, I wouldn’t be me if I didn’t figure out a way to get what I wanted from this thing. Since I already have 2 Linux boxes running Misterhouse, MythTV and various databases and developer tools, I figured one of these boxes could easily function as a surveillance system as well.

So I set out to install ZoneMinder on my Ubuntu system. ZoneMinder is an extremely full featured (open source) video camera security and surveillance system. It supports multiple CCTV and IP cameras, has a web interface, it can control PTZ (Pan Tilt Zoom) cameras, and supports custom triggers, multiple motion zones per camera, etc.

After a little bit of tinkering I got ZoneMinder running, and it turned out that even getting it to capture video from my Trendnet cam turned out to be trivial… All I needed to do was to configure the camera stream to http://192.168.0.140/video.cgi on my home LAN!

Unfortunately, that’s as much as I’d be able to do with ZoneMinder and this cam. The IP400W uses a proprietary control protocol to move the camera and there wasn’t any ZoneMinder driver for it yet.

But how hard could it be to write one?

Read More »