Wie habt ihr einen "Müllkalender" mit Benachrichtung bei Euch implementiert?

Mich würde mal interessieren wie ihr das so gemacht habt um zu lernen. Bislang machen wir das noch klassisch auf dem Wandkalender und es wir immer mal wieder vergessen, trotz Markierung, was dann oft unangenehm ist. Muss dazu sagen das wir als EFH pro Leerung zahlen, es also schon etwas aus macht. Aber wenn Tonne voll, dann Problem :slight_smile:

Installiert hatte ich mir mal das “Waste Collection Schedule”, mir fehlt aber noch die Phantasie wie ich das sinnvoll integriere… Ein Wandpanel für HA haben wir noch nicht.

Du musst natürlich Waste Collection Schedule zuerst einrichten, danach kannst Du die Sensoren einfach in eine Dashboard-Karte packen. Bei mir sieht das so aus:

type: custom:auto-entities
card:
  type: entities
  title: Müllabfuhr – Nächste Termine
filter:
  include:
    - entity_id: sensor.tage_bis_bioabfall
      options:
        name: ♻️ Bioabfall
    - entity_id: sensor.tage_bis_restmull
      options:
        name: 🗑️ Restmüll
    - entity_id: sensor.tage_bis_gelbe_tonne
      options:
        name: 🟡 Gelbe Tonne
    - entity_id: sensor.tage_bis_papier
      options:
        name: 📦 Papier
sort:
  method: state
  numeric: true

Dazu habe ich natürlich eine Automation eingerichtet, die mich einen Tag vorher daran erinnert, die entsprechende Tonne rauszustellen:

alias: Erinnerung Müllabfuhr
description: ""
triggers:
  - at: "14:00:00"
    trigger: time
conditions:
  - condition: or
    conditions:
      - condition: state
        entity_id: sensor.tage_bis_bioabfall
        state: "1"
      - condition: state
        entity_id: sensor.tage_bis_restmull
        state: "1"
      - condition: state
        entity_id: sensor.tage_bis_gelbe_tonne
        state: "1"
      - condition: state
        entity_id: sensor.tage_bis_papier
        state: "1"
actions:
  - variables:
      abfallarten: |
        {% set list = [] %} {% if states('sensor.tage_bis_bioabfall') == '1' %}
          {% set list = list + ['♻️ Bioabfall'] %}
        {% endif %} {% if states('sensor.tage_bis_restmull') == '1' %}
          {% set list = list + ['🗑️ Restmüll'] %}
        {% endif %} {% if states('sensor.tage_bis_gelbe_tonne') == '1' %}
          {% set list = list + ['🟡 Gelbe Tonne'] %}
        {% endif %} {% if states('sensor.tage_bis_papier') == '1' %}
          {% set list = list + ['📦 Papier'] %}
        {% endif %} {{ list | join(', ') }}
  - action: notify.persistent_notification
    data:
      message: Morgen wird {{ abfallarten }} abgeholt.
      title: ♻️ Müllabfuhr morgen
  - action: notify.email_versenden
    metadata: {}
    data:
      message: Morgen wird {{ abfallarten }} abgeholt.
      title: "{{ abfallarten }} morgen"
mode: single

3 „Gefällt mir“

“Waste Collection Schedule” installieren und einrichten

Also ggf. erst das “HACS” Repostory hinzufügen und dort dann die “Waste Collection Schedule” Integration hinzufügen:

Danach unter “Settings” => “Devices & services” => “Integrations” => “+ Add integration” => “Waste Collection Schedule” hinzufügen:

Danach das Land und den Landkreis/Entsorger auswählen und die Straße, etc. erfassen.

Hier war ich mir unsicher (habe es jetzt mal alles angehakt):

Dann die Abfuhrarten festlegen:

Dann die Sensoren dafür einrichten:

und zuletzt noch das Device:

Card für HA bauen

… Deine Anleitung.

Die “custom:auto-entities” ist eine HACS Card. Hierzu:HACS → Frontend → „auto-entities" suchen → Herunterladen → HA neu starten

Alternativ “TrashCard” aus HACS verwenden.

2 „Gefällt mir“

Ich muss vorab sagen, daß ich Dashboards für absolut ungeeignet halte, ein Smarthome regulär zu bedienen, weder auf dem Handy noch auf dem PC und diese deshalb nur benutze, um weitergehende Einstellungen zu machen oder meine Sensoren und Automationen zu überwachen.

Zwar zeige ich meine Müllleerungen auch auf einem Dashboard an, das aber nur, zu Wartungszwecken.

Für die reguläre Anzeige der nächsten Müllleerung habe ich ein Wallpanel gebaut, das mit nur mit farbigen LEDs wichtige Zustände anzeigt. Mit ESPHome, einem ESP32 und einer Handvoll WS2812 LEDs funktioniert das wunderbar.
Das Gehäuse für dieses Wallpanel habe ich mit dem 3D-Drucker, etwas Makrolon und einem bedruckten Papier gebaut.
Bilder habe ich davon im Moment leider nicht.

Aktuell dazu kommt noch ein OpenHasp-Display, welches in die Küche kommt, auf dem ich ebenfalls angezeigt bekomme, wann ich das nächste mal den Müll vergessen werde rauszustellen. :wink:
Das sieht dann so aus:

Heute bzw. morgen wird kein Müll abgeholt, deshalb ist die Tonne blau angezeigt. Wenn am nächsten Tag Müll abgeholt wird, nimmt die Tonne im Bild die Farbe der zu vergessenden Tonne an und am Tag der Abholung bekommt das Symbol noch einen roten Rand.

1 „Gefällt mir“

Ich habe eine Meldungsstation (lackierte Joghurtdose) mit Bewegungsmelder, Lautsprecher und weiteren Sensoren auf dem Küchenschrank stehen, an der ein LED‑Streifen mit 60 adressierbaren LEDs angeschlossen ist.

Wenn am nächsten Tag eine Müllsorte abgeholt wird, leuchtet ab 19:30 jede vierte LED in der für die Müllsorte entsprechenden Farbe (gelb für den Gelben Sack; grün für Biomüll; blau für die Papiertonne; rot für Restmüll) bis 10:00 Uhr am nächsten Tag. Zusätzlich wird, sobald der Bewegungsmelder eine Bewegung in der Küche registriert, eine entsprechende Meldung über den Lautsprecher ausgegeben, z. B. „Morgen früh gelben Sack nicht vergessen.“ Jede Meldung wird maximal dreimal wiederholt, mit einem Zeitabstand von mindestens 30 Minuten. Wenn also eine Bewegung erkannt wird und bereits 30 Minuten seit der letzten Meldung verstrichen sind, wird die Lautsprecherdurchsage wiederholt, bis die Meldung maximal dreimal ausgegeben wurde. Ab Mitternacht ändert sich die Durchsage z. B. in „Gelben Sack rausstellen!“ (auch diese Durchsage wird maximal dreimal wiederholt). Ich füttere oft die Katze um 3:00 Uhr und lasse sie raus; dann erinnert mich die Meldung noch einmal daran, dass der Müll rausgestellt werden muss, falls das noch nicht geschehen ist…

Die Signalisierung der Müllabholung habe ich mit einem LED-Streifen unter dem Schuhschrank, der im Flur neben der Tür steht, realisiert. Dieser leuchtet am Vorabend und am Morgen der Leerung. Es steht nicht noch etwas herum, sondern ist außer im Betrieb unsichtbar.

Mir persönlich würde bei Lösungen mit LEDs usw. die Information fehlen, wie viele Tage es noch bis zur nächsten Leerung der entsprechenden Tonne dauert. Wenn ich sehe, dass z.B. die Papiertonne sowieso in zwei oder drei Tagen geleert wird, quetsche ich auch mal noch einen Großkarton rein, den ich sonst eher zur öffentlichen Sammelstelle bringen würde, oder ich mache mir nicht mehr die Mühe, alle Kartons auseinanderzunehmen und flach einzulegen. Aber so hat halt jeder seine eigenen Bedürfnisse.

Irgendwie hat mich das heute getriggert etwas zu basteln… Ich wollte die HACS Karte Trash Card loswerden, da man hier nicht (zumindest weiß ich nicht wie mans vernünftig machen könnte) in das Styling eingreifen kann. Daher mache ich das nun so:

Ich habe einen HA Kalender. In diesen lese ich die Termine eines Google Kalender automatisch ein. In diesem Kalender stehen alle Mülltermine.

In der configuration.yaml lese ich die Termine per trigger based Sensor ein:

template:
  - triggers:
      - trigger: time_pattern
        hours: "/1"
      - trigger: homeassistant
        event: start
    actions:
      - action: calendar.get_events
        target:
          entity_id: calendar.mullkalender
        data:
          duration:
            days: 30
        response_variable: abfuhr
      - variables:
          rest: >
            {{ abfuhr['calendar.mullkalender'].events | selectattr('summary', 'eq', 'Restmüll') | list }}
          papier: >
            {{ abfuhr['calendar.mullkalender'].events | selectattr('summary', 'eq', 'Papiermüll') | list }}
          bio: >
            {{ abfuhr['calendar.mullkalender'].events | selectattr('summary', 'eq', 'Bio-Müll') | list }}
          wertstoff: >
            {{ abfuhr['calendar.mullkalender'].events | selectattr('summary', 'eq', 'Wertstoffmüll') | list }}
    sensor:
      # RESTMÜLL
      - name: "Abfuhr Restmüll"
        unique_id: abfuhr_restmuell
        icon: mdi:trash-can-outline
        state: >
          {% if rest | length > 0 %}
            {{ ((as_timestamp(rest[0].start) - as_timestamp(today_at())) / 86400) | int }}
          {% else %}
            999
          {% endif %}
        attributes:
          datum: >
            {% if rest | length > 0 %}
              {{ as_timestamp(rest[0].start) | timestamp_custom('%d.%m.%Y', true) }}
            {% else %}
              --
            {% endif %}

      # PAPIERMÜLL
      - name: "Abfuhr Papiermüll"
        unique_id: abfuhr_papiermuell
        icon: mdi:newspaper
        state: >
          {% if papier | length > 0 %}
            {{ ((as_timestamp(papier[0].start) - as_timestamp(today_at())) / 86400) | int }}
          {% else %}
            999
          {% endif %}
        attributes:
          datum: >
            {% if papier | length > 0 %}
              {{ as_timestamp(papier[0].start) | timestamp_custom('%d.%m.%Y', true) }}
            {% else %}
              --
            {% endif %}

      # BIO-MÜLL
      - name: "Abfuhr Bio-Müll"
        unique_id: abfuhr_biomuell
        icon: mdi:flower
        state: >
          {% if bio | length > 0 %}
            {{ ((as_timestamp(bio[0].start) - as_timestamp(today_at())) / 86400) | int }}
          {% else %}
            999
          {% endif %}
        attributes:
          datum: >
            {% if bio | length > 0 %}
              {{ as_timestamp(bio[0].start) | timestamp_custom('%d.%m.%Y', true) }}
            {% else %}
              --
            {% endif %}

      # WERTSTOFFMÜLL
      - name: "Abfuhr Wertstoffmüll"
        unique_id: abfuhr_wertstoffmuell
        icon: mdi:recycle-variant
        state: >
          {% if wertstoff | length > 0 %}
            {{ ((as_timestamp(wertstoff[0].start) - as_timestamp(today_at())) / 86400) | int }}
          {% else %}
            999
          {% endif %}
        attributes:
          datum: >
            {% if wertstoff | length > 0 %}
              {{ as_timestamp(wertstoff[0].start) | timestamp_custom('%d.%m.%Y', true) }}
            {% else %}
              --
            {% endif %}

So binde ich dann die Termine ein als Beispiel Bio-Müll (die custom button card wird benötigt):

type: custom:button-card
entity: sensor.abfuhr_bio_mull
show_name: true
show_icon: true
show_label: true
show_state: false
name: Bio-Müll
label: |
  [[[ 
    if (entity.state == '0') return 'Heute';
    if (entity.state == '1') return 'Morgen';
    
    var datum = states['sensor.abfuhr_bio_mull'].attributes.datum;
    // return 'In ' + entity.state + ' Tagen<br />' + datum;
    return 'In ' + entity.state + ' Tagen';
  ]]]
styles:
  card:
    - background-color: "#4ab14f"
    - border-radius: 12px
    - padding: 8px
    - height: 100px
  grid:
    - grid-template-areas: "\"i\" \"n\" \"l\""
    - grid-template-columns: 1fr
    - grid-template-rows: 1fr auto auto
  icon:
    - width: 35px
    - color: "#fff"
  name:
    - color: "#0a2f0c"
    - font-size: 15px
    - font-weight: 400
    - margin-top: 8px
  label:
    - color: "#0a2f0c"
    - font-size: 12px
    - font-weight: 300
    - margin-top: 4px
  img_cell:
    - width: 50px
    - height: 50px
    - justify-content: center
    - border-radius: 14px
    - background-color: rgba(255, 255, 255, 0.2)


Ich lasse derzeit die Tage bis zur Leerung anzeigen… man kann aber auch das Datum der Leerung anzeigen lassen (siehe auskommentierte Zeile). Am Vortag lasse ich “Morgen” ausgeben. Am Abholtag lasse ich “Heute” ausgeben. Mit einer Condition prüfe ich ob es unter 15 Tage sind (ansonsten würden (für mich) zuviele Karten angezeigt. Ich möchte das max 3 angezeigt werden.)

Die 4 Button Cards liegen in einem horizontal Stack (Restmüll wird derzeit nicht angezeigt, da noch zu lange hin):

Mit dieser Automation schicke ich Abends um 19 Uhr eine Mail zur Erinnerung das die jeweilige Tonne raus muss und morgens um 6:30 Uhr nochmal:

alias: Mülltonne rausstellen
description: |-
  - Benachrichtigung um 19:00 Uhr am Abend vorher per Mail
  - Benachrichtigung am Morgen des Termins um 6:30 Uhr per Mail
triggers:
  - trigger: calendar
    entity_id: calendar.mullkalender
    event: start
    id: abends
    offset: "-5:0:0"
  - trigger: calendar
    entity_id: calendar.mullkalender
    event: start
    offset: "6:30:0"
    id: morgens
conditions: []
actions:
  - if:
      - condition: trigger
        id:
          - morgens
          - abends
    then:
      - action: notify.mailing
        data:
          message: >
            Bitte {% if trigger.id == 'abends' %}morgen{% else %}jetzt gleich
            noch{% endif %} die {{ trigger.calendar_event.summary }}-Tonne
            rausstellen.
          title: >
            {{ trigger.calendar_event.summary }}-Tonne: Müllabfuhr droht mit
            Leerung
mode: parallel
max: 10

Wers brauchen kann…. Take it!

3 „Gefällt mir“

Ich zeige es auf einem Dashboard auf dem iPad an und lasse mich per Signal erinnern. Ich habe eine Home Gruppe, da landen alle relevanten Infos rein. Bilder folgen.

Ich hatte beim Einrichten von Waste Collection Schedule Probleme, meine Region wollte er irgendwie nicht richtig einlesen.

Seitdem mache ich das über den lokalen HA-Kalender, muss ich halt 1x im Jahr 10 Minuten investieren und die Termine manuell eintragen. Geht ja easy, da die Termine sich ja meistens wiederholen (Papiertonne jeden 2. Mittwoch bspweise).

Am Tag vorher und am Abholtag kommt eine Nachricht auf alle Handys.

1 „Gefällt mir“

Sehe ich genauso. Ich hole mir die Termine per Google Kalender in den HA Kalender. Termine setze ich per Serientermine rein. Das macht im Grunde keine Arbeit da die Termine immer gleich bleiben. Und dann die paar Abweichungen wg Feiertage einarbeiten. Dafür wenn man Google noch weg ließe 100% lokal, kein Update struggle, keine zusätzlichen Karten oder Integrationen nötig.

2 „Gefällt mir“

Unser Entsorger stellt die Termine online und als Download im Kalenderformat zur Verfügung.

Runterladen und zum Kalender hinzufügen. Fertig.

1 „Gefällt mir“

Bei mir landen die Benachrichtigungen am Vorabend um 18 Uhr auf diversen Endgeräten und Playern.

Die Kacheldarstellung habe ich einfach mit TrashCard (Github Link) gelöst.

Für das Waste Collection Plugin gibt es auch einen guten Blueprint: Waste Collection Reminder - Blueprints Exchange - Home Assistant Community

Hallo,

die Einrichtung selbst habe ich (wie vermutlich die meisten anderen) über Waste Collection Schedule gemacht. Das funktioniert bei mir wunderbar.

Am Dashboard habe ich das so einfach wie möglich gehalten:

Viel wichtiger war mir aber die rechtzeitige Erinnerung am Vorabend.

Dafür habe ich mir hinter dem Fernseher eine Philips Hue Play Lightbar montiert.

In Node Red (geht natürlich auch als Automatisierung) frage ich täglich (17:30), ob irgendeiner der 4 Müllarten den Wert 1 hat. Wenn das so ist, dann schaltet sich die Lightbar in der entsprechenden Mülltonnenfarbe ein - für Restmüll (schwarz) habe ich türkis gewählt.

Diese Lightbar schaltet sich erst wieder aus, wenn ein Button an der Wand gedrückt wird. Dieser Knopfdruck dient als Bestätigung, dass die Mülltonne rausgestellt wurde.

Zusätzlich kann man den Button auch für manuelle Abfragen verwenden - auch so wird die Lightbar hinterm Fernseher in der entsprechenden Farbe eingeschaltet, wenn einer der Werte 1 ist - aber dann nur für 3 Sekunden.

Ein zusätzlicher Schalter in Home Assistant (Urlaubs-Modus) dient (unter anderem) dazu, dass das Licht nicht automatisch angeht, wenn wir im Urlaub sind.

Die Lightbar verwende ich primär als Ambient-Licht am Abend. Außerdem wird sie violett, wenn der CO2-Wert zu hoch ist und gelüftet werden soll.

Und ich schicke mir am Abend davor, um 21 Uhr, eine Meldung an mein AWTRIX.

Für die KNX Benutzer habe ich vor einiger Zeit mal beschrieben, wie ich die Müllinfo auf einem MDT-Glastaster zur Anzeige bringe.

Müllanzeige auf MDT Glastaster

Ich verwende die HACS-Integration “Waste Collection Schedule”.

So ist das bei uns auch. Benachrichtigt werde ich deshalb per Push-Mitteilung auf dem Smartphone am Tag vorher nur dann, wenn die entsprechende Mülltonne einen Füllungsgrad von > 80% hat. Den Füllstand der Tonnen ermittle ich über die Deckelöffnungen mit einem Tür-Fenster-Sensor wie hier beschrieben:



alias: “Müllkalender: Benachrichtigung Vorabend & Frühstück”
description: >-
Sendet am Vorabend eine WhatsApp und informiert morgens um 07:30 Uhr beim
Frühstück.
triggers:

trigger: time
at: “18:00:00”
id: vorabend

trigger: time
at: “07:30:00”
id: fruehstueck
conditions: 

actions:

choose:

conditions:

condition: trigger
id: vorabend
sequence:

variables:
morgen_muell: >
{% set tonnen = [
(‘Hausmüll Tonne’, states(‘sensor.abfuhr_restmull’) | int),
(‘Papier Tonne’, states(‘sensor.abfuhr_papiermull’) | int),
(‘Bio-Müll’, states(‘sensor.abfuhr_bio_mull’) | int),
(‘Wertstoffmüll’, states(‘sensor.abfuhr_wertstoffmull’) | int)
] %} {% set raus = tonnen | selectattr(1, ‘eq’, 1) |
map(attribute=0) | list %} {{ raus | join(’ und ') }}

condition: template
value_template: “{{ morgen_muell | length > 0 }}”

action: notify.whatsapp_matthias
data:
message: >-
🔔 Müll-Erinnerung: Morgen wird die {{ morgen_muell }}
abgeholt! Bitte stell die Tonne heute Abend noch raus.

action: notify.alexa_media_echo_spot_kuche
metadata: {}
data:
message: >-
Müll-Erinnerung Morgen wird die {{ morgen_muell }} abgeholt!
Bitte stell die Tonne heute Abend noch raus.

action: notify.alexa_media_echo_spot_bad
metadata: {}
data:
message: >-
Müll-Erinnerung Morgen wird die {{ morgen_muell }} abgeholt!
Bitte stell die Tonne heute Abend noch raus.

conditions:

condition: trigger
id: fruehstueck
sequence:

variables:
heute_muell: >
{% set tonnen = [
(‘Hausmüll Tonne’, states(‘sensor.abfuhr_restmull’) | int),
(‘Papier Tonne’, states(‘sensor.abfuhr_papiermull’) | int),
(‘Bio-Müll’, states(‘sensor.abfuhr_bio_mull’) | int),
(‘Wertstoffmüll’, states(‘sensor.abfuhr_wertstoffmull’) | int)
] %} {% set raus = tonnen | selectattr(1, ‘eq’, 0) |
map(attribute=0) | list %} {{ raus | join(’ und ') }}

condition: template
value_template: “{{ heute_muell | length > 0 }}”

action: notify.notify
data:
title: Müllabfuhr heute!
message: >-
Guten Morgen! Denk an das Frühstück und daran, dass heute die {{
heute_muell }} geholt wird!

action: notify.alexa_media_echo_spot_kuche
metadata: {}
data:
message: >-
Guten Morgen! Denk an das Frühstück und daran, dass heute die {{
heute_muell }} geholt wird!

action: notify.alexa_media_echo_spot_bad
metadata: {}
data:
message: >-
Guten Morgen! Denk an das Frühstück und daran, dass heute die {{
heute_muell }} geholt wird!
mode: parallel


Hinweis am Rande für die Hamburger: Von der Hamburger Stadtreinigung gibt es eine Integration, mit der man die Resttage bis zur Leerung abfragen kann. Auch für Weihnachtsbaumabholung und Laubsäcke.

Ich selbst finde ja Badges im Dashboard sehr gut. Deren Sichtbarkeit lässt sich problemlos an Bedingungen knüpfen. Wenn ein Müll-Badge im Dashboard erscheint, heißt das: morgen ist Abholung.