Foscam FI8918W

From LinuxMCE
Revision as of 07:26, 2 April 2011 by Joshpond (Talk | contribs)

Jump to: navigation, search
Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
1404 Unknown N/A N/A
Usage Information
F8918W.jpg

Thanks

Thank you to the author of the Foscam F8908W page as this is mostly a copy.
Change picture as soon as I figure out how to.

Things to edit

Just starting to edit this page as I have time.

Info

Cheap IR wireless IP/Network Pan/tilt Camera. There is no zoom with this camera.
Very similar camera to the Foscam F8908W with some modifications to the camera (IR lights) but the firmware (I believe) is the same as the predecessor, the Foscam F8908W


What's New

Compared to the older Foscam F8908W
IR lights can be turned off with the software (Not in LinuxMCE)
Audio quality is apparently improved and an added microphone jack is provided. (Not used in LinuxMCE)
Extra IR light (Eleven now)
Power and network light at the back of the camera.

Status

Working as a plug and play IP camera with pan/tilt commands as soon as I get the device template up.
Should work as a 'Generic Motion IP camera' under motion wrapper and used as a sensor as well as recording movement etc. - Check the Foscam F8908 page for more.

Plug and Play Template Settings

There will be a device template uploaded back up to the sqlcvs when I get the chance but basically:
This camera is fully plug and play as a stand-alone pan/tilt camera by duplicating the panasonic template and inserting the following scripts.
NOTE: The left and right scripts are the other way around from the what is noted in the Foscam F8908W

  1. 84 Get video frame
conn_.Reconnect()
auth_s="user="+device_.devdata_[114]+"&pwd="+device_.devdata_[115];

fix_path=device_.devdata_[2]+auth_s;
fix_path='/'+fix_path if(fix_path[0]!='/'[0]);

s = "GET "+fix_path+" HTTP/1.0\r\n"
s+= "Accept: */*\r\n"
s+= "\r\n"

conn_.Send(s)
recv=""
while(true)
  buff=conn_.Recv(16384, 5000)
  if(buff.length() == 0)
     break
   end
   recv = recv +  buff
end
if (recv=~ /^HTTP[^\r\n]+200\sOK.+?\r\n\r\n(.+)$/m)
  fileName="/tmp/ip_camera_img"+device_.devid_.to_s
  imageFile=File.new(fileName+".jpg",'w')
  imageFile.print $1
  imageFile.close()
  system("/usr/bin/convert "+fileName+".jpg "+fileName+".png");
  size=File.stat(fileName+".png").size 
  imageFile=File.new(fileName+".png",'r')
  img = imageFile.read(size);
  imageFile.close()
  data_set(img)
  format_set('png')
end
  1. 201 Move Down
conn_.Reconnect()
auth_s="user="+device_.devdata_[114]+"&pwd="+device_.devdata_[115];
s = "GET /decoder_control.cgi?command=2&onestep=1&"+auth_s
s+= " HTTP/1.0\r\n Accept: */*\r\n"
s+= "\r\n"

conn_.Send(s)
recv=""
while(true)
  buff=conn_.Recv(256, 5000)
  if(buff.length() == 0)
     break
   end
   recv = recv +  buff
end
  1. 202 move left
conn_.Reconnect()
auth_s="user="+device_.devdata_[114]+"&pwd="+device_.devdata_[115];
#auth_a=Array.new;
#auth_s.each{|c| auth_a.push(c)}
s = "GET /decoder_control.cgi?command=6&onestep=1&"+auth_s
s+= " HTTP/1.0\r\n Accept: */*\r\n"
#s+= "Authorization: Basic "+auth_a.pack("m").chop+"\r\n"
s+= "\r\n"

conn_.Send(s)
recv=""
while(true)
  buff=conn_.Recv(256, 5000)
  if(buff.length() == 0)
     break
   end
   recv = recv +  buff
end
  1. 203 Move Right
conn_.Reconnect()
auth_s="user="+device_.devdata_[114]+"&pwd="+device_.devdata_[115];
#auth_a=Array.new;
#auth_s.each{|c| auth_a.push(c)}
s = "GET /decoder_control.cgi?command=4&onestep=1&"+auth_s
s+= " HTTP/1.0\r\n Accept: */*\r\n"
#s+= "Authorization: Basic "+auth_a.pack("m").chop+"\r\n"
s+= "\r\n"

conn_.Send(s)
recv=""
while(true)
  buff=conn_.Recv(256, 5000)
  if(buff.length() == 0)
     break
   end
   recv = recv +  buff
end
  1. 200 Move Up
conn_.Reconnect()
auth_s="user="+device_.devdata_[114]+"&pwd="+device_.devdata_[115];
#auth_a=Array.new;
#auth_s.each{|c| auth_a.push(c)}
s = "GET /decoder_control.cgi?command=0&onestep=1&"+auth_s
s+= " HTTP/1.0\r\n Accept: */*\r\n"
#s+= "Authorization: Basic "+auth_a.pack("m").chop+"\r\n"
s+= "\r\n"

conn_.Send(s)
recv=""
while(true)
  buff=conn_.Recv(256, 5000)
  if(buff.length() == 0)
     break
   end
   recv = recv +  buff
end

It can be made 'plug and play' by adding the mac range of both the wireless and wired adapters into the new template:

  • Wireless range 963357310976 to 963357376511 (DHCP).
  • Wired range ??????? - Will try and find this out???????

Pros:

  • Plug and play (Just give it a sensible name)
  • Pan and Tilt work from on screen arrows

Cons:

  • No motion capture

Features

  • Browser based
  • 10/100mbit LAN
  • WPA2 wireless security

Dropouts

There have been reported drop outs with the Foscam F8908W but I have not noticed this with the Foscam F8918W but I do use a static IP address.


Links

http://www.foscam.com