diff --git a/changelog/v1.10.0.rst b/changelog/v1.10.0.rst index fec041d1b..2ee193a33 100644 --- a/changelog/v1.10.0.rst +++ b/changelog/v1.10.0.rst @@ -212,7 +212,7 @@ All changes - yaml: Make compatible with python 3 :yamlpr:`281` - docs: Fix copy/paste error in turn_off_action :docspr:`113` by :ghuser:`wutr` - yaml: GPIO Switch Fix restore_mode validator :yamlpr:`296` by :ghuser:`yottatsa` -- yaml: Fixes for Python 3 Compatability :yamlpr:`297` +- yaml: Fixes for Python 3 Compatibility :yamlpr:`297` - lib: Stop old template action when new one is started :libpr:`354` - lib: Add APDS-9960 support :libpr:`286` - lib: Change default update interval to 60 seconds :libpr:`356` diff --git a/changelog/v1.11.0.rst b/changelog/v1.11.0.rst index 797119a07..8b3b30ea5 100644 --- a/changelog/v1.11.0.rst +++ b/changelog/v1.11.0.rst @@ -149,7 +149,7 @@ Beta Fixes All changes ----------- -- core: Attemp to fix the addressable flicker effect :corepr:`392` by :ghuser:`RomRider` +- core: Attempt to fix the addressable flicker effect :corepr:`392` by :ghuser:`RomRider` - esphome: typing is only required for python < 3.5 :esphomepr:`341` by :ghuser:`dotlambda` - esphome: Fix install pillow in docker image :esphomepr:`338` - esphome: Allow IPv4 addresses for SNTP servers :esphomepr:`340` @@ -222,7 +222,7 @@ All changes - core: Better error messages for OTA :corepr:`486` - esphome: Better error messages for OTA :esphomepr:`418` - core: Synchronize homeassistant time periodically :corepr:`485` -- core: ESP8266 Arduino 2.5.0 Compatability :corepr:`481` (cherry-picked) +- core: ESP8266 Arduino 2.5.0 Compatibility :corepr:`481` (cherry-picked) - esphome: Add Switch Interlocking :esphomepr:`411` (cherry-picked) - esphome: Add local mDNS responder for .local :esphomepr:`386` (cherry-picked) - core: Auto-Redact private information from logs :corepr:`488` diff --git a/changelog/v1.13.0.rst b/changelog/v1.13.0.rst index 8d16c586b..55c96e99e 100644 --- a/changelog/v1.13.0.rst +++ b/changelog/v1.13.0.rst @@ -98,7 +98,7 @@ Other notable changes: functions to allow easier effect creation. - Added a new custom component mechanism and contribution guidelines have been updated. See the :doc:`contributing guide ` for more details. -- :doc:`RDM6300 ` now also has a ``on_tag`` trigger like the PN532. +- :doc:`RDM6300 ` now also has an ``on_tag`` trigger like the PN532. - :doc:`Remote Transmitter ` and :doc:`Remote Receiver ` have gotten some new features: custom triggers and actions with templatable values. - Added ``output.esp8266_pwm.set_frequency`` action for dynamically changing the frequency of the ESP8266 diff --git a/components/light/custom.rst b/components/light/custom.rst index dfcabfffa..ff463c379 100644 --- a/components/light/custom.rst +++ b/components/light/custom.rst @@ -8,7 +8,7 @@ Please first read :doc:`/components/sensor/custom` guide, the same principles apply here. All internal stuff (like effects, transitions etc) is handled by the light core -and cannot be overriden. Light outputs are only responsible for displaying some state +and cannot be overridden. Light outputs are only responsible for displaying some state when asked to do so. The example below is an example of a custom light output. diff --git a/components/ota.rst b/components/ota.rst index 09c8ac127..0e8cb0b9f 100644 --- a/components/ota.rst +++ b/components/ota.rst @@ -48,7 +48,7 @@ Updating the password: Since the password is used both for compiling and uploading the regular ``esphome run`` won't work of course. This issue can be worked around by executing the operations separately -through a ``on_boot`` trigger: +through an ``on_boot`` trigger: .. code-block:: yaml diff --git a/components/remote_transmitter.rst b/components/remote_transmitter.rst index 629374330..fa0368bd0 100644 --- a/components/remote_transmitter.rst +++ b/components/remote_transmitter.rst @@ -42,7 +42,7 @@ Configuration variables: - **pin** (**Required**, :ref:`config-pin`): The pin to transmit the remote signal on. - **carrier_duty_percent** (*Optional*, int): How much of the time the remote is on. For example, infrared protocols modulate the signal using a carrier signal. Set this is ``50%`` if you're working with IR leds and to - ``100%`` if working with a other things like 433MHz transmitters. + ``100%`` if working with other things like 433MHz transmitters. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. Use this if you have multiple remote transmitters. diff --git a/components/sensor/ultrasonic.rst b/components/sensor/ultrasonic.rst index eb5b0f401..bc58365fb 100644 --- a/components/sensor/ultrasonic.rst +++ b/components/sensor/ultrasonic.rst @@ -15,7 +15,7 @@ than about two meters and may sometimes make some annoying clicking sounds. This sensor platform expects a sensor that can be sent a **trigger -pulse** on a specific pin and will send out a **echo pulse** once a +pulse** on a specific pin and will send out an **echo pulse** once a measurement has been taken. Because sometimes (for example if no object is detected) the echo pulse is never returned, this sensor also has a timeout option which specifies how long to wait for values. diff --git a/components/stepper/index.rst b/components/stepper/index.rst index abd7c3759..98bf68b93 100644 --- a/components/stepper/index.rst +++ b/components/stepper/index.rst @@ -274,7 +274,7 @@ lambda calls From :ref:`lambdas `, you can call several methods on stepper motors to do some advanced stuff (see the full API Reference for more info). -- ``set_target``: Set the target postion of the motor as an integer. +- ``set_target``: Set the target position of the motor as an integer. .. code-block:: cpp @@ -282,21 +282,21 @@ advanced stuff (see the full API Reference for more info). // Set the (absolute) target position to 250 steps id(my_stepper).set_target(250); -- ``report_position``: Report the current postion as an integer. +- ``report_position``: Report the current position as an integer. .. code-block:: cpp // Report the (absolute) current position as 250 steps id(my_stepper).report_position(250); -- ``current_postion``: Get the current postion of the stepper as an integer. +- ``current_position``: Get the current position of the stepper as an integer. .. code-block:: cpp int pos = id(my_stepper).current_position; -- ``target_position``: Get the set target postion of the stepper as an integer. +- ``target_position``: Get the set target position of the stepper as an integer. .. code-block:: cpp diff --git a/components/time.rst b/components/time.rst index 9fe41dfda..53f57c2e1 100644 --- a/components/time.rst +++ b/components/time.rst @@ -6,11 +6,11 @@ Time .. seo:: :description: Instructions for setting up real time clock sources in ESPHome like network based time. :image: clock-outline.png - :keywords: NTP, SNTP, RTC + :keywords: GPS, NTP, RTC, SNTP The ``time`` component allows you to set up real time clock time sources for ESPHome. You can then get the current time in :ref:`lambdas `. -Currently only sntp (internet-based) and homeassistant time sources are supported. +Currently only sntp (internet-based), homeassistant time and GPS sources are supported. Home Assistant Time Source -------------------------- @@ -61,6 +61,29 @@ Configuration variables: - **on_time** (*Optional*, :ref:`Automation `): Automation to run at specific intervals using a cron-like syntax. See :ref:`time-on_time`. +GPS Time Source +--------------- + +You first need to set up the :doc:`GPS ` component. + +.. code-block:: yaml + + # Example configuration entry + time: + - platform: gps + id: gps_time + +Configuration variables: + +- **id** (*Optional*, :ref:`config-id`): Specify the ID of the time for use in lambdas. +- **timezone** (*Optional*, string): Manually tell ESPHome what timezone to use with `this format + `__ (warning: the format is quite complicated) + or the simpler `TZ database name `__ in the form + /. ESPHome tries to automatically infer the timezone string based on the timezone of the computer + that is running ESPHome, but this might not always be accurate. +- **on_time** (*Optional*, :ref:`Automation `): Automation to run at specific intervals using + a cron-like syntax. See :ref:`time-on_time`. + Use In Lambdas -------------- diff --git a/cookbook/arduino_port_extender.rst b/cookbook/arduino_port_extender.rst index 5231e87a6..11c3cdda7 100644 --- a/cookbook/arduino_port_extender.rst +++ b/cookbook/arduino_port_extender.rst @@ -71,7 +71,7 @@ When adding binary sensors the pins are configured as INPUT_PULLUP, you can use .. note:: - Arduino PIN 13 usually has a LED conected to it and using it as digital input with the built in internal + Arduino PIN 13 usually has a LED connected to it and using it as digital input with the built in internal pull up might be problematic, using it as an output is preferred. To setup binary sensors, create a custom platform as below, list in braces all the sensors you want, diff --git a/cookbook/dual-r2-cover.rst b/cookbook/dual-r2-cover.rst index 0e2387384..257536d1d 100644 --- a/cookbook/dual-r2-cover.rst +++ b/cookbook/dual-r2-cover.rst @@ -25,7 +25,7 @@ for some motors. Controlling the cover to quickly (sending new open/close commands within a minute of previous commands) might cause unexpected behaviour (eg: cover stopping halfway). This is because the delayed relay off - feature is implemented using asynchronous automations. So every time a open/close command is sent a + feature is implemented using asynchronous automations. So every time an open/close command is sent a delayed relay off command is added and old ones are not removed. .. code-block:: yaml diff --git a/devices/sonoff_4ch.rst b/devices/sonoff_4ch.rst index c775ded36..d36094a9e 100644 --- a/devices/sonoff_4ch.rst +++ b/devices/sonoff_4ch.rst @@ -107,7 +107,7 @@ When you're done, it should look something like this: .. note:: On some older 4CHs, the ``RX`` and ``TX`` pins are swapped (sometimes even the written silkscreen is - wrong). If your upload fails with a ``error: espcomm_upload_mem failed`` message it's most likely due + wrong). If your upload fails with an ``error: espcomm_upload_mem failed`` message it's most likely due to the pins being swapped. In that case, just swap ``RX`` and ``TX`` and try again - you won't break anything if they're swapped. diff --git a/devices/sonoff_s20.rst b/devices/sonoff_s20.rst index 4461ba310..8fd8683f8 100644 --- a/devices/sonoff_s20.rst +++ b/devices/sonoff_s20.rst @@ -109,7 +109,7 @@ It's best to just use a multimeter and double check if it's unclear. .. note:: On some older S20s, the ``RX`` and ``TX`` pins are swapped (sometimes even the written silkscreen is - wrong). If your upload fails with a ``error: espcomm_upload_mem failed`` message it's most likely due + wrong). If your upload fails with an ``error: espcomm_upload_mem failed`` message it's most likely due to the pins being swapped. In that case, just swap ``RX`` and ``TX`` and try again - you won't break anything if they're swapped. diff --git a/devices/sonoff_t1_uk_3gang_v1.1.rst b/devices/sonoff_t1_uk_3gang_v1.1.rst index e9e353d67..c109f46ab 100644 --- a/devices/sonoff_t1_uk_3gang_v1.1.rst +++ b/devices/sonoff_t1_uk_3gang_v1.1.rst @@ -108,7 +108,7 @@ provided **you are not touching any live contacts**, only the wires. .. note:: On some older T1 UK 3 Gangs, the ``RX`` and ``TX`` pins are swapped (sometimes even the written silkscreen is - wrong). If your upload fails with a ``error: espcomm_upload_mem failed`` message it's most likely due + wrong). If your upload fails with an ``error: espcomm_upload_mem failed`` message it's most likely due to the pins being swapped. In that case, just swap ``RX`` and ``TX`` and try again - you won't break anything if they're swapped. diff --git a/guides/automations.rst b/guides/automations.rst index 94b57b7eb..ba8394ff4 100644 --- a/guides/automations.rst +++ b/guides/automations.rst @@ -69,7 +69,7 @@ Woah, hold on there. Please explain what's going on here! Sure :) Let's step thr # ... id: dehumidifier1 -First, we have to give the dehumidifier an :ref:`config-id` so that we can +First, we have to give the dehumidifier a :ref:`config-id` so that we can later use it inside our awesome automation. .. code-block:: yaml diff --git a/guides/contributing.rst b/guides/contributing.rst index e7cbd3b24..bce0e5938 100644 --- a/guides/contributing.rst +++ b/guides/contributing.rst @@ -202,7 +202,7 @@ RST primer: New pages need to be added to the ``imgtable`` list. The syntax is CSV with , (without RST), (in top-level images/ directory). The aspect ratio of these images should be 8:10 (or 10:8) but exceptions are possible. - Because these images are served on the main page, they need to be compressed heavily. SVGs are prefered over JPGs + Because these images are served on the main page, they need to be compressed heavily. SVGs are preferred over JPGs and JPGs should be max. 300x300px. If you have imagemagick installed, you can use this command to convert the thumbnail: @@ -306,7 +306,7 @@ a fork of the repository that you can modify and create git branches on. # Add "upstream" remote git remote add upstream https://github.com/esphome/.git - # For example: git clone https://github.com/esphome/esphome.git + # For example: git remote add upstream https://github.com/esphome/esphome.git # For each patch, create a new branch from latest dev git checkout dev diff --git a/guides/faq.rst b/guides/faq.rst index 3b643cddb..cb0ee192e 100644 --- a/guides/faq.rst +++ b/guides/faq.rst @@ -27,9 +27,7 @@ Tips for using ESPHome esphome livingroom.yaml logs -4. You can always find the source ESPHome generates under ``/src/main.cpp``. It's even - possible to edit anything outside of the ``AUTO GENERATED CODE BEGIN/END`` lines for creating - :doc:`custom sensors `. +4. You can always find the source ESPHome generates under ``/src/``. 5. You can view the full list of command line interface options here: :doc:`/guides/cli` diff --git a/guides/getting_started_hassio.rst b/guides/getting_started_hassio.rst index 2874606d7..ffddb9878 100644 --- a/guides/getting_started_hassio.rst +++ b/guides/getting_started_hassio.rst @@ -25,6 +25,10 @@ https://github.com/esphome/hassio .. figure:: images/hassio_repo.png +Then, scroll down and locate the ESPHome Hass.io Add-Ons section. Click on ESPHome, then INSTALL. + +.. figure:: images/hassio_addons_section.png + After that, wait a bit until the add-on is installed (this can take a while) and go to the add-on page. Start the add-on and then click "Open Web UI". diff --git a/guides/images/hassio_addons_section.png b/guides/images/hassio_addons_section.png new file mode 100644 index 000000000..cb35f9d0e Binary files /dev/null and b/guides/images/hassio_addons_section.png differ diff --git a/guides/supporters.rst b/guides/supporters.rst index 2d5a89ee2..12cdd07d2 100644 --- a/guides/supporters.rst +++ b/guides/supporters.rst @@ -87,7 +87,7 @@ that have made it into the `ESPHome organization's ` Author & Main Developer *********************** -- `Otto Winter (@OttoWinter) `__ - 1886 contributions +- `Otto Winter (@OttoWinter) `__ - 1962 contributions Contributors ************ @@ -97,37 +97,46 @@ Contributors - `2016for (@2016for) `__ - 1 contribution - `Pavel Pletenev (@ASMfreaK) `__ - 1 contribution - `Aalian Khan (@AalianKhan) `__ - 4 contributions +- `Alexander Leisentritt (@Alex9779) `__ - 2 contributions - `Alexandre Danault (@AlexDanault) `__ - 1 contribution - `Alex Mekkering (@AlexMekkering) `__ - 1 contribution -- `Nikolay Vasilchuk (@Anonym-tsk) `__ - 4 contributions +- `Nikolay Vasilchuk (@Anonym-tsk) `__ - 10 contributions - `Rutger Nijhuis (@BananaPukeh) `__ - 1 contribution - `Bierchermuesli (@Bierchermuesli) `__ - 1 contribution - `David De Sloovere (@DavidDeSloovere) `__ - 3 contributions - `Eenoo (@Eenoo) `__ - 1 contribution - `EmmanuelLM (@EmmanuelLM) `__ - 1 contribution - `FrengerH (@FrengerH) `__ - 2 contributions +- `mr G1K (@G1K) `__ - 1 contribution - `Jimmy Hedman (@HeMan) `__ - 5 contributions - `Lorenzo Ortiz (@Infinitte) `__ - 1 contribution - `Johboh (@Johboh) `__ - 2 contributions +- `Justahobby01 (@Justahobby01) `__ - 1 contribution - `Fredrik Lindqvist (@Landrash) `__ - 1 contribution - `Marco (@Melkor82) `__ - 2 contributions - `Mynasru (@Mynasru) `__ - 2 contributions - `Erik Näsström (@Naesstrom) `__ - 1 contribution - `Jérôme W. (@RomRider) `__ - 1 contribution +- `Paul Krischer (@SqyD) `__ - 1 contribution - `Teemu Mikkonen (@T3m3z) `__ - 2 contributions - `Taigar2015 (@Taigar2015) `__ - 1 contribution -- `Thomas Eckerstorfer (@TheEggi) `__ - 1 contribution +- `Thomas Eckerstorfer (@TheEggi) `__ - 2 contributions - `Spencer Hachmeister (@TheHackmeister) `__ - 1 contribution - `TheJulianJES (@TheJulianJES) `__ - 2 contributions - `Florian Gareis (@TheZoker) `__ - 7 contributions +- `TomFahey (@TomFahey) `__ - 1 contribution - `Rick van Hattem (@WoLpH) `__ - 1 contribution +- `ZabojnikM (@ZabojnikM) `__ - 1 contribution +- `Abílio Costa (@abmantis) `__ - 1 contribution - `Attila Darazs (@adarazs) `__ - 1 contribution - `Johan Bloemberg (@aequitas) `__ - 6 contributions - `Anders (@ahd71) `__ - 1 contribution +- `amishv (@amishv) `__ - 1 contribution - `Adriaan Peeters (@apeeters) `__ - 3 contributions - `Florian Mösch (@badbadc0ffee) `__ - 4 contributions - `balk77 (@balk77) `__ - 2 contributions - `Paulus Schoutsen (@balloob) `__ - 1 contribution +- `Mauricio Bonani (@bonanitech) `__ - 1 contribution - `Patrik Hermansson (@bphermansson) `__ - 1 contribution - `Brandon Davidson (@brandond) `__ - 14 contributions - `brianrjones69 (@brianrjones69) `__ - 1 contribution @@ -135,7 +144,9 @@ Contributors - `chris-jennings (@chris-jennings) `__ - 1 contribution - `James Crook (@cooljimy84) `__ - 1 contribution - `Corban Mailloux (@corbanmailloux) `__ - 5 contributions -- `cryptelli (@cryptelli) `__ - 2 contributions +- `cryptelli (@cryptelli) `__ - 3 contributions +- `Dale Higgs (@dale3h) `__ - 1 contribution +- `Danny Sauer (@dannysauer) `__ - 1 contribution - `Dave Richer (@davericher) `__ - 3 contributions - `Mario Di Raimondo (@diraimondo) `__ - 1 contribution - `Dirk Jahnke (@dirkj) `__ - 1 contribution @@ -148,23 +159,26 @@ Contributors - `erazor666 (@erazor666) `__ - 1 contribution - `Eric Hiller (@erichiller) `__ - 1 contribution - `escoand (@escoand) `__ - 6 contributions +- `Evan Coleman (@evandcoleman) `__ - 1 contribution - `Malte Franken (@exxamalte) `__ - 2 contributions -- `Fabian Affolter (@fabaff) `__ - 13 contributions +- `Fabian Affolter (@fabaff) `__ - 14 contributions - `C W (@fake-name) `__ - 1 contribution +- `Fredrik Erlandsson (@fredrike) `__ - 1 contribution - `Fritz Mueller (@fritzm) `__ - 1 contribution - `gitolicious (@gitolicious) `__ - 11 contributions - `The Gitter Badger (@gitter-badger) `__ - 1 contribution -- `Guillermo Ruffino (@glmnet) `__ - 13 contributions +- `Guillermo Ruffino (@glmnet) `__ - 28 contributions - `Giorgos Logiotatidis (@glogiotatidis) `__ - 1 contribution - `Antoine GRÉA (@grea09) `__ - 3 contributions - `guptamp (@guptamp) `__ - 1 contribution +- `h0-- (@h0--) `__ - 1 contribution - `Boris Hajduk (@hajdbo) `__ - 4 contributions - `Ivan Kravets (@ivankravets) `__ - 1 contribution - `Jan Pieper (@janpieper) `__ - 2 contributions - `JbLb (@jblb) `__ - 1 contribution - `jcullen86 (@jcullen86) `__ - 1 contribution - `Joshua Dadswell (@jdads1) `__ - 1 contribution -- `jeff-h (@jeff-h) `__ - 1 contribution +- `jeff-h (@jeff-h) `__ - 2 contributions - `Jesse Hills (@jesserockz) `__ - 7 contributions - `Jonathan Jefferies (@jjok) `__ - 1 contribution - `John Erik Halse (@johnerikhalse) `__ - 1 contribution @@ -177,21 +191,25 @@ Contributors - `kimonm (@kimonm) `__ - 1 contribution - `Ken Davidson (@kwdavidson) `__ - 1 contribution - `Jeppe Ladefoged (@ladefoged81) `__ - 2 contributions -- `Lazar Obradovic (@lobradov) `__ - 3 contributions +- `Lazar Obradovic (@lobradov) `__ - 4 contributions - `Lewis Juggins (@lwis) `__ - 1 contribution - `Marc-Antoine Courteau (@macourteau) `__ - 1 contribution - `Magnus (@magnusja) `__ - 1 contribution - `Magnus Øverli (@magnusoverli) `__ - 1 contribution - `Major Péter (@majorpeter) `__ - 1 contribution +- `Marcel van der Veldt (@marcelveldt) `__ - 2 contributions - `MeIchthys (@meichthys) `__ - 1 contribution - `meijerwynand (@meijerwynand) `__ - 2 contributions - `Pauline Middelink (@middelink) `__ - 2 contributions - `mjoshd (@mjoshd) `__ - 2 contributions - `Matt N. (@mnoorenberghe) `__ - 1 contribution +- `Matthew Pettitt (@mpettitt) `__ - 1 contribution - `mtl010957 (@mtl010957) `__ - 7 contributions -- `Michiel van Turnhout (@mvturnho) `__ - 10 contributions +- `Michiel van Turnhout (@mvturnho) `__ - 11 contributions - `Niels Ulrik Andersen (@myplacedk) `__ - 1 contribution - `Kevin Uhlir (@n0bel) `__ - 1 contribution +- `Nebula (@nebula-it) `__ - 1 contribution +- `nicuh (@nicuh) `__ - 1 contribution - `Alex (@nnmalex) `__ - 1 contribution - `ffabi (@norges) `__ - 2 contributions - `Greg Johnson (@notgwj) `__ - 1 contribution @@ -213,23 +231,30 @@ Contributors - `r-jordan (@r-jordan) `__ - 1 contribution - `Pär Stålberg (@rabbadab) `__ - 1 contribution - `Florian Ragwitz (@rafl) `__ - 1 contribution +- `Robert Cambridge (@rcambrj) `__ - 1 contribution - `Richard Lewis (@richrd) `__ - 2 contributions +- `rlowens (@rlowens) `__ - 1 contribution - `rnauber (@rnauber) `__ - 2 contributions - `Robbie Page (@rorpage) `__ - 1 contribution - `Ryan Nazaretian (@ryannazaretian) `__ - 1 contribution +- `Sergio Mayoral Martínez (@sermayoral) `__ - 1 contribution - `sethcohn (@sethcohn) `__ - 1 contribution - `Emanuele Tessore (@setola) `__ - 1 contribution - `Abdelkader Boudih (@seuros) `__ - 1 contribution - `shbatm (@shbatm) `__ - 1 contribution - `sherbang (@sherbang) `__ - 4 contributions - `srg74 (@srg74) `__ - 1 contribution +- `Samuel Sieb (@ssieb) `__ - 1 contribution +- `Levente Tamas (@tamisoft) `__ - 1 contribution +- `Andrew Quested (@thenameiwantedwastaken) `__ - 1 contribution +- `Thomas Klingbeil (@thomasklingbeil) `__ - 1 contribution - `Andrew Thompson (@thompsa) `__ - 1 contribution - `thubot (@thubot) `__ - 1 contribution - `tiagofreire-pt (@tiagofreire-pt) `__ - 1 contribution - `tomlut (@tomlut) `__ - 1 contribution - `Felix Eckhofer (@tribut) `__ - 1 contribution - `tubalainen (@tubalainen) `__ - 2 contributions -- `Nad (@valordk) `__ - 1 contribution +- `Nad (@valordk) `__ - 5 contributions - `Xuming Feng (@voicevon) `__ - 2 contributions - `Ian Wells (@wellsi) `__ - 1 contribution - `wutr (@wutr) `__ - 1 contribution @@ -237,4 +262,4 @@ Contributors - `Vladimir Eremin (@yottatsa) `__ - 1 contribution - `YuanL.Lee (@yuanl) `__ - 1 contribution -*This page was last updated Sat Oct 12 12:03:02 2019 UTC.* +*This page was last updated Sun Oct 20 18:32:10 2019 UTC.*