[Custom component] Bird Buddy smart bird feeder

Hi,

Somebody gave me access to their bird buddy through the native sharing mechanism. Is it possible to collect those postcards too? I thought we discussed this a while back but I couldn’t find it in the thread or on the github page. My concern is because I don’t have a way to connect a ‘camera’ entity to it like I can with my personal BB, I won’t be able to gather the post cards. Is that accurate or is there a way for me to gather a neighbor’s postcards?

This will work. But we don’t have a way to accept the invite from the integration. So you’ll need to accept the invite by logging into your account in the app. Once you do, the integration will pick it up as a new device (might only see it on the next reload). Then you can reapply the same strategy for an automation or use the same blueprint with the new device, and it’ll all work the same way.

Then you can create a new generic camera also, just like you have for your owned feeder. You just can’t do anything that requires an owner account: things like setting it off-grid, or updating the firmware.

Thank you so much, I got this working and now I have 3 (2 are mine and one is shared) bird buddies to look at. I’m going to try to get them on my fridge using google photos.

Just set up my BB integration today! Tried to get the generic camera URL setup but got an error saying “Relative URLs are not allowed” when inputting the URL cited in the comment earlier in the thread. What am I doing wrong here? Thanks in advance!

I’m not sure what you’re entering or what you’re seeing, but it sounds like what you’re describing could happen if the recent_visitor entity_picture attribute is not set. You can test a template value by going to the “Developer Tools” in the side bar and then to the “Template” tab. If you paste the same template in there, do you see a valid URL?

If so, try entering it again in the Generic Camera field (it might have been unavailable when you first tried it, but if you’re seeing a URL now, it might work now).

If it still doesn’t work, you could try entering it in your configuration.yaml instead - since the config flow for generic camera is super naive when it comes to URLs, and it might not know what to do with a template (even though it will work, the config flow entry might not know that it’s valid)

Great work on this bird buddy integration. It looks great!

Sadly, I bought a Soliom BF08 bird feeder camera system. I don’t suppose anyone has integrated home assistant with one of those, yet?

I just recently bought the Bird Buddy and was happy to find an integration available for it.
Two things I noticed, not sure where to look for this.

  1. The temperature sensor has not changed at all since it was first setup. I don’t see where in the Bird Buddy app it shows the temperature to know if the problem is with the hardware or not.

  2. Even though the feeder is full with seed, the sensor shows low on food.

You’re correct to notice those. Both of those sensors are “incubating”, and attributed as such in the UI, hence why they are disabled by default.

The API returns fields for those values, and that’s why I added sensors for them, but in my experience they have never been functional. I’ve left them in (disabled by default) so that I can more easily keep an eye on whether they will eventually enable the fields.

In early communications from the BB company, they did imply that they would add a way to notify you if the seed level runs low, but as far as I have seen, that has never been implemented.

1 Like

Ok thanks very much for the details. Going to disable these two sensors for now.
Excellent work on this integration and appreciate you sharing it with us!

does anyone know if this can be done with the soliom model?

I am having two difficulties implementing this integration.

  1. The sensor entity “signal” does not seem to exist. When I try to add it to an Entity Card, it fails to find it. I found somewhere you said that you “hid” it, but I cannot find how to unhide it.
  2. I am unable to figure out how to display the last visitor. From reading this thread and the threads on the git repo, I gather that I should add and configure a “Generic Camera” integration. If I click here: “Generic Camera - Home Assistant”, I can add the integration to my HA. When I go to configure, I have to specify valid data before it can save. The example you gave does not work. When I enter the string “{{ state_attr(‘sensor.aldrich_feeder_recent_visitor’, ‘entity_picture’) }}”, I receive an error message, “Relative URLs are not allowed”. So I cannot save the config. Since I cannot save it, I cannot edit the YAML directly.
    Here is a screenshot of that result:

I also tried by adding a custom horizon card and putting the YAML in there. But it doesn’t find the “sensor.aldrich_feeder_recent_visitor” entity, either. It seems that it may somehow be hidden as well and I don’t know how to unhide it.
image

So far, I am able to see the status, the battery level, and whether it is charging, but I have been unable to figure out how to add the two things mentioned above.
Can you please assist?

For signal strength, you unhide it from the Device info screen.

There are 2 ways to get there:

  1. View the integration < Link to Integration – My Home Assistant >, and then click the # device(s) link under your login email (and then click the name of your device, if you have more than one, otherwise it should take you right to Device info if you have just one)
  2. View any other entity from the integration (like the 3 working entities in your screenshot above), and then in the overflow in the top-right, and then Device info.
    Screenshot 2024-12-02 at 6.55.20 PM

From the Device info screen, you’ll see all of the active entities, but you’ll also see that some of the sections show “+N entities not shown” - these are the entities that are disabled by default.

Screenshot 2024-12-02 at 7.08.40 PM

Click that to expand it, then click the entity you want to enable. The popup will show This entity is disabled. → now click the gear icon in the top-right, and it’ll again show that it is disabled, and here there’s an “Enable” button, as well as an “Enabled” switch down below - either one works, just enable it and click Update.
Screenshot 2024-12-02 at 6.57.58 PM

It’ll take ~30 seconds for the integration to reload, but once it does, the enabled entities will now appear.

Note that Food level and Temperature are disabled because Bird Buddy’s API still does not provide any values for those. But Signal Strength and Recent Visitor will work once you enable them.

Unfortunately the “picture” attribute of entities doesn’t get rendered automatically in cards like Picture, Picture Elements, Picture Glance, Camera, etc. So that is why it requires that “Generic Camera” workaround. It would be nice if those cards would allow rendering the image URLs directly, in cases where the entity has a picture attribute associated - maybe something to propose for this “month of WTH” :slight_smile:

1 Like

Hello and thanks.

I found out why I couldn’t find the slider to unhide those sensors and I’ll show screenshots for anyone else following along later that may make the same mistake I did. The mistake has nothing to do with this integration, but my unfamiliarity with characteristics of HA UI.

First, I went to HACs and clicked on the Services there to Find Bird Buddy:

I found Bird Buddy in the resultant list:

But then couldn’t find a way to edit the entities in there:

But as madcoder (OP) says above, I need to make sure I’m selecting it a different way.
I need to make sure I’m selecting the Device, not the Integration.

Once I did that, I was able to edit the entity settings under the device.

Unfortunately, I still do not know how to correctly use the Generic Camera workaround. I cannot get a valid value entered into the config when I add the integration.
I did successfully add the Generic Camera integration if I picked a random URL on the public internet with an HTTPS URL. In my case I used, “https://en.wikipedia.org/static/images/mobile/copyright/wikipedia-tagline-en.svg” And it added it, but of course, this wasn’t a picture of my bird from bird buddy.
Then I go to the Integration and Configure it like this:

Now when I put the documented URL in there, I get an error about rendering the template:

I’m almost there, just no pictures of any birds yet. Thanks again for all your help.

Ah, I see some examples in the threads use different style of quotation marks. Depending on which example I copied from Git or Here, I ended up with different quotation marks. The copy paste from the Git thread resulted with incorrect single quotes that generated the above error about rendering the template.
{{ state_attr(‘sensor.aldrich_feeder_recent_visitor’, ‘entity_picture’) }}

When I use the other quotes as is formatted here in these forums:
{{ state_attr(‘sensor.aldrich_feeder_recent_visitor’, ‘entity_picture’) }}
I get the error about relative URLs

Yeah, right now you won’t be able to add it because your recent visitor entity doesn’t have a picture URL yet (it shows “Unknown” and the bird icon). The Generic Camera Config Flow UI requires confirming the image before it can be saved

But next time you get a bird visit, now that the entity is active, it should set the URL, and you should see the picture instead of the bird icon on the recent visitor entity, along with the species instead of Unknown. Then it should work.

You could also add it in your configuration.yaml file using some of the other examples. If still won’t show the picture until you get your next visitor, but it’ll create the generic camera entity at least.

I’ve been hesitant to create an image entity for this, because it would require essentially duplicating what generic camera does - but seeing how difficult it is to get it working like this, I might just do it anyway.

Thanks again for all your specific help.
To recap, for any future visitors, I went into the integration here:

I edit the entities for that integration:

Locate the Recent Visitors entity:

Unhide it:

I wait until after I’ve enabled and unhidden the entity for a new visitor to arrive at the feeder. Fortunately, I get them frequently.

Now that I’ve had a new visitor after I’ve enabled the recent_visitor entity, the “General Camera” integration should be able to successfully find a photo of the recent visitor so I can “confirm” it before hitting submit on the initial config.
However, I’m still getting an error.

Ok, I got it to work. Again, I think it comes down to specific syntax on the single quote type being copied in this thread vs in the Git Repo thread.
{{ state_attr(‘sensor.aldrich_feeder_recent_visitor’, ‘entity_picture’) }}

The Generic Camera integration is now finding the image:

As noted, now I can add something to one of my dashboards that uses the Generic Camera image.
In this case, I’ve just added a “Picture entity” card to my dashboard and configured it to use the image. Make sure to use the dropdowns to make sure it selects the correct entities and names.

I didn’t write the below example, it is copied from a post by the developer [jhansche]
on one of the git repo posts:

show_state: true
show_name: false
camera_view: auto
type: picture-entity
camera_image: camera.ald_com
entity: sensor.aldrich_feeder_recent_visitor
aspect_ratio: 5x6

1 Like

Thanks for the clear description.
I had to use double quotes to make it work.
It wouldn’t work with single quotes.

Now that the Image platforms supports loading images by URL, I’m testing a new image entity, which removes the need for the Generic Camera workaround, and will now be built-in. It’s working, but I’d like to clean it up a bit because now the image entity is duplicating the work that the recent visitor entity is also doing. So I’d like to consolidate that so it can be shared between them. Next release should include the new image entity.

1 Like