Intelligente Zeiterfassung mit Home Assistant

Von | Januar 4, 2024
Intelligente Zeiterfassung mit Home Assistant

Intelligente Zeiterfassung mit Home Assistant stellt eine moderne und effiziente Möglichkeit dar, das eigene Zeiterfassung zu optimieren. Durch Automatisierung, Personalisierung und Integration mit verschiedenen Tools bietet Home Assistant eine ganzheitliche Lösung für die Zeiterfassung im beruflichen und privaten Umfeld. Nutzer können bewusster und effektiver mit ihrer Zeit umgehen weil intelligente Zeiterfassung arbeitet vollautomatisch.

Um die Intelligente Zeiterfassung mit Home Assistant einzurichten, ist es zunächst erforderlich, eine Tracking-App auf deinem mobilen Gerät zu installieren. Es gibt verschiedene Optionen, wie zum Beispiel Life360, Geofency oder iCloud3 speziell für iOS Geräte. Hier sind Schritte, die du befolgen kannst beim App Installation:

  1. Life360:
    • Besuche den App Store (iOS) oder Google Play Store (Android) auf deinem Mobilgerät.
    • Suche nach „Life360“ und installiere die App.
    • Melde dich an oder erstelle ein neues Konto.
    • Richte Standortfreigaben für die gewünschten Personen (z. B. Familienmitglieder) ein.
    • Home Assistant Integration ist hier beschrieben.
  2. Geofency:
    • Gehe zum App Store (iOS) oder Google Play Store (Android) auf deinem Mobilgerät.
    • Suche nach „Geofency“ und installiere die App.
    • Öffne die App und richte Geofences für die Orte ein, an denen du die Zeit verfolgen möchtest.
    • Home Assistant Integration ist ganz einfach: Einstellungen >> Geräte & Dienste >> Integration hinzufügen (rechts unten) und nach Geofency suchen (siehe auch hier).
  3. iCloud3:
    • iCloud3 ist eine spezielle Home Assistant Komponente für die Integration von iCloud. Folge den Anweisungen in der Simon42 Blog für die Einrichtung. Wichtig ist nur das du iCloud3 v3 Version verwendest.

Du hast jetzt Tracking App deine Wahl in HA eingebunden und jetzt solltest (wenn nicht vorhanden) die Zonen für Intelligente Zeiterfassung einrichten.

Intelligente Zeiterfassung – Home Assistant Zonen

Das Einrichten von Zonen in Home Assistant ermöglicht es dir, auf bestimmte Standortänderungen zu reagieren oder Aktionen auszulösen, wenn sich ein Gerät in einer bestimmten geografischen Zone befindet. Hier sind die Schritte, um Zonen in Home Assistant einzurichten:

Du kannst die Zonen für verschiedene Automatisierungen und Komponenten in Home Assistant nutzen. Zum Beispiel könntest du Lichter steuern oder Alarmanlage ausschalten, wenn jemand nach Hause kommt, oder die Heizung ausschalten, wenn alle Mitglieder deiner Familie die Zone „Unterwegs“ betreten.
Intelligente Zeiterfassung mit HA - Zonen

Wie du sehen kannst (Bild oben), habe ich 2 Zonen (Zuhause und Arbeit) unter Einstellungen >> Bereiche & Zonen eingerichtet. So kann ich jetzt z.B. meine Arbeitszeiten automatisch per Tracking erfassen. Hier ist wichtig noch zu erwähnen das du mehr als nur 2 Zonen erstellen und verwalten kannst, z.B. wenn deine Arbeit mehr als nur einen Standort hat.

History Stats für Intelligente Zeiterfassung erstellen

In Home Assistant ermöglicht die Integration history_stats das Erstellen von Sensoren, die statistische Informationen auf der Grundlage historischer Daten anzeigen. Dies ist nützlich, um Trends, Durchschnittswerte und andere Metriken im Laufe der Zeit zu verfolgen.

Füge einen Abschnitt für history_stats in deiner configuration.yaml Datei hinzu. Hier ist ein Beispiel für Intelligente Zeiterfassung:

   # HA Intelligente Zeiterfassung
sensor:
  - platform: history_stats
    name: "Arbeit (heute)"
    entity_id: device_tracker.mladen_iphone11
    state: "Arbeit"
    type: time
    start: "{{ now().replace(hour=0,minute=0, second=0)}}"
    end: "{{ now()}}"

Die configuration.yaml Datei kannst direkt über den „File Editor“ oder „Visual Studio Code“ in der Home Assistant bearbeiten, beachte nur das history_stats ein Sensor ist, wenn schon Sensoren hast solltest erste Zeile rauslassen und Rest unter sensor: platzieren. Fett markierte Codeteil solltest mit deinen Tracker-Sensor austauschen. Die Zeiterfassung beträgt 24 Stunden, von 00:00 Uhr bis 24:00 Uhr.

Das Bearbeiten über den „File Editor“ in der Benutzeroberfläche ist praktisch und erfordert keine externen Texteditoren. Beachte jedoch, dass bei größeren Bearbeitungen oder bei der Fehlersuche ein spezialisierter Texteditor wie „Visual Studio Code“ immer noch hilfreich sein kann.

Nachdem du die Datei bearbeitet hast, kannst du sie speichern und Home Assistant neu starten, um die Änderungen zu übernehmen. Wenn es Probleme gibt, wird Home Assistant vor Neustart darauf hinweisen.

smart home & more YouTube Kanal von Tobias Lerch

Dashboard und Intelligente Zeiterfassung

Um eine „Intelligente Zeiterfassung“ in dein Home Assistant Dashboard mit ApexCharts Card einzubinden, könntest du zum Beispiel folgendermaßen vorgehen:

  1. HACS (Home Assistant Community Store) öffnen:
    • Gehe in der Home Assistant Benutzeroberfläche zum Tab „HACS“.
  2. HACS durchsuchen:
    • Suche nach „ApexCharts Card“ im „Frontend“.
  3. Addon installieren:
    • Finde das „ApexCharts Card“ Add-on und klicke auf „Installieren“ bzw. „Download“.
    • Warte, bis die Installation abgeschlossen ist.
    • Browser Cache leeren (F5) oder HA neu starten.
HA Intelligente Zeiterfassung - ApexCharts
  1. Integration in Lovelace UI:
    • Gehe zu deinem Lovelace UI (Dashboard bearbeiten).
    • Erstelle eine neue Dashboard Menüpunkt oder öffne ein bestehendes Menüpunkt.
    • Füge eine neue Karte hinzu.
    • Wähle „ApexCharts Card“ aus.
    • Lösche jetzt auf linke Seite Kartenkonfiguration und füge eigene Code ein.
# Intelligente Zeiterfassung HA ApexCharts Card
type: custom:apexcharts-card
stacked: true
apex_config:
  char:
    height: 180px
header:
  show: true
  title: Arbeitszeiten
  show_states: true
  colorize_states: true
graph_span: 7d
span:
  end: day
series:
  - entity: sensor.mladen_arbeit_heute
    type: column
    color: green
    opacity: 0.7
    unit: h
    group_by:
      func: last
      duration: 1d
      fill: zero

Fett markierte Codeteil musst du natürlich gemäß deine Sensor anpassen und kannst schon Charts sehen. Jetzt ist noch Frage geblieben, wie erfassen wir dann Home Office Stunden? Dafür müssen wir uns ein „Helfer“ erstellen, Einstellungen >> Geräte & Dienste >> Helfer. Hier klickst auf „Helfer erstellen„, wählst du „Schalter“ aus und gibst ihm Name „Home Office„, speichern und somit ist Helfer erstellt.

41jfEpS8AaL. SL75

Raspberry Pi 5 4Gb

Price: 74,41 €

44 used & new available from 68,91 €

Für „Home Office“ Helfer erstellen wir auch history_stats Code und fügen ihm in configuration.yaml unter sensor ein.

# HA Intelligente Zeiterfassung
- platform: history_stats
    name: "Home Office"
    entity_id: input_boolean.home_office
    state: "on"
    type: time
    start: "{{ now().replace(hour=0,minute=0, second=0)}}"
    end: "{{ now() }}"

Wir erstellen noch ein Helfer welche uns die Zeiten zusammen addiert, wenn du z.B. 1/2 Tag Home Office hast und der Rest in Firma verbringst. Der Helfer ist in dem Fall „Template“ und dann wählst du „Template für einen Sensor erstellen„, Name vergeben (z.B. Summe der Arbeitszeiten) und Maßeinheit ist h (Stunde). Als Zustandstemplate fügst du folgendes Code ein:

# HA Intelligente Zeiterfassung (Helfer)
{% set total = states('sensor.arbeit') | float + states('sensor.home_office') | float %}
{{ total }}

Fett markierte Stellen musst du gemäß deinen Sensoren anpassen. Weil du neue Sensor „Home Office“ erstellt hast, musst auch ApexCharts Card zusätzlich anpassen.

# HA Intelligente Zeiterfassung (Apex Charts)
- entity: sensor.home_office
    type: column
    color: blue
    opacity: 0.7
    unit: h
    group_by:
      func: last
      duration: 1d
      fill: zero 

Füge die Code am Ende deine ApexCharts Card ein. Zusätzlich kannst noch in deine Dashboard auch die zwei erstellten Helfer einfügen:

  • Home Office Schalter
  • Summe der Arbeitszeiten
Intelligente Zeiterfassung - Home Office Schalter

So kannst „Home Office“ Schalter betätigen (An | Aus) wenn du Zuhause arbeitest und deine Home Office Stunden werden dann erfasst.

Tagesbericht für Intelligente Zeiterfassung (Optional)

Am Ende kannst du dir noch eine Automatisierung erstellen welche dann eine Zusammenfassung noch per z.B. Email oder als HA Benachrichtigung senden. Unter Einstellungen >> Automatisierungen & Szenen erstellst eine neue Automatisierung, klickst oben rechts auf drei Punkte (Als YAML bearbeiten) und fügst folgendes Code ein:

# Intelligente Zeiterfassung (Benachrichtigung)
alias: Arbeitszeit senden
description: ""
trigger:
  - platform: time
    at: "00:00:00"
condition: []
action:
  - service: notify.persistent_notification
    data:
      title: Arbeitszeiten am Tag
      message: >-
        {{ now().strftime('%d.%m.%Y') }} : Summe: {{
        states('sensor.summe_der_arbeitszeiten') }} h Arbeitszeit: {{
        states('sensor.arbeit') }} h Home Office: {{
        states('sensor.home_office') }} h
mode: single 
Benachrichtigungen für Intelligente Zeiterfassung

Fazit:

Durch die Integration dieser Daten in dein Smart Home System kannst du nicht nur automatisierte Zeiterfassung und Automatisierungsvorteile genießen, sondern auch benutzerdefinierte Dashboards erstellen, um die Informationen übersichtlich anzuzeigen. Wichtig ist dabei stets der respektvolle Umgang mit Datenschutz und die Einhaltung der Privatsphäre der Nutzer.

(Visited 258 times, 1 visits today)

2 Gedanken zu „Intelligente Zeiterfassung mit Home Assistant

  1. smart home & more

    Vielen Dank für die sehr detaillierte Beschreibung und Umsetzung und natürlich auch die Verlinkung meines Videos in Ihrem Blog. Klasse umgesetzt 🙂
    Beste Grüße Tobias Lerch

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert