Eufy Camera Integration

Is anyone able to get a successful livestream on the Eufy Wireless Doorbell using the IOBroker adapter?

Weird, because if I use your URL with just the CAMERAID, then I get an error that the “datapoint is not found”. But if I replace the first CAMERAID with my BASESTATIONID, I get the correct binary response. And to clarify, when I say BASESTATIONID, I am referring to the ID of the HomeBase unit.

All of my REST calls use the BASE_STATION_ID followed by the CAMERA_ID as shown in my post in Eufy Camera Integration - #1095 by rpitera

Yes and it happened all the time for me, not just sometimes. MQTT never updated HA for me, even though the same broker was handling other things - like my weather station - which updated wind speed and direction in near real time.

That’s why I ended up moving to REST, which updates all my states and images rather quickly. I posted my setup in Eufy Camera Integration - #1095 by rpitera

1 Like

thats probably 100% correct for 2c’s and doorbells and such that have a homebase. Indoor cams dont

Ahh, now I understand. Thanks for explaining that - I don’t have any indoor cams.

1 Like

Hey @MaxW and @jbrukardt (and community of course :smiling_face_with_three_hearts:), :cowboy_hat_face: :sunglasses:,

could you help me please ? Here is my system (sorry for french :blush:) :

image
image

In the Eufy mqtt bridge : :+1:t2:
image

(Does the entities should appears in the mosquito broker Add-on or it’s the iObroker which does the job please ?
image
)

IO Broker works :+1:t2: :partying_face: (congrates @MaxW for that)

In my sensor.yaml in the sensor file
- platform: rest name: eufy_T8xxxxxxxxxxxxxx_guard_mode resource: "http://192.168.1.2:8087/getPlainValue/eufy-security.0.T8xxxxxxxxxxxxxx.station.guard_mode" scan_interval: 10 value_template: >- {% set v = value | replace('"', "")|int %} {{ {0: "Away", 1: "Home", 2: "Schedule", 3: "Custom1", 4: "Custom2", 5: "Custom3", 47: "Geofence", 63: "Disarmed"}[v] | default("Unknown state:" + (value|urlencode)) }}

In my switch.yaml in the switch file

- platform: template
  switches:
    eufy_T8xxxxxxxxxxxxxx_power:
      friendly_name: "eufy_T8xxxxxxxxxxxxxx_Power"
      icon_template: hass:shield-home-outline
      value_template: "{{ is_state('binary_sensor.eufy_T8xxxxxxxxxxxxxx_power', 'on') }}"
      turn_on:
        service: rest_command.eufy_T8xxxxxxxxxxxxxx_enabled
      turn_off:
        service: rest_command.eufy_T8xxxxxxxxxxxxxx_disabled

In my binary_sensor.yaml in the binary_sensor file

- platform: rest
  name: eufy_T8xxxxxxxxxxxxxx_Stream
  resource: homeassistant/getPlainValue/eufy-security.0.T8xxxxxxxxxxxxxx.cameras.T8xxxxxxxxxxxxxx.livestream
  scan_interval: 10
  value_template: >-
    {% if (value) is not none and (value) != 'error: datapoint "Livestream URL" not found' %}
      {{ value.replace('"', "") }}
    {% else %}
      No Stream
    {% endif %}
- platform: mqtt
  name: eufy_T8xxxxxxxxxxxxxx_motion
  device_class: motion
  state_topic: homeassistant/binary_sensor/eufy/T8xxxxxxxxxxxxxx_motion/state
  json_attributes_topic: homeassistant/binary_sensor/eufy/T8xxxxxxxxxxxxxx__motion/attributes
  payload_on: motion
  payload_off: clear
  off_delay: 5
- platform: mqtt
  name: eufy_T8xxxxxxxxxxxxxx_Crying_detected
  device_class: sound
  state_topic: homeassistant/binary_sensor/eufy/T8xxxxxxxxxxxxxx_crying/state
  json_attributes_topic: homeassistant/binary_sensor/eufy/T8xxxxxxxxxxxxxx__crying/attributes
  payload_on: crying
- platform: mqtt
  name: eufy_T8xxxxxxxxxxxxxx_button_pressed
  device_class: motion
  state_topic: homeassistant/binary_sensor/eufy/T8xxxxxxxxxxxxxx_doorbell/state
  json_attributes_topic: homeassistant/binary_sensor/eufy/T8xxxxxxxxxxxxxx_doorbell/attributes
  payload_on: motion
  payload_off: clear
  off_delay: 5

In my configuration.yaml:
rest_commands:
# Enable/Disable EufyCams
  eufy_T8xxxxxxxxxxxxxx_disabled:
    url: "http://192.168.1.2:8082/eufy-security.0.T8xxxxxxxxxxxxxx.cameras.T8xxxxxxxxxxxxxx.device_enabled?value=false"
  eufy_T8xxxxxxxxxxxxxx_enabled:
    url: "http://192.168.1.2:8087/set/eufy-security.0.T8xxxxxxxxxxxxxx.cameras.T8xxxxxxxxxxxxxx.device_enabled?value=true"

binary_sensor: !include_dir_merge_named binary_sensor/
switch: !include_dir_merge_list switch/
sensor: !include_dir_merge_list sensor/

I obviously replaced in the yaml “T8xxxxxxxxxxxxxx” by the number of a cam I found in IOBroker :wink:

Does I forgot / missed something please ? :pray:t2: :hugs:

Yup thats still an issue, and theres no way with mqtt or iobroker to get an image that works 100% when doorbell is rang…
It sometimes show an image, sometimes nothing, somethings the old one…
its ah it and miss
Pity truly, and here all focus is on camera , not on doorbell
I hope some day eufy will integratie with google api, so hubs auto get the right image.

2 Likes

I have given up - think I’ll put mine up for sale. The cams are fine but the doorbell annoys me. It’s just too slow. The eufy app has the same sort of delay. When I speak to someone through the app the sound only comes out by the time I walked down 2 flights of stairs. Which sort of defies the purpose. This issue is cloud and/or hardware related.

Next hobby project, create my own doorbell with esphome /esp32cam. Integrate RFID and fingerprint scanner to instruct Nuki in case “friendlies” press the doorbell. That should also allow near real time video and pictures.

whats the solution for “smart” cams though… i came from Wyze because at least Eufy’s had proper RSTP and i didnt have to hack that in. Proper POE dumb cameras are obviously best for having full control over the camera, but theres definitely a certain convience to app controlled cameras

What cams and base stations if any do you have? The answer differs depending on setup.

Do you have your proper !include’s in your configuration.yaml to pull in your additional yaml files?

Whats your setup? HASSos? Supervised Home Assistant?

You’ve got a port error in your rest_commands:# Enable/Disable EufyCams section. Its set to 8082 rather than 8087.

Are you using MaxW’s addon for iobroker, or an independent docker install?

1 Like

Hie jbrukardt, :cowboy_hat_face:

What cams and base stations if any do you have? The answer differs depending on setup
→ HomeBase2 + EufyCam 2C Pro + Eufy Doorbell

Do you have your proper !include’s in your configuration.yaml to pull in your additional yaml files?
I think :wink: In me configuration.yaml :smiling_face_with_three_hearts:

binary_sensor: !include_dir_merge_named binary_sensor/
switch: !include_dir_merge_list switch/
sensor: !include_dir_merge_list sensor/

Whats your setup? HASSos? Supervised Home Assistant?
→ HassOS :+1:t2:

You’ve got a port error in your rest_commands:# Enable/Disable EufyCams section. Its set to 8082 rather than 8087.
→ Exact :wink: I applied the modification

Are you using MaxW’s addon for iobroker, or an independent docker install?
–>I use the MaxW’s Addon :sunglasses:

I want you to test your rest command directly on the host. Paste it into a browser, and see what it returns.

I also found an error in your rest commands, you’re missing the /set/ command

  eufy_entryway_disabled:
    url: "http://192.168.1.251:8087/set/eufy-security.0.T8400P2020190xxx.cameras.T8400P2020190xxx.device_enabled?value=false"

Did you have a chance to make it as an HA component?

I have tried it, last event works fine, but stream never works. The above example it is for doorbell I hope you can give us a d example for eufy cam.

No, read the top post for the ways to integrate. There’s no true Eufy integration, just a way to tie into ioBroker.

I tried to open port 8087 on my routeur but it doesn’t work anymore when I paste

http://192.168.1.251:8087/set/eufy...etc 

in the explorer :roll_eyes:

accessing outside your home network is a whooooole other story. Get it working on the local machine first. No router changes needed

I tried this doesn’t work. What I can see in iobroker:
eufy-security.0.stationID.cameras.cameraID.stop_stream.
What did you use in stream sensor?

Double click where?

Tell me what you have done to make it working please?