Cannot get Reolink E1 Pro working

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.

has anyone got the E1 pro working in OH4?

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

you didn’t read the OP to then end did you

next please

First hit on Google…

https://community.synology.com/enu/forum/3/post/160651

And yes, I read your post till end…
sorry that I want to help :roll_eyes:

Greets

In my OP I write…

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!

Rtsp has nothing to do with web interface and onvif…
Nevertheless, I wish you good luck with your problem.

Not necessarily. I would suspect the thing configuration.
How did you thing configuration using RTSP look like ?

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: {}

The IpCamera binding has a special option for Reolink, try that.

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: {}

NO!
that binding uses the camera API The E1 and E1 PRO do not expose an API so onvif or rtsp must be used

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:

UID: ipcamera:onvif:0dc301f99b
label: Livingroom Camera
thingTypeUID: ipcamera:onvif
configuration:
  mjpegOptions: -q:v 5 -r 2 -vf scale=640:-2 -update 1
  ipAddress: 192.168.10.161
  updateImageWhen: "0"
  gifPreroll: 0
  onvifPort: 8000
  ffmpegLocation: /usr/bin/ffmpeg
  ipWhitelist: DISABLE
  mp4OutOptions: -c:v copy -c:a copy
  pollTime: 60000
  password: *****************
  port: 8000
  snapshotUrl: ffmpeg
  snapshotOptions: -an -vsync vfr -q:v 2 -update 1
  ptzContinuous: true
  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: openhab

The only difference I see is the port, which shouldn’t matter since there’s no http interface.

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.