Smarter garbage reminders with Frigate and Home Assistant

Use separate local Frigate classifiers to see which garbage and recycling bins still need moving, then narrow and stop the existing Home Assistant reminders.

Watch on YouTube ↗Get the code ↗Explore the gear →

Our garbage reminders already knew the schedule. What they needed was a way to see that we’d finished the job. I wanted the house to stop asking us to take a can out when it was already at the curb, and to stop asking us to bring it in once it was back in the garage.

Garbage in, garbage out: local camera verification for Home Assistant bin reminders

This builds on our local Frigate package detection. The camera watches a familiar spot, a small model classifies what it sees, and Home Assistant uses that result in an automation we already have.

Watch the spots where the bins belong

We keep the garbage pail and recycling containers in the same places. That gives each model a useful question: is this storage spot occupied? I trained one model for garbage and another for recycling, so the recycling can stay inside on a garbage-only night.

Each model has three labels: stored, absent, and obstructed. Our household rule is that a bin missing from its usual garage spot is assumed to be at the curb. The camera is checking the garage storage area; the schedule supplies the pickup context.

I had Codex work through our own recordings to collect examples: the pail leaving, the containers coming back, empty storage spots, people walking through, and different lighting. The driveway footage helped find those movements. The models use tight crops from the inside-garage camera, where the bins normally live.

Recycling lids left on the floor are a useful example of why the labels need review. The lids can still be there after the containers leave. A container full of cardboard or turned at an angle still belongs in the stored class. Those are the pictures worth adding, along with day and night views.

Frigate handles the local model training and classification. I use a 0.9 acceptance threshold, motion checks, a fifteen-second interval, and its three-observation verification before publishing a changed state. The threshold is a setting for accepting a prediction, rather than an accuracy score for the finished model. The Frigate state-classification guide covers the crop and training controls.

Turn the result into a state Home Assistant can use

The Frigate integration exposes a sensor for each classifier. I map those labels into separate garbage-at-curb and recycling-at-curb binary sensors. Here is the garbage adapter; the recycling adapter follows the same pattern with its own source sensor.

template:
  - binary_sensor:
      - name: "Garage Garbage At Curb"
        unique_id: garage_garbage_at_curb
        availability: >-
          {{ states('camera.garagecam') in ['recording', 'streaming', 'idle']
             and states('sensor.garagecam_garage_garbage_storage_classification')
                 in ['stored', 'absent'] }}
        state: >-
          {{ is_state('sensor.garagecam_garage_garbage_storage_classification', 'absent') }}

A stored bin makes that sensor off; an absent bin makes it on. An obstruction or unavailable source leaves completion unverified, so the reminder can still name that bin. Frigate can retain its last verified label through individual low-confidence frames, which makes new lighting and obstruction examples useful when reviewing the model.

The existing combined cans-out helper remains available for the kiosks and other consumers. It represents the bins required on the current take-out day. Keeping the individual states lets the message get shorter as each part of the job is done.

Keep the schedule in the reminder

For our house, Sunday is garbage out and Wednesday is garbage plus recycling out. Bring-in checks begin with Monday or Thursday morning garage openings. Return reminders run from 8 AM to 9 PM and continue on the following days until the next take-out day. That is our household pickup window; the camera does not have to identify a collection truck.

The shared message macro selects the phase and names only the bins still needing attention. If both need to come back, it says: “Please make sure the garbage pail and recycling containers are back in their usual spots in the garage.” Once the pail is stored, the message asks only for the recycling containers. With both stored, it returns an empty message and the reminders stop.

Ask when someone opens the garage

The reminder starts from the garage-door opening we already used. Waiting twenty seconds gives the door state time to settle and puts the reminder at a moment when someone is likely to be nearby.

trigger:
  - platform: state
    entity_id: group.garage_doors
    from: 'closed'
    to: 'open'
    for: "00:00:20"
    id: garage_open

Frigate keeps the visual state current locally. The garage opening starts the household announcement. Before each existing repeat at thirty, ninety, and one hundred eighty seconds, Home Assistant asks the shared macro for the current message again. A bin that has moved drops out of the next message. The existing thirty-minute and two-hour phone snoozes still apply.

The YAML above shows the bin-state adapter and garage trigger. The source files this extends are the Frigate classification package and the garage reminder automation. The camera-automation discussion tracks the bin work and the remaining household checks. This fits alongside the other garage automations already running at the house.

Try it with a reminder you already use

Start with a task that has a clear, repeatable visual result. Give Codex the existing automation and authorized camera recordings, then ask it to inspect the helpers and their consumers before changing the reminder. Keep the camera crops and training examples specific to your house.

Inspect my existing garbage and recycling reminders and Frigate garage camera. Help me collect a small, varied set of authorized frames showing each bin stored, absent, and obstructed. Train separate local classifiers for the regular storage spots. Use the verified states to narrow and stop the existing take-out and bring-in messages, preserving the schedule, garage-opening trigger, snoozes, and other announcements. Keep uncertain or unavailable views distinct from completion, and check later household recordings separately from the training examples.

Watch the bins leave and come back

The video shows the real bin footage, local models, helpers, YAML, and the messages changing as the job gets done. Garbage in, garbage out. Give the reminder a way to see when you are finished.

Advertisement

Keep building

The next useful idea, in your inbox.

Get new vCloudInfo posts by email.

Get new posts