Marc Mueller
48bada5a18
Update pylint to 2.11.1 ( #56364 )
2021-09-18 13:52:59 +02:00
GitHub Action
8c5620e74b
[ci skip] Translation update
2021-08-02 03:40:04 +00:00
Marc Mueller
0815eede4b
Replace lists with tuples (2) ( #53685 )
2021-07-30 01:20:03 +02:00
Ville Skyttä
c2f5dcefa5
Use flow result type constants more ( #51122 )
2021-05-29 14:09:13 +02:00
Marc Mueller
76199c0eb2
Update typing 04 ( #48037 )
2021-03-17 23:34:25 +01:00
HomeAssistant Azure
c11b85af2f
[ci skip] Translation update
2021-03-16 00:04:36 +00:00
HomeAssistant Azure
c6bd5b1b71
[ci skip] Translation update
2021-02-05 00:03:54 +00:00
Paulus Schoutsen
959ed6d077
Update translations
2021-02-03 11:46:49 +01:00
Joakim Plate
38d2cacf7a
Support blocking trusted network from new ip ( #44630 )
...
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-01-28 12:06:20 +01:00
HomeAssistant Azure
f3cabe97e0
[ci skip] Translation update
2020-12-21 00:04:09 +00:00
HomeAssistant Azure
9298fec345
[ci skip] Translation update
2020-11-05 00:10:11 +00:00
HomeAssistant Azure
c2a9f2ae52
[ci skip] Translation update
2020-10-26 00:03:36 +00:00
HomeAssistant Azure
81296b2b70
[ci skip] Translation update
2020-10-20 00:08:00 +00:00
Philip Allgaier
625bbe6238
Cleanup unused loggers (components A-M) ( #41600 )
2020-10-12 16:59:05 +02:00
HomeAssistant Azure
f787289ea0
[ci skip] Translation update
2020-10-12 00:03:31 +00:00
HomeAssistant Azure
80522f1bdc
[ci skip] Translation update
2020-10-11 00:03:37 +00:00
HomeAssistant Azure
29aea5a66c
[ci skip] Translation update
2020-10-09 00:04:33 +00:00
springstan
db582bdc1b
Use http status constants more, add HTTP_ACCEPTED and HTTP_BAD_GATEWAY ( #39993 )
...
* Use http status codes and add HTTP_BAD_GATEWAY constant
* Address review comments:
- using constants in tado integration
- using constant in media_player init.py
* Add and use HTTP_ACCEPTED constant
2020-09-15 20:01:07 +03:00
HomeAssistant Azure
07d5af1969
[ci skip] Translation update
2020-09-08 00:04:13 +00:00
Ville Skyttä
b4bac0f7a0
Exception chaining and wrapping improvements ( #39320 )
...
* Remove unnecessary exception re-wraps
* Preserve exception chains on re-raise
We slap "from cause" to almost all possible cases here. In some cases it
could conceivably be better to do "from None" if we really want to hide
the cause. However those should be in the minority, and "from cause"
should be an improvement over the corresponding raise without a "from"
in all cases anyway.
The only case where we raise from None here is in plex, where the
exception for an original invalid SSL cert is not the root cause for
failure to validate a newly fetched one.
Follow local convention on exception variable names if there is a
consistent one, otherwise `err` to match with majority of codebase.
* Fix mistaken re-wrap in homematicip_cloud/hap.py
Missed the difference between HmipConnectionError and
HmipcConnectionError.
* Do not hide original error on plex new cert validation error
Original is not the cause for the new one, but showing old in the
traceback is useful nevertheless.
2020-08-28 13:50:32 +02:00
HomeAssistant Azure
195d4b6897
[ci skip] Translation update
2020-08-27 00:04:55 +00:00
Franck Nijhof
cc4ebc925c
Improve X-Forwarded-* request headers handling ( #38696 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-08-11 22:57:50 +02:00
Paulus Schoutsen
5642027ffb
Improve after_dependencies handling ( #36898 )
2020-06-19 17:24:33 -07:00
HomeAssistant Azure
140fd5adaf
[ci skip] Translation update
2020-06-09 00:05:22 +00:00
HomeAssistant Azure
492874c4a0
[ci skip] Translation update
2020-06-06 00:03:33 +00:00
HomeAssistant Azure
f4a518edcc
[ci skip] Translation update
2020-05-30 00:03:23 +00:00
Paulus Schoutsen
ba120d4220
Fix client ID lookup for official apps ( #36131 )
2020-05-25 15:39:24 -04:00
HomeAssistant Azure
eaa16fa818
[ci skip] Translation update
2020-05-24 00:03:05 +00:00
HomeAssistant Azure
56efc341dd
[ci skip] Translation update
2020-05-23 00:02:41 +00:00
Paulus Schoutsen
0efeefe3b2
Update translations
2020-05-13 11:27:21 -07:00
HomeAssistant Azure
78f846d532
[ci skip] Translation update
2020-05-03 00:02:26 +00:00
HomeAssistant Azure
5d37eb8eeb
[ci skip] Translation update
2020-04-30 00:03:17 +00:00
Joakim Sørensen
730a257f3c
Rename translations dir for integrations ( #34494 )
2020-04-21 16:11:05 -07:00
springstan
4c38e6cfa5
Use HTTP_BAD_REQUEST constant ( #33797 )
2020-04-09 21:43:42 +02:00
springstan
bc26be3c11
Add and use HTTP_FORBIDDEN constant ( #33839 )
2020-04-09 17:41:17 +02:00
springstan
9a40d5b7ed
Use HTTP_NOT_FOUND constant ( #33835 )
2020-04-09 00:57:47 +02:00
springstan
8d61893c39
Use HTTP_OK constant ( #33798 )
...
* Use http ok constant
* Remove incorrect use
* Run isort
* Fix pylint by adding missing imports
* Fix pylint by fixing one import
2020-04-08 11:47:38 -05:00
Franck Nijhof
39336d3ea3
Add prettier (in pre-commit and CI) ( #33693 )
...
* Add prettier (in pre-commit and CI)
* Make all file prettier
* Change order
* Add to Azure Pipelines
* Fix a YAML file prettier caught as invalid
* Remove flow mapping using curly braces from all YAML service files
2020-04-05 17:27:16 +02:00
Franck Nijhof
7653dc947a
Enable pylint unnecessary-pass ( #33650 )
...
* Enable pylint unnecessary-pass
* Process review suggestions
* Fix smhi tests
2020-04-05 10:33:07 +02:00
Paulus Schoutsen
f1d3c0d19b
Remove unused manifest fields ( #33595 )
2020-04-03 12:58:19 -07:00
springstan
b41cbe9885
Add www. to all documentation links ( #32063 )
...
* Add www. to all documentation links
* Fix broken redirect uri test
2020-02-21 16:10:02 -08:00
HomeAssistant Azure
8b46b5591f
[ci skip] Translation update
2020-01-12 00:32:04 +00:00
Franck Nijhof
bfa0edaf92
Migrate Integration Quality Scale from docs to manifest: internal ( #30551 )
2020-01-07 20:58:49 +01:00
Jc2k
fdfedd086b
Rework FlowManager to use inheritance ( #30133 )
...
* Pull async_finish_flow/async_create_flow out of ConfigEntries
* Towards refactoring
* mypy fixes
* Mark Flow manager with abc.* annotations
* Flake8 fixes
* Mypy fixes
* Blacken data_entry_flow
* Blacken longer signatures caused by mypy changes
* test fixes
* Test fixes
* Fix typo
* Avoid protected member lint (W0212) in config_entries
* More protected member fixes
* Missing await
2020-01-03 11:52:01 +01:00
Ville Skyttä
e6388e186c
Remove unnecessary string literal concatenations ( #30360 )
2020-01-02 21:17:10 +02:00
HomeAssistant Azure
13116d8d3f
[ci skip] Translation update
2019-12-30 00:32:19 +00:00
HomeAssistant Azure
5d8dda4f68
[ci skip] Translation update
2019-12-29 00:32:14 +00:00
Paulus Schoutsen
5a9e543087
Whitelist Android/iOS auth callbacks ( #30082 )
...
* Whitelist Android/iOS
* Add iOS alternate flavor URLs
* Update indieauth.py
Co-authored-by: Robbie Trencheny <me@robbiet.us>
2019-12-28 21:20:18 +01:00
Bas Nijholt
6ad3b6426a
sort imports according to PEP8 for auth ( #29619 )
2019-12-08 14:55:23 +01:00
Paulus Schoutsen
e99184bf68
Install requirements of after_dependencies when loading integrations ( #29491 )
...
* Install requirements of after_dependencies when loading integrations
* Fix smartthings test
2019-12-05 09:28:56 +01:00
HomeAssistant Azure
8ab04d5fc7
[ci skip] Translation update
2019-11-06 00:31:46 +00:00
HomeAssistant Azure
ff3c0e5697
[ci skip] Translation update
2019-10-21 00:32:17 +00:00
Paulus Schoutsen
3231e22ddf
Remove direct authentication via trusted networks or API password ( #27656 )
...
* Remove direct authentication via trusted networks and API password
* Fix tests
2019-10-14 14:56:45 -07:00
bouni
3873a1b070
moved imports to top level ( #27494 )
2019-10-12 12:35:39 -07:00
Franck Nijhof
c7da781efc
Update documentation link URL for integrations in all manifests ( #27114 )
2019-10-02 09:25:44 -07:00
HomeAssistant Azure
b04a70995e
[ci skip] Translation update
2019-09-27 00:32:12 +00:00
HomeAssistant Azure
0b1f389c76
[ci skip] Translation update
2019-09-07 00:32:45 +00:00
HomeAssistant Azure
1cbb895d20
[ci skip] Translation update
2019-09-05 10:11:41 +00:00
HomeAssistant Azure
1bd22a129b
[ci skip] Translation update
2019-09-05 00:32:29 +00:00
Franck Nijhof
ad51615718
Use literal string interpolation in integrations A (f-strings) ( #26377 )
...
* Use literal string interpolation in integrations A (f-strings)
* Black
2019-09-03 09:11:36 -05:00
Paulus Schoutsen
e69953fe2d
Update translations
2019-08-28 12:45:48 -07:00
Ville Skyttä
a54ade1189
Spelling fixes ( #25666 )
2019-08-02 23:20:06 +02:00
Paulus Schoutsen
37d78af42c
Add translations
2019-07-31 16:16:40 -07:00
Paulus Schoutsen
4de97abc3a
Black
2019-07-31 12:25:30 -07:00
Paulus Schoutsen
e51925fc58
Update translations
2019-05-08 20:20:58 -07:00
Paulus Schoutsen
f4016b4aad
Add integration step to onboarding ( #23732 )
...
* Return an extra oauth2 auth code during onboarding
* Areas in const
* Add integration step
* Lint
* Fix tests
* Fix test
* Verify integration added to done
* Verify step is marked as done
2019-05-07 22:51:24 -07:00
Robbie Trencheny
5e1338a9e4
Further improve IndieAuth redirect_uri lookup failure logs ( #23183 )
2019-04-18 09:03:25 -07:00
cgtobi
2c07bfb9e0
Remove dependencies and requirements ( #23024 )
...
* Remove dependencies and requirements
* Revert "Remove dependencies and requirements"
This reverts commit fe7171b4cd
.
* Remove dependencies and requirements
* Revert "Remove dependencies and requirements"
This reverts commit 391355ee2c
.
* Remove dependencies and requirements
* Fix flake8 complaints
* Fix more flake8 complaints
* Revert non-component removals
2019-04-12 10:13:30 -07:00
Robbie Trencheny
f5c677146a
Make inlined JSON example valid
2019-04-10 21:58:50 -07:00
Paulus Schoutsen
e9d9861bda
Update translations
2019-04-10 15:01:32 -07:00
Paulus Schoutsen
0d2646ba25
Update translations
2019-04-09 08:34:20 -07:00
Paulus Schoutsen
cfe4cf30ad
Add manifests ( #22699 )
...
* Add manifests
* Update auto name
* Update codeowners
* Add requirements from platforms
* Minor cleanup
* Incorporate changes from awarecan PR
2019-04-03 21:14:45 -07:00
Jason Hu
6ba2891604
Add trusted_users in trusted networks auth provider ( #22478 )
2019-03-27 21:53:11 -07:00
Paulus Schoutsen
9d21afa444
Update translations
2019-03-27 21:32:58 -07:00
Paulus Schoutsen
72bb94de96
Update translations
2019-03-21 12:57:20 -07:00
Paulus Schoutsen
d635111e4f
Update translations
2019-03-12 11:31:17 -07:00
Paulus Schoutsen
8bfbe3e085
Add update user command ( #21922 )
...
* Add update user command
* Add is_admin to current user
2019-03-11 12:08:02 -07:00
Robbie Trencheny
31a4187cc0
Log if aiohttp hits error during IndieAuth ( #21780 )
...
* Log if aiohttp hits error during IndieAuth
* Add content of redirect_url into error log
Co-Authored-By: awarecan <awarecan@users.noreply.github.com>
2019-03-08 14:51:13 -08:00
Paulus Schoutsen
3da0ed9cc7
Onboarding to generate auth code ( #21777 )
2019-03-08 13:51:42 -08:00
Paulus Schoutsen
78217fa9b0
Update translations
2019-02-27 16:34:13 -08:00
Paulus Schoutsen
3fcbc36abe
Update translations
2019-02-21 16:40:25 -08:00
Paulus Schoutsen
02f207ea8e
Update translations
2019-02-13 15:44:18 -08:00
Paulus Schoutsen
c2eec16721
Update translations
2019-02-02 14:12:23 -08:00
Paulus Schoutsen
96b8c517f0
Update translations
2019-01-13 09:38:22 -08:00
Paulus Schoutsen
9aed40a88d
Update translations
2019-01-09 15:29:31 -08:00
Paulus Schoutsen
fe2d24c240
Update translations
2018-12-10 09:54:12 +01:00
Paulus Schoutsen
83311df933
Add translations
2018-12-06 00:30:33 +01:00
Paulus Schoutsen
3c92aa9ecb
Update translations
2018-11-26 14:30:21 +01:00
Paulus Schoutsen
75bb78d440
Update translations
2018-11-15 14:30:37 +01:00
Paulus Schoutsen
e8e135fd25
Update translations
2018-11-03 13:47:36 +01:00
Paulus Schoutsen
20fb7b59ef
Update translations
2018-10-30 11:35:40 +01:00
Paulus Schoutsen
312d49caec
Allow creating signed urls ( #17759 )
...
* Allow creating signed urls
* Fix parameter
* Lint
2018-10-25 16:44:57 +02:00
Paulus Schoutsen
c7c0ed89c8
Convert auth websocket commands to use async_response decorator ( #17755 )
2018-10-24 15:23:09 +02:00
Paulus Schoutsen
355005114b
Update translations
2018-10-21 20:34:28 +02:00
Paulus Schoutsen
a5b9f5040f
Update translations
2018-10-17 14:12:41 +02:00
Paulus Schoutsen
6971e84ddf
Update translations
2018-10-12 14:58:09 +02:00
Paulus Schoutsen
d16e6c8524
Update translations
2018-10-10 14:25:21 +02:00
Paulus Schoutsen
0c770520ed
Update translations
2018-10-05 17:50:00 +02:00
Paulus Schoutsen
38e2926a48
Update translations
2018-10-02 14:33:47 +02:00
Paulus Schoutsen
2e6346ca43
Break up websocket 2 ( #17028 )
...
* Break up websocket 2
* Lint+Test
* Lintttt
* Rename
2018-10-01 16:09:31 +02:00
Paulus Schoutsen
f5632a5da5
Add webhook + IFTTT example ( #16817 )
...
* Add webhook + IFTTT example
* Abort if not externally accessible
* Abort on local url
* Add description to create entry
* Make body optional
* Allow ifttt setup without config
* Add tests
* Lint
* Fix Lint + Tests
* Fix typing
2018-09-30 14:45:48 +02:00
Paulus Schoutsen
bac71d3d22
Update translations
2018-09-27 23:04:28 +02:00
Paulus Schoutsen
732009c668
Update translations
2018-09-26 15:39:20 +02:00
cgtobi
98a4b1e9ac
Update language strings ( #16884 )
2018-09-26 13:07:43 +02:00
Jason Hu
75c372021d
Fix example for long-lived access token WS API ( #16882 )
2018-09-26 11:20:48 +02:00
Paulus Schoutsen
d4b239d1d4
Update translations
2018-09-24 12:01:01 +02:00
Jason Hu
7a77951bb4
Add Notify MFA module ( #16314 )
...
* Add Notify MFA
* Fix unit test
* Address review comment, change storage implementation
* Add retry limit to mfa module
* Fix loading
* Fix invalaid login log processing
* Typing
* Change default message template
* Change one-time password to 8 digit
* Refactoring to not save secret
* Bug fixing
* Change async_initialize method name to aysnc_initialize_login_mfa_step
* Address some simple fix code review comment
2018-09-24 11:06:50 +02:00
Paulus Schoutsen
849a93e0a6
Update translations
2018-09-17 10:48:22 +02:00
Jason Hu
ff78a5b04b
Track refresh token last usage information ( #16408 )
...
* Extend refresh_token to support last_used_at and last_used_by
* Address code review comment
* Remove unused code
* Add it to websocket response
* Fix typing
2018-09-12 13:24:16 +02:00
Jason Hu
34d369ba26
Return if refresh token is current used one in WS API ( #16575 )
2018-09-12 09:49:44 +02:00
Paulus Schoutsen
3f06b4eb9b
Update translations
2018-09-11 21:36:54 +02:00
Paulus Schoutsen
0db13a99aa
Add websocket commands for refresh tokens ( #16559 )
...
* Add websocket commands for refresh tokens
* Comment
2018-09-11 09:08:03 -07:00
Jason Hu
9583947012
Long-lived access token ( #16453 )
...
* Allow create refresh_token with specific access_token_expiration
* Add token_type, client_name and client_icon
* Add unit test
* Add websocket API to create long-lived access token
* Allow URL use as client_id for long-lived access token
* Remove mutate_refresh_token method
* Use client name as id for long_lived_access_token type refresh token
* Minor change
* Do not allow duplicate client name
* Update docstring
* Remove unnecessary `list`
2018-09-11 12:05:15 +02:00
Paulus Schoutsen
cfe5db4350
Fail fetch auth providers if onboarding required ( #16454 )
2018-09-10 23:51:40 +02:00
Paulus Schoutsen
1d6609e386
Update translations
2018-09-10 13:44:27 +02:00
Paulus Schoutsen
a2a447b466
Update translations
2018-09-03 13:21:37 +02:00
Paulus Schoutsen
5e8a1496d7
Update translations
2018-08-31 13:23:22 +02:00
Paulus Schoutsen
e8801ee22f
Update translations
2018-08-29 10:28:34 +02:00
Paulus Schoutsen
f891d0f5be
Update translations
2018-08-28 20:55:58 +02:00
Paulus Schoutsen
94662620e2
Update translations
2018-08-27 10:16:59 +02:00
Jason Hu
47755fb1e9
Add Time-based Onetime Password Multi-factor Authentication Module ( #16129 )
...
* Add Time-based Onetime Password Multi-factor Auth
Add TOTP setup flow, generate QR code
* Resolve rebase issue
* Use svg instead png for QR code
* Lint and typing
* Fix translation
* Load totp auth module by default
* use <svg> tag instead markdown image
* Update strings
* Cleanup
2018-08-26 22:38:52 +02:00
Jason Hu
e8775ba2b4
Add multi-factor auth module setup flow ( #16141 )
...
* Add mfa setup flow
* Lint
* Address code review comment
* Fix unit test
* Add assertion for WS response ordering
* Missed a return
* Remove setup_schema from MFA base class
* Move auth.util.validate_current_user -> webscoket_api.ws_require_user
2018-08-24 10:17:43 -07:00
Paulus Schoutsen
cdb8361050
Add support for revoking refresh tokens ( #16095 )
...
* Add support for revoking refresh tokens
* Lint
* Split revoke logic in own method
* Simplify
* Update docs
2018-08-21 11:02:55 -07:00
Paulus Schoutsen
b26506ad4a
Use new session when fetching remote urls ( #16093 )
2018-08-21 19:03:46 +02:00
Jason Hu
f84a31871e
Get user after login flow finished ( #16047 )
...
* Get user after login flow finished
* Add optional parameter 'type' to /auth/login_flow
* Update __init__.py
2018-08-21 10:18:04 +02:00
Paulus Schoutsen
e776f88eec
Use JWT for access tokens ( #15972 )
...
* Use JWT for access tokens
* Update requirements
* Improvements
2018-08-14 21:14:12 +02:00
Jason Hu
da8f93dca2
Add trusted networks auth provider ( #15812 )
...
* Add context to login flow
* Add trusted networks auth provider
* source -> context
2018-08-13 12:40:06 +02:00
Jason Hu
50daef9a52
Add context to login flow ( #15914 )
...
* Add context to login flow
* source -> context
* Fix unit test
* Update comment
2018-08-13 11:27:18 +02:00
Paulus Schoutsen
0ab3e7a92a
Add IndieAuth 4.2.2 redirect uri at client id ( #15911 )
...
* Add IndieAuth 4.2.2 redirect uri at client id
* Fix tests
* Add comment
* Limit to first 10kB of each page
2018-08-10 18:09:42 +02:00
Jason Hu
eeb79476de
Decouple login flow view and data entry flow view ( #15715 )
2018-07-30 21:59:18 -07:00
Jason Hu
93d6fb8c60
Break up components/auth ( #15713 )
2018-07-28 17:54:26 -07:00
Jerad Meisner
cbb5d34167
Added user credentials to current_user ws endpoint. ( #15558 )
...
* Added user credentials to current_user ws endpoint.
* Comments. Added another test.
* Return list of credentials.
2018-07-25 10:34:18 +02:00
Jason Hu
d7690c5fda
Add ipban for failed login attempt in new login flow ( #15551 )
...
* Add ipban for failed login attempt in new login flow
* Address review comment
* Use decorator to clean up code
2018-07-24 10:09:52 +02:00
Paulus Schoutsen
4e7dbf9ce5
Allow system users to refresh tokens ( #15574 )
2018-07-23 14:06:09 +02:00
Ville Skyttä
b7c336a687
Pylint cleanups ( #15626 )
...
* Pylint 2 no-else-return fixes
* Remove unneeded abstract-class-not-used pylint disable
2018-07-23 10:16:05 +02:00
Paulus Schoutsen
2a76a0852f
Allow CORS requests to token endpoint ( #15519 )
...
* Allow CORS requests to token endpoint
* Tests
* Fuck emulated hue
* Clean up
* Only cors existing methods
2018-07-19 08:37:00 +02:00
Paulus Schoutsen
8797cb78a9
Add current user WS command ( #15485 )
2018-07-17 09:24:51 +02:00
Paulus Schoutsen
864a254071
Aware comments ( #15480 )
...
* Make sure we cannot deactivate the owner
* Use different error code when trying to fetch token for inactive user
2018-07-15 23:09:05 +02:00
Paulus Schoutsen
ed0cfc4f31
Add user via cmd line creates owner ( #15470 )
...
* Add user via cmd line creates owner
* Ensure access tokens are not verified for inactive users
* Stale print
* Lint
2018-07-15 20:46:15 +02:00
Paulus Schoutsen
70fe463ef0
User management ( #15420 )
...
* User management
* Lint
* Fix dict
* Reuse data instance
* OrderedDict all the way
2018-07-13 15:31:20 +02:00
Paulus Schoutsen
dbdd0a1f56
Expire auth code after 10 minutes ( #15381 )
2018-07-10 11:20:22 +02:00
Paulus Schoutsen
0d4841cbea
Use IndieAuth for client ID ( #15369 )
...
* Use IndieAuth for client ID
* Lint
* Lint & Fix tests
* Allow local IP addresses
* Update comment
2018-07-09 18:24:46 +02:00
Paulus Schoutsen
cb129bd207
Add system generated users ( #15291 )
...
* Add system generated users
* Fix typing
2018-07-04 11:50:08 -04:00
Paulus Schoutsen
5ec7fc7ddb
Backend tweaks to make authorization work ( #14339 )
...
* Backend tweaks to make authorization work
* Lint
* Add test
* Validate redirect uris
* Fix tests
* Fix tests
* Lint
2018-05-10 10:38:11 +02:00
Paulus Schoutsen
cdd45e7878
Foundation for users ( #13968 )
...
* Add initial user foundation to Home Assistant
* Address comments
* Address comments
* Allow non-ascii passwords
* One more utf-8 hmac compare digest
* Add new line
2018-05-01 18:20:41 +02:00