Thanks for the answer.
log-filtering is already in place, i have setup a solution where i can change the logging on the fly via an openhab sitemap and respective rules.
I was more thinking about a solution to avoid events comming from the ipcamera (in my case an UPCAM camera) to openhab, may be a filter in CreatePullPointSubscription could be used. I am not an expert in ONVIF but this is what i found in the ONVIF documentation.
hello,
the new action call for creating a mp4 or gif file dont create a uniquie name for the file.
thats a problem, every new gif overrides the gif before.
is it possible to change it, or give it a uniquier name?
thx i found it.
now iam at another problem. the motion alarm channels dont trigger.
i had three channels, but no one trigger my motion.
Motion Alarm
Cell Motion Alarm
Line Crossing Alarm
i used the old binding on openhab2 and it works fine.
any ideas what i can do?
Hi,
I went through this whole thread and documentation and got quite close to get my camera working, but now I finally got stuck. I used my Foscam FI9853EP V2 with openhab 2 just by adding the direct stream from the camera to a panel in HABpanel and it worked well. Setting up a new server for openhab 3 I would like to use the binding for more functionallity. I installed the binding, configured a new user in the camera, installed FFMPEG and finally get files in the FFMPEG Output directory like these:
-rw-rw-r-- 1 openhab openhab 494628 Jan 20 09:44 ipcamera18.ts
-rw-rw-r-- 1 openhab openhab 496884 Jan 20 09:44 ipcamera19.ts
-rw-rw-r-- 1 openhab openhab 495568 Jan 20 09:44 ipcamera20.ts
-rw-rw-r-- 1 openhab openhab 497636 Jan 20 09:44 ipcamera21.ts
-rw-rw-r-- 1 openhab openhab 495004 Jan 20 09:44 ipcamera22.ts
-rw-rw-r-- 1 openhab openhab 262144 Jan 20 09:44 ipcamera23.ts
-rw-rw-r-- 1 openhab openhab 493500 Jan 20 09:41 ipcamera318.ts
-rw-rw-r-- 1 openhab openhab 493876 Jan 20 09:41 ipcamera319.ts
-rw-rw-r-- 1 openhab openhab 494628 Jan 20 09:41 ipcamera320.ts
-rw-rw-r-- 1 openhab openhab 494064 Jan 20 09:41 ipcamera321.ts
-rw-rw-r-- 1 openhab openhab 494816 Jan 20 09:41 ipcamera322.ts
-rw-rw-r-- 1 openhab openhab 262144 Jan 20 09:41 ipcamera323.ts
-rw-rw-r-- 1 openhab openhab 498764 Jan 19 17:39 ipcamera430.ts
-rw-rw-r-- 1 openhab openhab 498012 Jan 19 17:40 ipcamera431.ts
-rw-rw-r-- 1 openhab openhab 499328 Jan 19 17:40 ipcamera432.ts
-rw-rw-r-- 1 openhab openhab 498764 Jan 19 17:40 ipcamera433.ts
-rw-rw-r-- 1 openhab openhab 497072 Jan 19 17:40 ipcamera434.ts
-rw-rw-r-- 1 openhab openhab 262144 Jan 19 17:40 ipcamera435.ts
-rw-rw-r-- 1 openhab openhab 202 Jan 20 09:44 ipcamera.m3u8
But the only thing I can use is the snapshot jpg. Starting the HLS Stream results in the following log entrys:
2021-01-20 15:57:42.419 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'EGWZfoscam_StartHLSStream' received command ON
2021-01-20 15:57:42.422 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'EGWZfoscam_StartHLSStream' predicted to become ON
2021-01-20 15:57:42.436 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'EGWZfoscam_StartHLSStream' changed from OFF to ON
==> /var/log/openhab/openhab.log <==
2021-01-20 15:57:45.191 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Guessed Channel Layout for Input Stream #0.1 : mono
2021-01-20 15:57:45.207 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [aac @ 0x14bea60] Too many bits 8832.000000 > 6144 per frame requested, clamping to max
2021-01-20 15:57:45.217 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [rtsp @ 0x1381370] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
2021-01-20 15:57:45.243 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
2021-01-20 15:57:54.170 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] pkt->duration = 0, maybe the hls segment duration will not precise
2021-01-20 15:57:56.109 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Last message repeated 49 times
2021-01-20 15:57:56.110 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] Cannot use rename on non file protocol, this may lead to races and temporary partial files
2021-01-20 15:57:56.187 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] pkt->duration = 0, maybe the hls segment duration will not precise
2021-01-20 15:57:56.502 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Last message repeated 8 times
2021-01-20 15:57:56.503 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [aac @ 0x14bea60] Queue input is backward in time
2021-01-20 15:57:56.548 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] pkt->duration = 0, maybe the hls segment duration will not precise
2021-01-20 15:58:49.931 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Last message repeated 1335 times
2021-01-20 15:58:49.932 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [aac @ 0x14bea60] Queue input is backward in time
2021-01-20 15:58:49.957 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] pkt->duration = 0, maybe the hls segment duration will not precise
2021-01-20 15:58:50.140 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Last message repeated 5 times
2021-01-20 15:58:50.143 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] Non-monotonous DTS in output stream 0:1; previous: 5977958, current: 5977564; changing to 5977959. This may result in incorrect timestamps in the output file.
2021-01-20 15:58:50.211 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] pkt->duration = 0, maybe the hls segment duration will not precise
2021-01-20 15:59:18.717 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Last message repeated 713 times
2021-01-20 15:59:18.718 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [aac @ 0x14bea60] Queue input is backward in time
2021-01-20 15:59:18.753 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] pkt->duration = 0, maybe the hls segment duration will not precise
2021-01-20 15:59:18.959 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Last message repeated 5 times
2021-01-20 15:59:18.960 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] Non-monotonous DTS in output stream 0:1; previous: 8570655, current: 8568810; changing to 8570656. This may result in incorrect timestamps in the output file.
2021-01-20 15:59:18.989 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [hls @ 0x139c600] pkt->duration = 0, maybe the hls segment duration will not precise
The m3u8 file has always just some bytes and trying to open it via VLC blocks VLC because of continuous ājump backsā
Any idea?
Iām struggle with this binding under OH3 and a doorbird node. It took me a while before I understood that I had to use a normal user, and not the admin user of doorbird.
Log admin:
2021-01-27 14:41:12.681 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Starting ffmpeg with this command now:-hide_banner -loglevel warning -rtsp_transport tcp -i rtsp://USER:PWD@192.168.222.6:554/mpeg/media.amp -strict -2 -f lavfi -i aevalsrc=0 -acodec aac -vcodec copy -hls_flags delete_segments -hls_time 2 -hls_list_size 4 /etc/openhab/html/62226/ipcamera.m3u8
2021-01-27 14:41:12.868 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [rtsp @ 0x55c4accf58c0] method DESCRIBE failed: 401 Unauthorized
2021-01-27 14:41:12.868 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - rtsp://USER:PWD@192.168.222.6:554/mpeg/media.amp: Server returned 401 Unauthorized (authorization failed)
Once I changed it to a ānormalā user, it started to work, and creating the m3u8 files.
2021-01-27 14:44:17.281 [DEBUG] [amera.internal.onvif.OnvifConnection] - GetStreamUri:rtsp://192.168.222.6:554/mpeg/media.amp
2021-01-27 14:44:30.177 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - Starting ffmpeg with this command now:-hide_banner -loglevel warning -rtsp_transport tcp -i rtsp://USER:********@192.168.222.6:554/mpeg/media.amp -strict -2 -f lavfi -i aevalsrc=0 -acodec aac -vcodec copy -hls_flags delete_segments -hls_time 2 -hls_list_size 4 /etc/openhab/html/62226/ipcamera.m3u8
2021-01-27 14:44:33.502 [DEBUG] [hab.binding.ipcamera.internal.Ffmpeg] - [rtsp @ 0x5610d538f8c0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
ls -l /etc/openhab/html/62226/
total 228
-rw-r--r-- 1 openhab openhab 202 Jan 27 14:45 ipcamera.m3u8
-rw-r--r-- 1 openhab openhab 44744 Jan 27 14:45 ipcamera24.ts
-rw-r--r-- 1 openhab openhab 44180 Jan 27 14:45 ipcamera25.ts
-rw-r--r-- 1 openhab openhab 43616 Jan 27 14:45 ipcamera26.ts
-rw-r--r-- 1 openhab openhab 44556 Jan 27 14:45 ipcamera27.ts
-rw-r--r-- 1 openhab openhab 45308 Jan 27 14:45 ipcamera28.ts
But Iām getting a lot of errors that are saying that Iām not authorized?
==> log/openhab.log <==
2021-01-27 14:47:58.074 [TRACE] [era.internal.handler.IpCameraHandler] - Sending camera: GET: http://192.168.222.6:80/bha-api/image.cgi
2021-01-27 14:47:58.079 [TRACE] [era.internal.handler.IpCameraHandler] - HTTP Result back from camera is :<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>401 Unauthorized</title>
</head>
<body>
<h1>401 Unauthorized</h1>
</body>
</html>
:
2021-01-27 14:47:58.079 [TRACE] [era.internal.handler.IpCameraHandler] - Sending camera: GET: http://192.168.222.6:80/bha-api/image.cgi
2021-01-27 14:47:58.094 [DEBUG] [ipcamera.internal.MyNettyAuthHandler] - Camera at IP:192.168.222.6 gave a reply with a response code of :404
2021-01-27 14:47:58.095 [TRACE] [era.internal.handler.IpCameraHandler] - HTTP Result back from camera is :<HTML><HEAD><TITLE>404 Not Found, The request path could not be found on the server.</TITLE></HEAD>
<BODY><H1>404 Not Found</H1>
The request path could not be found on the server.
</BODY></HTML>
:
Should I disable something, or is there something I need to do in the settings of the doorbird app?
ps Iāve noticed also that when I change the username/password, it stays somewhere in the memory. After restarting the binding, it uses the correct username.
Is that a requirement that should be added to the readme/docs? I dont have any Doorbird cameras and as most users are using the other binding for their brand I do not get any people giving feedback.
No idea other than the API was clear that you can not have multiple programs talking to the camera at the same time and only 1 stream open. The app will stop everything else from working so it needs to be closed. If you have the doorbird binding installed and the ipcamera binding then this may cause issues due to 1 connection only works at a time. The ipcamera binding will allow you to display the streams across multiple tablets at the same time as it can internally copy the stream.
That should not happen, Iāll have a look to see if that is a bug.
I would love to use your binding, because I want to push the image to some google chrome casts for showing the visit.
Iāve just did some additional tests:
-
I created a seperate user on doorbird for this (so not used for anything else)
Error remainsā¦ -
Iāve stopped all other tools that were linked with the doorbird node (=openhab doorbird binding, zoneminder server, openhab network binding).
Errors remainsā¦ -
When I enter the url http://192.168.222.6:80/bha-api/image.cgi direclty in a browser, Iām getting a authentication popup. After entering the normal user/pwd of doorbird, it shows me nicely the picture.
Maybe the way of sending login credentials is differently? Iāve tested it, and for my doorbird (d101s), it works with: http://192.168.222.6:80/bha-api/image.cgi?http-user=xxxxxx0001&http-password=xxxxxxx".
Its not just per user, but I believe it is camera wide. You can only have 1 connection in total regardless of the user. Disclaimer I could be wrong as I dont work for them and it could be outdated info, you need to test.
Great that means the camera supports either basic or digest methods which the binding supports both of these automatically. The other way you outline is not very good if your internal network ever gets compromised but you always have the option of using that URL in sitemaps and widgets.
Interesting that even FFmpeg is having issues which this is another clue as this is independant of the binding. Can you try creating a very basic password with no special characters or symbols or non ACSI in it? Does it work with a simple english password?
Also donāt worry if you see 401 messages as they can be normal when the camera uses DIGEST method, what matters is if the binding works when you ask for the ipcamera.jpg and other methods.
Lastly it is worth rebooting the camera as well as openhab in case the camera has locked out the openhab IP from having the wrong user / pass combo.
Sadly you can give them yourself, itās the app who generates them.
But they arenāt that complex (fe fiKazptKJ).
Tried this, but no luck. Errors remain.
I'm getting a lot few errors when I add following link to the Snapshot url:
http://192.168.222.6/bha-api/image.cgi?http-user=xxxx0001&http-password=XXXXXX
Just this one seems to remain:
2021-01-28 13:15:21.651 [TRACE] [era.internal.handler.IpCameraHandler] - HTTP Result back from camera is :--ioboundary
Content-Type: text/plain
doorbell:L
--ioboundary
Content-Type: text/plain
motionsensor:L
:
That last message is not an error, it is the alarm stream from the camera and how the binding detects if the bell is pressed or if there is motion.
It sounds like there may be a compatibility issue that needs looking into in more depth and hopefully you are willing to help get it sorted?
Since ffmpeg is also flagging issues I think it would be worth checking for a firmware update for the camera in case it was known and a fix is available.
Whilst the work around seems to be helping, it would be better to use a more secure method of handling the password.
Let me know how I can help.
ps Iāve got also access to a Doorbird D21DKV. These are bigger models, but guess they should act the sameā¦ My model (tested here) is a Doorbird D101S
Just validate, and itās running the latest firmware (000128).
Can I do anything to change this?
If you have Linux, enter this command into the terminal and post the outputā¦
curl -sSL -D - http://192.168.222.6/bha-api/image.cgi -o /dev/null
This will tell me what the camera is saying it supports for authentication and then I can compare what the binding is doing with that info. This is what pops up the prompt for a user/pass in a browser.
The return:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm=āDoorBird Stationā, charset=āUTF-8ā, algorithm=MD5, nonce=ā6013ddac:4617e971d126d71ed35de535a0c62d65ā, qop=āauthā
Content-Type: text/html
Content-Length: 347
Date: Fri, 29 Jan 2021 10:04:28 GMT
Server: lighttpd
OK my guess is the missing āopaqueā is causing the issue. I can create a build for you to try in a few days when I get some spare time as I have another request of github to look atā¦ Line 129 in the file MyNettyAuthHandler needs adjusting. I wont know for sure until we try it.
One question:
@matt1:
Is it possible to add the channel āSetPresetā? (like: āGotoPresetā)? This would be very nice, because the channel is necessary for changing settings.
I have exactly the same camera, continuous movements are working, but absolute PTZ is not working.
I get the following error message:
2021-01-31 11:47:32.638 [TRACE] [amera.internal.onvif.OnvifConnection] - Sending ONVIF request:AbsoluteMove
2021-01-31 11:47:32.655 [TRACE] [amera.internal.onvif.OnvifConnection] - Onvif reply is:<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsdd="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:chan="http://schemas.microsoft.com/ws/2005/02/duplex" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xmime="http://tempuri.org/xmime.xsd" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:tdn="http://www.onvif.org/ver10/network/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl"><SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body><SOAP-ENV:Fault><SOAP-ENV:Code><SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value><SOAP-ENV:Subcode><SOAP-ENV:Value>ter:InvalidPosition</SOAP-ENV:Value><SOAP-ENV:Subcode></SOAP-ENV:Subcode></SOAP-ENV:Subcode></SOAP-ENV:Code><SOAP-ENV:Reason><SOAP-ENV:Text xml:lang="en">Invalid Position</SOAP-ENV:Text></SOAP-ENV:Reason><SOAP-ENV:Node>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Node><SOAP-ENV:Role>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Role><SOAP-ENV:Detail>The requested position is out of bounds or not exist.</SOAP-ENV:Detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
@matt1 Have you implemented @Lukas_1st fix for this issue? Iām currently using openHAB 3.0.1. Or maybe have you another idea why this does not work?
HI,
I have a problem that already occurred with openhab version 2 and now that I have upgraded to version 3, the problem persists.
My system is based on openhabian mounted on an RPI 4, and as video surveillance I have 6 cameras connected to a Dahua NVR.
I have installed Ipcamera binding and ffmpeg. Correctly configured the binding via ex paperui, I cannot correctly view the url on the web.
I am attaching a photo of the screenshot of my pc with the image captured correctly
and screenshot with videostream not working
Can someone help me?
Thank
It is pretty common for cameras to not support all of the methods, for this reason you should test the camera with āOnvif device managerā software to see if it works with that program. Presets are another way to move the camera to a repeatable location and are easier to use, and for this you need to set them up and test with the same program.
EDIT:
The binding has that fix in it and if it was not you would not get continuous movements working without it.
It is possible and anyone is welcome to do a PR for that. I do not wish to do it myself due to not needing the feature and I donāt see the benefits for the effort when it can simply be done in another program.