Giter VIP home page Giter VIP logo

o365-homeassistant's Introduction

PTST's GitHub stats

o365-homeassistant's People

Contributors

dependabot-preview[bot] avatar ptst avatar rogerselwyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

o365-homeassistant's Issues

Implement the Home Assistant CalendarEventDevice

Is your feature request related to a problem? Please describe.
The new overhaul of the integration is great and I can already receive the events.
To use existing lovelace calendar cards, the calendar events have to be returned in a format which is the same for all home assistant calendars. Those are defined in the CalendarEventDevice (
https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/calendar/__init__.py)

I would assume that's also necessary for the component to be accepted as official hass component (but that's just my opinion).

It seems like all the methods are already existing in your component, they just need to be wired up and the event converted to the standard hass event format.

For implementation hints you could also check the caldav component:
https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/caldav/calendar.py

upgrade stopped working 2.16

After updating to 2.16 I get the following below.
I deleted the cache token, and the calendar yaml only to have the same error after re-configuring.
Rolling back to 2.15 fixes the issue and allows the component to work, but I'd like to be able to update.

Logger: homeassistant.components.calendar
Source: custom_components/o365/calendar.py:130
Integration: Calendar (documentation, issues)
First occurred: 8:40:17 AM (1 occurrences)
Last logged: 8:40:17 AM

o365: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 322, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 470, in async_device_update
await self.async_update()
File "/config/custom_components/o365/calendar.py", line 130, in async_update
events = list(await hass.async_add_executor_job(self.data.o365_get_events,
NameError: name 'hass' is not defined

Calendars not retrieving data

Problem:

The integration stopped working for me.
I can't pinpoint exactly when, but here is the scenario:

  • Client ID & secret are correct;

  • Application is authorized;

  • o365_calendars.yaml is being (re-)created;

  • Requested calendars are being registered in HA;

  • No data is retrieved from office 365 calendar (data attribute remains empty), even there is data present.

This last step is where it goes wrong.
I have 3 calendars listed, all filled with data the next 24hrs, but none is showing any events.

offset_reached: false
data: 
friendly_name: myCalendar
- cal_id: !secret
  entities:
  - device_id: myCalendar
    end_offset: 24
    name: My Calendar
    start_offset: 0
    track: true

Versions

Home Assistant Version: 0.109.6
o365 version: v2.1.7
System | HassOS 3.13

No issue other than lack of documentation for the not so bright ones (me).

First I would like to thank you for the work done. This might be the solution I have been looking for. :) The manual installation went fine... but I'm not sure about the configuration of this thing.

I travel a lot for work and I want to use my o365 calendar entries as a base for setting travel_mode in HA. In Outlook I always add an event with the subject "Hotel" at 18:00 to 18:00, same day.
What I want is for the o365 Integration pick this up and set the sensor to on thus letting HA know that I'm not coming home. Would work nice in a bayesian sensor.

This is what I have in my o365_calendar_.yaml. Is this file to be stored in the same folder as configuration.yaml btw?

`- cal_id: xxxx
entities:

  • device_id: calendar_work
    end_offset: 24
    name: Calendar
    search: Hotel
    start_offset: 0
    track: true`

cal_id... Where to I find this o365 unique generated ID?
start_offset and end_offset... I can't wrap my head around those.

Under Entities in HA I found several calendars, my calendars and shared. I only want the one calendar I define in o365_calendar.yaml. I understand that I have not configured it correctly. Will the calendars I do not set cal_id be removed automatically?

This is what I have in configuration.yaml. I have no need for e-mail, only calendars.
o365: client_secret: "removed" client_id: "removed"

Did I remove too much or is this OK?

Thank you in advance.

Invalid Timezone

Describe the bug
The integration is setup and access is granted. But when restarting HASS I get the below error:

office365calendar: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 299, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 461, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/office365calendar/sensor.py", line 248, in update
    self._state = self.device_state_attributes["event_active"]
  File "/config/custom_components/office365calendar/sensor.py", line 149, in device_state_attributes
    limit=999, query=query, include_recurring=True
  File "/usr/local/lib/python3.7/site-packages/O365/calendar.py", line 1680, in <genexpr>
    for event in data.get('value', []))
  File "/usr/local/lib/python3.7/site-packages/O365/calendar.py", line 873, in __init__
    cc('recurrence'), None))
  File "/usr/local/lib/python3.7/site-packages/O365/calendar.py", line 125, in __init__
    get_windows_tz(self.protocol.timezone))
  File "/usr/local/lib/python3.7/site-packages/O365/utils/windows_tz.py", line 642, in get_windows_tz
    "Can't find Iana TimeZone " + iana_tz.zone)
pytz.exceptions.UnknownTimeZoneError: "Can't find Iana TimeZone local"

Installation method (please select one):

  • HACS
  • Manual Installation

Additional context
Add any other context about the problem here.

  • Home assistant logs attached

The reply URL specified in the request does not match the reply URLs configured for the application

Hi,

I'm getting this message but i'm 100% sure the URL is the same.

I've tried multiple settings but i can't get this to work, while it has worked in a previous version before it was a HACS component.

I've tried enabling both internal and external URL's, checked the certificate and recreated the azure config multiple times according to readme but no luck.

It it the port number, or is this component still using the base_url for initial configuration?

Here is my config;
#  external_url: "https://home.domain.eu:8123"
#  internal_url: "http://10.0.0.10:8123"
  internal_url: "https://home.domain.eu:8123"

Here's some messages from my log:

2020-05-29 16:51:19 WARNING (SyncWorker_14) [custom_components.o365.utils] Could not loacte token at .O365-token-cache/o365.token
2020-05-29 16:51:19 WARNING (SyncWorker_14) [homeassistant.components.http] Detected use of deprecated base_url property, use homeassistant.helpers.network.get_url method instead. Please report issue for http using this method at homeassistant/components/http/init.py, line 136: for frame in reversed(extract_stack()):
2020-05-29 16:51:19 WARNING (SyncWorker_14) [custom_components.o365.utils] Could not loacte token at .O365-token-cache/o365.token
2020-05-29 17:27:32 WARNING (MainThread) [homeassistant.components.webhook] Received message for unregistered webhook

Use external URL for Auth Flow for Nabu Casa

I noticed, that when I hardcode my external URL from Nabu Casa into the component, I can use the standard auth flow - the same when I set my external URL as internal URL. Without that I could only use the alternative auth flow.
It would be nice to either have a checkbox to use the external URL or an input field for a custom URL to use (or maybe there's even a better solution).

Issues with this long awaited integration (Redirect uri is not valid)

Hi Patrick,
my issue as mentioned in the community:
I installed according the instructions. I get the request to verify (capture_1)
When I click I get to fill out my username and then I get an error (cap_2)
See setting in Azure. (cap_3 and cap_4)

Also attached my log file.

I really would like this to work so any help is appreciated!
Thank you.
Eric

Capture_1
Capture_2
Capture_3
Capture_4
home-assistant.log

hassio unstable because of IO loop

2020-05-09 08:51:45 WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for o365 doing I/O at custom_components/o365/calendar.py, line 158: limit=self.limit, query=query, include_recurring=True

Got this error like 1000 of times and hassio works unstbale because of this
how to fix?

start and end offset are ignored

I have the following configuration:

- device_id: WorkFromHome end_offset: 24 name: Work From Home start_offset: -24 track: true search: "WFH"

Today is may 5th, at 22:56 EDT

I've added the following _LOGGER calls to calendar.py
def o365_get_events(self, start_date, end_date): query = self.calendar.new_query("start").greater_equal(start_date) query.chain("and").on_attribute("end").less_equal(end_date) if self.search is not None: query.chain("and").on_attribute("subject").contains(self.search) _LOGGER.warning("HERE") _LOGGER.warning(query)

The results of the _Logger calls are as follows:

2020-05-05 22:56:33 WARNING (MainThread) [custom_components.o365.calendar] HERE
2020-05-05 22:56:33 WARNING (MainThread) [custom_components.o365.calendar] Filter: start/dateTime ge '2020-05-05T04:00:00+00:00' and end/dateTime le '2020-05-06T04:00:00+00:00' and contains(subject, 'WFH')

Start and end times are still midnight even though they should be May 4th at 22:56 and May 6th at 22:56

I believe the issue is in the below snippet of code, and I don't believe the :

@Throttle(MIN_TIME_BETWEEN_UPDATES) def update(self): results = self.o365_get_events( dt.start_of_local_day(), dt.start_of_local_day() + timedelta(days=1) )

However, I haven't changed it as I'm not a 100% sure, and don't know if it will affect other parts of the component. I do have a WFH event in my calendar, recurring each day so it should be finding the event.

I also wonder if this is correct:

async def async_update(self): self.data.update() event = copy.deepcopy(self.data.event) if event is None: self._event = event return

This returns no event, then exits the method and doesn't attempt to the rest of the method.

I'm not a HA developer (yet) and as such don't fully understand everything going on here, but it does appear to me that the only time my search phrase is looked for my offsets are ignored.

Let me know if I can provide anything else you may need to help resolve this issue.

Support multiple accounts

Feature request: ability to configure and link multiple accounts - e.g. corporate and private o365 account. Scanning the code briefly, this likely requires some significant refactoring.

help with o365

This may seems stupid
buth the only thing i get from my calendars entitys is false /true
how do i actually get "data" from the calendar into the lovelace?

Feature requests

Let me know if I should break these into different requests.

Sensor for next event: I'd like to be able to get the next event, ignoring the current one if there is currently an event.

Allow offset to be minutes: Add a flag H or M to indicate that the offset is Minutes or Hours, default Hours

Ignore OOO: I have some blocked time in my work calendar marked as OOO to prevent being scheduled for meetings, would like to use this value in conjunction with the above get next event

Ignore Free Events: Same as OOO, but a couple things in my calendar I check for with HA just to denote if I'm working that day

All day event prevents filtered event from being found

Not sure if this is related to issue 61, but since it broke today I'm entering a new issue.

I have the following configuration, which was working fine for last week or so. Event is set up recurring at 6:30-7:30am

Today I have an all day event, and with that there the WFH event wasn't found. Actually all my events aren't found, Both of the templates below always return values for the all day event.

  • device_id: WorkFromHome
    end_offset: 24
    name: Work From Home
    start_offset: -24
    track: true
    search: "WFH"

  • platform: template
    sensors:
    timetonextmeeting:
    friendly_name: Time to next meeting
    entity_id: sensor.time
    value_template: >-
    {% if states.calendar.work.attributes.start_time %}
    {{((as_timestamp(states.calendar.work.attributes.start_time) - as_timestamp(now())) / 60) | default(99) | int }}
    {%- else -%}
    0
    {%- endif %}

    titlenextmeeting:
    friendly_name: Next Meeting Title
    entity_id: sensor.time
    value_template: >-
    {% if states.calendar.work.attributes.start_time %}
    {{states.calendar.work.attributes.message}}
    {%- else -%}
    0
    {%- endif %}

All-day calendar events are not identified as "all day"

If a calendar event is marked as 'all day' within Office 365, this is not correctly translated to the all_day attribute on the corresponding calendar entity.

The correct value can be seen within the calendar's data attribute, however. Where is_all_day is correctly marked as true (see attached image).

Not sure if there is some bug because I also tagged the event as "Out of Office" โ€“ just worth noting for debugging.

image

Feature request:- Implement orderBy in query sensor

Was very pleased to get this integration up and running - with the new 2FA methods using the IMAP email sensor is not an option for me, and this one works so well.

I was wondering how complex it would be to include the orderBy clause in the query sensor configuration? I'm not a python coder, but it looks like this is implemented in the python-o365 package so hopefully a minor change on this end.

My use case is I've got a flow in Node red that triggers on boot or when a new email matching a subject arrives. Extracting a word from the body of the email I can then set a binary sensor to the appropriate state. I only want to return a single email (max_items: 1), and I don't care if it's read or unread (again easy to do with the options). However, I've not got a choice over which order it returns them in, and by default it appears to be returning the oldest email first when I really need the newest.

I can do a temporary workaround by returning more items and then using a function to find the newest, but would be much cleaner if I could use the full power of the odata query parameters to only return the email of interest.

Office 365 Calendar Sensor

Update a binary switch on home assistant setting whether there is a event in time frame that is matching some string or not.
I would like to be able to modify the behavior of some automation depending on whether I am working at home or at the office. Example at 6:00, if I have to go to the office I have to get up, otherwise it can wait...

[BUG]JSON format wrong?

When I want to parse the location data from the JSON value, HA returns nothing.
This might be due to bad JSON formatting from the sensor?

When I use the following template:

{{ states.sensor.my_calendar.attributes.data }}

HA returns the following (as expected):

[ { "subject": "The Subject", "body": "", "location": "The location", "categories": [], "sensitivity": "Normal", "show_as": "Busy", "is_all_day": false, "attendees": [ "[email protected]" ], "start": "2020-01-14T08:30:00+0100", "end": "2020-01-14T18:00:00+0100", "event_active": false } ]

Now I want the first value, so the template becomes:
{{ states.sensor.my_calendar.attributes.data[0] }}

HA returns only the first bracket ( [ ). It seems that the carriage return is causing this.

Other sensors, that don't have a CR between [ and { work fine.

integration not working

Hi i got the link account in notifications buth when i try this happens

invalid_request: The provided value for the input parameter 'redirect_uri' is not valid. The expected value is a URI which matches a redirect URI registered for this client application.

the uri is the uri of my hassio server, portforwarding is set, any ideas?

o365_calendars.yaml written over after modifications

I am using the ZWave Lock Code manager and need to add entities so it looks something like this:

  • cal_id: MY_O365_CALENDAR
    entities:
    • device_id: Lock Codes
      end_offset: 24
      name: Lock Codes
      start_offset: 0
      track: true
    • device_id: lock_code_1_schedule
      ignore_availability: true
      name: Door Code 1 Schedule
      track: true
      search: "#Door Code 1"

The issue is when HassOS is rebooted a new entry is added for the calendar above and the manual entries are ignored. I believe the O365 integration is not taking this into account and new entries cannot be added like what I have above. Thoughts?

Component tries to require re-authentication on Home Assistant restart

Describe the bug
The configurator notification seems to show up every time I restart HA. It looks like the token JSON is being saved inside the O365 folder but when I try and load up entity no calendar information is available. Once I go through the link account flow the calendar information is there as expected until I restart HA again.

To Reproduce
Steps to reproduce the behavior:

  1. Go through the "Link O365 account" flow
  2. Restart Home Assistant
  3. The "Configure" notification shows up again

Expected behavior
The link should persist between HA restarts

Screenshots
N/A

Installation method (please select one):

  • HACS
  • Manual Installation

Additional context
Add any other context about the problem here.

  • Home assistant logs attached

This component has been blacklisted on HACS

I really like this component and would like to keep using it but I am concerned because it was blacklisted. The blacklist is here. Would like to see it removed from the blacklist and listed in HACS again.

0.109 reports blocking I/O in the event loop

Just updated to 0.109 and found this issue in my log
Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for o365 doing I/O at custom_components/o365/calendar.py, line 158: limit=self.limit, query=query, include_recurring=True

In the release notes of 0.109 (as well as the log) HA team asks any instance of this log entry be reported as an issue on the component.

"Detected use of deprecated `base_url` property" log message

After start-up on 0.112 I saw this message in my logs:

Detected use of deprecated `base_url` property, use `homeassistant.helpers.network.get_url` method instead. Please report issue to the custom component author for o365 using this method at custom_components/o365/__init__.py, line 40: callback_url = f"{hass.config.api.base_url}{AUTH_CALLBACK_PATH}"

Reporting it as an issue as requested

O365 spooffing log and causing freeze of hassio

Found this in the logs thats causing a total freeze of my hassio server

Updating o365 calendar took longer than the scheduled update interval 0:01:00
4:37:19 AM โ€“ Calendar (WARNING) - message first occurred at 3:18:01 AM and shows up 7779 times

[BUG] Successful setup, but failure to access default_calendar

After successful upgrade to latest version (2.1.1), adding necessary permissions in Azure portal, modifying configuration file accordingly -

# Office 365 calendar access

o365:
  client_id: !secret o365_client_id
  client_secret: !secret o365_client_secret
  calendars:
    calendar_name: default_calendar
  • and successfully reauthenticating with Azure, no calendar object appears in Home Assistant. The following error is seen in the log:
2020-02-05 11:33:16 ERROR (MainThread) [homeassistant.components.calendar] Error while setting up platform o365
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 158, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/o365/calendar.py", line 39, in setup_platform
    name = calendar.get(CONF_NAME)
AttributeError: 'str' object has no attribute 'get'

Installation method (please select one):

  • HACS
  • Manual Installation

Add link to attachments

Hiya there,

Thanks very much for this!

I was wondering if you could add links to the attachment contained within an e-mail? Unfortunately I have a CCTV AI system (Sentry) that can only provide images via e-mail, so extracting those URLs would be very useful!

Make multi-tenant application optional

Is your feature request related to a problem? Please describe.
Currently you have to create a multi-tenant application in azure, although the tutorial is kind of suggesting it's optional. If you don't need personal accounts it's better to use a single tenant application.

Describe the solution you'd like
Add a optional config parameter for tenant_id and pass it to the Account constructor

account = Account(credentials, token_backend=TOKEN_BACKEND, tenant_id=config_tenant_id)

Log - Configuring calendars trough configuration.yaml has been deprecated

I'm seeing this message in my log from the o365 component:
Configuring calendars trough configuration.yaml has been deprecated, and will be removed in a future release. Please see the docs for how to proceed

First of all, I looked in the docs and there doesn't seem to be anything that explains what exactly was deprecated and what you should do. Since you're saying to go to the docs to figure out how to proceed please put something in the docs that specifically references this and tells me how to proceed.

Second, I think I figured out what you mean by this although I'm not totally sure. I noticed that there's now an o365_calendars.yaml file in my config that I don't remember adding before. So I believe what this is telling me is to remove this part in my configuration.yaml:

o365:
  client_secret: "xx.xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  client_id: "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
- calendars:
- - name: Mike work calendar
-   start_offset: -8
-   end_offset: 336
-   calendar_name: default_calendar

If so, please remove that part from your example for sure.

Final point, I'm not sure deprecation is the right word here. If you notice in my configuration above I had one calendar listed that I called 'Mike work calendar'. At the time I wrote that this component generated one calendar entity with the id calendar.mike_work_calendar that shows the list of events from 8 hours ago until 14 days from now. But thats not what I have now. There is no calendar.mike_work_calendar, instead I have 3 calendar entities called calendar.o365_calendar, calendar.o365_birthdays and calendar.o365_united_states_holidays which all list events from now to 24 hours from now. Which is exactly what's in this new o365_calendars.yaml file.

So is this option actually deprecated or just completely unsupported ? Because it seems like configuring calendars in configuration.yaml just flat out doesn't work anymore.

As an aside I actually really like your component, I was looking for this forever and am so glad I can connect to my work calendar now. And this all isn't a big deal to me now that I think I know what is going on I just was really confused by this message.

Client Error: 400 Client Error: Bad Request for url: https://graph.microsoft.com/v1.0/me/calendar | Error Message: Error authenticating with resource

Getting the following error:

2020-01-14 15:58:13 ERROR (SyncWorker_7) [O365.connection] Client Error: 400 Client Error: Bad Request for url: https://graph.microsoft.com/v1.0/me/calendar | Error Message: Error authenticating with resource
2020-01-14 15:58:13 ERROR (MainThread) [homeassistant.components.sensor] office365calendar: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 292, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 461, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/office365calendar/sensor.py", line 248, in update
    self._state = self.device_state_attributes["event_active"]
  File "/config/custom_components/office365calendar/sensor.py", line 142, in device_state_attributes
    calendar = schedule.get_default_calendar()
  File "/usr/local/lib/python3.7/site-packages/O365/calendar.py", line 1888, in get_default_calendar
    response = self.con.get(url)
  File "/usr/local/lib/python3.7/site-packages/O365/connection.py", line 776, in get
    return self.oauth_request(url, 'get', params=params, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/O365/connection.py", line 765, in oauth_request
    return self._internal_request(self.session, url, method, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/O365/connection.py", line 727, in _internal_request
    raise HTTPError('{} | Error Message: {}'.format(e.args[0], error_message), response=response) from None
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://graph.microsoft.com/v1.0/me/calendar | Error Message: Error authenticating with resource

Tried both with default and alt auth...

Redirect URI for default auth is:
https://XXXX.XXXX.com:8123/api/o365

Installed with HACS

Dependencies

The compiler is missing the dependencies as stated in the manifest.json.
Where can I find these / install them?
(Running on HASS.IO)

Home assistant is not installing needed dependencies

I'm having the same problem as #4 . After installing from HACS, I get a config validating notification when trying to restart HA, and the following in the logs:

2020-01-11 12:36:51 ERROR (MainThread) [homeassistant.components.hassio] Platform error sensor.office365calendar - No module named 'O365'

(Running hass.io in Docker.)

Make calendar period to get configurable & enable multiple sensors

Since I've got the component working and all is looking good, I would like to do some feature requests:

  • Component only looks 24Hrs ahead, possibility to change this in the configuration.yaml
    Maybe do something with start/end date/time?

  • Possibility to create multiple sensors, each for a (shared) calendar

[BUG] Only the first calendar in config is loading

Describe the bug
Since 0.105.0 only the first calendar in the list is loading

To Reproduce
Steps to reproduce the behavior:

  1. Configure as always
  2. See only the first calendar loading

Expected behavior
All calendars should be loaded

Installation method (please select one):

  • HACS
  • Manual Installation

Additional context
These are the attributes since 0.105.0

data: [object Object],[object Object]
calendar_id: AAMkADZlYjQ4YzVjLTAyYjQtNDRlYi05MTMwLWQzNDMwY2NmMDQ3MgBGAAAAAACMxiT4r3KUTLubbwPEBuciBwDE2oNYc5kjT7TXqMpClzJTAAAAVwjKAAAegiUP3rX5RqIMKiubJHzGACIYFgICAAA=
event_active: false
friendly_name: Events
  • Home assistant logs attached
    ha.txt

App. is not configured as a multi-tenant application

When I try to Push Link =365 account below I get the request to that my app has to be a Multi-tenant application.

image

I have made my App. multi-tenant but I still get this error:

image

But you see that my app. is now multi-tenant:

image

NB: Sorry I don't know if this is a Bug - but how can I mark this as "not a Bug"?

Enhancement: add service to update calendar

Is it possible to add the service: 'update calendar data'.
When calendar data is changed, I would like to have the possibility to call this service in HA to update the data.
Also after a reboot of HA, it takes some time to update the calendars automatically.

Clarify log messages when calendar could not be found

Error on device update

After first authorization the sensor doesn't get updated.

Log Details (ERROR)
Sat Jan 25 2020 20:47:18 GMT+0100 (Central European Standard Time)
office365calendar: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 299, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 461, in async_device_update
await self.hass.async_add_executor_job(self.update)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/office365calendar/sensor.py", line 248, in update
self._state = self.device_state_attributes["event_active"]
File "/config/custom_components/office365calendar/sensor.py", line 143, in device_state_attributes
query = calendar.new_query("start").greater_equal(start_date)
AttributeError: 'NoneType' object has no attribute 'new_query'
Installation method (please select one):

  • HACS
  • Manual Installation

Configuration details:

  • platform: office365calendar
    client_id: !secret_clientid
    client_secret: !secret_clientid
    scan_interval: 300
    calendar_name: family room

[BUG] V2.0 Auth Flow Error

Describe the bug
It looks like during the auth flow the account parameter isn't being passed in which is causing validation errors.

To Reproduce
Steps to reproduce the behavior:
1 Setup the component per the instructions
2. Click Link Account
3. After coming back from the Account Linking flow I get redirected to https://[my domain]/api/o365?code=[a guid]&state=[alpha numeric string]
The page conents shows "500 Internal Server Error Server got itself into trouble"
4. Going to the logs I get the following error

Log Details (ERROR)
Mon Feb 03 2020 14:34:47 GMT-0600 (Central Standard Time)
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 418, in start
resp = await task
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 458, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/real_ip.py", line 39, in real_ip_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 72, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 135, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 120, in handle
result = handler(request, **request.match_info)
File "/config/custom_components/o365/__init__.py", line 142, in get
do_setup(self._hass, self.config)
TypeError: do_setup() missing 1 required positional argument: 'account'

Expected behavior
I get a 200 response or a happy face and the logs are free of errors

Installation method (please select one):

  • HACS
  • Manual Installation

Additional context

  • I have the newest version installed as of 2:00 pm CST
  • I show the App is linked successfully on the Microsoft side

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.