Merge branch 'current' into nagyrobi-patch-2

This commit is contained in:
H. Árkosi Róbert 2023-12-21 19:30:46 +01:00 committed by GitHub
commit de0f0bb8b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 190 additions and 41 deletions

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 2023.12.0b3
PROJECT_NUMBER = 2023.12.1
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -1,5 +1,5 @@
ESPHOME_PATH = ../esphome
ESPHOME_REF = 2023.12.0b3
ESPHOME_REF = 2023.12.1
.PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify

View File

@ -256,7 +256,7 @@ div.body p, div.body dd, div.body li, div.body blockquote {
background: #212121;
color: #ececec;
}
}
body, div.body {
@ -281,7 +281,7 @@ div.body p, div.body dd, div.body li, div.body blockquote {
color: #ececec;
background-color: #212121;
}
a, a.reference, a:visited {
color: #00bfff;
border-bottom: 1px dotted #00bfff;
@ -326,7 +326,7 @@ div.body p, div.body dd, div.body li, div.body blockquote {
color: #e2e2e2;
}
div.note, div.tip {
div.note, div.tip, div.important {
background-color: #2d2c2c;
border: 1px solid #808080;
}
@ -339,4 +339,4 @@ div.body p, div.body dd, div.body li, div.body blockquote {
background-color: #8e8129;
}
}
}

View File

@ -1 +1 @@
2023.12.0b3
2023.12.1

View File

@ -20,6 +20,37 @@ ESPHome 2023.12.0 - 20th December 2023
PN7150, components/binary_sensor/pn7150, pn7150.jpg
PN716X, components/binary_sensor/pn7160, pn716x.jpg
Graphical Menu
--------------
Following on from the previous :doc:`/components/display_menu/lcd_menu` that was only for LCD displays,
there is now a new :doc:`/components/display_menu/graphical_display_menu` that can be used with any
graphical/pixel based display.
Pin Reuse validation
--------------------
There is a new validation performed on configurations to ensure that pins are not reused unintentionally.
This is a common source of issues and generally a pin does not need to be reused across multiple components
in a single configuration. The error can be bypassed by specifically adding another config item to all of the
duplicate pin definitions. See the :ref:`config-pin_schema` for details.
Touchscreen internal changes
----------------------------
The touchscreen compoenent code has had a big overhaul which breaks any external components or open PRs for
new touchscreens. See :esphomepr:`4596` for details if this affects you.
MCP3008 breaking changes
------------------------
The MCP3008 has has a restructure of the code and at the same time the default update interval has been changed to 60 seconds,
the units, device class and state class default have also been set to sane defaults expected for a voltage sensor.
Release 2023.12.1 - December 21
-------------------------------
- Fix replaced - in allowed characters during object_id sanitizing :esphomepr:`5983` by :ghuser:`jesserockz`
Full list of changes
--------------------
@ -32,7 +63,7 @@ New Components
- Pylontech integration (solar battery bank) :esphomepr:`4688` by :ghuser:`functionpointer` (new-integration)
- Add Chamberlain/HomEntry HE60R garage door opener :esphomepr:`5834` by :ghuser:`clydebarrow` (new-integration)
- Add graphical display menu :esphomepr:`4105` by :ghuser:`MrMDavidson` (new-integration)
- Updating the touchscreen interface structure :esphomepr:`4596` by :ghuser:`nielsnl68` (new-integration)
- Updating the touchscreen interface structure :esphomepr:`4596` by :ghuser:`nielsnl68` (new-integration) (breaking-change)
- Added the A02YYUW distance sensor :esphomepr:`5729` by :ghuser:`TH-Braemer` (new-integration)
- Add support for PN7160 :esphomepr:`5486` by :ghuser:`kbx81` (new-integration)
- Add support for PN7150 :esphomepr:`5487` by :ghuser:`kbx81` (new-integration)
@ -46,6 +77,7 @@ Breaking Changes
- mcp3008: Tidy up and fix auto load bug :esphomepr:`5842` by :ghuser:`jesserockz` (breaking-change)
- Nextion colors parameters :esphomepr:`5699` by :ghuser:`edwardtfn` (breaking-change)
- Checks for pins used in multiple places :esphomepr:`5666` by :ghuser:`clydebarrow` (breaking-change)
- Updating the touchscreen interface structure :esphomepr:`4596` by :ghuser:`nielsnl68` (new-integration) (breaking-change)
Beta Changes
^^^^^^^^^^^^
@ -63,11 +95,19 @@ Beta Changes
- web_server_idf: fix call with hardcoded http code :esphomepr:`5942` by :ghuser:`dentra`
- Revert pure virtual functions in UART component from #5920 :esphomepr:`5932` by :ghuser:`DrCoolzic`
- Use the correct UART/`Serial` when CDC is enabled :esphomepr:`5957` by :ghuser:`kbx81`
- rename ``set_raw_touch_position_`` to ``add_raw_touch_position_`` :esphomepr:`5962` by :ghuser:`nielsnl68`
- Fix build issue with UART component when building with Arduino and CDC :esphomepr:`5964` by :ghuser:`kbx81`
- Fix ``I2CBus::write()`` bug and add i2c documentation :esphomepr:`5947` by :ghuser:`DrCoolzic`
- Add deep sleep between updates for waveshare epaper 1.54in and 1.54inv2 :esphomepr:`5961` by :ghuser:`mathieu-mp`
- Speed up writing protobuf strings/bytes :esphomepr:`5828` by :ghuser:`bdraco`
- Bump aioesphomeapi to 21.0.1 :esphomepr:`5969` by :ghuser:`bdraco`
- image: allow the image to by auto-loaded by animation :esphomepr:`5139` by :ghuser:`ayufan`
- Fix pin reuse error with pin expanders :esphomepr:`5973` by :ghuser:`jesserockz`
All changes
^^^^^^^^^^^
- Nextion support to `esp-idf` :esphomepr:`5667` by :ghuser:`edwardtfn`
- Nextion support to ``esp-idf`` :esphomepr:`5667` by :ghuser:`edwardtfn`
- fix pin range for xl9535 :esphomepr:`5722` by :ghuser:`ssieb`
- Bump black from 23.10.1 to 23.11.0 :esphomepr:`5702` by :ghuser:`dependabot[bot]`
- Speed up YAML by using YAML C loader when available :esphomepr:`5721` by :ghuser:`bdraco`
@ -110,7 +150,7 @@ All changes
- Run all tests when local testing. :esphomepr:`5717` by :ghuser:`Fabian-Schmidt`
- Bump aioesphomeapi from 18.5.7 to 18.5.9 :esphomepr:`5830` by :ghuser:`dependabot[bot]`
- Allow split uart pin inversion for ESP-IDF :esphomepr:`5831` by :ghuser:`clydebarrow`
- Add `is_detected()` for Nextion displays :esphomepr:`5825` by :ghuser:`edwardtfn`
- Add ``is_detected()`` for Nextion displays :esphomepr:`5825` by :ghuser:`edwardtfn`
- Pull PollingComponent up from individual display drivers to Display. :esphomepr:`5444` by :ghuser:`clydebarrow`
- Implement variable length single word SPI writes. :esphomepr:`5678` by :ghuser:`clydebarrow`
- Add 'enable_on_boot' feature to power_supply :esphomepr:`5826` by :ghuser:`clydebarrow`
@ -122,11 +162,11 @@ All changes
- Pylontech integration (solar battery bank) :esphomepr:`4688` by :ghuser:`functionpointer` (new-integration)
- Implement deep sleep and clear screen on Waveshare 7.5in B V3 :esphomepr:`5239` by :ghuser:`lucasprim`
- Fix ESP-IDF uart initialisation sequence to match Espressif docs. :esphomepr:`5838` by :ghuser:`clydebarrow`
- Nextion - Align strings on `dump_config` :esphomepr:`5824` by :ghuser:`edwardtfn`
- Nextion - Align strings on ``dump_config`` :esphomepr:`5824` by :ghuser:`edwardtfn`
- Speed up (and fix) ili9xxx display component. :esphomepr:`5406` by :ghuser:`clydebarrow`
- Fix regex for 'byte' custom CI check :esphomepr:`5851` by :ghuser:`jesserockz`
- Pass through additional arguments to create number :esphomepr:`5849` by :ghuser:`clydebarrow`
- Nextion `on_touch` trigger :esphomepr:`5833` by :ghuser:`edwardtfn`
- Nextion ``on_touch`` trigger :esphomepr:`5833` by :ghuser:`edwardtfn`
- Nextion colors parameters :esphomepr:`5699` by :ghuser:`edwardtfn` (breaking-change)
- dashboard: fix supervisor auth doing I/O in the event loop :esphomepr:`5807` by :ghuser:`bdraco`
- Improve reliability of Nextion TFT uploads (Arduino) :esphomepr:`5683` by :ghuser:`edwardtfn`
@ -170,7 +210,7 @@ All changes
- Fix uninitialized climate target temperature :esphomepr:`5795` by :ghuser:`ckoca`
- Bump aioesphomeapi from 19.3.0 to 20.0.0 :esphomepr:`5911` by :ghuser:`dependabot[bot]`
- Bump black from 23.11.0 to 23.12.0 :esphomepr:`5912` by :ghuser:`dependabot[bot]`
- Updating the touchscreen interface structure :esphomepr:`4596` by :ghuser:`nielsnl68` (new-integration)
- Updating the touchscreen interface structure :esphomepr:`4596` by :ghuser:`nielsnl68` (new-integration) (breaking-change)
- Added the A02YYUW distance sensor :esphomepr:`5729` by :ghuser:`TH-Braemer` (new-integration)
- Fix AHT10 / AHT20 communication :esphomepr:`5198` by :ghuser:`flaminggoat`
- Fix crash when handling pin_check error :esphomepr:`5915` by :ghuser:`clydebarrow`
@ -185,7 +225,7 @@ All changes
- UART change at runtime :esphomepr:`5909` by :ghuser:`edwardtfn`
- Bump aioesphomeapi from 20.1.0 to 21.0.0 :esphomepr:`5922` by :ghuser:`dependabot[bot]`
- Fix the initial run of lambda light effects :esphomepr:`5921` by :ghuser:`smithjacobj`
- Exposes `load_settings` to `UARTComponent` class :esphomepr:`5920` by :ghuser:`edwardtfn`
- Exposes ``load_settings`` to `UARTComponent` class :esphomepr:`5920` by :ghuser:`edwardtfn`
- Add support for PN7160 :esphomepr:`5486` by :ghuser:`kbx81` (new-integration)
- Add support for PN7150 :esphomepr:`5487` by :ghuser:`kbx81` (new-integration)
- Allow use of CDC/JTAG loggers on esp32 variants with Arduino :esphomepr:`4658` by :ghuser:`jesserockz`
@ -201,6 +241,14 @@ All changes
- web_server_idf: fix call with hardcoded http code :esphomepr:`5942` by :ghuser:`dentra`
- Revert pure virtual functions in UART component from #5920 :esphomepr:`5932` by :ghuser:`DrCoolzic`
- Use the correct UART/`Serial` when CDC is enabled :esphomepr:`5957` by :ghuser:`kbx81`
- rename ``set_raw_touch_position_`` to ``add_raw_touch_position_`` :esphomepr:`5962` by :ghuser:`nielsnl68`
- Fix build issue with UART component when building with Arduino and CDC :esphomepr:`5964` by :ghuser:`kbx81`
- Fix I2CBus::write() bug and add i2c documentation :esphomepr:`5947` by :ghuser:`DrCoolzic`
- Add deep sleep between updates for waveshare epaper 1.54in and 1.54inv2 :esphomepr:`5961` by :ghuser:`mathieu-mp`
- Speed up writing protobuf strings/bytes :esphomepr:`5828` by :ghuser:`bdraco`
- Bump aioesphomeapi to 21.0.1 :esphomepr:`5969` by :ghuser:`bdraco`
- image: allow the image to by auto-loaded by animation :esphomepr:`5139` by :ghuser:`ayufan`
- Fix pin reuse error with pin expanders :esphomepr:`5973` by :ghuser:`jesserockz`
Past Changelogs
---------------

View File

@ -35,8 +35,8 @@ Advanced settings:
- **tx_buffer_size** (*Optional*, int): The size of the buffer used
for log messages. Decrease this if youre having memory problems.
Defaults to ``512``.
- **hardware_uart** (*Optional*, string): The Hardware UART to use for logging.
Defaults to ``UART0``.
- **hardware_uart** (*Optional*, string): The Hardware UART to use for logging. The default varies depending on
the specific processor/chip and framework you are using. See the :ref:`table below <logger-default_hardware_interfaces>`.
- **esp8266_store_log_strings_in_flash** (*Optional*, boolean): If set to false, disables storing
log strings in the flash section of the device (uses more memory). Defaults to true.
- **on_message** (*Optional*, :ref:`Automation <automation>`): An action to be
@ -52,23 +52,99 @@ Advanced settings:
Hardware UARTs
--------------
The logger component makes use of platform-specific hardware UARTs for serial logging.
By default, the logger will occupy ``UART0``. The ESP32 has three hardware UARTs, all of
which can be used for both transmit and receive. The ESP8266 only has two hardware UARTs,
one of which is transmit-only. The ESP8266 ``UART0`` can also be 'swapped' to TX/RX on the
CTS/RTS pins, if you need to use GPIO1 and GPIO3 for something else. Note that the common
NodeMCU boards have their USB-UART Adapters fixed to the default GPIOs used by ``UART0``,
so if you use anything else you will not get log messages over the on-board USB.
The logger component makes use of platform-specific hardware UARTs for serial logging. For example, the ESP32
has three hardware UARTs, all of which can be used for both transmit and receive. The ESP8266 only has two
hardware UARTs, one of which is transmit-only. The ESP8266's ``UART0`` can also be "swapped" to TX/RX on the
CTS/RTS pins in the event that you need to use GPIO1 and GPIO3 for something else.
Possible Hardware UART configurations:
Note that many common boards have their USB-to-serial adapters fixed to the default GPIOs used by ``UART0``,
so if you use any other configuration you will not get log messages over the on-board USB.
- ``UART0`` - TX: GPIO1, RX: GPIO3
- ``UART0_SWAP`` - TX: GPIO15, RX: GPIO13 (Only on ESP8266)
- ``UART1`` - TX: GPIO2, RX: None (Only on ESP8266)
- ``UART1`` - TX: GPIO9, RX: GPIO10 (Only on ESP32)
- ``UART2`` - TX: GPIO16, RX: GPIO17 (Only on ESP32 but not ESP32S2, ESP32S3 or ESP32C3)
- ``USB_CDC`` - uses the USB CDC driver (Only on ESP32S2 and ESP32S3)
- ``USB_SERIAL_JTAG`` - uses the USB Serial/JTAG driver (Only on ESP32S3 and ESP32C3)
Default UART GPIO Pins
**********************
.. list-table::
:header-rows: 1
* -
- ``UART0``
- ``UART0_SWAP``
- ``UART1``
- ``UART2``
- ``USB_CDC``
- ``USB_SERIAL_JTAG``
* - ESP8266
- TX: 1, RX: 3
- TX: 15, RX: 13
- TX: 2, RX: N/A
- N/A
- N/A
- N/A
* - ESP32
- TX: 1, RX: 3
- N/A
- TX: 9, RX: 10
- TX: 16, RX: 17
- N/A
- N/A
* - ESP32-C3
- TX: 21, RX: 20
- N/A
- Undefined
- N/A
- N/A
- 18/19
* - ESP32-S2
- TX: 43, RX: 44
- N/A
- TX: 17, RX: 18
- N/A
- 19/20
- N/A
* - ESP32-S3
- TX: 43, RX: 44
- N/A
- TX: 17, RX: 18
- Undefined
- 19/20
- 19/20
*Undefined* means that the logger component cannot use this harware UART at this time.
.. _logger-default_hardware_interfaces:
Default Hardware Interfaces
---------------------------
Because of the wide variety of boards and processors/chips available, we've selected varying default
hardware interfaces for logging. Many newer boards based on ESP32 variants (such as the C3, S2 and S3)
are using the ESP's on-board USB hardware peripheral while boards based on older processors (such as
the original ESP32 or ESP8266) continue to use USB-to-serial bridge ICs for communication.
.. list-table::
:header-rows: 1
* -
- Arduino
- ESP-IDF
* - ESP8266
- ``UART0``
- N/A
* - ESP32
- ``UART0``
- ``UART0``
* - ESP32-C3
- ``USB_CDC``
- ``USB_SERIAL_JTAG``
* - ESP32-S2
- ``USB_CDC``
- ``USB_CDC``
* - ESP32-S3
- ``USB_CDC``
- ``USB_SERIAL_JTAG``
* - RP2040
- ``USB_CDC``
- N/A
.. _logger-log_levels:

View File

@ -6,7 +6,7 @@ ENS160 Sensor
:keywords: ENS160
The ``ens160`` sensor platform allows you to use your ENS160
(`datasheet <https://www.sciosense.com/wp-content/uploads/documents/SC-001224-DS-7-ENS160-Datasheet.pdf>`__) air-quality sensors with ESPHome. The :ref:`I²C <i2c>` component is
(`datasheet <https://www.sciosense.com/wp-content/uploads/documents/SC-001224-DS-9-ENS160-Datasheet.pdf>`__) air-quality sensors with ESPHome. The :ref:`I²C <i2c>` component is
required to be set up in your configuration for this sensor to work.
.. note::

View File

@ -69,7 +69,7 @@ author = "ESPHome"
# The short X.Y version.
version = "2023.12"
# The full version, including alpha/beta/rc tags.
release = "2023.12.0b3"
release = "2023.12.1"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -695,6 +695,27 @@ Standard for the esphome-core codebase:
docker run --rm -v "$($current_dir):/esphome" -it ghcr.io/esphome/esphome-lint script/quicklint
PRs are being drafted when changes are needed
---------------------------------------------
If there have been changes requested to your PR, our bot will automatically mark your PR as a draft.
This means that the PR is not ready to be merged or further reviewed for the moment.
Draft PRs tell other reviewers that look at the list of all PRs that this PR is currently in progress and doesn't require their attention yet.
Once you have made the requested changes, you can mark the PR as ready for review again by clicking the "Ready for review button":
.. figure:: images/pr-draft-ready.png
:align: center
:width: 100.0%
:alt: The ready for review button in the bottom of a PR in draft mode
Before you click the "Ready for review" button, ensure you have addressed all requested changes,
there are no merge conflicts, and that all our CI jobs and checks are passing successfully.
Once you've clicked the "Ready for review" button, the PR will return to a normal state again,
and our bot will automatically notify the reviewers who requested the changes that the PR is ready to go!
See Also

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -81,6 +81,7 @@ Contributors
- `Andreas Mandel (@amandel) <https://github.com/amandel>`__
- `Amish Vishwakarma (@amishv) <https://github.com/amishv>`__
- `Amit Keret (@amitkeret) <https://github.com/amitkeret>`__
- `Ammar Askar (@ammaraskar) <https://github.com/ammaraskar>`__
- `Jason Nader (@ammgws) <https://github.com/ammgws>`__
- `Branden Cash (@ammmze) <https://github.com/ammmze>`__
- `Alexander Momchilov (@amomchilov) <https://github.com/amomchilov>`__
@ -178,7 +179,6 @@ Contributors
- `Brian Kaufman (@bkaufx) <https://github.com/bkaufx>`__
- `JDavid (@blackhack) <https://github.com/blackhack>`__
- `blackshoals (@blackshoals) <https://github.com/blackshoals>`__
- `blacktirion (@blacktirion) <https://github.com/blacktirion>`__
- `blakadder (@blakadder) <https://github.com/blakadder>`__
- `Branimir Lambov (@blambov) <https://github.com/blambov>`__
- `bleeisme (@bleeisme) <https://github.com/bleeisme>`__
@ -232,6 +232,7 @@ Contributors
- `Stroe Andrei Catalin (@catalin2402) <https://github.com/catalin2402>`__
- `Carter Nelson (@caternuson) <https://github.com/caternuson>`__
- `cathelest (@cathelest) <https://github.com/cathelest>`__
- `Chris AtLee (@catlee) <https://github.com/catlee>`__
- `cbialobos (@cbialobos) <https://github.com/cbialobos>`__
- `Cameron Bulock (@cbulock) <https://github.com/cbulock>`__
- `Ciprian Constantinescu (@cciprian5) <https://github.com/cciprian5>`__
@ -552,6 +553,7 @@ Contributors
- `Jadson Santos (@gtjadsonsantos) <https://github.com/gtjadsonsantos>`__
- `Guillaume DELVIT (@guiguid) <https://github.com/guiguid>`__
- `guillempages (@guillempages) <https://github.com/guillempages>`__
- `Fabian Pflug (@gumulka) <https://github.com/gumulka>`__
- `Guyohms (@Guyohms) <https://github.com/Guyohms>`__
- `Gilles van den Hoven (@gvdhoven) <https://github.com/gvdhoven>`__
- `h0jeZvgoxFepBQ2C (@h0jeZvgoxFepBQ2C) <https://github.com/h0jeZvgoxFepBQ2C>`__
@ -611,7 +613,6 @@ Contributors
- `imwoo90 (@imwoo90) <https://github.com/imwoo90>`__
- `Dom (@Ing-Dom) <https://github.com/Ing-Dom>`__
- `Ingo Becker (@ingobecker) <https://github.com/ingobecker>`__
- `Ingurum (@Ingurum) <https://github.com/Ingurum>`__
- `Marc J (@InvncibiltyCloak) <https://github.com/InvncibiltyCloak>`__
- `IoT-devices LLC (@iotdevicesdev) <https://github.com/iotdevicesdev>`__
- `irtimaled (@irtimaled) <https://github.com/irtimaled>`__
@ -624,13 +625,11 @@ Contributors
- `J0RD4N300 (@J0RD4N300) <https://github.com/J0RD4N300>`__
- `jacobswe (@jacobswe) <https://github.com/jacobswe>`__
- `Fredrik Gustafsson (@jagheterfredrik) <https://github.com/jagheterfredrik>`__
- `Jan Harkes (@jaharkes) <https://github.com/jaharkes>`__
- `jakehdk (@jakehdk) <https://github.com/jakehdk>`__
- `Jake Shirley (@JakeShirley) <https://github.com/JakeShirley>`__
- `jakub-medrzak (@jakub-medrzak) <https://github.com/jakub-medrzak>`__
- `James Braid (@jamesbraid) <https://github.com/jamesbraid>`__
- `James Duke (@jamesduke) <https://github.com/jamesduke>`__
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
- `James Hirka (@jameshirka) <https://github.com/jameshirka>`__
- `James Lakin (@jamesorlakin) <https://github.com/jamesorlakin>`__
- `Jason (@jamman9000) <https://github.com/jamman9000>`__
@ -642,7 +641,6 @@ Contributors
- `Jared Ring (@jaredring) <https://github.com/jaredring>`__
- `Jason-nz (@Jason-nz) <https://github.com/Jason-nz>`__
- `Jason2866 (@Jason2866) <https://github.com/Jason2866>`__
- `JasperPlant (@JasperPlant) <https://github.com/JasperPlant>`__
- `Jas Strong (@jasstrong) <https://github.com/jasstrong>`__
- `Jay Greco (@jaygreco) <https://github.com/jaygreco>`__
- `Jay Newstrom (@JayNewstrom) <https://github.com/JayNewstrom>`__
@ -673,6 +671,7 @@ Contributors
- `jmichiel (@jmichiel) <https://github.com/jmichiel>`__
- `JMoratelli (@JMoratelli) <https://github.com/JMoratelli>`__
- `Jonathas Barbosa (@jnthas) <https://github.com/jnthas>`__
- `jochenvg (@jochenvg) <https://github.com/jochenvg>`__
- `Johboh (@Johboh) <https://github.com/Johboh>`__
- `John Moxley (@johnmoxley) <https://github.com/johnmoxley>`__
- `Dave Johnston (@johnsto) <https://github.com/johnsto>`__
@ -681,6 +680,7 @@ Contributors
- `Jonas Niesner (@jonasniesner) <https://github.com/jonasniesner>`__
- `Jonathan Adams (@jonathanadams) <https://github.com/jonathanadams>`__
- `JonnyaiR (@jonnyair) <https://github.com/jonnyair>`__
- `jonOfrie (@jonOfrie) <https://github.com/jonOfrie>`__
- `Joris S (@Jorre05) <https://github.com/Jorre05>`__
- `Jared Sanson (@jorticus) <https://github.com/jorticus>`__
- `JosephTang (@JosephTang) <https://github.com/JosephTang>`__
@ -693,7 +693,6 @@ Contributors
- `Jules-R (@Jules-R) <https://github.com/Jules-R>`__
- `Julie Koubová (@juliekoubova) <https://github.com/juliekoubova>`__
- `Mike Ryan (@justfalter) <https://github.com/justfalter>`__
- `Jasper van der Neut - Stulen (@jvanderneutstulen) <https://github.com/jvanderneutstulen>`__
- `Jack Wozny (@jwozny) <https://github.com/jwozny>`__
- `Kris (@K-r-i-s-t-i-a-n) <https://github.com/K-r-i-s-t-i-a-n>`__
- `k0rtina (@k0rtina) <https://github.com/k0rtina>`__
@ -751,6 +750,7 @@ Contributors
- `Juraj Liso (@LiJu09) <https://github.com/LiJu09>`__
- `Li Junru (@lijunru-hub) <https://github.com/lijunru-hub>`__
- `lillborje71 (@lillborje71) <https://github.com/lillborje71>`__
- `Citric Lee (@limengdu) <https://github.com/limengdu>`__
- `lingex (@lingex) <https://github.com/lingex>`__
- `Markus (@Links2004) <https://github.com/Links2004>`__
- `LinusHeu (@LinusHeu) <https://github.com/LinusHeu>`__
@ -803,6 +803,7 @@ Contributors
- `Masterz69 (@Masterz69) <https://github.com/Masterz69>`__
- `Christopher Masto (@masto) <https://github.com/masto>`__
- `Mat931 (@Mat931) <https://github.com/Mat931>`__
- `mathieu-mp (@mathieu-mp) <https://github.com/mathieu-mp>`__
- `matikij (@matikij) <https://github.com/matikij>`__
- `Michel Marti (@matoxp) <https://github.com/matoxp>`__
- `matt123p (@matt123p) <https://github.com/matt123p>`__
@ -851,6 +852,7 @@ Contributors
- `mmanza (@mmanza) <https://github.com/mmanza>`__
- `mnltake (@mnltake) <https://github.com/mnltake>`__
- `Matt N. (@mnoorenberghe) <https://github.com/mnoorenberghe>`__
- `Moriah Morgan (@moriahmorgan) <https://github.com/moriahmorgan>`__
- `moritzj29 (@moritzj29) <https://github.com/moritzj29>`__
- `Chris Laplante (@mostthingsweb) <https://github.com/mostthingsweb>`__
- `MrEditor97 (@mreditor97) <https://github.com/mreditor97>`__
@ -858,6 +860,7 @@ Contributors
- `Michael Davidson (@MrMDavidson) <https://github.com/MrMDavidson>`__
- `mrred2k (@mrred2k) <https://github.com/mrred2k>`__
- `André Cirne (@MrSuicideParrot) <https://github.com/MrSuicideParrot>`__
- `mrtoy-me (@mrtoy-me) <https://github.com/mrtoy-me>`__
- `Murray Scott (@mscottco) <https://github.com/mscottco>`__
- `MSe-5-14 (@MSe-5-14) <https://github.com/MSe-5-14>`__
- `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__
@ -873,6 +876,7 @@ Contributors
- `Mykle (@myklemykle) <https://github.com/myklemykle>`__
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
- `n6ham (@n6ham) <https://github.com/n6ham>`__
- `N6RDV (@N6RDV) <https://github.com/N6RDV>`__
- `Erik Näsström (@Naesstrom) <https://github.com/Naesstrom>`__
- `H. Árkosi Róbert (@nagyrobi) <https://github.com/nagyrobi>`__
@ -977,6 +981,7 @@ Contributors
- `Philip Persson (@PhPersson) <https://github.com/PhPersson>`__
- `Pierre Gordon (@pierlon) <https://github.com/pierlon>`__
- `pieterbrink123 (@pieterbrink123) <https://github.com/pieterbrink123>`__
- `Jakub Augustynowicz (@pingwiniasty) <https://github.com/pingwiniasty>`__
- `Piotr Kubiak (@piotr-kubiak) <https://github.com/piotr-kubiak>`__
- `Peter Kuehne (@pkuehne) <https://github.com/pkuehne>`__
- `Plácido Revilla (@placidorevilla) <https://github.com/placidorevilla>`__
@ -1253,7 +1258,6 @@ Contributors
- `Wauter (@Wauter) <https://github.com/Wauter>`__
- `WeekendWarrior1 (@WeekendWarrior1) <https://github.com/WeekendWarrior1>`__
- `Thomas Aldrian (@Weissnix4711) <https://github.com/Weissnix4711>`__
- `Ian Wells (@wellsi) <https://github.com/wellsi>`__
- `Andrew Garrett (@werdnum) <https://github.com/werdnum>`__
- `whimsee (@whimsee) <https://github.com/whimsee>`__
- `wifwucite (@wifwucite) <https://github.com/wifwucite>`__
@ -1292,4 +1296,4 @@ Contributors
- `Zsolt Zsiros (@ZsZs73) <https://github.com/ZsZs73>`__
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
*This page was last updated December 18, 2023.*
*This page was last updated December 21, 2023.*