All Projects → black-roland → homeassistant-microsoft-todo

black-roland / homeassistant-microsoft-todo

Licence: MIT license
The integration allows you to create tasks in Microsoft To Do from Home Assistant.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to homeassistant-microsoft-todo

ledfxrm
Custom Integration for Home Assistant to control a any (local/remote) LedFX-server - State: beta
Stars: ✭ 31 (-63.95%)
Mutual labels:  homeassistant, homeassistant-integration
landroid cloud
Landroid Cloud component for Home Assistant
Stars: ✭ 91 (+5.81%)
Mutual labels:  homeassistant, homeassistant-integration
hass-miwifi
MiWiFi for Home Assistant
Stars: ✭ 116 (+34.88%)
Mutual labels:  homeassistant, homeassistant-integration
cookiecutter-homeassistant-custom-component
Cookiecutter template for Home Assistant custom component
Stars: ✭ 37 (-56.98%)
Mutual labels:  homeassistant, homeassistant-integration
home-assistant-miele
Miele integration for Home assistant
Stars: ✭ 101 (+17.44%)
Mutual labels:  homeassistant, homeassistant-integration
eufy security
Home Assistant integration to manage Eufy Security devices as cameras, home base stations, doorbells, motion and contact sensors.
Stars: ✭ 242 (+181.4%)
Mutual labels:  homeassistant, homeassistant-integration
ha-google-home
Home Assistant Google Home custom component
Stars: ✭ 285 (+231.4%)
Mutual labels:  homeassistant, homeassistant-integration
gitlab task manager
Microsoft Todo inspired task manager leveraging Gitlab's Issue Tracker as the backend
Stars: ✭ 22 (-74.42%)
Mutual labels:  todo, microsoft-todo
wyzesense2mqtt
Configurable WyzeSense to MQTT Gateway intended for use with Home Assistant or other platforms that use MQTT discovery mechanisms.
Stars: ✭ 55 (-36.05%)
Mutual labels:  homeassistant, homeassistant-integration
ha-nicehash
NiceHash Home Assistant Integration
Stars: ✭ 20 (-76.74%)
Mutual labels:  homeassistant, homeassistant-integration
homeassistant-peloton-sensor
A platform which allows you to get current and past ride data from Peloton into HomeAssistant
Stars: ✭ 45 (-47.67%)
Mutual labels:  homeassistant, homeassistant-integration
thermal
Thermal Vision Sensor and Camera for Home Assistant
Stars: ✭ 43 (-50%)
Mutual labels:  homeassistant, homeassistant-integration
Neon.HomeControl
Home Automation System, similar to HomeAssistant but made with .net core and ❤️
Stars: ✭ 46 (-46.51%)
Mutual labels:  homeassistant
hassio-addons
My homeassistant addons
Stars: ✭ 646 (+651.16%)
Mutual labels:  homeassistant
addon-magicmirror
MagicMirror² - Home Assistant Community Add-ons
Stars: ✭ 40 (-53.49%)
Mutual labels:  homeassistant
ha-gosenseapp
Application that uses the gosense library to discover and publish sensor information to HA via MQTT
Stars: ✭ 38 (-55.81%)
Mutual labels:  homeassistant
midea-ac-py
This is a library to allow communicating to a Midea appliance via the Midea cloud.
Stars: ✭ 72 (-16.28%)
Mutual labels:  homeassistant
todo
A simple, cross-platform todo application in C
Stars: ✭ 22 (-74.42%)
Mutual labels:  todo
ha-birthdays
Birthday integration for HomeAssistant
Stars: ✭ 14 (-83.72%)
Mutual labels:  homeassistant
ESPHome-Devices
A collection of ESPHome custom components, configuration files, and custom code for my various ESP8266/ESP32 devices that integrate with Home Assistant.
Stars: ✭ 83 (-3.49%)
Mutual labels:  homeassistant

Microsoft To Do integration for Home Assistant

The integration brings your Microsoft To Do tasks into Home Assistant and allows creating new tasks.

Work in progress

Work is still in progress and there might be breaking changes. Tasks for the 1st release are tracked on the MVP board.

Installation

This component can be installed using HACS. Simply add a custom repository black-roland/homeassistant-microsoft-todo and install the integration.

Alternatively, that's possible to copy the content of the custom_components to the config directory.

Setup

To get access to Microsoft To Do API you need to register an application in Azure:

  1. Open Azure portal;
  2. Go to app registrations:
    App registrations
  3. Register a new personal app and obtain client ID and secret:
    App registration and credentials
  4. Add a redirect URI: https://[YOUR HOME ASSISTANT URL:PORT]/api/microsoft-todo, replace [YOUR HOME ASSISTANT URL:PORT] with the domain name and port of our Home Assistant instance:
    Redirect URI
    To be able to authenticate please make sure that Home Assistant URL is configured properly and your browser can access the redirect URL (it doesn’t have to be accessible from the Internet, it can be even localhost).

Configuration

Add the following section to your configuration.yaml file:

calendar:
  - platform: microsoft_todo
    client_id: YOUR_CLIENT_ID
    client_secret: YOUR_CLIENT_SECRET

Restart Home Assistant and finalize authorization through UI. There should be a new configuration request in notifications.

NOTE: After successful auth please restart your Home Assistant again (it's known issue #10).

Services

To create a task in Microsoft To Do you can call microsoft_todo.new_task service.

Simple example:

- service: microsoft_todo.new_task
  data:
    subject: "Test task"
    list_name: "Home Assistant"

Automation example:

automation:
  - alias: "Remind to pay utility bill"
    trigger:
      platform: time
      at: "00:00:00"
    condition:
      condition: template
      value_template: "{{ now().day == 1 }}"
    action:
      - service: microsoft_todo.new_task
        data_template:
          subject: "Pay utility bill for {{ now().replace(month=now().month - 1).strftime('%B') }}" # previous month name
          list_name: "Home Assistant"
          note: "Pay online: http://example.com/pay/"
          due_date: "{{ now().strftime('%Y-%m-09') }}" # due 9th
          reminder_date_time: "{{ now().strftime('%Y-%m-%dT17:00:00') }}" # at 17:00 today

Calendar sensors

The integration creates sensors for each to-do list with tasks exposed as all_tasks attribute. You can find sensors on the Developer Tools page prefixed with calendar..

Sensors can be used in automations:

automation:
  - alias: "Remind to buy groceries after work"
    trigger:
      platform: state
      entity_id: person.bob
      from: "office"
      to: "away"
    condition:
      condition: template
      value_template: "{{ state_attr('calendar.shopping_list', 'all_tasks') | length > 0 }}"
    action:
      - service: notify.email_bob
        data:
          title: "Shopping list"
          message: "Don't forget to check your shopping list before going home"

Or sensors can be used in Lovelace. There are multiple ways to show your tasks: by simply using ssmorris/lovelace-attribute-list-view card or by adding a custom markdown card with Jinja template:

type: markdown
content: |-
  {% for task in state_attr('calendar.PUT_YOUR_LIST_NAME_HERE', 'all_tasks') -%}
  - {{ task }}
  {% endfor %}
title: To Do

Markdown card

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].