Homeassistant: Automatisch Arbeitszeit erfassen

Homeassistant: Automatisch Arbeitszeit erfassen

Ich möchte gerne meine Arbeitszeit automatisch erfassen und über eine Statistik auswerten können.

Der Plan

  • Wenn Arbeit betreten wird soll Zeit erfasst
  • Wenn die Arbeit verlassen wird, soll die Messung beendet werden
  • Bei Verlassen voll eine Benachteiligung auf das Smartphone geschickt werden

Zonen

Die Arbeit wird in Homeassistant als Zone eingetragen, damit die Standorterkennung als Standort nicht Abwesend anzeigt sondern Arbeit.

Code

Über den File Editor wird in die configuration.yaml folgendes eingefügt:

sensor: 

  - platform: history_stats
    name: "stat_arbeit"
    entity_id: device_tracker.iphone_von_x
    state: 'Arbeit'
    type: time
    start: '{{ now().replace(hour=0, minute=0, second=0) }}'
    end: '{{ now() }}'

Dieser Sensor erstellt eine Statistik mit der Entity "stat_arbeit" als Medium für den Standort wird das Smartphone ausgewählt. Bei state wird der Name der Zone Angegeben. Beim Start wird die Zeit überschrieben.

Benachrichtigung über die APP

Dafür wird die automations.yaml im Fileeditor bearbeitet und folgender Code eingefügt.

- id: '1707139092390'
  alias: Tages Arbeitszeit
  description: ''
  trigger:
  - platform: zone
    entity_id: device_tracker.iphone_von_x
    zone: zone.arbeit #Zonen ID
    event: leave
  condition: []
  action:
  - service: notify.mobile_app_iphone_von_x
    metadata: {}
    data:
      title: Arbeitszeit
      message: '{{ states(''sensor.stat_arbeit'') }}'
  mode: single

Nun wird bei dem Verlassen der Arbeit eine Message mit dem Titel Arbeitszeit und der Arbeitszeit verschickt.