Commit graph

3228 commits

Author SHA1 Message Date
Lucas Saavedra Vaz
c110ca8295
docs(language): Enforce English on contributions and issues (#11267) 2025-04-22 11:46:59 +03:00
Lucas Saavedra Vaz
a8bead7efb
fix(gpio): Fix GPIO warning message (#11268) 2025-04-22 09:16:46 +03:00
Lucas Saavedra Vaz
e0d4d176ea
ci(pre-commit): Lock versions to SHA and apply fixes (#11248)
* ci(pre-commit): Execute codespell after formatting changes

* ci(pre-commit): Lock versions to hash

* fix(pre-commit): Apply pre-commit fixes
2025-04-22 09:16:32 +03:00
Me No Dev
f1223663dd
fix(wifi): Workaround bug in esp_wifi_get_protocol() (#11239)
* fix(wifi): Workaround bug in esp_wifi_get_protocol()

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-14 13:54:47 +03:00
Jason2866
9cad83bacf
check for CONFIG_BT_BLUEDROID_ENABLED in esp32-hal-misc.c (#11234)
* check for `CONFIG_BT_BLUEDROID_ENABLED` in esp32-hal-misc.c

* overseen changes to `CONFIG_BT_BLUEDROID_ENABLED`
2025-04-14 12:13:55 +03:00
Mathieu Carbou
60c8206ee6
feat(logging): Arduino log redirection (#11159)
* feat(logging): Arduino log redirection

* fix(uart): log will only use ets_printf() for uart and cdc

* feat(uart_cdc): when CDC is logging, UART is silent

* feat(uart_cdc): when CDC is logging, UART is silent

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-14 12:08:33 +03:00
Sugar Glider
3fcc316d3c
fix(usb_hid): duplicated CONSUMER_CONTROL_PLAY_PAUSE (#11242) 2025-04-14 11:24:30 +03:00
Sugar Glider
bd4b32522c
feat(usb): add a few more consumer control HID commands (#11227) 2025-04-09 11:57:12 +03:00
Sugar Glider
be57376b6b
fix(usb): uninitilized variable warning message (#11222) 2025-04-09 11:56:52 +03:00
Sugar Glider
2647cbbbc2
refactor(rmt): refactored RMT loopback example (#11221)
* feat(rmt): refactored RMT loopback example

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-09 11:56:32 +03:00
Jason2866
8e8b1cbd31
Use CONFIG_BT_BLUEDROID_ENABLED for enabling (#11214)
Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
2025-04-09 11:26:13 +03:00
Jan Procházka
d3509ef98b
feat(zigbee): Add battery voltage attribute support (#11210)
* feat(zigbee): Add battery voltage attribute support

* Update libraries/Zigbee/src/ZigbeeEP.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-09 11:25:58 +03:00
Jacob Williams
7f60945018
fix(board): Alfredo NoU3 pins_arduino.h uses uint8_t but it causes error with esp32-hal-gpio.h (#11206)
* fix(board): Alfredo NoU3 include stdint.h

* fix(hal_gpio): lets pins_arduino.h to use stdint and stdbool types

* feat(pins_arduino): fixes lack of stdint in the right place

* fix(pins_arduino): reverts all changes to this file

* fix(pins_arduino): reverts all changes to this file

* fix(pins_arduino): reverts all changes back to original pr

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
2025-04-09 11:25:39 +03:00
Gonzalo Brusco
0cc8eab836
Add an option to force IDF's default UART clock source (#11191)
* Add an option to force IDF's default UART clock source

* feat(uart): adds function to set clock source

* feat(uart): add uart clock source selection method

* feat(uart): add uart hall function to set the uart clock source

* feat(uart): add function to set the uart clock source

* feat(uart): set clock source as necessary

* fix(uart): missing class qualifier declaration

* fix(uart): fixing a typo and non LP UART SoC clk src setting

* fix(uart): variable name, typo error

* fix(uart): retores previous identation reducing diff load

* feat(uart): apply CONFIG_ARDUINO_SERIAL_FORCE_IDF_DEFAULT_CLOCK_SOURCE to LP UART

* feat(uart): adds option for UART_CLK_SRC_DEFAULT

* feat(uart): adds option for setting default uart clock source from IDF

* feat(uart): documents UART_CLK_SRC_DEFAULT as option in header file

* feat(uart): documents using the IDF default uart clock source

* fix(uart): type missmatch may cause error

* fix(uart): type missmatch may cause error, test for -1

* feat(uart): considering both HP and LP default uart clock source

* feat(uart): improve the defined value for UART_CLK_SRC_DEFAULT

* fix(uart): using uart_sclk_t as hal level parameter

* feat(uart): apply default LP uart clock source

* fix(uart): considers that it may set the LP UART as well

* feat(uart): using UART SCLK enum for uart clock source values

* fix(uart): using UART_CLK_SRC_RTC now

* fix(uart): documentation using UART_CLK_SRC_RTC now

* fix(uart): fix old commentary that is not correct anymore

* fix(uart): wrong identation in code line

* fix(uart): using uart number as argument instead

* fix(uart): using uart number as argument in setClockSource()

* fix(uart): using uart number as parameter in uartSetClockSource()

* feat(uart): update Kconfig.projbuild to reflect functionality

* feat(uart): removing Kconfig.projbuild option to force default clk src

* feat(uart): removes kconfig option to force uart default clk src

* fix(uart): replacing #if #endif by #if #elif #endif for the same enum

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-09 11:25:06 +03:00
Sugar Glider
b333bf2697
fix(zigbeeEP): review of names and memory allocation (#11199)
* fix(zigbeeEP): review of names and memory allocation

* fix(zigbeeEP): destructor shall free any allocated memory

* fix(zigbee_ep): forgotten var name change

* feat(zigbee_ep): use static heap memory for manufacturer and model names

* feat(zigbee_ep): changed model and manufacturer to heap

* feat(zigbee_ep): use static heap memory allocation

* fix(zigbee_ep): using stack only for adding attribute

* feat(zigbee_ep): reverting back read data type

* fix(zigbee_ep): rooling back to use malloc for remote attr reading

* feat(zigbee_ep): check malloc return for null

* fix(zigbee_ep): replace nullptr by NULL after C malloc()

* ci(pre-commit): Apply automatic fixes

* fix(zigbee_ep): fix variable scope

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(zigbee_ep): fix variable scope

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-05 18:47:38 +03:00
Jan Procházka
23ded939ea
feat(zigbee): Add PM2.5 endpoint support (#11205)
* feat(zigbee): Add PM2.5 endpoint support

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-05 18:46:20 +03:00
Sugar Glider
22f07d01c8
fix(rmt): memset all config structs to zero before using (#11203)
* fix(rmt): memset all config structs to zero to increase code safety
2025-04-01 09:36:19 -03:00
Lewis He
7b0298b462
Modify T-LoRa-Pager device PID (#11194)
Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
2025-03-31 11:06:18 +03:00
Me No Dev
fbca62fd68
Update Issue-report.yml with the latest versions 2025-03-29 14:13:57 +02:00
Lewis He
de184bd0cb
Update LilyGo variants and add new variants (#11192)
* Update LilyGo T-Watch-S3 definition and expansion options

* Update LilyGo T-Watch-Ultra definition and expand options

* Added variant LilyGo-T-LoRa-Pager

* Update partition table order

* Update LilyGo board partition table order

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-28 10:38:31 +02:00
Me No Dev
1014937965
IDF release/v5.4 (#11149)
* IDF release/v5.4 5cbd2a38

* fix(ci): Disable RainMaker examples on ESP32

* IDF release/v5.4 5cbd2a38

* IDF release/v5.4 2f7dcd86
2025-03-28 10:37:48 +02:00
Jan Procházka
a3b6fe61ba
feat(zigbee): Add check, boolean returns, fix Analog, add optional reset on factoryReset (#11153)
* feat(zigbee): Add checks on setting attrs and commands

* feat(zigbee): Add error info in the logs

* fix(zigbee): Fix memory leak, print esp_zb_zcl_status_t error, remove analogValue from analog EP

* feat(example): Update factoryResetoption in sleepy example

* fix(zigbee): Add error checks to Illuminance EP

* fix(zigbee): Return false on first error hit

* fix(zigbee): Apply same formatting on all returns

* fix(zigbee): Add check when adding a OTA cluster

* fix(zigbee): release locks before returning

* fix(zigbee): use correct return in doorWindowHandle

* fix/zigbee): Add missing return in WindowCovering

* fix(zigbee): Added a note of future task

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-27 22:13:48 +02:00
SooDragon
bbaabb183a
fix: Geekble Nano board setup update (#11131)
* Geekble Nano board setup update

Geekble Nano board setup update

* fix: erase Comment Line

fix: erase Comment Line

* revert re-naming

revert re-naming
2025-03-27 14:52:32 +02:00
Me No Dev
17258930e6
fix(wifi_scan): Fix some edge cases where WiFi Scan may fail (#11188) 2025-03-27 13:38:04 +02:00
MikaFromTheRoof
e37435c442
feat(zigbee): Add Illuminance sensor endpoint (#11171)
* Added Zigbee light sensor

* Add comment for macro

* Some last corrections

* refactor(zigbee): changed class name to ZigbeeIlluminanceSensor

* feat(zigbee): Illumanance sensor update

* fix(zigbee): Change name of macro to avoid possible conflict with esp-zigbee-sdk

* Update keywords.txt

* fix(zigbee): Add Illuminance to Cmake file

* fix(example): Update Illuminance example

* ci(pre-commit): Apply automatic fixes

* Update Zigbee_Illuminance_Sensor.ino

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-27 12:56:30 +02:00
FidelSch
86221479b7
fix: BLEAdvertising methods return error codes (#11154)
* fix: BLEAdvertising methods return error codes

Some methods returned void even if they could produce an error, in which case they failed silently. They now return the corresponding error code.

* fix: methods which could error out return bool

Changed from returning esp_error_t, in order to be more arduino compatible.

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
2025-03-27 12:35:19 +02:00
Sugar Glider
1ca9dab521
fix(arduino_pins): fixes Lolin-C3-Pico and C3-Mini RGB LED pin + C3-Pico SPI SCK pin definition (#11186)
* fix(arduino_pins): fixes RGB LED pin and SPI SCK pin definition

* fix(arduino_pins): lolin-c3-mini rgb led pin
2025-03-27 12:32:36 +02:00
Lucas Saavedra Vaz
caa597143c
ci(workflows): Lock actions to commits and improve readability (#11147)
* Revert "ci(actions): Replace changed-files (#11130)"

This reverts commit ba2ab1e4bb.

* ci(workflows): Lock actions to commits and improve readability
2025-03-27 12:31:31 +02:00
ShuishengPeng
98611d46dc
fix: Add 16M flash option for xiao_esp32_s3_plus (#11183)
* fix: xiao_esp32_s3_plus supports 16M flash, adds 16M flash and 16M partition table options

* fix: remove empty lines

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2025-03-27 12:29:57 +02:00
Me No Dev
df51bc3aa5
fix(eth): Set the ETH properties at the correct time (#11182)
* fix(eth): Set the ETH properties at the correct time

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-27 12:29:31 +02:00
Me No Dev
9dddc142fc
fix(net): Use network_event_handle_t for internal callbacks (#11179)
* fix(net): Use network_event_handle_t for internal callbacks

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-27 12:29:11 +02:00
Marcel
cd7f4218e7
Fix(esp32s3usbotg) stdbool dependency in pins_arduino.h (#11155)
* Fix(esp32s3usbotg) stdbool dependency in pins_arduino.h

* fix(board): Remove comment in pins_arduino.h

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2025-03-24 15:26:49 +02:00
Sugar Glider
6273c4ffd8
fix(freertos_stats): remove volatile c++ 20 deprecated warning (#11158) 2025-03-24 14:59:42 +02:00
Lucas Saavedra Vaz
cc2632b3bb
fix(ext_lib): Fix ESPAsyncWebServer URL and examples (#11160) 2025-03-24 14:51:25 +02:00
Math0XK
6c04a93153
Add a Default 32MB partition (#11143)
* Add a Default 32MB partition

This is a complementary addition to use 32MB boards in PlatformIO like the ESP32-S3-DevKitC-1-N32R8V.

* Edited Board file

Added partition "default_32MB" to the menu

* Delete tools/boards.txt

* Edited boards.txt

Added the "default_32MB" partition to the menu

* feat(boards): adds app13M_data7M_32MB to s3 octal

* fix(board): format linux new line

* fix(boards): trying to make it \n and not \r\n

* add change to esp32s3-octal board too

This reverts commit 3afddfc2ce5281d8cd0344bc91665665d4179040, reversing
changes made to a9f64003bad5a2dcc1bd7f66e8494c9f8c8dd2e2.

* fix(boards): setting eol as /n

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-20 22:11:11 +02:00
TANAKA Masayuki
7fda434d89
fix(rmt): Fixed protocol name in RMTReadXJT examples (#11136)
* fix(rmt): Fixed protocol name in RMTReadXJT examples

I couldn't find a protocol called D12.
I found LR12 so I'll fix that.

* feat(RMT): changing example commentary to reflect D16 protocol

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
2025-03-20 21:52:36 +02:00
Lucas Saavedra Vaz
66abd86ce9
fix(camera_webserver): Fix typo in OV2640 definition (#11145) 2025-03-20 02:06:20 +02:00
Sugar Glider
18709faa90
fix(uart): uart rx timeout validation with proper log message (#11141)
* feat(uart): adds a function to calculate maximum valid rx timeout

* fix(uart): check uart rx timeout value and log an error msg

* fix(uart): changes log message to a more clear one

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-20 02:02:20 +02:00
Jan Procházka
e2915c48e8
feat(zigbee): Save network channel after 1st joining for faster rejoin (#11123)
* feat(zigbee): Save network channel after 1st joining for faster rejoin

* ci(pre-commit): Apply automatic fixes

* feat(zigbee): Add channel mask reset after timeout

* feat(zigbee): Add the resetChannelMask to all Begin methods

* feaz(zigbee): Move function to private and add set method

* fix(example): Remove test from device mode name

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-19 14:08:56 +02:00
Sugar Glider
8e62997bfd
fix(UART): sets the correct uart clock source when using begin(baudrate) (#11122)
* fix(uart): uart begin does not set the clock source when baudrate changes

* fix(uart): returns success on baud rate change operation

* fix(code): uart typo - missing ( in the code

* fix(uart): replacing mutex lock to avoid double lock

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-17 17:36:44 +02:00
Sugar Glider
74ee9df48c
fix(uart): Fixes UART CI script to work with Arduino Core 3.2.x (#11077)
* fix(uart): ci uart test fail on esp32s2 after uart break

* fix(uart): ci error with change pins test on ESP32

* fix(uart): ci test with perimgr using esp32 fails

* feat(uart): avoid electrical noise before setting pins

* fix(uart_ci): fixes the UART CI sketch due to IDF 5.3 pull up change

* fix(uart_ci): keeping previous formatting and applying changes

* feat(uart_ci): trick for passing esp32 wokwi ci test

Wokwi ESP32 fails with the pinMode() in line 56|58
Real device with Arduino Core 3.1.2 and 3.2 needs it to fix the issue.
This patch will skip the pinMode() when compiling with Wokwi and make it pass the CI test case.

* feat(uart_ci): reverting the wokwi patch, once it didn't make any difference

* fix(wokwi): Change CPU freq to 80

* fix(wokwi): Change CPU freq to 120

* ci(pre-commit): Apply automatic fixes

* fix(uart_ci): fixes a couple typos in commentatries

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-17 17:36:10 +02:00
Lucas Saavedra Vaz
ba2ab1e4bb
ci(actions): Replace changed-files (#11130) 2025-03-17 15:20:30 +02:00
Lucas Saavedra Vaz
f7c1efccaa
docs(esp32p4): Add missing information and improve organization (#11081)
* docs(esp32p4): Add missing information and improve organization

* docs(datasheets): Add missing datasheets

* docs(readme): Reorder title

* docs(typos): Fix typos
2025-03-17 12:37:41 +02:00
Lucas Saavedra Vaz
2a3de9c415
test(i2c): Do not use delta as Wokwi timing can be inconsistent (#11080)
* test(i2c): Do not use delta as Wokwi timing can be inconsistent

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-13 12:02:43 +02:00
Lucas Saavedra Vaz
c2b0482511
ci(hw): Fix files being overwritten (#11019)
Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2025-03-13 11:44:23 +02:00
Ludovic BOUÉ
07d6a5a0d2
feat(Zigbee): Adding Zigbee Wind speed sensor endpoint (#10455)
* Create ZigbeeWindSpeedSensor.h

* Create ZigbeeWindSpeedSensor.cpp

* Update ZigbeeWindSpeedSensor.cpp

* Update ZigbeeWindSpeedSensor.cpp

* Create ZigbeeWindSpeedSensor.ino

* Update ZigbeeWindSpeedSensor.ino

* Update ZigbeeWindSpeedSensor.ino

* Create ci.json

* Rename ZigbeeWindSpeedSensor.ino to Zigbee_Wind_Speed_Sensor.ino

* Rename ci.json to ci.json

* Update CMakeLists.txt

* Update Zigbee_Wind_Speed_Sensor.ino

* Update Zigbee_Wind_Speed_Sensor.ino

* Update Zigbee_Wind_Speed_Sensor.ino

* Update ZigbeeWindSpeedSensor.cpp

* Update ZigbeeWindSpeedSensor.cpp

Use ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID device id

* feat(zigbee): Add windspeed sensor endpoint

* Update Zigbee.h

Add ZigbeeWindSpeedSensor.h

* update example

* add missing sdkconfig include

* add readme

* ci(pre-commit): Apply automatic fixes

* Update README.md

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-12 15:38:09 +02:00
Me No Dev
bda7c48117
IDF release/v5.4 d4aa25a3 (#11060)
IDF release/v5.4 d4aa25a3
2025-03-11 00:26:18 +02:00
Sugar Glider
e8a243c1db
fix(network): fixes a macro name conflict warning (#11068)
* fix(network): fixes a macro name conflict warning

* feat(networking): removed local maco definition in favor of IDF one
2025-03-10 22:18:12 +02:00
Sugar Glider
d9dbc4af41
fix(matter): examples must set pin to Digital Mode after analogWrite() and before digitalWrite() (#11070)
* fix(matter): itshall set digital mode before digitalWrite

* fix(matter): example must set pin in digital mode before writting

* fix(matter): example shall set digital mode before writing

* fix(matter): digitalMode necessary before digitalWrite(LOW)

* fix(matter): example must set digital mode after analogwrite

* fix(matter): wrong copy paste

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-10 22:00:34 +02:00
Sugar Glider
e680e7b538
fix(matter): removes a few matter 1.4 / IDF 5.4 compilation warning messages (#11067)
* fix(matter): uninitialized fields warning

* fix(matter): uninitialized fields warning
2025-03-10 21:21:25 +02:00