The Reolink E1 Pro does not have an API exoosed or a web interface that can be logged into. So I ditched the Reolink binding.
Installed the IP camera binding and no matter what i do, I’m unable to add any Thing. I tried ONVIF and RTSP things but initializes then errors and the Thing reports "HANDLER_INITIALISATION_ERROR’.
tried all sorts of settings and urls with and without username and password.
i know the rtsp works because my rtsp player in linux can access and play.
I think Reolink cameras have disabled the web interface and onfiv ports per default.
look for network settings in the Reolink app and enable the necessary ports.
Greets
That means it plays outside OH so the issue is NOT ports. The reolink.app DOES not need to open ports or enable anything It is ALREADY working albeit outside IOH
The issue is something in OH. That is why I came here… Also it works perfectly in home assistant!
Thanks Wolfgang…
So from the top…
I have come from Home Assistant in which my Reolink E1 Pro camera was recognised and worked.
Working my way through the learning curve with OH4, taking time, I tried to get this darn thing working to no avail.
I figured out how to install the IP Camera binding and setup the camera config but I get an error in the GUI
**COMMUNICATION_ERROR**
Connection Timeout: Check your IP and PORT are correct and the camera can be reached.
In the openhab.log file , this gets logged:
2024-09-24 11:57:06.449 [WARN ] [amera.internal.onvif.OnvifConnection] - Binding could not determin the cameras current PTZ location. Not all cameras respond to GetStatus requests.
2024-09-24 11:57:10.625 [WARN ] [amera.internal.onvif.OnvifConnection] - Binding could not determin the cameras current PTZ location. Not all cameras respond to GetStatus requests.
2024-09-24 11:58:17.331 [WARN ] [amera.internal.onvif.OnvifConnection] - Binding could not determin the cameras current PTZ location. Not all cameras respond to GetStatus requests.
2024-09-24 11:58:21.058 [WARN ] [amera.internal.onvif.OnvifConnection] - Binding could not determin the cameras current PTZ location. Not all cameras respond to GetStatus requests.
My camera setup working in home assistant on same box same network:
Reolink E1 Pro
Onvif port: 8000
Rtsp port: 554
Http login port: 80
Login: daz
Password: pwd
“code” tab from the Things GUI…
UID: ipcamera:onvif:745b6e8312
label: ONVIF IP Camera
thingTypeUID: ipcamera:onvif
configuration:
mjpegOptions: -q:v 5 -r 2 -vf scale=640:-2 -update 1
ipAddress: 192.168.0.4
updateImageWhen: "0"
gifPreroll: 0
onvifPort: 8000
ffmpegLocation: /usr/bin/ffmpeg
ipWhitelist: DISABLE
mp4OutOptions: -c:v copy -c:a copy
pollTime: 10000
password: pwd
port: 80
snapshotOptions: -an -vsync vfr -q:v 2 -update 1
ptzContinuous: false
onvifMediaProfile: 0
gifOutOptions: -r 2 -filter_complex
scale=-2:360:flags=lanczos,setpts=0.5*PTS,split[o1][o2];[o1]palettegen[p];[o2]fifo[o3];[o3][p]paletteuse
hlsOutOptions: -strict -2 -f lavfi -i aevalsrc=0 -acodec aac -vcodec copy
-hls_flags delete_segments -hls_time 2 -hls_list_size 4
username: daz
channels:
- id: startStream
channelTypeUID: ipcamera:startStream
label: Start HLS Stream
description: Lower the delay to start casting the camera by creating the files
non stop in case they are needed.
configuration: {}
- id: pollImage
channelTypeUID: ipcamera:pollImage
label: Poll Image
description: This can be used to trigger snapshot updates when an external PIR,
button or other form of sensor turns this channel ON.
configuration: {}
- id: image
channelTypeUID: ipcamera:image
label: Image
description: Low frame rate image from your camera. Recommend this is NOT used
unless you have large pollTime.
configuration: {}
- id: recordingGif
channelTypeUID: ipcamera:recordingGif
label: GIF Recording
description: Indicates how long the recording will occur for and when the file
is created, the channel will change to 0 by itself.
configuration: {}
- id: gifHistory
channelTypeUID: ipcamera:gifHistory
label: GIF History
description: A history of the last GIFs created in a CSV formatted string.
configuration: {}
- id: gifHistoryLength
channelTypeUID: ipcamera:gifHistoryLength
label: GIF History Length
description: How many GIFs are stored in the history.
configuration: {}
- id: recordingMp4
channelTypeUID: ipcamera:recordingMp4
label: MP4 Recording
description: Indicates how long the recording will occur for and when the file
is created, the channel will change to 0 by itself.
configuration: {}
- id: mp4History
channelTypeUID: ipcamera:mp4History
label: MP4 History
description: A history of the last mp4 recordings created in a CSV formatted string.
configuration: {}
- id: mp4HistoryLength
channelTypeUID: ipcamera:mp4HistoryLength
label: MP4 History Length
description: How many mp4 recordings are stored in the history.
configuration: {}
- id: lastMotionType
channelTypeUID: ipcamera:lastMotionType
label: Last Motion Type
description: A string that contains the type of motion alarm that was last triggered.
configuration: {}
- id: ffmpegMotionControl
channelTypeUID: ipcamera:ffmpegMotionControl
label: Control FFmpeg Motion Alarm
description: Enable/Disable the motion alarm and control the sensitivity.
configuration: {}
- id: ffmpegMotionAlarm
channelTypeUID: ipcamera:ffmpegMotionAlarm
label: FFmpeg Motion Alarm
description: FFmpeg has detected motion.
configuration: {}
- id: thresholdAudioAlarm
channelTypeUID: ipcamera:thresholdAudioAlarm
label: Audio Alarm Threshold
description: By moving this control you should be able to change how sensitive
the audio alarm is to soft or loud noises.
configuration: {}
- id: audioAlarm
channelTypeUID: ipcamera:audioAlarm
label: Audio Alarm
description: Audio has triggered an Alarm.
configuration: {}
- id: externalMotion
channelTypeUID: ipcamera:externalMotion
label: External Motion
description: Use any external sensor like a ZWave PIR sensor to flag that the
camera has motion in its field of view.
configuration: {}
- id: motionAlarm
channelTypeUID: ipcamera:motionAlarm
label: Motion Alarm
description: Motion has been detected.
configuration: {}
- id: cellMotionAlarm
channelTypeUID: ipcamera:cellMotionAlarm
label: Cell Motion Alarm
description: Cell based motion has been detected.
configuration: {}
- id: lineCrossingAlarm
channelTypeUID: ipcamera:lineCrossingAlarm
label: Line Crossing Alarm
description: Motion has been detected.
configuration: {}
- id: fieldDetectionAlarm
channelTypeUID: ipcamera:fieldDetectionAlarm
label: Field Alarm
description: Intrusion has detected movement. AKA Field Detection Alarm.
configuration: {}
- id: faceDetected
channelTypeUID: ipcamera:faceDetected
label: Face Detected Alarm
description: A face has been detected.
configuration: {}
- id: parkingAlarm
channelTypeUID: ipcamera:parkingAlarm
label: Parking Alarm
description: A car has triggered the Parking Detection.
configuration: {}
- id: itemLeft
channelTypeUID: ipcamera:itemLeft
label: Item Left Alarm
description: An item has been left.
configuration: {}
- id: itemTaken
channelTypeUID: ipcamera:itemTaken
label: Item Taken Alarm
description: An item may have been stolen.
configuration: {}
- id: tamperAlarm
channelTypeUID: ipcamera:tamperAlarm
label: Tamper Alarm
description: Camera may be stolen or damaged.
configuration: {}
- id: tooDarkAlarm
channelTypeUID: ipcamera:tooDarkAlarm
label: Too Dark Alarm
description: Image is too dark.
configuration: {}
- id: storageAlarm
channelTypeUID: ipcamera:storageAlarm
label: Storage Alarm
description: An issue with the cameras storage has been reported.
configuration: {}
- id: sceneChangeAlarm
channelTypeUID: ipcamera:sceneChangeAlarm
label: Scene Change Alarm
description: Camera may have been moved.
configuration: {}
- id: tooBrightAlarm
channelTypeUID: ipcamera:tooBrightAlarm
label: Too Bright Alarm
description: Image is too bright.
configuration: {}
- id: humanAlarm
channelTypeUID: ipcamera:humanAlarm
label: Human Alarm
description: A person has triggered the Human Detection.
configuration: {}
- id: animalAlarm
channelTypeUID: ipcamera:animalAlarm
label: Animal Alarm
description: An animal has triggered the object detection.
configuration: {}
- id: carAlarm
channelTypeUID: ipcamera:carAlarm
label: Car Alarm
description: A car has triggered the Vehicle Detection.
configuration: {}
- id: tooBlurryAlarm
channelTypeUID: ipcamera:tooBlurryAlarm
label: Too Blurry Alarm
description: Image is out of focus.
configuration: {}
- id: pan
channelTypeUID: ipcamera:pan
label: Pan
description: Pan the camera to a new position.
configuration: {}
- id: tilt
channelTypeUID: ipcamera:tilt
label: Tilt
description: Tilt the camera to a new position.
configuration: {}
- id: zoom
channelTypeUID: ipcamera:zoom
label: Zoom
description: Zoom the camera to a new value.
configuration: {}
- id: gotoPreset
channelTypeUID: ipcamera:gotoPreset
label: Go To Preset
description: Move a P.T.Z camera to this ONVIF preset location.
configuration: {}
- id: mjpegUrl
channelTypeUID: ipcamera:mjpegUrl
label: MJPEG URL
description: A link you can use in openHAB/HABpanel to fetch a MJPEG video feed
from the camera.
configuration: {}
- id: rtspUrl
channelTypeUID: ipcamera:rtspUrl
label: RTSP URL
description: A link that the camera uses for RTSP.
configuration: {}
- id: imageUrl
channelTypeUID: ipcamera:imageUrl
label: Image URL
description: A link you can use to fetch a static image from the camera.
configuration: {}
- id: hlsUrl
channelTypeUID: ipcamera:hlsUrl
label: HLS URL
description: A link you can use in openHAB to cast video feeds.
configuration: {}
I just installed the Reolink Doorbell and everything works fine. In the Reolink app I had to enable the RTSP and ONVIF ports, but I think you already did that.
Thing
UID: ipcamera:reolink:DoorbellReolink
label: Doorbell Reolink
thingTypeUID: ipcamera:reolink
configuration:
mjpegOptions: -q:v 5 -r 2 -vf scale=640:-2 -update 1
ipAddress: 192.168.xx.xx
updateImageWhen: "0"
gifPreroll: 0
onvifPort: 8000
ffmpegLocation: /usr/bin/ffmpeg
ipWhitelist: DISABLE
mp4OutOptions: -c:v copy -c:a copy
pollTime: 1000
useToken: false
password: openHABxxxx
port: 80
nvrChannel: 0
snapshotOptions: -an -vsync vfr -q:v 2 -update 1
ptzContinuous: true
onvifMediaProfile: 0
username: xxxx
hlsOutOptions: -strict -2 -f lavfi -i aevalsrc=0 -acodec aac -vcodec copy
-hls_flags delete_segments -hls_time 2 -hls_list_size 4
gifOutOptions: -r 2 -filter_complex
scale=-2:360:flags=lanczos,setpts=0.5*PTS,split[o1][o2];[o1]palettegen[p];[o2]fifo[o3];[o3][p]paletteuse
channels:
- id: startStream
channelTypeUID: ipcamera:startStream
label: Start HLS Stream
description: Lower the delay to start casting the camera by creating the files
non stop in case they are needed.
configuration: {}
- id: pollImage
channelTypeUID: ipcamera:pollImage
label: Poll Image
description: This can be used to trigger snapshot updates when an external PIR,
button or other form of sensor turns this channel ON.
configuration: {}
- id: image
channelTypeUID: ipcamera:image
label: Image
description: Low frame rate image from your camera. Recommend this is NOT used
unless you have large pollTime.
configuration: {}
- id: recordingGif
channelTypeUID: ipcamera:recordingGif
label: GIF Recording
description: Indicates how long the recording will occur for and when the file
is created, the channel will change to 0 by itself.
configuration: {}
- id: gifHistory
channelTypeUID: ipcamera:gifHistory
label: GIF History
description: A history of the last GIFs created in a CSV formatted string.
configuration: {}
- id: gifHistoryLength
channelTypeUID: ipcamera:gifHistoryLength
label: GIF History Length
description: How many GIFs are stored in the history.
configuration: {}
- id: recordingMp4
channelTypeUID: ipcamera:recordingMp4
label: MP4 Recording
description: Indicates how long the recording will occur for and when the file
is created, the channel will change to 0 by itself.
configuration: {}
- id: mp4History
channelTypeUID: ipcamera:mp4History
label: MP4 History
description: A history of the last mp4 recordings created in a CSV formatted string.
configuration: {}
- id: mp4HistoryLength
channelTypeUID: ipcamera:mp4HistoryLength
label: MP4 History Length
description: How many mp4 recordings are stored in the history.
configuration: {}
- id: lastMotionType
channelTypeUID: ipcamera:lastMotionType
label: Last Motion Type
description: A string that contains the type of motion alarm that was last triggered.
configuration: {}
- id: lastEventData
channelTypeUID: ipcamera:lastEventData
label: Last Event Data
description: A string that contains detailed data on the last alarm that was triggered.
configuration: {}
- id: ffmpegMotionControl
channelTypeUID: ipcamera:ffmpegMotionControl
label: Control FFmpeg Motion Alarm
description: Enable/Disable the motion alarm and control the sensitivity.
configuration: {}
- id: ffmpegMotionAlarm
channelTypeUID: ipcamera:ffmpegMotionAlarm
label: FFmpeg Motion Alarm
description: FFmpeg has detected motion.
configuration: {}
- id: enableMotionAlarm
channelTypeUID: ipcamera:enableMotionAlarm
label: Enable Motion Alarm
description: By using this feature you can stop the camera from sending e-mails
when you are actually home.
configuration: {}
- id: motionAlarm
channelTypeUID: ipcamera:motionAlarm
label: Motion Alarm
description: Motion has been detected.
configuration: {}
- id: cellMotionAlarm
channelTypeUID: ipcamera:cellMotionAlarm
label: Cell Motion Alarm
description: Cell based motion has been detected.
configuration: {}
- id: externalMotion
channelTypeUID: ipcamera:externalMotion
label: External Motion
description: Use any external sensor like a ZWave PIR sensor to flag that the
camera has motion in its field of view.
configuration: {}
- id: enableAudioAlarm
channelTypeUID: ipcamera:enableAudioAlarm
label: Enable Audio Alarm
description: By using this feature you can stop the camera from sending e-mails
when you are having a party.
configuration: {}
- id: thresholdAudioAlarm
channelTypeUID: ipcamera:thresholdAudioAlarm
label: Audio Alarm Threshold
description: By moving this control you should be able to change how sensitive
the audio alarm is to soft or loud noises.
configuration: {}
- id: audioAlarm
channelTypeUID: ipcamera:audioAlarm
label: Audio Alarm
description: Audio has triggered an Alarm.
configuration: {}
- id: gotoPreset
channelTypeUID: ipcamera:gotoPreset
label: Go To Preset
description: Move a P.T.Z camera to this ONVIF preset location.
configuration: {}
- id: mjpegUrl
channelTypeUID: ipcamera:mjpegUrl
label: MJPEG URL
description: A link you can use in openHAB/HABpanel to fetch a MJPEG video feed
from the camera.
configuration: {}
- id: rtspUrl
channelTypeUID: ipcamera:rtspUrl
label: RTSP URL
description: A link that the camera uses for RTSP.
configuration: {}
- id: imageUrl
channelTypeUID: ipcamera:imageUrl
label: Image URL
description: A link you can use to fetch a static image from the camera.
configuration: {}
- id: hlsUrl
channelTypeUID: ipcamera:hlsUrl
label: HLS URL
description: A link you can use in openHAB to cast video feeds.
configuration: {}
- id: humanAlarm
channelTypeUID: ipcamera:humanAlarm
label: Human Alarm
description: A person has triggered the Human Detection.
configuration: {}
- id: autoLED
channelTypeUID: ipcamera:autoLED
label: Auto LED
description: Turn the automatic mode for the LED ON and OFF.
configuration: {}
- id: autoWhiteLED
channelTypeUID: ipcamera:autoWhiteLED
label: Auto White LED
description: Turn the automatic mode for the visible white LED ON or OFF.
configuration: {}
- id: enableLED
channelTypeUID: ipcamera:enableLED
label: LED Controls
description: Turn the LED ON and OFF and if supported also 0-100% dimming.
configuration: {}
- id: whiteLED
channelTypeUID: ipcamera:whiteLED
label: White LED
description: Turn the visible white LED ON and OFF and if supported 0-100% dimming.
configuration: {}
- id: textOverlay
channelTypeUID: ipcamera:textOverlay
label: Text Overlay
description: Enter some text you wish to overlay on top of the cameras snapshot
and video streams.
configuration: {}
- id: activateAlarmOutput
channelTypeUID: ipcamera:activateAlarmOutput
label: Alarm Output 1 ON/OFF
description: You can use the cameras output to trigger a device like a burglar alarm.
configuration: {}
- id: doorBell
channelTypeUID: ipcamera:doorBell
label: Door Bell
description: The button has been pushed.
configuration: {}
- id: enableRecordings
channelTypeUID: ipcamera:enableRecordings
label: Enable Recordings
description: Enable/Disable the cameras internal recordings
configuration: {}
- id: enableFTP
channelTypeUID: ipcamera:enableFTP
label: Enable FTP
description: Turn the FTP features of the camera on and off
configuration: {}
- id: enableEmail
channelTypeUID: ipcamera:enableEmail
label: Enable Email
description: Turn the email features of the camera on or off
configuration: {}
- id: enablePush
channelTypeUID: ipcamera:enablePush
label: Enable Push
description: Turn the push notification features of the camera on or off
configuration: {}
I have an E1 Pro, and have gotten it to work with openhab. It’s currently disconnected though so cannot test it right now (have updated OH several times since I last used it, didn’t feel it added any value to have it OH).
Anyway, my (old) configuration don’t look much different from yours:
Just tried connecting it again, and it came online in OH without a problem. Are you sure there’s not anything else that prevents your OH machine from communicating with it?
This happens when there is an issue with the way the binding is installed. Uninstall and reinstall the binding. I see this on my setup occasionally when I drag a jar into the addons folder when the binding is running.
Edit it may also mean you have bad data for the thing, eg using quotes around a number means it is text string and not a number. Try adding the thing purely from the UI and not using the text methods that may cause a syntax error.