Mit Home Assistant eine automatische Arbeitszeiterfassung umsetzen

YouTube player

Dieses Video soll Einblicke im erweiterten Umgang mit Home Assistant , ApexChartCard, Templates und Abfragen und die Nutzung von Device Tracking Diensten geben. Wie automatisiere ich meine persönliche Dokumentation einer Arbeitszeiterfassung. Wie das mit Automatisierung funktionierten kann, erklärt dieses Video.

Beschreibung Home Assistant History Stats: History Stats – Home Assistant (home-assistant.io)

Wie du HACS installierst wird dir hier erklärt:

YouTube player

HACS Integration Apex Charts-Card: GitHub – RomRider/apexcharts-card: 📈 A Lovelace card to display advanced graphs and charts based on ApexChartsJS for Home Assistant

Code Beispiel configuration.yaml für history_stats

sensor: 

  - platform: history_stats
    name: "Tobias ist auf der Arbeit (heute)"
    entity_id: device_tracker.tobias  # Eure Entitäts ID eines Device Trackers
    state: 'Arbeit' # die Entität muss den Status Arbeit haben 
    type: time
    start: '{{ now().replace(hour=0, minute=0, second=0) }}' # Startzeitpunkt der Aufnahme
    end: '{{ now() }}' # geht immer so lange, wie der Status Arbeit ist
    
  - platform: history_stats
    name: "Tobias ist im Home Office" 
    entity_id: input_boolean.home_office # Entität Schalter - Home Office 
    state: 'on' # Der Schalter muss umgelegt sein
    type: time
    start: '{{ now().replace(hour=0, minute=0, second=0) }}' # ist der Schalter umgelegt, beginnt die Aufzeichnung der Zeit
    end: '{{ now() }}' # sie endet, wenn der Schalter wieder umgelegt wird.

ApexCharts-Kartenkonfiguration:

type: custom:apexcharts-card
stacked: true
apex_config:
  char:
    height: 180px
header:
  show: true
  title: Arbeitzeiten (heute)
  show_states: true
  colorize_states: true
graph_span: 7d
span:
  end: day
series:
  - entity: sensor.tobias_ist_auf_der_arbeit_heute
    type: column
    color: green
    opacity: 0.7
    unit: h
    group_by:
      func: last
      duration: 1d
      fill: zero
  - entity: sensor.tobias_ist_im_home_office
    type: column
    color: blue
    opacity: 0.7
    unit: h
    group_by:
      func: last
      duration: 1d
      fill: zero

Home Assistant Helfer Template ( Summe der Arbeitszeiten) :

{% set total = states('sensor.tobias_ist_auf_der_arbeit_heute')|float + states('sensor.tobias_ist_im_home_office')|float %}
{{ total }}

Automatisierung Arbeitzeit senden (hier ist die Message wichtig. Diese könnt ihr für WhatsApp, Email etc.. verwenden )

alias: Arbeitszeit senden
description: ""
trigger:
  - platform: time
    at: "00:00:00"
condition: []
action:
  - service: notify.persistent_notification
    data:
      message: >-
        {{ now().strftime('%d.%m.%Y') }} : Summe: {{
        states('sensor.summe_der_arbeitzeiten') }}h Office: {{
        states('sensor.tobias_ist_auf_der_arbeit_heute')}} h Home-Office: {{
        states( 'sensor.tobias_ist_im_home_office') }}h 
      title: Arbeitzeit am Tag
mode: single