24. Apr 2025
Wie wird das Smart Home zu einem Green Home?

Jeder Bereich, der viel Energie verbraucht und häufig genutzt wird, ist ein gutes Feld für nachhaltige IT. Sei es in der Industrie oder in den eigenen vier Wänden – Software ist Bestandteil jedes Lebensbereichs und beeinflusst den CO₂-Verbrauch enorm.
Es gibt drei Pfeiler, um in der Softwareentwicklung grüner zu werden:
- Energieeffizienz: Das Verringern des Energieverbrauchs, der durch unseren Code ausgelöst wird.
- Hardwareeffizienz: Indem Hardware möglichst lange und effektiv genutzt wird, kann das energie- und CO₂-intensive Herstellen neuer Hardware vermieden werden.
- Carbon Awareness: Energieintensive Aufgaben sollten dann oder dort ausgeführt werden, wo der Anteil erneuerbarer Energien im Stromnetz möglichst groß ist. Aufgaben, die nicht zeitkritisch sind, könnten für eine gewisse Zeit aufgeschoben werden, bis der Grünstromanteil maximal ist.
Carbon Awareness
Das Berücksichtigen des CO₂-Verbrauchs bei Aufgaben ist ein wichtiges Thema und hat sowohl eine räumliche als auch eine zeitliche Dimension.
Das tägliche Server-Backup ist ein gutes Beispiel, das mittels räumlicher Carbon Awareness optimiert werden kann. Aktuell werden solche Aufgaben häufig in der Nacht ausgeführt, zu Zeiten, in denen wenig User eine Anwendung nutzen. Leider sind dies oft auch Zeiten, zu denen weniger erneuerbare Energien verfügbar sind. Verschieben wir die Aufgabe auf einen Zeitpunkt mit einem höheren Anteil erneuerbarer Energien, kann der CO₂-Fußabdruck maximal reduziert werden.
In der IT können Aufgaben häufig auch räumlich verschoben werden. So könnten rechenintensive Aufgaben an Orten ausgeführt werden, an denen CO₂-armer Strom verfügbar ist – beispielsweise dort, wo die Sonne scheint oder der Wind weht. In der Cloud ist dies oft nur eine Frage der Konfiguration.
Timeshifting im smarten Zuhause
Gerade wenn Green IT den persönlichen Alltag betrifft, müssen die Anforderungen der Nachhaltigkeit mit der Vereinbarkeit des Lebens abgewägt werden. Das räumliche Verschieben von Aufgaben ist im privaten Haushalt praktisch nicht möglich. Es hilft nicht, wenn mein Kaffee zwar CO₂-neutral in einem sonnigen US-Bundesstaat gekocht wird, ich jedoch im windstillen und bewölkten Darmstadt sitze. Auch das zeitliche Verschieben ist nicht immer mit dem Alltag vereinbar. Der Kaffee am Morgen funktioniert nicht, wenn erst auf die ersten Sonnenstrahlen gewartet werden muss.
In den eigenen vier Wänden gibt es jedoch Aufgaben, die energiehungrig sind und sich sinnvoll zeitlich aufschieben lassen. Im Falle der Waschmaschine ist es beispielsweise irrelevant, ob die Wäsche eine Stunde früher oder später fertig wird. Auch der eingeräumte Trockner kann vermutlich um ein oder zwei Stunden verzögert starten.
Timeshifting-Aufgaben identifizieren
Ziel ist es, im eigenen Zuhause Aufgaben zu identifizieren, die nicht zeitkritisch sind, gleichzeitig aber viel Energie benötigen. Geschirrspülmaschine, Waschmaschine oder Trockner sind gute Beispiele dafür. Aber auch das Laden des Elektroautos oder des E-Bikes bietet großes Potenzial.
Die Anforderung des Nutzers an einen Ladevorgang des Fahrzeugs ist, dass es morgens zu 100 % geladen ist. Wann geladen wird, ist jedoch irrelevant.
Time Shifting API
Eine Carbon-Aware-Aufgabe kann mit drei Variablen verschoben werden:
- Time Window: Eine Aufgabe hat immer ein Zeitfenster. Bei der Waschmaschine ist es beispielsweise die Zeit zwischen 09:00 Uhr und 19:00 Uhr, damit die Waschmaschine zu Schlafenszeiten keinen Lärm erzeugt.
- Runtime: Die voraussichtliche Laufzeit der Aufgabe. Für die Waschmaschine ist das je nach Waschgang 30 Minuten bis 2 Stunden.
- Location: Der Ort, an dem der Strom genutzt wird. Je nach Ort unterscheiden sich die Verfügbarkeit und der Anteil erneuerbarer Energien.
Die Carbon Aware Computing Library bietet die Möglichkeit, anhand der drei Timeshifting-Variablen den besten Zeitpunkt zu finden, an dem eine Aufgabe gestartet werden soll. Es existieren Erweiterungen für .Net, PowerShell, Hangfire, Prometheus oder Kubernetes. Für unseren Fall ist die Carbon Aware Computing Web-API von besonderem Interesse.
Der Homeassistant Trockner mit grünem Gewissen
Home Assistant ist ein Open-Source-Projekt für das smarte Zuhause. Hier kann IoT-Hardware verschiedenster Hersteller und mit verschiedensten Technologien angebunden und mittels Automationen intelligent verknüpft werden. Wir vereinen die intelligente Waschmaschine mit Green-IT-Schnittstellen. Home Assistant ist der perfekte Ort, um Timeshifting in den Alltag zu integrieren.
REST APIAllgemeine Konfiguration mit REST-Command
In der allgemeinen Konfiguration (configuration.yaml) wird der REST-Command hinzugefügt. Als Übergabeparameter existieren “data_start”, “data_end” und “window_size”.
rest_command:
carbon_aware_computing:
url: "https://forecast.carbon-aware-computing.com/emissions/forecasts/current?location=de&dataStartAt={{ data_start }}&dataEndAt={{ data_end }}&windowSize={{ window_size }}"
method: "GET"
headers:
Content-Type: "application/json"
x-api-key: "59j7uQE37K49sj38d/ntu6JPKTT7QodN+Mqidfxx5L0QOMaT6tJ/QAvC68sHeYdH"
In einer Automation können wir unsere zuvor definierte API nun aufrufen. Der Aufruf carbon_aware_computing wird in der data section um die drei Variaben angereichert. Das Ergebnis des API Aufrufs wird in der Variable “response” gesichert.
- action: rest_command.carbon_aware_computing
data:
data_start: "2025-01-23T12:40:32"
data_end: "2025-01-23T13:40:32"
window_size: 10
response_variable: response
Waschmaschinen-AutomationBeispiel-Automation für die Waschmaschine
In dieser Beispiel-Automation werden die Timeshifting-Variablen definiert (variables:). Wenn ich den Waschmaschinenschalter betätige, wird die aktuelle Zeit als Startzeit genommen. Weil das Standard-Waschprogramm eine Stunde (60 Minuten) läuft, wird dies als Laufzeit angenommen. Das Zeitfenster wird mit 240 Minuten (4 Stunden) angegeben.
Mit diesen Werten wird die API aufgerufen (action: rest_command.carbon_aware_computing). Das Ergebnis der Abfrage sorgt dafür, dass die Automation um die Zeitdifferenz verzögert wird (wait_template:). Nach der Verzögerung wird schließlich der Task ausgeführt (action: switch.turn_on).
actions:
- variables:
start_of_time_window: "{{ (now()+timedelta(minutes=1)).strftime('%Y-%m-%dT%H:%M:%S') }}"
time_window: 240
runtime: 6
alias: "Define time Window Size and runtime "
- action: rest_command.carbon_aware_computing
data:
data_start: "{{ start_of_time_window }}"
data_end: >-
{{ (as_datetime(start_of_time_window) +
timedelta(minutes=time_window)).strftime('%Y-%m-%dT%H:%M:%S') }}
window_size: "{{ runtime }}"
response_variable: response
alias: "Get best time to start"
- variables:
optimal_datetime: "{{ (response['content'][0]['optimalDataPoints'][0]['timestamp'])[:-6] }}"
alias: "Best start time"
- wait_template: >-
{{ as_datetime(now().strftime('%Y-%m-%dT%H:%M:%S')) >=
as_datetime(optimal_datetime) }}
alias: "TimeShifting"
- action: switch.turn_on
target:
device_id: c9c25d1bf9f799f8a59a505ad9cd1f49
data: {}
alias: "Run Task"
Fazit: Nachhaltiges Smart Home
Energieeffizienz ist ein wichtiges Thema. Smarte Technologie hat das Ziel, unser Leben einfacher zu gestalten. Durch die Konnektivität und intelligente Algorithmen kann gleichzeitig CO₂ eingespart werden. Das smarte Zuhause ist ein gutes Beispiel dafür, wie ohne Einbußen in der Nutzbarkeit und im Funktionsumfang intelligent CO₂ eingespart werden kann.