EasyN FS-613B-M166 IP PTZ camera

Post here to ask any questions about hardware suitability, configuration in ZoneMinder, or experiences. If you just want to know if something works with ZoneMinder or not, please check the Hardware Compatibility sections in the forum, and the Wiki first. Also search this topic as well.
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

EasyN FS-613B-M166 IP PTZ camera

Post by therese »

Got the video to work on zoneminder but not able to control the ptz function, anyone have any experience with this camera. Thanks.

[ General ]

Name
Source Type Remote
Function Monitor
Enabled yes
Linked Monitors
Maximum FPS 10.0
Alarm Maximum FPS
Reference Image Blend %ge 7
Triggers None available

[ Source ]

Remote Protocol HTTP
Remote Method Simple
Remote Host Name 192.168.1.130
Remote Host Port 81
Remote Host Path /videostream.cgi?user=admin&pwd=(enter here if any)&resolution=8&rate=6
Remote Image Colours 24 bit colour
Capture Width (pixels) 320
Capture Height (pixels) 240
Preserve Aspect Ratio
Orientation Normal


Here is what I have found so far on this camera...

/ip address/videostream.cgi?user=admin&pwd=&resolution=8&rate=0 (remote host path)
/ip address/decoder_control.cgi?command=6 (pan right)
/ip address/decoder_control.cgi?command=1 (stop)
/ip address/decoder_control.cgi?command=4 (pan left)
/ip address/decoder_control.cgi?command=0 (up)
/ip address/decoder_control.cgi?command=2 (down)
/ip address/decoder_control.cgi?command=31 (preset 1)
/ip address/decoder_control.cgi?command=33 (preset 2)
/ip address/decoder_control.cgi?command=35 (preset 3)
/ip address/decoder_control.cgi?command=37 (preset 4)
/ip address/camera_control.cgi?param=5&value=1 (mirror vertically)
/ip address/camera_control.cgi?param=5&value=2 (mirror horizontally)

PTZ control on camera getting this message..
Control response was status = undefined
message = /usr/bin/zmcontrol.pl --autostop --command=moveConRight --id=5=>
User avatar
2Psycho
Posts: 37
Joined: Tue Jan 24, 2012 9:45 pm

Re: EasyN FS-613B-M166 IP PTZ camera

Post by 2Psycho »

Hi Therese,

I will respond into this topic :)
I created a new control in the web administration module.
Evenso I have created a new control file in the Perl directory.
In this file all actions are specifeid.

I already saw that your camera is different from mine.
But I think you have to use for example to use PTZ up

Code: Select all

sub Up
{
    my $self = shift;
    Debug( "Move Up" );
    my $cmd = "decoder_control.cgi?command=0";
    $self->sendCmd( $cmd );
}
But I think you have to use for example to use PTZ down

Code: Select all

Sub Down
{
    my $self = shift;
    Debug( "Move Down" );
    my $cmd = "decoder_control.cgi?command=2";
    $self->sendCmd( $cmd );
}
Togheter with this and my other post I think you will be able to create your own control
EasyN Control H serie

Let me know if you manage otherwise I will try to help.
Enjoyment Matters
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

Thank you for replying so quickly , I will try and I will keep you posted... :)
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

Created perl file and saved it as Easyn.pm @ usr/share/perl5/zoneminder/control/ but still not able to control ptz function, am I still missing something...thanks.

sub Up
{
my $self = shift;
Debug( "Move Up" );
my $cmd = "decoder_control.cgi?command=0";
$self->sendCmd( $cmd );
}

sub Down
{
my $self = shift;
Debug( "Move Down" );
my $cmd = "decoder_control.cgi?command=2";
$self->sendCmd( $cmd );
}

sub Left
{
my $self = shift;
Debug( "Move Left" );
my $cmd = "decoder_control.cgi?command=4";
$self->sendCmd( $cmd );
}

sub Right
{
my $self = shift;
Debug( "Move Right" );
my $cmd = "decoder_control.cgi?command=6";
$self->sendCmd( $cmd );
}


Checked under /tmp/zmcontrol log and this is what I was getting...
02/06/12 17:21:23.825888 zmcontrol[1482].INF [Starting control server 5/EasyN]
02/06/12 17:21:23.835769 zmcontrol[1484].INF [Control server 5/EasyN starting at 12/02/06 17:21:23]
02/06/12 17:21:33.833488 zmcontrol[1482].FAT [Can't connect: No such file or directory]
User avatar
2Psycho
Posts: 37
Joined: Tue Jan 24, 2012 9:45 pm

Re: EasyN FS-613B-M166 IP PTZ camera

Post by 2Psycho »

Therese

The location you are mentioning is this also the directory where other control files are located?
Otherwise you can search for a file using the command "find / -name PanasonicIP.pm"
You system should give you the correct file location then were to put your own control file.

regards
Enjoyment Matters
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

yes that is where the other files are. I am using Ubuntu 10.04 LTS.
I am new at using Linux so not too sure. Using terminal mode and get into the file by "sudo gedit " open a new document then I copied the file and saved it as EasyN.pm in usr/share/perl5/zoneminder/control. I hope this is correct. Thank you for helping me.
Attachments
file location.jpg
file location.jpg (37.66 KiB) Viewed 9257 times
User avatar
2Psycho
Posts: 37
Joined: Tue Jan 24, 2012 9:45 pm

Re: EasyN FS-613B-M166 IP PTZ camera

Post by 2Psycho »

Therese,

ZoneMinder can not find the file. Maybe you didn't have set rights to read the file?
Evenso I post some screenshots from my config maybe that will also help.
Attachments
ZM_CC_1.PNG
ZM_CC_1.PNG (5.79 KiB) Viewed 9245 times
ZM_CC_0.PNG
ZM_CC_0.PNG (7.85 KiB) Viewed 9245 times
Enjoyment Matters
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

Maybe that is what I was doing wrong. How do you setup rights to read the file ? I am new on Linux and not sure how to do this. Thanks. Screen shots of my setup.
Attachments
scrn_shots.jpg
scrn_shots.jpg (47.94 KiB) Viewed 9239 times
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

This is what shows up and my zmcontrol log file.
Attachments
control scrn_shot.jpg
control scrn_shot.jpg (61.69 KiB) Viewed 9232 times
User avatar
2Psycho
Posts: 37
Joined: Tue Jan 24, 2012 9:45 pm

Re: EasyN FS-613B-M166 IP PTZ camera

Post by 2Psycho »

Therese,
First you have to remove the "EasyN" text from the label control device.
This setting is e.q. for serial ports etc.

Second your address i would try:
username:password@192.168.1.30:81
Just fill in your username and password.
Enjoyment Matters
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

I tried that and it was still the same. The same error log.
username:password@192.168.1.30:81
admin:@192.168.1.30:81
there is no password for the camera just the username.
User avatar
2Psycho
Posts: 37
Joined: Tue Jan 24, 2012 9:45 pm

Re: EasyN FS-613B-M166 IP PTZ camera

Post by 2Psycho »

Therese,

Try to modify the EasyN.pm file command with
my $cmd = "decoder_control.cgi?command=0&user=admin&pwd=";

The control address as specified 192.168.1.30:81
No control device
Enjoyment Matters
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

Try to modify the EasyN.pm file command with
my $cmd = "decoder_control.cgi?command=0&user=admin&pwd=";

The control address as specified 192.168.1.30:81
No control device

Did the changes to the my $cmd but still not working.
User avatar
2Psycho
Posts: 37
Joined: Tue Jan 24, 2012 9:45 pm

Re: EasyN FS-613B-M166 IP PTZ camera

Post by 2Psycho »

Therese,

I just saw in one of your screenshots that you have the message moveConRight.
Can you post your config file?
Check also your "Control Capabilities" of EasyN "Can Move Continuous" should NOT be selected for this camera that's another configuration. I think that you have selected that on this moment
Enjoyment Matters
User avatar
therese
Posts: 23
Joined: Thu Jun 23, 2011 5:11 am

Re: EasyN FS-613B-M166 IP PTZ camera

Post by therese »

Configuration file ? is it the Easyn.pm file you wanted...

# ==========================================================================
#
# ZoneMinder Foscam FI8908W IP Control Protocol Module, $Date: 2009-11-25 09:20:00 +0000 (Wed, 04 Nov 2009) $, $Revision: 0001 $
# Copyright (C) 2001-2008 Philip Coombes
# Modified for use with Foscam FI8908W IP Camera by Dave Harris
#
# 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 module contains the implementation of the Foscam FI8908W IP camera control
# protocol
#
package ZoneMinder::Control::EasyN;

use 5.006;
use strict;
use warnings;

require ZoneMinder::Base;
require ZoneMinder::Control;

our @ISA = qw(ZoneMinder::Control);

our $VERSION = $ZoneMinder::Base::VERSION;

# ==========================================================================
#
# Foscam FI8908W IP Control Protocol
#
# ==========================================================================

use ZoneMinder::Debug qw(:all);
use ZoneMinder::Config qw(:all);

use Time::HiRes qw( usleep );

sub new
{

my $class = shift;
my $id = shift;
my $self = ZoneMinder::Control->new( $id );
my $logindetails = “”;
bless( $self, $class );
srand( time() );
return $self;
}

our $AUTOLOAD;

sub AUTOLOAD
{
my $self = shift;
my $class = ref($self) || croak( “$self not object” );
my $name = $AUTOLOAD;
$name =~ s/.*://;
if ( exists($self->{$name}) )
{
return( $self->{$name} );
}
Fatal( “Can’t access $name member of object of class $class” );
}
our $stop_command;

sub open
{
my $self = shift;

$self->loadMonitor();

use LWP::UserAgent;
$self->{ua} = LWP::UserAgent->new;
$self->{ua}->agent( “ZoneMinder Control Agent/”.ZM_VERSION );

$self->{state} = ‘open’;
}

sub close
{
my $self = shift;
$self->{state} = ‘closed’;
}

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

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

sub sendCmd
{
my $self = shift;
my $cmd = shift;
my $result = undef;
printMsg( $cmd, “Tx” );

my $req = HTTP::Request->new( GET=>”http://”.$self->{Monitor}->{ControlAddress}.”/$cmd” );
my $res = $self->{ua}->request($req);

if ( $res->is_success )
{
$result = !undef;
}
else
{
Error( “Error check failed:’”.$res->status_line().”‘” );
}

return( $result );
}

sub reset
{
my $self = shift;
Debug( “Camera Reset” );
my $cmd = “reboot.cgi?user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Up Arrow
sub moveConUp
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Up” );
my $cmd = “decoder_control.cgi?command=0&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Down Arrow
sub moveConDown
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Down” );
my $cmd = “decoder_control.cgi?command=2&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Left Arrow
sub moveConLeft
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Left” );
my $cmd = “decoder_control.cgi?command=4&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Right Arrow
sub moveConRight
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Right” );
my $cmd = “decoder_control.cgi?command=6&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Diagonally Up Right Arrow
sub moveConUpRight
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Diagonally Up Right” );
my $cmd = “decoder_control.cgi?command=91&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Diagonally Down Right Arrow
sub moveConDownRight
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Diagonally Down Right” );
my $cmd = “decoder_control.cgi?command=93&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Diagonally Up Left Arrow
sub moveConUpLeft
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Diagonally Up Left” );
my $cmd = “decoder_control.cgi?command=90&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Diagonally Down Left Arrow
sub moveConDownLeft
{
my $self = shift;
$stop_command = “1?;
Debug( “Move Diagonally Down Left” );
my $cmd = “decoder_control.cgi?command=92&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

#Stop
sub moveStop
{
my $self = shift;
Debug( “Move Stop” );
my $cmd = “decoder_control.cgi?user=admin&pwd=&command=1?;
$self->sendCmd( $cmd );
}

#Move Camera to Home Position
sub presetHome
{
my $self = shift;
Debug( “Home Preset” );
my $cmd = “decoder_control.cgi?command=25&user=admin&pwd=”;
$self->sendCmd( $cmd );
}

1;

__END__
Post Reply