Project:Müllampel: Difference between revisions

From CoMakingSpace Wiki

m 5. Automatisierung für die Mülllampel: - Include the actual Automation YAML
m Add real configuration
Line 38: Line 38:
#Schneide den LED-Streifen auf die passende Länge, damit er in den Bilderrahmen passt.
#Schneide den LED-Streifen auf die passende Länge, damit er in den Bilderrahmen passt.
#Verbinde den LED-Streifen mit dem ESP8266 gemäß der folgenden Pinbelegung:
#Verbinde den LED-Streifen mit dem ESP8266 gemäß der folgenden Pinbelegung:
*'''LED-Datenpin''' -> GPIO Pin des ESP8266 (z. B. GPIO 4)
##'''LED-Datenpin''' -> GPIO Pin des ESP8266 (z.B. GPIO 2)
*'''Stromversorgung (5V)''' -> Netzteil
##'''Stromversorgung (5V)''' -> Netzteil
*'''GND''' -> GND des ESP32 und des Netzteils
##'''GND''' -> GND des ESP32 und des Netzteils
#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.
#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===
Flashe den ESP8266 mit ESPHome. Die folgende Konfiguration kann als Vorlage verwendet werden:<syntaxhighlight lang="yaml">
substitutions:
  name: esphome-garbage-sign
  friendly_name: ESPHome_Garbage_Sign


===3. Installation der Software===
#Flashe den ESP8266 mit ESPHome. Die folgende Konfiguration kann als Vorlage verwendet werden:
<syntaxhighlight lang="yaml">
esphome:
esphome:
   name: muelllampel
   name: ${name}
  friendly_name: ${friendly_name}


esp8266:
esp8266:
   board: esp8266dev
   board: esp01_1m


wifi:
wifi:
Line 58: Line 61:
light:
light:
   - platform: neopixelbus
   - platform: neopixelbus
     pin: GPIO4
     type: GRB
     num_leds: 30
     variant: ws2812
     name: "Muelllampel LEDs"
     pin: GPIO02
     effects:
     num_leds: 22
      - random:
    name: "Garbage_LED"
          name: "Blinken"
          transition_length: 1s
          update_interval: 0.5s
</syntaxhighlight>
</syntaxhighlight>
#Verbinde den ESP8266 mit deinem Home Assistant.


===4. Integration der Mülltermine in Home Assistant===
===4. Integration der Mülltermine in Home Assistant ===
Um die Abholtermine deiner Mülltonnen in Home Assistant zu nutzen, folge diesen Schritten:
Bei der Integration der Mülltermine in HomeAssistant ist wichtig, dass die Termine in einem eigenen Kalender innerhalb von HomeAssistant gespeichert werden. Hierzu gibt es verschiedene Möglichkeiten, die von deinem lokalen Entsorgungsunternehmen abhängen.
#Installiere das Add-on **"ICS Kalender Integration"** in Home Assistant (falls noch nicht vorhanden).
 
#Lade die ICS-Datei deines lokalen Müllabfuhrkalenders herunter (oft von der Website deines Abfallwirtschaftsamts verfügbar).
Wir nutzen die [https://github.com/mampfes/hacs_waste_collection_schedule#readme Waste Collection Schedule] Integration, um die Heidelberger Abholtermine abzufragen. Die URL für den CoMakingSpace lautet: https://www.gipsprojekt.de/featureGips/Gips?SessionMandant=Heidelberg&Anwendung=ABFUHRKALENDER&Methode=TermineAnzeigenICS&Mandant=Heidelberg&Abfuhrkalender=Heidelberg&Bezirk_ID=34979&Jahr={%Y}&Suchkriterium1=
#Importiere die ICS-Datei in Home Assistant:
  * Gehe zu **Einstellungen > Integrationen > Kalender hinzufügen**.
  * Wähle "ICS" aus und lade die Datei hoch.
#Die Termine erscheinen nun in Home Assistant als Kalenderentitäten (z. B. `calendar.muellerinnerung`).


Die Termine erscheinen nun in Home Assistant als Kalenderentitäten (z. B. `calendar.heidelberg`).
===5. Automatisierung für die Mülllampel===
===5. Automatisierung für die Mülllampel===
#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:
#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:
Line 197: Line 193:
</syntaxhighlight>
</syntaxhighlight>


===6. Montage und Test===
===6. Montage und Test===
#Setze die Glasscheibe wieder in den Bilderrahmen ein.
#Setze die Glasscheibe wieder in den Bilderrahmen ein.
#Schließe den ESP32 und den LED-Streifen an die Stromversorgung an.
#Schließe den ESP32 und den LED-Streifen an die Stromversorgung an.
#Teste die Automatisierung, um sicherzustellen, dass die LEDs korrekt blinken.
# Teste die Automatisierung, um sicherzustellen, dass die LEDs korrekt blinken.


==Fehlersuche==
==Fehlersuche==
*'''Problem''': Die LEDs leuchten nicht.
*'''Problem''': Die LEDs leuchten nicht.
  * Prüfe, ob der LED-Streifen richtig an den ESP32 und die Stromversorgung angeschlossen ist.
**Prüfe, ob der LED-Streifen richtig an den ESP32 und die Stromversorgung angeschlossen ist. * Stelle sicher, dass die ESPHome-Konfiguration korrekt hochgeladen wurde
  * Stelle sicher, dass die ESPHome-Konfiguration korrekt hochgeladen wurde.
*'''Problem''': Home Assistant erkennt den Kalender nicht.
*'''Problem''': Home Assistant erkennt den Kalender nicht.
  * Verifiziere, ob die ICS-Datei korrekt importiert wurde.
**Verifiziere, ob die Integration korrekt aufgesetzt wurde.
 
 
==Bilder und Beispiele==
==Bilder und Beispiele==
*[Bild des fertigen Projekts einfügen]
*[Bild des fertigen Projekts einfügen]
*[Screenshot der Home Assistant Konfiguration einfügen]


==Weitere Ressourcen==
==Weitere Ressourcen==  
*[https://esphome.io/ ESPHome Dokumentation]
*[https://esphome.io/ ESPHome Dokumentation]
*[https://www.home-assistant.io/ Home Assistant Webseite]
*[https://www.home-assistant.io/ Home Assistant Webseite]

Revision as of 20:16, 11 December 2024

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:
    1. LED-Datenpin -> GPIO Pin des ESP8266 (z.B. GPIO 2)
    2. Stromversorgung (5V) -> Netzteil
    3. GND -> GND des ESP32 und des Netzteils
  3. 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

Flashe den ESP8266 mit ESPHome. Die folgende Konfiguration kann als Vorlage verwendet werden:

substitutions:
  name: esphome-garbage-sign
  friendly_name: ESPHome_Garbage_Sign

esphome:
  name: ${name}
  friendly_name: ${friendly_name}

esp8266:
  board: esp01_1m

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

light:
  - platform: neopixelbus
    type: GRB
    variant: ws2812
    pin: GPIO02
    num_leds: 22
    name: "Garbage_LED"

4. Integration der Mülltermine in Home Assistant

Bei der Integration der Mülltermine in HomeAssistant ist wichtig, dass die Termine in einem eigenen Kalender innerhalb von HomeAssistant gespeichert werden. Hierzu gibt es verschiedene Möglichkeiten, die von deinem lokalen Entsorgungsunternehmen abhängen.

Wir nutzen die Waste Collection Schedule Integration, um die Heidelberger Abholtermine abzufragen. Die URL für den CoMakingSpace lautet: https://www.gipsprojekt.de/featureGips/Gips?SessionMandant=Heidelberg&Anwendung=ABFUHRKALENDER&Methode=TermineAnzeigenICS&Mandant=Heidelberg&Abfuhrkalender=Heidelberg&Bezirk_ID=34979&Jahr={%Y}&Suchkriterium1=

Die Termine erscheinen nun in Home Assistant als Kalenderentitäten (z. B. `calendar.heidelberg`).

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 Integration korrekt aufgesetzt wurde.

Bilder und Beispiele

  • [Bild des fertigen Projekts einfügen]

Weitere Ressourcen