In this guide, I’ll show you how to setup a garbage, trash, or recycling reminder in Home Assistant. To do this, we are installing a HACS integration called Garbage Collection. Once this is installed, you’ll be able to receive notifications on garbage day as well as see when the next collection day is schedule in a Lovelace card on your dashboard.
There are several ways to do this, but I’ve found this to be the easiest to setup and most flexible. It doesn’t rely on calendar, so you basically just set the trash pickup days, which device should receive the notifications, and you are good to go. It’s extremely flexible. For example, you can choose to receive weekly, biweekly, or monthly alerts. You can tell it to remind you the day after a national holiday
This guide assumes you already have HACS installed. If not, follow this Youtube video. It can be setup in just a few minutes.
For reference: My trash days are Tuesday and Thursdays. My recycling day is also Thursday.
Let’s get started!
Download Garbage-Collection Integration from HACS
The first thing you’ll need to do is download the “Garbage Collection” custom component via the Home Assistant Community Store (HACS). This is a custom component that loads all the necessary files.
Click the HACS sidebar icon > Integrations. In the bottom right corner, choose Explore & Add Repositories. Then, simply search for Garbage Collection.
Click Install This Repository in HACS in the bottom right corner. Click Install on the next popup window.
Normally, you’d need to reboot Home Assistant for the integration to show up and start working. But, before we reboot, I’m going to have you install the Garbage Collection Lovelace card while you are already in HACS.
Install “Garbage Collection Card” in Home Assistant via HACS
Click the Hacs sidebar > Frontend. Then click Explore & Add Repositories in the bottom right corner just like before.
Search for “garbage”. Click it to download and install.
Reboot Home Assistant
Now that both items are downloaded, reboot Home Assistant from Configuration > Server Controls > Check Configuration > Restart.
Configure Garbage Collection Schedule
To set up the schedule and reminder, we first need to install the integration. Whenever we downloaded the custom components from HACS, we basically added all the files necessary to complete the setup, but now we need to actually install it.
Configuration > Integrations > Add Integration > search for Garbage Collection.
A new window will pop up. These options are unique for everyone depending on your trash company, but I’ll show you a screenshot of how I set mine up.
Give it a name. This is optional, but I did check the box for “Verbose State” because it looks a little cleaner to me.
Verbose Option checked:
Verbose Option unchecked:
Other than that, everything else can be left default. Click Submit once complete.
In the next popup window, setup the days of the week and click Submit.
Next, a 3rd window will pop up. Set the First and Last collection month (defaults to January and December). Set your country so that the integration knows which date national holidays fall on, and then add 1 day (if your trash guys come the day after a holiday). Make sure to check the box for “Move to next day if holiday in week”.
This will prevent your card from showing you Home Assistant garage collection reminders on Christmas Day even if they won’t come until the next day. This is optional, but feel free to configure this based on your needs.
Then, just assign it to an area if you’d like. I’m just going to assign to my garage even those my trash bins are located on the side of my house.
IMPORTANT: If you are setting up two different services (for example Trash and Recycling), you can’t do both at the same time. You will have to install the integration again from Configuration > Integrations > search for Garbage.
When you view them under Configuration > Integrations, you should see both like this:
Add Recycling Schedule
Like I said in the red box above, if you’d also like to configure a recycling service as well, then you’ll do that by following the same steps above. Just give it a different name like “Recycling” instead of “Garbage” and set the schedule.
Configuration > Integrations > search for Garbage.
Add Trash & Recycling Card to a Lovelace Dashboard
Basic Collection Card
The most basic card you can add for this is an Entities card. Just add a new card > Entities and search for the sensors.
Entity should be the name of the sensor you defined. To look them up, go to Configuration > Entities > search for “garbage”.
Here’s what the basic card looks like:
Advanced Collection Card
If you’d like to display a more advanced card with icons for both services, then would click Add Card > Manual.
The advanced card would look like this:
Then, paste in this YAML:
cards:
- entity: sensor.garbage
icon_color: brown
icon_size: 35px
type: custom:garbage-collection-card
- entity: sensor.recycle
icon_color: green
icon_size: 35px
type: custom:garbage-collection-card
type: vertical-stack
Change Collection Icons
If you didn’t change the icons when you originally configured the integration, you can do that from within the card as well. I’m going to change the icons for my recycling service to mdi:recycle
. You are welcome to search for anything specific from the MaterialDesignIcons.com website.
Just go back to Configuration > Integrations > click either Garbage or Recycle > Configure.
HA Collection Card Usage
I’ve pulled this info directly from the Garage Collection Card github page. I recommend checking it out after setting everything up just to see if there’s an additional parameters you’d like to setup.
When the collection date is today or tomorrow, you can click on the card to acknowledge that the trash or recycling has been taken out. It will then be hidden until the day AFTER the due day has passed. Or, if you specified the hide_before, it will hide the card until X days before the next due day.
Home Assistant Garbage Collection Notification Reminders & Automation
In addition to see these directly in Lovelace, you want to receive a push notification to your phone reminding you to “Take out the trash!” You could easily build this yourself using the HA “Automations” tab, but an easier way would be to use a Community-created Blueprint.
Garage Reminder Blueprint (not working currently)
NOTE: I found this blueprint but it seems to only be semi-working as of 8/23/21. It will send the reminder when you manually run it, but won’t show you which sensor in the push notification message. I’ll update this section if/when I get it working after I get a response from the Blueprint creator.
In the meantime, you can use the Automation below.
Garage Reminder Automation
I referenced Tom_I’s solution and changed it up a bit.
My trash days are on Monday and Thursday, and recycling is only on Thursday. This makes creating an automation that displays the correct message a little difficult.
Basically, you add a bit of code to your config file. Then, you add a few binary sensors for trash_today, trash_tomorrow, recycle_today, recycle_tomorrow
. Then, you reference those new sensors in your automation.
The code below definitely works and triggers on Monday (as noted in the configuration.yaml collection_days
), but I think I would need to create 2 new sensors for Thursday since you can’t do “mon,thu”.
I still have to test this out a bit more for my unique scenario but here’s what I have.
Configuration.yaml
File Editor > Configuration.yaml.
Paste this in. Change up the collection days and frequency if needed.
garbage_collection:
sensors:
- name: "Garbage" # Each week on Monday and Thursday
frequency: "weekly"
collection_days: "mon"
- name: "Recycling" # Each week on Thursday
frequency: "weekly"
collection_days: "mon"
Add new Binary Sensors
If you already have a sensors:
section defined in your configuration.yaml, then add this code exactly as if below. If you don’t, just add a sensors:
as a new line to top of the below code.
- platform: template
sensors:
recycling_today:
entity_id: sensor.recycling
friendly_name: "Recycling Today"
value_template: "{{ is_state('sensor.recycling', '0') }}"
- platform: template
sensors:
recycling_tomorrow:
entity_id: sensor.recycling
friendly_name: "Recycling Tomorrow"
value_template: "{{ is_state('sensor.recycling', '1') }}"
- platform: template
sensors:
garbage_today:
entity_id: sensor.trash
friendly_name: "Garbage Today"
value_template: "{{ is_state('sensor.trash', '0') }}"
- platform: template
sensors:
garbage_tomorrow:
entity_id: sensor.trash
friendly_name: "Garbage Tomorrow"
value_template: "{{ is_state('sensor.trash', '1') }}"
Then reboot Home Assistant from Configuration > Server Controls > Restart. Make sure to check your config for errors first.
Create Garbage Reminder Automation
Create a new automation under Configuration > Automations. Switch to the YAML editor and paste this in:
alias: Garbage Reminder Test
description: ''
trigger:
- platform: time
at: '18:00:00'
condition:
- condition: time
weekday:
- sun
after: '18:00:00'
before: '18:00:00'
action:
- service: notify.mobile_app_pixel_5_danny
data_template:
title: Garbage & Recycling Reminder
message: |
{% if is_state('binary_sensor.recycling_tomorrow', 'on') %}
Reminder to take out the trash AND recycling.
{% else %}
Reminder to take out the trash.
{% endif %}
mode: single
initial_state: true
Wrapping Up
If you have a better solution for being reminded the day before trash needs to go out, let me know in the comments below so I can update my guide.
My Favorite Home Assistant Devices
Below are some of the Home Assistant-compatible devices I personally use in my home. I highly recommend each of them.
- Zwave/Zigbee hub: Nortek GoControl HUSBZB-1
- Smart Plugs: Sonoff S31 Lite Zigbee
- Motion Sensors: Hue Indoor Motion
- Outdoor Camera: Amcrest IP5M Turret
- Robot Vacuum: Roborock S7
The full list of all Home Assistant compatible & recommended devices I use can be found on my Equipment List page.
Thanks for the article. Small typo:
rigger:
– platform: time
at: “18:00:00′ —> should be at: ’18:00:00′
you have an accidental ” instead of ‘
Thanks for catching that, fixed the typo! I’m glad you found my guide useful!
Great writeup! Looking forward to trying this out in my Home Assistant setup 🙂
Thanks! Hopefully it works well for you when you go to set it up.
Just set this up. Only snag so far is accounting for the jubilee Bank Holidays. Our recycling collection is every Wednesday, so it was collected last Wednesday as normal. However due to the 2 jubilee Bank Holidays on Thursday and Friday last week, this coming Wednesdays collection is pushed back a day to Thursday instead.
I’ve looked through the available blueprints for handling Bank Holidays but they all seem to cater for Holidays that fall either before or on the day of collection on a given week. Any ideas how to push thr collection date back a day?
Hi There,
This is great and helped me set up this on my dashboard.
I am having issues with creating automation section however.
I have added the following sections to my Confinuration.yaml (renaming the sensors to match the names of my entities)
garbage_collection (copied and pasted directly, not sure if the formatting of this will change here!)
sensors:
– name: “Black and Brown Bin Collection” # Every 2nd week on Friday
frequency: “even-weeks”
collection_days: “fri”
– name: “Green Bin Collection” # Every 2nd week on Friday
frequency: “odd-weeks”
collection_days: “fri”
sensors:
– platform: template
sensors:
recycling_today:
entity_id: sensor.green_bin_collection
friendly_name: “Green Bin Today”
value_template: “{{ is_state(‘sensor.green_bin_collection’, ‘0’) }}”
– platform: template
sensors:
recycling_tomorrow:
entity_id: sensor.green_bin_collection
friendly_name: “Green Bin Tomorrow”
value_template: “{{ is_state(‘sensor.green_bin_collection’, ‘1’) }}”
– platform: template
sensors:
garbage_today:
entity_id: sensor.black_and_brown_bin_collection
friendly_name: “Black and Brown Bin Today”
value_template: “{{ is_state(‘sensor.black_and_brown_bin_collection’, ‘0’) }}”
– platform: template
sensors:
garbage_tomorrow:
entity_id: sensor.black_and_brown_bin_collection
friendly_name: “Black and Brown Bin Tomorrow”
value_template: “{{ is_state(‘sensor.black_and_brown_bin_collection’, ‘1’) }}”
There are no validation errors at this stage and i can save this file without problems.
This is the problem part, when i go to restart Home Assistant i get the following error:
The system cannot restart because the configuration is not valid: Integration error: sensors – Integration ‘sensors’ not found.
I really am stumped and i’d like to think i have the spellings, code and indentation correct all!
I think i’m missing something small but not sure what!
If i can get past this then i can look at creating the actual automation reminder!
Any suggestions?
Thanks in advance!
DJ
You can only have 1 sensors: block. So Keep just 1, and.move all custom sensors under that one.