We use cookies on this site to enhance your user experience

By clicking the Accept button, you agree to us doing so. More info on our cookie policy

Smart Home Bastler Logo

Einen smarten Adventskranz bauen

Einen smarten Adventskranz bauen

Hier zeige ich, wie ich mit ESPHome und einem D1 Mini Microcontroller meinen Adventskranz smart gemacht habe

Veröffentlicht: 23. 11. 2024 von Smart Home Bastler

Einen smarten Adventskranz bauen

Da meine Frau und ich das Glück haben, bei zwei unglaublich süßen Katern wohnen zu dürfen, ist es leider nicht möglich, echte, brennende Kerzen in der Wohnung zu nutzen.

Da wir dennoch gerne zur Weihnachtszeit einen Adventskranz aufstellen und dieser natürlich leuchtende Kerzen haben soll, kam mir die Idee, einfach einen smarten Adventskranz zu bauen und diesen voll automatisiert zu gestalten.

Schritt 1. Verwendete Komponenten

Was habe ich zum Bau des smarten Adventskranzes benötigt:

  1. Einen künstlichen, optisch ansprechenden Kranz
  2. Vier batteriebetriebene Echtwachs-Kerzen
  3. Eine batteriebetriebene Lichterkette (1m)
  4. Einen ESP32-Mikrocontroller
  5. Ein Netzteil und ein Micro-USB-Kabel
  6. Ein paar Klemmen und Draht

Die meisten der Komponenten könnt ihr in meinem Amazon Shop ansehen und gerne kaufen.

Schritt 2. Kerzen verdrahten

Als alle Teile zuhause angekommen waren, habe ich mich daran gemacht, die Kerzen für den Anschluss an den Mikrocontroller vorzubereiten. Dazu habe ich seitlich ein kleines Loch gebohrt, welches direkt in die Batteriekammer führte. In dieses Loch habe ich zwei Drähte mit 0,5 mm (Farbe schwarz und grün) eingeführt und um die Kerze nicht auseinandernehmen zu müssen, habe ich die Drähte einfach an die Batteriekontakte gelötet. Den Schalter der Kerze habe ich bei allen fix auf "on" gelassen. Die einmetrige Lichterkette habe ich von der Batteriebox getrennt und die Adern des Kabels für den Anschluss an den Microcontroller vorbereitet.

Ein Loch in die Batteriekammer bohren und die Drähte einführen.

Die Drähte an die Batteriekontakte löten

Eine Klemme für den Anschlusss an den Microkontroller anbringen

Schritt 3. Platine löten

Um auch in der Zukunft noch zu wissen, wie ich den Microcontroller verdrahtet habe, zeichnete ich mir ein Schema in fritzing.
Dieses Schema und das Pinout des Microcontrollers könnt ihr euch hier ansehen und bei Bedarf als PDF herunterladen. Um die Kerzen nicht immmer vom Microcontroller abklemmen zu müssen, habe ich mir Klemmen mit Stecker besorgt und diese dann, für mich übersichtlich, auf der Platine angeordnet.
Verdrahtet habe ich die Platine mit 0,5mm² Drähten in verschiedenen Farben. Der Microcontroller selbst, ist nicht fix auf die Platine gelötet, sondern auch mit Steckleisten versehen um ihn bei Bedarf ohne Umstände tauschen zu können.

Microcontroller, 4 Klemmen für die Kerzen und 1 Klemme für die Lichterkette angebracht

Die Kontakte nach dem Schema verbinden

Die Klemmen der Kerzen einstecken und die Lichterkette anklemmen

Schritt 4. ESPHome Programmierung

Als nächstes ging es um die Programmierung. Ich habe den Microcontroller mit einem Mikro-USB-Kabel für Datenübertragung an meinen Arbeits-PC angeschlossen. Dann habe ich Home Assistant in meinem Google Chrome Browser geöffnet, da ich festgestellt habe, das es bei anderen Browsern vermehrt Probleme mit den USB-Treibern bei der Installation von ESP Modulen gibt. In Home Assistant habe ich dann in ESPHome ein neuse Gerät eingebunden und dieses mit folgendem Code konfiguriert.

Eine kurze Beschreibung wie man in ESPHome ein Gerät hinzufügt, findest du im ⬇️ Dropdown ⬇️


esphome:
  name: adventskranz
  friendly_name: Adventskranz

esp32:
  board: wemos_d1_mini32
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "DEIN-ENCRYPTION-KEY"

ota:
  - platform: esphome
    password: "DEIN-OTA-PASSWORT"

#Web server für "VISIT"
web_server:
  port: 80

# WIFI Einstellungen mit statischer IP
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.50.211 # Ich nutze grundsätzlich statische IP´s
    gateway: 192.168.50.1     # Änder diese Einträge für dich passend um!
    subnet: 255.255.255.0

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
  ssid: "Adventskranz Fallback Hotspot"
  password: "DEIN PASSWORT"

captive_portal:

light:
  - platform: binary
    name: "Kerze1"
    output: light_kerze1
  - platform: binary
    name: "Kerze2"
    output: light_kerze2
  - platform: binary
    name: "Kerze3"
    output: light_kerze3
  - platform: binary
    name: "Kerze4"
    output: light_kerze4
  - platform: binary
    name: "Kette"
    output: light_kette

output:
  - id: light_kerze1
    platform: gpio
    pin: GPIO0
  - id: light_kerze2
    platform: gpio
    pin: GPIO12
  - id: light_kerze3
    platform: gpio
    pin: GPIO33
  - id: light_kerze4
    platform: gpio
    pin: GPIO14
  - id: light_kette
    platform: gpio
    pin: GPIO25
    

Nachdem der Microcontroller mit dem Programm konfiguriert wurde, ging es an das Testen.
Ich habe die Kerzen und die Lichterkette angeschlossen, den Microcontroller über ein Micro-USB-Kabel mit Strom versorgt und dann im Browser die VISIT-Seite geöffnet. Hier kann mann alle konfigurierten Schalter betätigen und so die Funktion kontrollieren.

Schritt 5. Kalender einrichten

Da ich den Adventskranz vollautomatisch betreiben möchte, habe ich mir einen Kalender mit den Advent-Tagen erstellt. Bei uns bleibt der Weihnachtsbaum und auch der Adventskranz bis zum 6.Jänner stehen.
Aus diesem Grund hat dieser Kalender folgende Einträge:

  • 1.Advent: Jählich ab dem 1. Adventsonnstag
  • 2.Advent: Jählich ab dem 2. Adventsonnstag
  • 3.Advent: Jählich ab dem 3. Adventsonnstag
  • 4.Advent: Jählich ab dem 4. Adventsonnstag
  • XMAS: Jählich ab dem 24.Dezember bis zum 6.Jänner

Du kannst dir hier die Einträge der nächsten 10 Jahre des Kalenders ansehen und ihn wenn du möchtest herunterladen.

Diesen Kalender habe ich in Home Assistant eingerichtet, um ihn für Automatisierungen und Templates zu nutzen.
Wenn du wissen möchtest, wie man auf einfachem Weg in Home Assistant einen Kalender einrichtet, sieh in den ⬇️ Dropdown ⬇️

In Home Assistant sieht der eingerichtete Kalender so aus:

Schritt 6. Helfer Template anlegen

Um eine Anzeige in Home Assistant zu haben, welcher Status des Kalenders gerade zutrifft, habe ich ein Template angelegt, welches einen Sensor erstellt.

Auch hierzu findest du eine Beschreibung im ⬇️ Dropdown ⬇️

Template für den Helfer:

  • Name: Advent
  • Icon: mdi:pine-tree-variant-outline


{% set ADVENTKAL = states.calendar.advent.state %}
{%- if ADVENTKAL == 'off' %}
Kein Advent!
{%- elif ADVENTKAL == 'on' %}
{{ states.calendar.advent.attributes.message }}
{% else %}
FEHLER
{%- endif %}

    

Der installierte Sensor sensor.advent inkl. Labels zur einfacheren Sortierung kann hier angesehen werden:

Schritt 7. Automatisierung

Die Automatisierung war der letzte Schritt. Ich wollte einen Schalter, welcher den Adventskranz ein und aus schaltet. Welche und wieviele der Kerzen dabei eingeschaltet werden, übernimmt die Automatisierung.

Zuerst der Schalter. Dieser ist ein Input-Boolean und ich habe diesen bei den Helfern angelegt.

  • Name: Adventskranz
  • Icon: mdi:candle

Wie man einen Helfer-Schalter anlegt, findest du im ⬇️ Dropdown ⬇️

Der fertig installierte Helfer input_boolean.adventskranz inkl. Labels zur einfacheren Sortierung ist hier anzusehen:

Mit den Entitäten des ESP, des Kalender-Templates und des Schalters, konnte ich dann folgende Automatisierung anlegen.

Was macht nun diese Automatisierung?

Diese Automatisierung steuert den Adventskranz entsprechend des aktuellen Adventsstatus.

  • Wenn der Schalter "Adventskranz" eingeschaltet wird:
    • Es wird geprüft, welche Adventwoche gerade ist.
    • Je nach Woche werden 1 bis 4 Kerzen eingeschaltet.
    • Die Lichterkette wird immer eingeschaltet.
  • Wenn der Schalter "Adventskranz" ausgeschaltet wird:
    • Alle Kerzen und die Lichterkette werden ausgeschaltet.

Diese Automatisierung sorgt für eine stimmungsvolle Beleuchtung während der Adventszeit.

Die Automatisierung im YAML-Code


alias: Adventskranz Automatisierung
description: Steuert den Adventskranz entsprechend des aktuellen Adventsstatus
triggers:
  - entity_id: input_boolean.adventskranz
    to: "on"
    trigger: state
  - entity_id: input_boolean.adventskranz
    to: "off"
    trigger: state
conditions: []
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.adventskranz
            state: "on"
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: sensor.advent
                    state: 1.Advent
                sequence:
                  - target:
                      entity_id:
                        - light.adventskranz_kerze1
                        - light.adventskranz_kette
                    action: light.turn_on
                    data: {}
              - conditions:
                  - condition: state
                    entity_id: sensor.advent
                    state: 2.Advent
                sequence:
                  - target:
                      entity_id:
                        - light.adventskranz_kerze1
                        - light.adventskranz_kerze2
                        - light.adventskranz_kette
                    action: light.turn_on
                    data: {}
              - conditions:
                  - condition: state
                    entity_id: sensor.advent
                    state: 3.Advent
                sequence:
                  - target:
                      entity_id:
                        - light.adventskranz_kerze1
                        - light.adventskranz_kerze2
                        - light.adventskranz_kerze3
                        - light.adventskranz_kette
                    action: light.turn_on
                    data: {}
              - conditions:
                  - condition: state
                    entity_id: sensor.advent
                    state: 4.Advent
                sequence:
                  - target:
                      entity_id:
                        - light.adventskranz_kerze1
                        - light.adventskranz_kerze2
                        - light.adventskranz_kerze3
                        - light.adventskranz_kerze4
                        - light.adventskranz_kette
                    action: light.turn_on
                    data: {}
              - conditions:
                  - condition: state
                    entity_id: sensor.advent
                    state: XMAS
                sequence:
                  - target:
                      entity_id:
                        - light.adventskranz_kerze1
                        - light.adventskranz_kerze2
                        - light.adventskranz_kerze3
                        - light.adventskranz_kerze4
                        - light.adventskranz_kette
                    action: light.turn_on
                    data: {}
      - conditions:
          - condition: state
            entity_id: input_boolean.adventskranz
            state: "off"
        sequence:
          - target:
              entity_id:
                - light.adventskranz_kerze1
                - light.adventskranz_kerze2
                - light.adventskranz_kerze3
                - light.adventskranz_kerze4
                - light.adventskranz_kette
            action: light.turn_off
            data: {}
mode: single

    

Nach der Installation der Automatisierung ging es an den Zusammenbau des Adventskranzes und an das Testen.
In den Etwicklerwerkzeugen ist es sehr einfach, für kurze Zeit die Kalenderdaten nach eigenen Bedürfnissen zu setzen. Ich habe bei Zustand on und bei message: 4.Advent eingetragen und dann auf ZUSTAND SETZEN geklickt. Dann auf meinem neu erstelltem Dashboard die Funktionen gestestet.
Alles funktionierte zur vollsten Zufriedenheit.

Alles angeschlossen und die Kerzen am Kranz angebracht

In den Entwicklerwerkzeugen den Kalender durch Setzen von Werten testen

Am Dashboard die Funktionen kontrollieren

Den Kranz dekorieren und die Adventzeit genießen

Viel Spaß und Erfolg beim Nachbasteln 🎉

8. Zusätzliche Templates

Aufmerksamen Lesern wird es nicht entgangen sein, dass auf dem Dashboard noch zusätzliche Sensoren die Adventzeit betreffend angeführt waren.
Hierbei handelt es sich um einen simplen Adventkalender und eine Anzeige für die Tage bis zum Heiligen Abend.

Auch diese Templates könnt ihr hier kopieren und bei euch einfügen.

Template Adventkalender:

  • Name: Adventkalender
  • Icon: mdi:window-closed-variant

Template-Helfer Adventkalender



{% set ADVENTMONAT = (12) %}
{% set HEILIGABEND = (12, 24) %}
{% set ADVENTTAG = (now().month, now().day) %}
{% if ADVENTTAG >= (12, 1) and ADVENTTAG <= HEILIGABEND %}
{{ now().day }}
{% else%}
kein
{% endif %}

    

Template Tage bis Heiligabend:

  • Name: Adventtage bis XMAS
  • Icon: mdi:calendar-check-outline

Template-Helfer Tage bis XMAS



{% set ADVENTMONAT = (12) %}
{% set HEILIGABEND = (12, 24) %}
{% set ADVENTTAG = (now().month, now().day) %}
{% if ADVENTTAG >= (12, 1) and ADVENTTAG <= HEILIGABEND and ADVENTMONAT == now().month and (24 - now().day) >= 2 %}
Es sind noch {{ 24 - now().day }} Tage bis Heligabend!
{% elif ADVENTTAG >= (12, 1) and ADVENTTAG <= HEILIGABEND and ADVENTMONAT == now().month and (24 - now().day) == 1 %}
Nur noch 1 Tag bis Heiligabend!
{% elif ADVENTTAG >= (12, 1) and ADVENTTAG <= HEILIGABEND and ADVENTMONAT == now().month and (24 - now().day) == 0 %}
Heute ist Heilgabend! Fröhliche Weihnachten!
{% else%}

{% endif %}

    

Teilen:

Teilen

Profilbild von Maxx

Mein Name ist Maxx und ich bin der Smart Home Bastler!

Seit 2021 arbeite ich mit HomeAssistant an meinem Smarthome und bin durch die vielen Möglichkeiten, welches dieses System bietet, noch immer nicht am Ende. Gerne teile ich meine Erfahrungen, gemachte Fehler und erschaffene Automatisierungen mit euch.

Letzter Beitrag

Einen smarten Adventskranz bauen
Einen smarten Adventskranz bauen

Da meine Frau und ich das Glück haben, bei zwei unglaublich süßen Katern wohnen zu dürfen, ist es leider nicht möglich, echte, brennende Kerzen in der Wohnung zu nutzen.

Eigene Schriftart in Home Assistant integrieren
Eigene Schriftart in Home Assistant integrieren

Ich wollte unbedingt für meine Dashboards eine Schriftart zur Auswahl haben, welche meine Uhr in digitaler Schrift anzeigt.