Project:Müllampel

From CoMakingSpace Wiki

Revision as of 11:39, 11 December 2024 by NitramLegov (talk | contribs) (5. Automatisierung für die Mülllampel: - Include the actual Automation YAML)

This page is INCOMPLETE and still missing some important information before it can be used as a resource.

ProjectInfoBox

Müllampel

Status: planned
Initiator: Martin, Johannes
Tools Used: LaserCutter, Drill, Hot Glue Gun
Approx. Cost: 10€


Das Projekt Müllampel ist ein Projekt, das zum Ziel hat, den Space vor dem Versinken im Müll zu bewahren. Dazu bietet es ein Schild, das mithilfe eines ESP32 und adressierbarer LEDs eine Erinnerung bietet, die Mülltonnen rechtzeitig rauszustellen.

Dies erreicht es, indem es anhand der Daten des aktuellen Abfallkalenders blinkt und mithilfe von drei verschiedenen Farben signalisiert, welche Tonnen herausgestellt werden müssen: Weiß für Restmüll, Blau für Papier und Gelb für Wertstoff.

Aktuell blinkt sie mittwochs um 21:30 Uhr zum Reinholen und freitags um 21:30 Uhr zum Herausstellen der Tonnen, damit diese meist Dienstags morgens abgeholt werden können.

Die Integration in Home Assistant ermöglicht es uns, das Schild perfekt auf unsere Abholtermine abzustimmen.

Bauanleitung

Material:

  • Bilderrahmen
  • ESP8266 Mikrocontroller
  • Netzteil für den LED-Streifen (z. B. 5V, 2A für 30 LEDs)
  • USB-Kabel
  • Klebematerial (z. B. Heißkleber oder doppelseitiges Klebeband)
  • Adressierbarer LED-Streifen (22 LEDs)
  • Schwarze Sprühfarbe

Werkzeuge

  • Laser Cutter
  • Computer mit Zugang zu HomeAssistant und ESPHome
  • Schraubendreher, Cutter oder Schere (für den LED-Streifen)

Schritt-für-Schritt-Anleitung

1. Vorbereitung des Bilderrahmens

  1. Entferne die Glasscheibe aus dem Bilderrahmen.
  2. Sprühe die Vorderseite der Glasscheibe gleichmäßig mit schwarzem Sprühlack ein. Lass die Farbe vollständig trocknen (ca. 24 Stunden).
  3. Nutze den Laser Cutter, um ein Mülltonnen-Symbol aus der lackierten Glasscheibe zu gravieren. Du kannst eine eigene SVG-Datei erstellen oder eine Vorlage verwenden.

2. Vorbereitung der Elektronik

  1. Schneide den LED-Streifen auf die passende Länge, damit er in den Bilderrahmen passt.
  2. Verbinde den LED-Streifen mit dem ESP8266 gemäß der folgenden Pinbelegung:
  • LED-Datenpin -> GPIO Pin des ESP8266 (z. B. GPIO 4)
  • Stromversorgung (5V) -> Netzteil
  • GND -> GND des ESP32 und des Netzteils
  1. Sichere den LED-Streifen und den ESP32 mit Klebematerial hinter der Glasscheibe im Rahmen. Achte darauf, dass die LEDs direkt hinter dem gravierten Symbol positioniert sind.

3. Installation der Software

  1. Flashe den ESP8266 mit ESPHome. Die folgende Konfiguration kann als Vorlage verwendet werden:
esphome:
  name: muelllampel

esp8266:
  board: esp8266dev

wifi:
  ssid: "DEIN_SSID"
  password: "DEIN_PASSWORT"

light:
  - platform: neopixelbus
    pin: GPIO4
    num_leds: 30
    name: "Muelllampel LEDs"
    effects:
      - random:
          name: "Blinken"
          transition_length: 1s
          update_interval: 0.5s
  1. Verbinde den ESP8266 mit deinem Home Assistant.

4. Integration der Mülltermine in Home Assistant

Um die Abholtermine deiner Mülltonnen in Home Assistant zu nutzen, folge diesen Schritten:

  1. Installiere das Add-on **"ICS Kalender Integration"** in Home Assistant (falls noch nicht vorhanden).
  2. Lade die ICS-Datei deines lokalen Müllabfuhrkalenders herunter (oft von der Website deines Abfallwirtschaftsamts verfügbar).
  3. Importiere die ICS-Datei in Home Assistant:
 * Gehe zu **Einstellungen > Integrationen > Kalender hinzufügen**.
 * Wähle "ICS" aus und lade die Datei hoch.
  1. Die Termine erscheinen nun in Home Assistant als Kalenderentitäten (z. B. `calendar.muellerinnerung`).

5. Automatisierung für die Mülllampel

  1. Erstelle eine Automatisierung in Home Assistant, die prüft, welche Mülltonnen in den nächsten 7 Tagen abgeholt werden, und die LEDs entsprechend steuert. Beispiel:
alias: Garbage Light
description: >-
  Let´s the Garbage Light in the Wood Workshop blink for ~30 Minutes. Starts 30
  minutes before an event in our calendar ends
triggers:
  - trigger: calendar
    entity_id: calendar.coms_public_events
    event: end
    offset: "-0:30:0"
conditions: []
actions:
  - action: calendar.get_events
    metadata: {}
    data:
      duration:
        hours: 168
        minutes: 0
        seconds: 0
    target:
      entity_id: calendar.heidelberg
    response_variable: calendar_entries_7_days
  - repeat:
      count: 130
      sequence:
        - repeat:
            sequence:
              - choose:
                  - conditions:
                      - alias: Restmüll
                        condition: template
                        value_template: "{{ \"Restmüll\" in repeat.item.summary }}"
                    sequence:
                      - action: light.turn_on
                        target:
                          device_id:
                            - e7df0dab88007c0d27d62348c4eb39b9
                        data:
                          rgb_color:
                            - 255
                            - 255
                            - 255
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 5
                          milliseconds: 0
                      - action: light.turn_off
                        metadata: {}
                        data: {}
                        target:
                          device_id:
                            - e7df0dab88007c0d27d62348c4eb39b9
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 2
                          milliseconds: 0
                  - conditions:
                      - alias: Gelber Sack
                        condition: template
                        value_template: "{{ \"Gelber Sack\" in repeat.item.summary }}"
                    sequence:
                      - action: light.turn_on
                        target:
                          device_id:
                            - e7df0dab88007c0d27d62348c4eb39b9
                        data:
                          rgb_color:
                            - 238
                            - 255
                            - 0
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 5
                          milliseconds: 0
                      - action: light.turn_off
                        metadata: {}
                        data: {}
                        target:
                          device_id: e7df0dab88007c0d27d62348c4eb39b9
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 2
                          milliseconds: 0
                  - conditions:
                      - alias: Papier
                        condition: template
                        value_template: "{{ \"Papier\" in repeat.item.summary }}"
                    sequence:
                      - action: light.turn_on
                        target:
                          device_id:
                            - e7df0dab88007c0d27d62348c4eb39b9
                        data:
                          rgb_color:
                            - 0
                            - 42
                            - 255
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 5
                          milliseconds: 0
                      - action: light.turn_off
                        metadata: {}
                        data: {}
                        target:
                          device_id:
                            - e7df0dab88007c0d27d62348c4eb39b9
                      - delay:
                          hours: 0
                          minutes: 0

6. Montage und Test

  1. Setze die Glasscheibe wieder in den Bilderrahmen ein.
  2. Schließe den ESP32 und den LED-Streifen an die Stromversorgung an.
  3. Teste die Automatisierung, um sicherzustellen, dass die LEDs korrekt blinken.

Fehlersuche

  • Problem: Die LEDs leuchten nicht.
 * Prüfe, ob der LED-Streifen richtig an den ESP32 und die Stromversorgung angeschlossen ist.
 * Stelle sicher, dass die ESPHome-Konfiguration korrekt hochgeladen wurde.
  • Problem: Home Assistant erkennt den Kalender nicht.
 * Verifiziere, ob die ICS-Datei korrekt importiert wurde.


Bilder und Beispiele

  • [Bild des fertigen Projekts einfügen]
  • [Screenshot der Home Assistant Konfiguration einfügen]

Weitere Ressourcen