Skip to content

Patresss/HomeOffice---Home-Assistant

Repository files navigation

HomeOffice - Home Assistant

Windows application for notification of household members about the status of working from home. It has an automatic process that, based on working hours and the registry, sets the appropriate status to Home Assistant depending on whether you are available, working, having a meeting with or without a camera

Download - 1.0.1 version

Installation

  1. Install the application (but please do not select the system path like C:\Program Files otherwise you will have to run the application as administrator) it will create the config/settings.yaml file
  2. Set up the config/settings.yaml file:
  3. Run the application again
  4. Add the input_select to Home Assistant
input_select:
   work_status:
   name: Work status
   icon: mdi:briefcase
   options:
    - Available
    - Working
    - Meeting - microphone
    - Meeting - camera
    - Turn off

a) You can rename "work_status" but you have to override homeAssistant.entityName in the config/settings.yaml file b) You can options but you have to override homeAssistant.*OptionName in the config/settings.yaml file 5. Now you can change your work status using buttons 6. I would recommend adding this app to startup

Options

  • AVAILABLE - change input_select.work_status to Available
  • WORKING - change input_select.work_status to Working
  • MEETING (MICROPHONE ONLY) - change input_select.work_status to Meeting - microphone
  • MEETING (WITH WEBCAM) - change input_select.work_status to Meeting - camera
  • AUTOMATION - change input_select.work_status according to Automatic mode
  • TURN OFF - change input_select.work_status to Turn off

Automatic mode

  • AVAILABLE - outside working hours
  • WORKING - during working hours
  • MEETING (MICROPHONE ONLY) - when a microphone in use is detected
  • MEETING (WITH WEBCAM) - when a webcam in use is detected

Settings

Home Assistant

homeAssistant:
  token: <Long-Lived Access Tokens>
  homeAssistantUrl:  <url like http://127.0.0.1:8123 or http://homeassistant-my-dns:8123>
  entityName: <input_select entity name>
  availableOptionName: <Available option name>
  workingOptionName: <Working option name>
  meetingMicrophoneOptionName: <Meeting - microphone option name>
  meetingCameraOptionName: <Meeting - camera option name>
  turnOffOptionName: <Turn off option name>```

window

window:
  pinned: <pinned - true if you want the application to always be displayed on the screen> # Example: true
  enablePreviousPosition: <pinned - true if you want the application to be in the same position after restart> # Example: true
  positionX: <Position X - X position on the screen> # Example: 200
  positionY: <Position Y - Y position on the screen> # Example: 200

workingTime

workingTime:
  days: <working days of the week> # Example: - "MONDAY" \n - "TUESDAY"
  start: <start - working hour> # Example: "09:00"
  end: <end - working hour> # Example: "17:00"

Other

currentMode: <current mode>
automationFrequencySeconds: <refreshing period when automation mode>

My Home Assistant card:

type: vertical-stack
cards:
  - type: custom:mushroom-title-card
    title: Dzień dobry, {{ user }}!
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        icon: >-
          {% if is_state("input_select.work_status", "Available") -%}
            mdi:check
          {% elif is_state("input_select.work_status", "Working") -%}
            mdi:briefcase
          {% elif is_state("input_select.work_status", "Meeting - microphone")
          -%}
            mdi:microphone
          {% elif is_state("input_select.work_status", "Meeting - camera") -%}
            mdi:camera
          {% elif is_state("input_select.work_status", "Turn off") -%}
            mdi:home
          {%- endif %}
        content: >-
          {% if is_state("input_select.work_status", "Available") -%}
            Patryk jest dostępny
          {% elif is_state("input_select.work_status", "Working") -%}
            Patryk pracuje
          {% elif is_state("input_select.work_status", "Meeting - microphone")
          -%}
            Patryk ma spotkanie - mikrofon
          {% elif is_state("input_select.work_status", "Meeting - camera") -%}
            Patryk ma spotkanie - kamera
          {% elif is_state("input_select.work_status", "Turn off") -%}
            Patryk nie pracuje
          {%- endif %}
        icon_color: >-
          {% if is_state("input_select.work_status", "Available") -%}
            green
          {% elif is_state("input_select.work_status", "Working") -%}
            orange
          {% elif is_state("input_select.work_status", "Meeting - microphone")
          -%}
            red
          {% elif is_state("input_select.work_status", "Meeting - camera") -%}
            purple
          {% elif is_state("input_select.work_status", "Turn off") -%}
            black
          {%- endif %}

Built With

License

This project is licensed under the Apache License 2.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published