Eufy Camera Integration

Superb howto !
So now i see all my devices…
Howdo i get it all to HA ?

I need to follow the rest of the howto from FuzzyMistborn?
Also install the rest api and the web server?

I’m not sure cause somewhere in the explanation he speaks about “this step is optional if you want to continue using the current HASS integration.”

Or is it possible to have the objects now right into HA?

@fuzzymistborn
Could you also answer my questions in my previous post here?

Not sure if i need the webserver and the rest api…
Or is there a way to get those objects right away in HA as devices?

I tried the webserver but i have to fill in much there, this isnt explained in your howto either.
What do i fill in there, if i need the webserver…

Yes you need to add the rest api part in order to get things into HASS. The webserver is optional as I said in the blog post if you would rather pull the image from ioBroker and no longer use the HASS integration directly. But the rest API is required.

You install the webserver the same way you installed the rest api integration in ioBroker.

Wow so much appreciated @fuzzymistborn!! Took me a matter of minutes following your guide and I was all set. Do you have any written example on how to change the state from HASS? I would assume you simply need to access the same API on the ioBroker and change it?

And big thanks to your work @bropat! I reakky thought I messed up when I aquired the Eufy cams and found out there was no way of controling state from HASS.

I don’t, I use NodeRed for my automations. But basically what you need to do is use the rest_command integration (RESTful Command - Home Assistant) to send the call you want.

ok but what about the settings page of the webserver?
I need to fill that in?

Is there a way to get all the info from the iobroker object into hass?
I see different stuff i could use

  • like battery
  • ringing
  • motion detected
  • person detected
  • livestream
    etc etc

I also added camera:

  • platform: generic
    name: Eufy Doorbell
    still_image_url: http://IOBROKER_SERVER_IP:8082/eufy-security.0/CAMERA_SERIAL_NUMBER.jpg

and changed url and serial but the camera isnt showing my picture

Some inspiration is available here:

I changed nothing with regards to the webserver settings. May be different in HASS OS idk.

Yes you can get it all via the rest API. Just need to make sensors.

My suggestion on the camera is try the URL and make sure that is working.

So nothing in config at webserver and nothing in config at the rest api

Strange.
I did make a sensor, and then copied the url and pasted it after the adres… it doesnt show anyhthing, also the entity doenst have a picture either, will from the integration it does

The two with pics are from the eufy integration (those have working link)
the two with last event are from the mqtt bridge (hit and miss)
and then the camera.eufy_deurbel is the one from iotbroker

So what can i do to make it work for the pic?
I tried to paste the url right from iotbroker but it results in Cannot GET /eufy-security.0/T8210P00202830FE.jpg

Edit: when i’m in iobroker and i go to instances -> then i try to open the adapter page of the webserver or the rest api, both say they are unreachable

Anyone running this IOT broker inside HASS OS?
Is the webserver and api rest reachable?
Think that might be my problem

@fuzzymistborn

Great guide on integrating Eufy via ioBroker.

By the way, not sure if you’ve come across this already, but if you want to strip the quotes from the livestream URL, just add .replace('"', ""):

  - platform: rest
    name: Eufy Doorbell Stream
    resource: "http://IOBROKER_SERVER_IP:8087/getPlainValue/eufy-security.0.CAMERA_SERIAL_NUMBER.cameras.CAMERA_SERIAL_NUMBER.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 %}

I also found that using:

  • http://IOBROKER_SERVER_IP:8087/toggle/eufy-security.0.CAMERA_SERIAL_NUMBER.cameras.CAMERA_SERIAL_NUMBER.start_stream

Will enable the livestream RTMP URL. Similarly “stop_stream” will turn it off (if you want to save battery). Not sure if there’s an automated way to start the stream before grabbing the URL. It might have to be a similar solution like with the current ha-eufy-security integration using scripts to “start” the camera…

2 Likes

Nobody? Damn then iotbroker is useless for me

Thanks for this. Tried various options at getting the stream/camera working and no luck. I can get a camera with the still image working but nothing with the stream.

I tried it and it “works” but the HassOS implementation has a lot of overhead. Brings HA to its knees.

Got it working for me.

Using the rest sensor to grab the livestream URL:

  - platform: rest
    name: Eufy Stream
    resource: "http://IOBROKER_SERVER_IP:8087/getPlainValue/eufy-security.0.CAMERA_SERIAL_NUMBER.cameras.CAMERA_SERIAL_NUMBER.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 %}

Added stream_source to the generic camera config:

stream_source: "{{ states('sensor.eufy_stream') }}"

Rest command to start stream (and a separate one for stop if needed):

rest_command:
  eufy_start_stream:
    url: "http://IOBROKER:8087/toggle/eufy-security.0.CAMERA_ID.cameras.CAMERA_ID.start_stream"

I used a picture-glance card with double_tap_action to start stream:

double_tap_action:
  action: call-service
  service: rest_command.eufy_start_stream

So before clicking on the picture glance card, I would double click to start the stream (which prompted an rtmp link to appear on iobroker). Then clicking on the picture glance card opens the camera stream up. I also added a hold action to stop the stream manually.

Note though, I’m testing with eufycam 1 and homebase 1. Not sure if there’s differences with the doorbell.

2 Likes

Hmmm, I still only get the still image.

camera:
  - platform: generic
    still_image_url: http://XXXXXXX:8082/eufy-security.0/XXXXXXXX.jpg
    stream_source: "{{ states('sensor.eufy_doorbell_stream') }}"

Odd indeed. That looks right to me. As a sanity check, when you start the stream, sensor.eufy_doorbell_stream returns an rtmp:// url right?

I get the still image by default through the dashboard and can only view the stream through doubling tapping and then tapping the image. Viewing the stream directly in the dashboard may require some fiddling with the stream integration: https://www.home-assistant.io/integrations/stream and then setting camera_view to live in the card, but for my use case this wasn’t necessary for me.

My picture glance card looks like this:

  - camera_image: camera.eufy
    entities:
      - entity: camera.eufy
      - entity: light.room_1
    title: Camera
    type: picture-glance
    double_tap_action:
      action: call-service
      service: rest_command.eufy_start_stream
    hold_action:
      action: call-service
      service: rest_command.eufy_stop_stream

Ahhhh stream:. Bingo. I’m working on my dev HASS instance so didn’t have that in my config. Adding that got it to work, many thanks!

Updated my blog post to include @dezmui’s useful information!

2 Likes

Can you tell me how?
With me , its not getting it to its knees…

When inside the iotbroker addon, is your webinstance and rest api reachable?
What are your settings of those 2?

Do you get an image from your doorbell? Willing to help me cause i dont get an image

Doorbell ringing still not working for you? (i do see it change inside the ibroker objects, when i press it)

Damn i wish someone could help me with the hass os setup and the image inside the url

@fuzzymistborn: just to test, when you’re inside iobroker, can you go to the web server adapter page, and the one from restful api? or do you also get errors when trying to reach it?