Jump to content


Photo

IP Security Camera control centre for Enigma2

Enigma2

  • Please log in to reply
86 replies to this topic

#1 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 8 January 2011 - 14:55

I have added an IP security Camera viewer as a proposed new plugin as ticket 221. The zip file has full documentation on installing and using the plugin.
The zipfile also includes a IP Security Camera emulator to evaluate the plugin. The camera emulator also runs on an Enigma2 STB(can be same STB as plugin is run on).

The plugin supports the following:
1. View IP security cameras as multiple cameras on screen (4 at a time).
2. View the cameras as a picture-in-picture image anywhere and any size on the TV. This does not require the STB to support PIP as the decoding is done in software.
3. Automatic switching between multiple cameras.
4. Freezing the switching on a specific camera while still updating the feed from that camera.
5. Pan, tilt, zoom the camera(s).
6. Configuration allows for support of multiple makes/models of IP security cameras at the same time. The camera has to support snapshot mode sending a jpg image. Several IP security cameras support this. The default configuration included is for Foscam IP security cameras.
7. Record cameras on a fixed interval basis.

The plugin has been tested on DM500HD, DM800HD and DM7025. Testing on further STBs will be appreciated.


It can be downloaded at http://openpli.pli-i....org/ticket/221 - please leave feedback on the ticket.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #2 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 8 January 2011 - 18:26

Well done lad, will give it a try at my dm8000. I really hope it supports rstp and mpeg4. We'll see. Tnx

Re: IP Security Camera control centre for Enigma2 #3 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 8 January 2011 - 19:02

@ ni_hao
No it does not support mpeg at all. It relies on a snapshot interface that sends a jpeg image. This had to be done to ensure that the STB is not overrun by the camera(s). Most cameras do support single shot requests. To allow the STB to still allow watching TV, the jpeg image is decoded in software. This means you can have a small window (PIP) anywhere on the TV to mintor the camera(s) while still watching TV.
A low cost camera(around £50 on fleabay) that supports this interface is the Foscam range of cameras and they give reasonable images as well.
Check whether yoyr camera can do snapshots and if it can and you cannot make it work with the plugin, post the make and model here and I will have a look. Unfortunately I only have Foscam cameras to test with.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #4 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 8 January 2011 - 19:46

unfortunately I cant execute the plugin.
After configurate it, enigma2 crashes and it seems it need zoomin although I have that command not available for remote at my ipcam and thus I delete the line in the conf file.
As a matter of fact I did keep and configure the snapshot line
any idea?
Screen <class 'Plugins.Extensions.IPCamViewer.plugin.ViewCamImage'>((), {}): <type 'exceptions.KeyError'>
Traceback (most recent call last):
  File "/usr/lib/enigma2/python/mytest.py", line 229, in create
    return screen(self, *arguments, **kwargs)
  File "/usr/lib/enigma2/python/Plugins/Extensions/IPCamViewer/plugin.py", line 404, in __init__
  File "/usr/lib/enigma2/python/Plugins/Extensions/IPCamViewer/plugin.py", line 587, in nextCam
KeyError: 'robocam.zoomin'
Strange since I did not configure 'robocam.zoomin'.

Re: IP Security Camera control centre for Enigma2 #5 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 8 January 2011 - 19:57

Even though your camera does not support zooming, the line has to remain in the file. Set it up with a command the camera does support. I will look at tightening the code so deleted lines do not cause the crash.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #6 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 8 January 2011 - 20:12

Ah ok, but in that case the documentation is confusing since in it is written that only the 'snapshot line' is mandatory !!!

Re: IP Security Camera control centre for Enigma2 #7 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 8 January 2011 - 20:14

Sorry /images/smiley/wink.gif
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #8 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 8 January 2011 - 20:18

Hehe you dont have to apologize yourself, cause just wanna help ya to improve it ;)

Re: IP Security Camera control centre for Enigma2 #9 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 9 January 2011 - 09:52

Still does not work. All the initial entries are back again in the conf file.
My syntaxis to have http access to the cam is different, so I edited the conf file as follows (for each entry):

{command}{robocam.up}{admin:mypassword@192.168.17.199/cgi/admin/ptctrl.cgi?action=move&Cmd=up}

When I try to open the control center at the box I see (enigma2 logging) this error msg:

GetMyURLImage::entering __int__()
................................................server=127.0.0.1:9998, urlfailed=1
And for the other cam the same. In the conf file I had this

{camera}{127.0.0.1:9999}{robocam2}{Kitchen}
{camera}{127.0.0.1:9998}{robocam}{Lounge}


Any idea what causes the error(s)?

Ow please edit a configurable image storage folder since I use storages at my mounts and I do not like symlinks (f.i. from /media/hdd to one of my mounts) because after a flash they're gone.
BTW:

- why are images stored when I just wanna to use the plugin for streaming?
- is it possible to use rtsp i.s.o. http?

Re: IP Security Camera control centre for Enigma2 #10 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 9 January 2011 - 17:37

From the entry for {camera} - the IP address means the camera is the dreambox(127.0.0.1); this only works if you are using the emulator software, otherwise it has to be the IP address of the camera.
The setup for {command} will render an invalid addressed http request; it will result in "http://127.0.0.1:999...68.17.199/...." where the server part is invalid. Normal http requests are of the form "http://192.168.17.199/cgi/.....", although the bit "/cgi/..." can be virtually any format.
Can you tell me the make/model of the camera that you have and/or send me the command part of the manual so I can have a look whether it is possible to set it up or maybe change the plugin to support it.

It is not possible to support streaming protocols of any sort on most STBs if the plugin wants to support PIP, allowing the user to still watch TV while displaying the camera(s). This is because all dreamboxes (excluding the DM8000 and DM7025) have only one decoder. To ensure the dreambox is not overrun by images from the camera, the snapshot interface is used. The dreambox controls the update rate from the camera; this allows compensation for slower CPUs (like in the DM800 and DM7025).

The images are stored on "disk" as the interface to the asynchronous JPEG decoding software is from a disk file, in this case from /tmp which is actually in memory.

Notes.
1. The {camera} entry must reference a set of {command} entries (robocam, robocam2). So if you have, as in the example robocam and robocam2 then there must be 2 full sets of {command} entries, one for robocam and another for robocam2.
{command}{robocam.up}.......
{command}{robocam2.up}.....
Many camera entries can refernce a single set of command entries. Different sets of command entries are only needed when you are using different makes/models of cameras.
{camera}{127.0.0.1:9999}{robocam}{whereever}
{camera}{192.168.17.199:80}{robocam}{otherplace}
{camera}{192.168.17.198}{robocam}{defaultwebserverport} --note that this will default to port 80 on the camera.

2. Before trying commands through the plugin it is a good idea to try them from a browser. If you cannot make them work from a browser, they will not work from the plugin. The command the plugin will use is constructed as follows:
<protocol><camera IP>/<command> where the default protocol = "http://"(can be configured in the config file), the camera IP is from the {camera} definition and the command is from the {command definition for that camera type resulting in something like:
http://127.0.0.1:999....199/cgi/...... for your definition above.
Enter it into the address line of the browser and see if you get an image back. If you do it should work in the plugin. If it doesn't then it will not work in the plugin and you will have to correct the command or it might not be possible to access the camera.

3. Note that 127.0.0.1 is normally the local host, which is the dreambox the plugin is running on in this case. You have to replace it with the IP of your camera.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #11 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 9 January 2011 - 18:52

thanks for responding. I have two cams of the same brand and type (marmitek robocam ipcam21), however they are only accesible by different LAN IP (of course) but also ONLY when using a login and pass. Therefor the camera commands like" up" etc are to be as I wrote before, so starting with http:// followed by the userlogin and pass. I checked this of course in the browser and works. So I cannot use 1 set of entries for both cams (although the commands are the same, but since the IP must be present in each command entry, I have to use 2 sets in the config file unfortunately.
You wrote that I have to change 127.0.0.1 (localhost) with the IP of my cams. So the entries look like:

{camera}{192.168.17.199}{robocam}{Lounge}
{camera}{192.168.17.200}{robocam2}{Kitchen}

Still got the same error msg
entering start_decode()
GetMyURLImage::entering __int__()
................................................server=192.168.17.199, urlfailed=1
GetMyURLImage::entering __int__()
................................................server=192.168.17.199, urlfailed=1
GetMyURLImage::entering __int__()
................................................server=192.168.17.199 urlfailed=1
entering nextCam()

As written before: with http://admin:<passw>...@192.168.17.199 I can enter my cam in my browser (both cams operate and must operate only with port 80)

Re: IP Security Camera control centre for Enigma2 #12 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 9 January 2011 - 20:35

I see the problem now. The plugin inserts an extraneous IP after http://.
Can you try the following:
1. Change the {protocol} entry:
{command}{robocam.protocol}{http://admin:mypassword@} - replace admin:mypassword with username and password for the camera
and then change the other commands to be: (drop off the "admin:password@192.168.17.199")
{command}{robocam.up}{/cgi/admin/...........}

Change all {command} statements be like this format

This means the plugin should generate:
<protocol><IP>command> = "http://admin:mypassword@192.168.17.199/cgi/admin/........" , which is what you need - the colours show the matched replacements (I hope).
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #13 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 9 January 2011 - 20:41

Note: If you can make the username/password for the 2 cameras the same, then you will only need 1 set of {command} setups.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #14 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 9 January 2011 - 20:52

Starting with your last msg: no need to have the same login and password since the login and password are now given in the protocol statements.
I am glad you did understand me, thanks !

And...then I can use just one set.
This is what I have now:
{command}{robocam.up}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.down}{/cgi/admin/ptctrl.cgi?action=move&Cmd=down}
{command}{robocam.left}{/cgi/admin/ptctrl.cgi?action=move&Cmd=left}
{command}{robocam.right}{/cgi/admin/ptctrl.cgi?action=move&Cmd=right}
{command}{robocam.zoomin}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.zoomout}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.startvertpan}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.stopvertpan}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.starthorpan}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.stophorpan}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.gotohome}{/cgi/admin/ptctrl.cgi?action=move&Cmd=up}
{command}{robocam.snapshot}{/cgi/jpg/image.cgi}
{command}{robocam.protocol}{http://}
{camera}{admin:<password1>@192.168.17.199}{robocam}{Lounge}
{camera}{admin:<password2>@192.168.17.198}{robocam}{Kitchen}
Will try it later because "sweety" does not like me to check it now ;)

still a bit weird to use fake commands for commands my webcam does not support ;)

Re: IP Security Camera control centre for Enigma2 #15 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 9 January 2011 - 21:05

Once we have the basics working I will fix the problem with deleted {command} entries./images/smiley/frown.gif
By the way: If you need to get more cameras, look on fleabay as a very similar camera (foscam) sells for around £50 as oposed to the £230 for the marmitek.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #16 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 9 January 2011 - 21:10

tnx m8; check pm pls

Re: IP Security Camera control centre for Enigma2 #17 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 9 January 2011 - 22:22

Good idea to cludge the camera IP as it then only needs to have one set of {command} setup. It should work, I hope it does./images/smiley/smile.gif
Have added you in messenger.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #18 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 10 January 2011 - 18:26

I have looked and tested the code and the problem is that the Python module for retrieving a url does not support the http://user:password@IP syntax. There is a workaround and I will implement it once I am sure that the camera uses basic http authentication. Please test by entering "http://192.168.17.19.../jpg/image.cgi" in the browser. This should throw a login page. Log in and then you should get the image displayed. If this works I will go ahead and implement the code.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!

Re: IP Security Camera control centre for Enigma2 #19 ni_hao

  • Senior Member
  • 846 posts

+5
Neutral

Posted 10 January 2011 - 19:21

Thanks for feedback, we already tested it. New code of plugin is coming soon.



Re: IP Security Camera control centre for Enigma2 #20 shumifan50

  • Senior Member
  • 195 posts

+2
Neutral

Posted 12 January 2011 - 21:44

An update is available (version 1.1) that has been tested with Foscam cameras and Marmitek robocom IP21. The plugin now supports HTTP basic authentication properly. See the documentation in the zipfile for details.
DM600, DM800HD, DM7025, DM500S HD. DM800HDse, 90cm multi-bracket dish: 13E, 19.2E, 23.5E, 28.2E. Runnign OpenPli where I can and loving it!



1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users