IpCamera: New IP Camera Binding

This binding is now merged into openHAB 2.5.9 and newer.

See below for more details on what each brand of camera has working as often choosing the right camera will save you from needing to purchase an extra video server (both the cost to purchase the server, plus the ongoing electricity costs) to process the video feeds.

Features for Generic cameras with only RTSP (no snapshot url):

  • Snapshots (jpg) can be created from RTSP with low CPU overhead but requires non stop network traffic to keep a running RTSP stream. Much lower network traffic for cameras that have a snapshot url.
  • Ability to create mjpeg streams from RTSP on demand. High CPU overheads for this ability that stop when you close the stream. More than a few of these cameras open at the same time and you should look at a dedicated server, or better cameras with an API.
  • Can use FFmpeg to create motion and audio alarms. High CPU load, consider external zwave or zigbee PIR sensors or ONVIF/API cameras if this is an issue. You may also need to create a rule to change the motion settings when night vision is used, or simply put up with more false positives, some API cameras automatically change settings for you at night greatly simplifying setup.
  • A group of cameras can scroll through in a set order on your TV and if motion occurs the camera with motion can skip the cameras with no motion.
  • Binding allows the use of an external PIR sensor (zwave PIR for example) to unlock the features that require a motion alarm like the feature mentioned above.
  • Ability to create an animated GIF that can be emailed or sent via pushover or other services to your mobile phone.
  • HLS video streams can be produced with FFmpeg for any camera that uses a h264 format. This stream can be used in compatible browsers or cast directly to Chromecasts for high res and FPS video.

Features for Generic cameras with snapshot and RTSP ability:

  • All the above feaures, PLUS the ones below.
  • Can create 1 FPS mjpeg feeds from cameras with a snapshot ability without using much CPU power and low network traffic.

Features for ONVIF cameras with no API:

  • All the above features, PLUS the ones below.
  • Some cameras will gain ONVIF Alarms/Events.
  • PTZ movements with all three Onvif movement methods now working.
  • Easier setup due to auto discovery of the camera and also the snapshot and rtsp urls.
  • PTZ preset recalling if the presets are created in another app like Onvif Device manager.

Features for cameras with API and ONVIF ability:

  • All the above feaures, PLUS the ones below.
  • MJPEG video streams with high FPS and next to no CPU load.
  • Motion Alarm features (very low CPU usage as it does not need ffmpeg) for Amcrest, Dahua, Doorbird, Foscam HD, Hikvision and Instar cameras.
  • Enable/Disable the motion alarm with Amcrest, Dahua, Foscam HD, Hikvision, and Instar.
  • Advanced SMART alarms with HIKVISION and Amcrest/Dahua only. Line crossing, Face detection and many more should now be working. Most of these are now added to ONVIF thing type if the camera sends the correct data.
  • Audio Alarm features with (very low CPU usage as it does not need ffmpeg) Amcrest, Dahua, Foscam HD, Hikvision and Instar cameras.
  • Audio Alarm THRESHOLD control feature with Dahua and Instar (100 levels of control), Foscam HD (3 levels only).
  • Control over the Infrared LED is now possible with Amcrest/Dahua, FOSCAM HD and INSTAR HD. Amcrest/Dahua have control over the brightness, where Foscam and Instar are just on/auto and off.
  • External Alarm inputs with Amcrest, HIK and Dahua. Could be used for a doorbell button.
  • External Alarm output switching with Amcrest, HIK, Dahua and Doorbird. Could be used to trigger a doorbell buzzer.
  • Text overlay on top of the video stream for Amcrest/Dahua, Instar HD and Hikvision.

API cameras reported as working

If missing, it just means no one has reported back (it probably works just fine if not in this list).

Amcrest:
IP2M-841EW
IP2M-841B
IP2M-844
IP3M-943B
IP8M-2493EW

Dahua
IPC-HDW4631C-A
IPC-HDBW4433R-AS
IIPC-HFW4431R-Z
IPC-HDW4421E-AS
IPC-HDW2431R-ZS
DH-SD22404T-GN PTZ
DH-SD6CE225U-HNI
DH-SD1A203T-GN-S2
DH-SD59225U-HNI

Foscam:
FI9831W
FI9821P
FI9900P
Fosbaby P1
C1 Lite
C1
C2

Hikvision:
DS-2CD2T46G1-4I/SL
DS-2CD2086G2-I
DS-2CD2385FWD-I
DS-2CD2042WD-I
DS-2CD2142FWD-IWS
DS-7208HUI-K2
DS-7208HQHI-F1 / N
DS-2CD2383G0-I
DS-7616NI-K2 / 16P
DS-2DE3304W-DE

Instar
IN-8015 Full HD
IN-9008

ONVIF cameras reported as working

EZVIZ DB1
HIKVISION DS-HD1
LAVIEW LV-PDB1630-U
LTS LTH-7132-WIFI
NELLY’S NSC-DB2
RCA HSDB2A
Reolink RLC-410-5MP
Reolink RLC-520

42 Likes
Generic IP Camera binding
Setup Hikvision camera in OH2
Security Camera Recommendations
Hikvision camera feed in sitemap
Extracting webcam URL with RegEx
How to display RTSP streams from IP Cameras in Openhab and Habpanel (Linux only)
Perfect IP Cam for OpenHAB2
Use Ip Camera with HABpanel
IP cameras with Openhab
Looking for easy to use IP CAM binding
[SOLVED] Can't get image from ip cam
IP camera live stream tutorial for beginners?
Amcrest IP Camera Motion Detect
Ip cams in HomeKit Binding
Ring doorbell
Hikvision Event
Is onvifIP camera stream live view possible?
Surveillance system, cameras and software
Recommendation for Camera to implement in Openhab
MQTT Full HD Camera for OpenHAB
Creating a Service
Official Google Assistant Integration for openHAB
Baby monitor. any recommendations?
Credentials in url
Rpi3 GPIO Garage Door Opener Example
Working HTTP binding for Motorola Baby Monitor
[SOLVED] Can not find the addons folder
Integration of WiFi camera
A binding for onvif bulb camera?
POE Advice
Im new please help
MQTT Xiaomi Dafang Camera Hack
Zmodo mini wifi camera
Cam, Door, Motion Sensor —> HabPanel
CCTV Cameras
Yi Home Camera
Next steps and integrations
Habpanel viewer does not display Camera Feed URL
Ip-cam children's room
Ip camera binding
Working and not working IP Cameras
Since updating to 2.3 url proxy is not working for me anymore
[SOLVED] Update Item through REST API
Openhab compitable IP camera
HTTP Binding Motion detection for Reolink IP camera
IP Camera HabPanel
Esp32 cam
[SOLVED] Adding dependecies for addon
Action sendHttpGetRequest throws ssl error when calling FOSCAM camera interface for outdated certificate
Custom widget: cameras view (Hikvision)
Openhab cloud prob with video
[SOLVED] Can't install binding IP camera
Docker: Installing IpCamera Binding: Missing Dependency
openHAB Google Assistant Integration v2.0
Cheap IP camera / binding / connection question
Is google asistant integration no longer maintained?
Recommended Outdoor Security Camera?
Trigger HTTP call with @ sign in the url
[SOLVED] Openhab Docker or not?
Wyze Camera to OH Sitemap/NVR/etc. Hack
Amcrest IP Camera Motion Detect
About to migrate from HomeAssistant: what should I pay attention to?
Recommendations for separate doorbell + IP Camera + Panel
Something easy to start with
Neye3C configuration with ipcamera binding
Static Image URL not displaying in Android OpenHAB app (HABPanel)
Synology Surveillance Station Binding
Ipcamera, which is the simpliest/cheapest way?
Ipcamera, which is the simpliest/cheapest way?
Image not getting displayed in habpanel viewer
Is this amount of errors normal, multiple reboots/repairs before it finally worked for a few mins, why?
IP camera recommendation for local API control?
Bind Yi Outdoor Cam to openHab
New TP-Link Smart Home binding with Bulb, Plug and Switch Support

I’m not able to read what function this binding will have? Rtsp mjpeg convert? Ptz control?

Just create an ONVIF binding. Creating separate code for different cameras will be extremely hard to maintain as there are no standards, except ONVIF. I use BlueIris and it integrates beautifully with OH.

If you are indeed decided on making API BASED binding for cameras, you will need to implement something as massive as this

@DubZ
First off the binding does not exist yet, only a concept and a few lines of code currently. I have spent a while looking into what is possible to ensure what I create will get what I need running.

It is my understanding in regards to mjpeg and other stream formats openHAB’s infrastructure does not support it in at least some of the user interfaces. Mjpeg is the only format currently to work in all the different user interfaces that openhab has to offer. My ideas are to offer two streams, one which is high res for internal network use and a second for off site storage and viewing. Snapshots also.

But please let’s not discuss how features willl work when they don’t exist. Instead I would love to hear from people what they currently have working and what they wished would work.

Terrible start.
You should always discuss how features will work before they exist.

2 Likes

I agree @luckymallari that onvif would be an excellent binding to have in openhab. I would like to see it added as well.

The bottom line is I don’t believe I woULD be able to get my
Cameras working with all features by using onvif without resorting to using a combination of both methods which is more work.

I will be happy if I can get four or more camera brands working, since I don’t get paid and won’t go buying loads of cameras to test with it will be limited to what other kind users contrIbute towards helping others out for free.

Why not combining forces?:

2 Likes

I have already sent an email to Thomas and also posted in that thread to see if it is possible to join forces.

1 Like

First off the binding does not exist yet, only a concept and a few lines of code currently

Yes I got this. That’s why I used the word “will”

but please let’s not discuss how features willl work when they don’t exist

I was not just asking how it works, I was asking about what features you are talking. I don’t know what problem your probably future binding is going to solve? Maybe it’s just me who didn’t read that out of your text. But would be nice to explain it a bit more at least for me

Since I am writing this to get my setup working The features will be the ones I need to implement a baby monitor and general alarm and security uses. My camera has the ability to do audio alarms and adjust the alarm threshold by its API so I will be able to get a message on my tv from openhab warning me the baby is crying and I can then view with night vision into the room with ptz controls and have two way audio.

Does that answer your questions? I could take your question as meaning a few things.

If you have a camera that is onvif. Find out what profile it is and look up what may or may not be supported in this document here.

What I am needing to do is not covered by the onvif standard yet my camera does support it by an api.

1 Like

Foscam FI9826W + FI9826P v1/v2 + FI9821 v2
CGI User Guide contains all commands

typical address for getting MJPEG stream:
http://192.168.1.10:88/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=someusername&pwd=somepassword

1 Like

For those interested, as I mentioned above, BlueIris does wonders. You can set triggers based on motion, time, audio, etc, and has already implemented APIs from TONS of manufacturers, of course, including ONVIF. BlueIris also integrates with OH well. You can run a command, call REST, trigger a GPIO, etc based on the triggers. Has an iOS, Android, and Windows apps also.

@matt sounds interesting. so did I understand it correct that I could also use it as door phone?! what I’m searching at the moment is the possibility to transfer not only video, also audio via webbrowser and I wanted to read more about webrtc which seems the only possible way (for tablet browser without flash, silverlight etc.)

@lucky blueiris costs sth. so if there is someone who wants to create a binding for free… perfect :slight_smile: but does blueiris also support webbrowser support including speaker/mic audio (without activex etc)?

ps: currently I’m using nexus cameras (in my case model 235fw). they support onvif. as streaming protocol only rtsp.
http://www.nexuscctv.de/nexus-235fw-8063.html

cant beat free :slight_smile:

You can if it’s a lame implementation…

1 Like

you get the point

@DubZ yes you could potentially use the binding with the right camera if I am successful for a doorbell with two way audio. You may be interested in this upcoming product on page 18 as it will support the same api that I will be using.
https://drive.google.com/file/d/0B3WvNuumy4pbUS1rRjNBMC1EcFE/view

But I would hold off until I get to play with my amcrest to see what is possible and what compatibility issues I may hit. Currently it sounds like you have more experience with ip cameras than I do so things like what you posted about getting 2 way audio in browsers is something I will need to look at it more depth before making a feature promise on what can be done with a binding that does not exist. I’ll look at the two way audio first then because if an issues arises then it may change how I tackle this.

matt1, I have a Lorex LNR 1182, the Cameras are a mix of LNB4163-C and LNB4173-C … I’m not sure of the HTTP information you need. I have to use a program called FLIRCloudClient to be able to remotely view the cameras from a computer or android smart phone.

I had a quick look and it appears the Lorex do not have an API (at least easily found) so you would be limited to what your camera has implemented in ONVIF or RTSP or other features it may or may not have. As my post above went into there are a number of ONVIF profiles and depending on which profile is implemented into your camera you may have only very limited controls available. Not all cameras are equal and just because it has ONVIF written on it does not mean it has everything available that the standard has defined.

The brands that I looked at that do have API’s are
Amcrest
Foscam
Axis
HIKvision (beware of chinese fakes/clones that will brick if you try to update firmware)

With the amcrest api it allows for a lot more in depth control over the camera .

I did notice that I can log in locally with my web browser, if I type in the private IP address of the NVR and download and instal a plug-in “LOREX_webplugin version 3.1.0.5” I’m sure in order to see them outside of the network it would take some port forwarding rules in my DSL router. The sad thing about mt DSL router is that it gets its public IP dynamically, so if it reboots … it gets a new public IP.