Level One Cameras

Post here to indicate any hardware you have used and which is known to work with ZoneMinder. Not for questions.
Post Reply
Speegs
Posts: 7
Joined: Mon Jul 04, 2005 2:50 pm

Level One Cameras

Post by Speegs »

Hello,

Level One http://www.level-one.com.au/display.asp?productid=230

Make some really nice looking cameras at reasonable prices, does anyone have these working with ZoneMinder? And if so what's the URL to the JPEG file for ZoneMinder?

Regards,

Speegs
Speegs
Posts: 7
Joined: Mon Jul 04, 2005 2:50 pm

Level One Cameras

Post by Speegs »

Hello,

LevelOne Support sent me this email, some of their cameras it seems may work, but some of the new MPEG based ones do not at the moment. Hope this helps others looking at LevelOne Cameras.

Dear Sir:

Sorry, these two models can not support viewing snapshots(jpg) by certain URL .

Our other models can do like FCS-1010, WCS-2010, FCS-1030/40 and WCS-2030 .

Best Regards

LevelOne Support
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Post by zoneminder »

Hi Speegs,

Thanks for posting this, and details of your other camera.

Phil
Axel
Posts: 9
Joined: Thu Jan 20, 2005 5:50 pm
Location: Cologne/Duesseldorf - Germany

Settings for LevelOne FCS-1030

Post by Axel »

I try to add a LevelOne FCS-1030 cam to my zoneminder and it didn't work.

Can anyone send me the settings?

(My browser works with "x.x.x.x/cgi-bin/image.jpg" but ZM do not. User/Pass is disabled).

Greetings,
Axel
Speegs
Posts: 7
Joined: Mon Jul 04, 2005 2:50 pm

Level One Cameras

Post by Speegs »

Hello,

I didn't end up getting the jpeg based level 1 cameras, I ended up with a Netcomm (Works well).

Contact level 1 support they seem helpful. If the URL works in your browser and displays a static jpeg I couldn't see why it wouldn't work with Zoneminder, maybe you need to set a username and password.

Regards,

Speegs
George
Posts: 4
Joined: Thu Oct 20, 2005 9:21 am

LevelOne FCS-1010 PAN/TILT support

Post by George »

Will work this camera fully with ZM ?
Will work PAN/TILT ?

Thanks
jerji
Posts: 13
Joined: Mon Jan 15, 2007 3:29 am
Location: Canberra, Australia

Level One FCS 1040

Post by jerji »

I have got the Level One FCS-1040 working (... without the PTZ at this stage). It gives a pretty good picture. Will be working on the PTZ aspect this weekend. Will report back on success with settings and a copy of the script.

Jerji
jerji
Posts: 13
Joined: Mon Jan 15, 2007 3:29 am
Location: Canberra, Australia

Success PTZ FCS-1040 :-)

Post by jerji »

Got the basic PTZ working for the FCS-1040. Pan, Tilt, Zoom, Iris, Focus all going but I ran out of time to finish the script (pan speed, patrol, etc). Will work on it again in the next weeks and then post the script and a howto (sorry but I only get a couple of hours each week to get access to this system).

Main thing is, it integrates with ZM nicely :D

Well done to the ZM developers, as it was not too difficult to follow the instructions (and yes I did RTFM :wink: )
Last edited by jerji on Fri Aug 31, 2007 9:48 pm, edited 1 time in total.
jerji
Posts: 13
Joined: Mon Jan 15, 2007 3:29 am
Location: Canberra, Australia

Code for level1 1040 ptz

Post by jerji »

It's not yet finished (a few more things could be added, but time is tight). Hope this helps someone. And BTW I just tweaked someone else's code so I cannot take much credit!

Code: Select all

#!/usr/bin/perl -wT 
# 
# ========================================================================== 
# 
# ZoneMinder Panasonic IP Camera Control Script, $Date: 2006/05/08 12:37:48 $, $Revision: 1.5 $ 
# Copyright (C) 2003, 2004, 2005, 2006  Philip Coombes 
# 
# This program is free software; you can redistribute it and/or 
# modify it under the terms of the GNU General Public License 
# as published by the Free Software Foundation; either version 2 
# of the License, or (at your option) any later version. 
# 
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
# GNU General Public License for more details. 
# 
# You should have received a copy of the GNU General Public License 
# along with this program; if not, write to the Free Software 
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
# 
# ========================================================================== 
# 
# This script continuously monitors the recorded events for the given 
# monitor and applies any filters which would delete and/or upload 
# matching events 
# 
# ==========================================================================
# 
# This control script was modified by Ian Macintosh to work with the Level1
# 1040 PTZ cameras.
# 
# August 2007
# 
# All care, no responsibility. ;-)
#
use strict; 

# ========================================================================== 
# 
# These are the elements you can edit to suit your installation 
# 
# ========================================================================== 

use constant DBG_ID => "Level1_pzt_control"; # Tag that appears in debug to identify source 
use constant DBG_LEVEL => 0; # 0 is errors, warnings and info only, > 0 for debug 

# ========================================================================== 

use ZoneMinder; 
use Getopt::Long; 

$| = 1; 

$ENV{PATH}  = '/bin:/usr/bin'; 
$ENV{SHELL} = '/bin/sh' if exists $ENV{SHELL}; 
delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; 

sub Usage 
{ 
        print( " 
Usage: pzt_control.pl <various options> 
"); 
        exit( -1 ); 
} 

zmDbgInit( DBG_ID, level=>DBG_LEVEL ); 

my $arg_string = join( " ", @ARGV ); 

my $address; 
my $command; 
my ( $speed, $step ); 
my ( $xcoord, $ycoord ); 
my ( $width, $height ); 
my ( $panspeed, $tiltspeed ); 
my ( $panstep, $tiltstep ); 
my $preset; 
my $autostop; 

if ( !GetOptions( 
        'address=s'=>\$address, 
        'command=s'=>\$command, 
        'autostop=f'=>\$autostop, 
        'speed=i'=>\$speed, 
        'step=i'=>\$step, 
        'xcoord=i'=>\$xcoord, 
        'ycoord=i'=>\$ycoord, 
        'width=i'=>\$width, 
        'height=i'=>\$height, 
        'panspeed=i'=>\$panspeed, 
        'tiltspeed=i'=>\$tiltspeed, 
        'panstep=i'=>\$panstep, 
        'tiltstep=i'=>\$tiltstep, 
        'preset=i'=>\$preset 
        ) 
) 
{ 
        Usage(); 
} 

if ( !$address ) 
{ 
        Usage(); 
} 

if ( defined($autostop) ) 
{ 
        # Convert to microseconds. 
        $autostop = int(1000000*$autostop); 
} 

Debug( $arg_string."\n" ); 

srand( time() ); 

sub printMsg 
{ 
        my $msg = shift; 
        my $msg_len = length($msg); 

        Debug( $msg."[".$msg_len."]\n" ); 
} 

sub sendCmd 
{ 
        my $cmd = shift; 

        my $result = undef; 

        printMsg( $cmd, "Tx" ); 

        use LWP::UserAgent; 
        my $ua = LWP::UserAgent->new; 
        $ua->agent( "ZoneMinder Control Agent/".ZM_VERSION ); 

        #print( "http://$address/$cmd\n" ); 
        my $req = HTTP::Request->new( GET=>"http://$address/cgi-bin/$cmd" ); 
        my $res = $ua->request($req); 

        if ( $res->is_success ) 
        { 
                $result = !undef; 
        } 
        else 
        { 
                Error( "Error check failed: '".$res->status_line()."'\n" ); 
        } 

        return( $result ); 
} 

sub moveUp 
{ 
        Debug( "Move Up\n" ); 
        my $cmd = "camctrl.cgi?move=up"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 

sub moveDown 
{ 
        Debug( "Move Down\n" ); 
        my $cmd = "camctrl.cgi?move=down"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 

sub moveLeft 
{ 
        Debug( "Move Left\n" ); 
        my $cmd = "camctrl.cgi?move=left"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 

sub moveRight 
{ 
        Debug( "Move Right\n" ); 
        my $cmd = "camctrl.cgi?move=right"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 

sub setSpeed 
{ 
        Debug( "Set Speed\n"); 
        my $cmd = "camctrl.cgi?speedpan=$panspeed"; 
        sendCmd( $cmd ); 
} 

sub stop 
{ 
        Debug( "STOP\n" ); 
        my $cmd = "camctrl.cgi?auto=stop"; 
        sendCmd( $cmd ); 
} 


sub zoomTele 
{ 
        Debug( "Zoom Tele\n" ); 
        my $cmd = "camctrl.cgi?zoom=tele"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 

sub zoomWide 
{ 
        Debug( "Zoom Wide\n" ); 
        my $cmd = "camctrl.cgi?zoom=wide"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 


sub focusFar 
{ 
        Debug( "Focus Far\n" ); 
        my $cmd = "camctrl.cgi?focus=far"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 
sub focusNear
{
        Debug( "Focus Far\n" );
        my $cmd = "camctrl.cgi?focus=near";
        sendCmd( $cmd );
        if ( $autostop )
        {
                usleep( $autostop );
                stop();
        }
}

sub focusAuto 
{ 
        Debug( "Focus Auto\n" ); 
        my $cmd = "camctrl.cgi?focus=auto"; 
        sendCmd( $cmd ); 
} 


sub irisOpen 
{ 
        Debug( "Iris Open\n" ); 
        my $cmd = "camctrl.cgi?iris=open"; 
        sendCmd( $cmd ); 
        if ( $autostop ) 
        { 
                usleep( $autostop ); 
                stop(); 
        } 
} 

sub irisClose
{
        Debug( "Iris Open\n" );
        my $cmd = "camctrl.cgi?iris=close";
        sendCmd( $cmd );
        if ( $autostop )
        {
                usleep( $autostop );
                stop();
        }
}

sub irisAuto 
{ 
        Debug( "Iris Auto\n" ); 
        my $cmd = "camctrl.cgi?iris=auto"; 
        sendCmd( $cmd ); 
} 

sub focusAuto
{
        Debug( "focus Auto\n" );
        my $cmd = "camctrl.cgi?focus=auto";
        sendCmd( $cmd );
}


if ( $command eq "up" ) 
{ 
        moveUp(); 
} 
elsif ( $command eq "down" ) 
{ 
        moveDown(); 
} 
elsif ( $command eq "left" ) 
{ 
        moveLeft(); 
} 
elsif ( $command eq "right" ) 
{ 
        moveRight(); 
} 
elsif ( $command =~m/stop/ ) 
{ 
        stop(); 
} 
elsif ( $command =~ m/tele/ ) 
{ 
        zoomTele(); 
} 
elsif ( $command =~ m/wide/ ) 
{ 
        zoomWide(); 
} 
elsif ( $command =~m/far/ ) 
{ 
        focusFar(); 
}
elsif ( $command =~m/near/ )
{
        focusNear();
}
 
elsif ($command =~m/open/ ) 
{ 
        irisOpen(); 
} 
elsif ($command =~m/close/ )
{
        irisClose();
}
elsif ($command =~m/iris_auto/ )
{
        irisAuto();
}
elsif ($command =~m/focus_auto/ )
{
        focusAuto();
}

else 
{ 
        Error( "Can't handle command $command\n" ); 
} 
# =======================Physical end of file===============================

Regards

jerji
ThomasNovin
Posts: 29
Joined: Fri Jun 12, 2009 11:36 am

Post by ThomasNovin »

I did just manage to get my FCS 5030 to work (in this thread).

I changed Remote Host Path from

/video.mjpg

to

/cgi-bin/viewer/video.jpg

The setting /video.mjpg I got from L1 webinterface > Advanced > Network where it says

Access name for stream 1 /video.mjpg

What am I missing when I use video.jpg instead? Why doesn't /video.mjpg work?
Post Reply