Merge branch 'current' into next

This commit is contained in:
Otto Winter 2019-03-13 18:55:40 +01:00
commit c020aa7f2b
No known key found for this signature in database
GPG Key ID: DB66C0BE6013F97E
19 changed files with 553 additions and 28 deletions

7
.github/issue-close-app.yml vendored Normal file
View File

@ -0,0 +1,7 @@
comment: >-
https://github.com/esphome/esphome-docs/issues/162
issueConfigs:
- content:
- "OTHERWISE THE ISSUE WILL BE CLOSED AUTOMATICALLY"
caseInsensitive: false

View File

@ -82,3 +82,25 @@ img.index-shield {
height: 26px;
margin-top: 10px;
}
.supporters-row {
display: flex;
}
.supporters-column {
flex: 50%;
text-align: center;
padding-left: 10px;
padding-right: 10px;
}
.supporters-row .supporters-column:first-child {
border-right: 1px solid #a0a0a0;
}
.supporters-column img {
width: 75%;
display: block;
margin-left: auto;
margin-right: auto;
}

View File

@ -12,6 +12,12 @@ just be able to copy over the `MQTT
section <https://www.home-assistant.io/components/mqtt/>`__ of your Home
Assistant configuration.
.. warning::
When enabling MQTT and you do *not* use the "native API" for Home Assistant, you must
remove the ``api:`` line from your ESPHome configuration, otherwise the ESP will
reboot every 5 minutes because no client connected to the native API.
.. code-block:: yaml
# Example configuration entry

View File

@ -20,7 +20,7 @@
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import hashlib
import os
import subprocess
from sphinx import addnodes
@ -114,7 +114,7 @@ html_theme = 'alabaster'
#
html_baseurl = os.getenv('BASE_URL', 'https://esphome.io')
with open('_static/custom.css', 'rb') as f:
custom_css_hash = "{:08X}".format(hash(f.read()) % 2**32)
custom_css_hash = hashlib.md5(f.read()).hexdigest()[:8]
html_theme_options = {
# 'logo': 'logo-full.png',

View File

@ -47,7 +47,8 @@ After validating the sensor is working, we can proceed and add some formulas.
const float r = 8.31447215; // Universal gas constant J/mol/K
return (6.112 * powf(2.718281828, (17.67 * id(bme280_temperature).state) /
(id(bme280_temperature).state + 243.5)) * id(bme280_humidity).state * mw) /
((273.15 + id(bme280_temperature).state) * r); // in grams/m^3
((273.15 + id(bme280_temperature).state) * r); // in micrograms/m^3
accuracy_decimals: 2
update_interval: 15s
Altitude and absolute humidity:

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1,240 @@
Brilliant / Mirabella Genio Smart Plugs
=======================================
Brilliant / Mirabella Genio Smart Plugs are a tuya based smart plugs sold by Bunnings and Kmart respectively in Australia.
.. figure:: images/brilliant-mirabella-genio-smart-plugs.jpg
:align: center
:width: 50.0%
Originally intended to be used with their companion apps once flashed using `tuya-convert <https://github.com/ct-Open-Source/tuya-convert>`__ ESPHome generated
firmware can be uploaded allowing you to control the smart plugs via Home Assistant.
1. Create the ESPHome Firmware
------------------------------
#. Refer to either :doc:`/guides/getting_started_command_line` or :doc:`/guides/getting_started_hassio` before moving onto the next step.
#. Select a plug configuration below based on the plug/s you have and copy all of the text in the code block and paste into your
``name_of_esphome_configuration.yaml`` file.
#. Compile the firmware, again depending on your chosen setup refer to the guides in the first point.
2. Flashing
-----------
2.1 Prerequisites
*****************
#. Before you begin you'll need one of the following linux machines running the latest copy of `Raspbian Stretch Lite
<https://www.raspberrypi.org/downloads/raspbian/>`__
a. Raspberry Pi 2B/B+ with `USB WiFi Dongle <https://www.raspberrypi.org/products/raspberry-pi-usb-wifi-dongle/>`__.
b. Raspberry Pi 3B/B+.
.. note::
As per the `tuya-convert documentation <https://github.com/ct-Open-Source/tuya-convert/blob/master/README.md#requirements>`__:
Any Linux with a Wifi adapter which can act as an Access Point should also work. Please note that we have tested the Raspberry Pi with clean installations
only. If you use your Raspberry Pi for anything else, we recommend using another SD card with a clean installation.
#. A microSD card (minimum 2GB, 8GB+ recommended).
#. Any WiFi device which can connect to the SSID generated by the Raspberry Pi and eventually the flashed tuya device. **This cannot be an iOS / Apple device.
Android devices will work.**
2.2 Installing the OS
*********************
#. It's recommended to read the documentation provided by the Raspberry Pi Foundation on the best way to flash the OS to the microSD card depending on your
platform - `Installing operating system images <https://www.raspberrypi.org/documentation/installation/installing-images/>`__.
#. After you've flashed the microSD card browse to the "boot" partition and add a blank file called "ssh" **(without any extension)** which will enable the
SSH server upon first boot, extended information on this step can be found `here
<https://www.raspberrypi.org/documentation/remote-access/ssh/README.md#3-enable-ssh-on-a-headless-raspberry-pi-add-file-to-sd-card-on-another-machine>`__.
#. Plug the microSD card into the Raspberry Pi, connect network cable and power, the Raspberry Pi will start to boot.
2.3 Connecting to the Pi via SSH
********************************
#. Download and install `Putty <https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html>`__.
#. Open Putty.
#. Enter the IP of Raspberry Pi in the box that says "Host Name", leaving the port set to 22 (default for SSH). A list of recommended ways can be found `here
<https://www.raspberrypi.org/documentation/remote-access/ip-address.md>`__, but the easiest is to download and use `Fing <https://www.fing.com/>`__
(`Android <https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=en_GB>`__ / `iOS
<https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8>`__).
#. In the "Saved Sessions" input box, name the Raspberry Pi connection and then press "Save".
#. Select your new saved session from the list.
#. Press "Open".
2.4 Configuring the Pi
**********************
#. In the putty window login with the **pi** as the user and **raspberry** for the password.
#. Type ``sudo apt-get update && sudo apt-get dist-upgrade -y`` and wait for the upgrades to install.
#. Type ``sudo apt-get install git`` and wait for it to install.
2.5 Setup and Install tuya-convert
**********************************
#. In the putty window type ``git clone https://github.com/ct-Open-Source/tuya-convert`` press enter and wait while the repository is cloned.
#. Type ``cd tuya-convert`` and press enter.
#. Type ``./install_prereq.sh`` press enter and wait as the script gathers all the required components needed to function.
2.6 Upload ESPHome Firmware using SFTP
**************************************
#. Download `FileZilla <https://filezilla-project.org/download.php?type=client>`__ or `WinSCP <https://winscp.net/eng/index.php>`__ or use your preferred FTP
client.
#. Depending on the program you need to connect to the Pi using the IP address as the hostname and the username and password the same as you used to connect
via SSH and ensure your connection type is set to **SFTP**
#. Browse to ``/root/tuya-convert/files``.
#. Upload your compiled ``firmware.bin`` file to this directory. For command line based installs you can access the file under
``<CONFIG_DIR>/<NODE_NAME>/.pioenvs/<NODE_NAME>/firmware.bin`` alternatively Hass.io users can download the file directly from the web ui.
2.7 Use tuya-convert to install ESPHome Firmware
************************************************
#. Type ``./start_flash.sh``
#. Type ``yes`` to accept the warning.
#. Connect your alternative WiFi device (non iOS / Apple based) to the ``vtrust-flash`` SSID using ``flashmeifyoucan`` as the password. This is the network
being broadcast by the Pi from the tuya flash script.
#. If you haven't already connect your smart plug and turn it on. It should automatically enter pairing mode, if it doesn't follow the instructions below:
* Brilliant `(PDF Manual) <https://www.brilliantsmart.com.au/wp-content/uploads/2019/02/03.-How-to-setup-the-Smart-plug.pdf>`__
* To connect the Smart WiFi Plug to your WiFi press and hold the manual control button for about 5 seconds until you hear a click. Let go of the button
as soon as you hear the **click**. Then press button once again to activate blinking. **The red indicator light should now blink rapidly (2 times per
second)**.
* Mirabella `(PDF Manual) <https://img1.wsimg.com/blobby/go/67cdd3b9-3600-4104-b097-603c05201237/downloads/1cq5h6nt7_336441.pdf>`__
* To do this, ensure your plug is on (the indicator light should be blue), hold the power button down for 5 seconds until you hear a click, let go of the
power button and then press the button once to activate.
#. Press enter on your putty window to start the flash process and wait. If the connection is successful you should see a large amount of scrolling text, this
is the script backing up the factory shipped firmware.
#. Once the process is complete you can type ``curl http://10.42.42.42/flashURL?url=http://10.42.42.1/files/firmware.bin``
#. The plug will restart and if everything is working correctly after a few seconds you should be able to press the button triggering the relay and turning the
blue led on.
3. Smart Plug Configurations
----------------------------
Thanks to the existing work by `@ideasman69 <https://github.com/ct-Open-Source/tuya-convert/issues/66>`__ and
`afalzon <https://github.com/arendst/Sonoff-Tasmota/wiki/Mirabella-Genio-Smart-Plug>`__
which these adaptions created by `@cryptelli <https://community.home-assistant.io/u/cryptelli>`__ are based on.
3.1 Brilliant Smart Plug
************************
.. code-block:: yaml
esphome:
name: brilliant_smart_plug
platform: ESP8266
board: esp01_1m
wifi:
ssid: 'WIFI'
password: 'WIFIPASS'
logger:
api:
ota:
binary_sensor:
- platform: gpio
pin:
number: 14
mode: INPUT_PULLUP
inverted: true
name: "Power Button"
on_press:
- switch.toggle: relay
- platform: status
name: "Status"
switch:
- platform: gpio
id: red_led
pin:
number: GPIO12
inverted: true
- platform: gpio
name: "Brilliant Smart Plug"
pin: GPIO5
id: relay
# Turn off red LED to show blue when turned on
on_turn_on:
- switch.turn_off: red_led
# Turns on the red LED once the plug is turned off. Stock plug doesn't do this, to restore normal behavior remove the on_turn_on and on_turn_off
# blocks.
on_turn_off:
- switch.turn_on: red_led
3.2 Mirabella Genio Wi-Fi 1 USB Adaptor
***************************************
.. code-block:: yaml
esphome:
name: mirabella_genio_smart_plug
platform: ESP8266
board: esp01_1m
wifi:
ssid: 'WIFI'
password: 'WIFIPASS'
logger:
api:
ota:
binary_sensor:
- platform: gpio
pin:
number: GPIO13
mode: INPUT_PULLUP
inverted: true
name: "Power Button"
on_press:
- switch.toggle: relay
- platform: status
name: Status
switch:
- platform: gpio
name: "Mirabella Genio Smart Plug"
pin: GPIO12
id: relay
4. Adding to Home Assistant
---------------------------
You can now add your smart plug to home assistant via the configurations page, look for 'ESPHome' under the Integrations option and click 'Configure'.
.. figure:: images/brilliant-mirabella-genio-smart-plugs-homeassistant.jpg
:align: center
:width: 50.0%
See Also
--------
- :doc:`/components/switch/index`
- :doc:`/components/binary_sensor/index`
- :doc:`/components/light/index`
- :doc:`/components/light/monochromatic`
- :doc:`/components/output/index`
- :doc:`/components/output/esp8266_pwm`
- :doc:`/guides/automations`
- :ghedit:`Edit`
.. disqus::

View File

@ -31,13 +31,13 @@ for some motors.
.. code-block:: yaml
esphome:
name: cover
platform: ESP8266
board: esp01_1m
name: cover
platform: ESP8266
board: esp01_1m
wifi:
ssid: '***'
password: '***'
ssid: '***'
password: '***'
api:
@ -48,7 +48,7 @@ for some motors.
binary_sensor:
- platform: gpio
pin:
number: 10
number: GPIO10
inverted: true
id: button
on_press:
@ -75,10 +75,10 @@ for some motors.
switch:
- platform: gpio
pin: 12
pin: GPIO12
id: open
- platform: gpio
pin: 5
pin: GPIO5
id: close
cover:
@ -102,7 +102,8 @@ for some motors.
stop_action:
- switch.turn_off: open
- switch.turn_off: close
optimistic: true
optimistic: True
assumed_state: True
See Also
--------

113
cookbook/endstop-cover.rst Normal file
View File

@ -0,0 +1,113 @@
Template Cover with Endstops
============================
.. seo::
:description: An example of how to integrate covers with endstops in ESPHome.
:image: window-open.jpg
The following is an example configuration for controlling covers (like window blinds etc)
with ESPHome. This guide assumes that the cover is set up with two endstops at the top
and the bottom. When these endstops are reached, the cover will automatically stop.
To protect the motors from spinning indefinitely (in case an endstop fails) the motors
also have a maximum run time - after 3 minutes they will automatically turn off even if the
endstop is not reached.
ESPHome uses Home Assistant's cover architecture model which has two states: "OPEN" or
"CLOSED". We will map OPEN to "cover is at the top endstop" and CLOSE to "cover is at the bottom".
.. code-block:: yaml
switch:
# The switch that turns the UP direction on
- platform: gpio
pin: D1
id: up_pin
# Use interlocking to keep at most one of the two directions on
interlock: &interlock_group [up_pin, down_pin]
# If ESP reboots, do not attempt to restore switch state
restore_mode: always off
# The switch that turns the DOWN direction on
- platform: gpio
pin: D2
id: down_pin
interlock: *interlock_group
restore_mode: always off
binary_sensor:
# The top endstop
- platform: gpio
pin: D4
id: top_endstop
on_press:
# Acknowledge that the cover is open
- cover.template.publish:
id: my_cover
state: OPEN
# Stop the cover motors
- cover.stop: my_cover
- platform: gpio
pin: D5
id: bottom_endstop
on_press:
# Acknowledge that the cover is closed
- cover.template.publish:
id: my_cover
state: CLOSED
# Stop the cover motors
- cover.stop: my_cover
cover:
- platform: template
name: "My Endstop Cover"
id: my_cover
open_action:
- switch.turn_on: up_pin
# Failsafe: Turn off motors after 3min if endstop not reached.
- delay: 3 min
- cover.stop: my_cover
close_action:
- switch.turn_on: down_pin
- delay: 3 min
- cover.stop: my_cover
stop_action:
- switch.turn_off: up_pin
- switch.turn_off: down_pin
optimistic: True
assumed_state: True
You can then optionally also add manual controls to the cover with three buttons:
open, close, and stop.
.. code-block:: yaml
binary_sensor:
# [...] - Previous binary sensors
- platform: gpio
id: open_button
pin: D3
on_press:
- cover.open: my_cover
- platform: gpio
id: close_button
pin: D6
on_press:
- cover.close: my_cover
- platform: gpio
id: stop_button
pin: D7
on_press:
- cover.stop: my_cover
See Also
--------
- :doc:`/guides/automations`
- :doc:`/components/cover/template`
- :doc:`dual-r2-cover`
- :ghedit:`Edit`
.. disqus::

View File

@ -9,8 +9,6 @@ The following is a possible configuration file for garage doors that are control
One for opening and another one for closing the garage door. When either one of them is turned on
for a short period of time, the close/open action begins.
.. code-block:: yaml
switch:

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -273,18 +273,6 @@ And a docker compose file looks like this:
1. Enable Avahi on both subnets.
2. Enable UDP traffic from ESPHome node's subnet to 224.0.0.251/32 on port 5353.
Donations
---------
I invest a lot of time into this project, so if you like ESPHome and want to
support the project, donations are very welcome :)
You can donate to me via PayPal. Other donation options are being
explored. https://www.paypal.me/ottowinter
(Please do not donate for specific features as I cannot guarantee I will
be able to implement a feature because of complexity or other problems.)
See Also
--------

142
guides/supporters.rst Normal file
View File

@ -0,0 +1,142 @@
Supporters & Contributors
=========================
**Hi! I'm Otto Winter, the author and main developer of ESPHome.**
Developing ESPHome takes a lot of time. There's a lot of things that go
into developing and maintaining an open-source project: from developing new features, fixing bugs,
answering questions to maintaining servers, preparing releases and moderating discussions.
And of course all of the hardware for new features has to be bought too. I'm a student
so I really appreciate donations :)
**You can support ESPHome's development** by becoming a Patron or a one-time contribution
with PayPal.
.. raw:: html
<div class="supporters-row">
<div class="supporters-column">
<h3>Support Regularly 💫</h3>
<a href="https://www.patreon.com/ottowinter" target="_blank"><img src="/_images/donate-patreon.png" alt="Become A Patron"></a>
<p>
<strong>Become a patron for this project.</strong>
</p>
</div>
<div class="supporters-column">
<h3>One-Time Donation</h3>
<a href="https://www.paypal.me/ottowinter" target="_blank"><img src="/_images/donate-paypal.png" alt="Donate with PayPal"></a>
<p>
<strong>Make a one-time donation via PayPal.</strong>
</p>
</div>
</div>
Patrons
-------
People that support ESPHome's development over `Patreon <https://www.patreon.com/ottowinter>`__.
You guys are awesome!
- Kenvase
- Nick Rout
- Paul Morley
Contributors
------------
ESPHome is an open-source project, and everybody can contribute to it to make this
project awesome. This list contains a list of people who have submitted patches
that have made it into the `ESPHome organization's <https://github.com/esphome>`__ repositories.
Author & Main Developer
***********************
- `Otto Winter (@OttoWinter) <https://github.com/OttoWinter>`__ - 1423 contributions
Contributors
************
(in alphabetical order)
- `2016for (@2016for) <https://github.com/2016for>`__ - 1 contribution
- `Alexandre Danault (@AlexDanault) <https://github.com/AlexDanault>`__ - 1 contribution
- `Bierchermuesli (@Bierchermuesli) <https://github.com/Bierchermuesli>`__ - 1 contribution
- `David De Sloovere (@DavidDeSloovere) <https://github.com/DavidDeSloovere>`__ - 3 contributions
- `FrengerH (@FrengerH) <https://github.com/FrengerH>`__ - 2 contributions
- `Jimmy Hedman (@HeMan) <https://github.com/HeMan>`__ - 5 contributions
- `Fredrik Lindqvist (@Landrash) <https://github.com/Landrash>`__ - 1 contribution
- `Marco (@Melkor82) <https://github.com/Melkor82>`__ - 2 contributions
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__ - 2 contributions
- `Jérôme W. (@RomRider) <https://github.com/RomRider>`__ - 1 contribution
- `Taigar2015 (@Taigar2015) <https://github.com/Taigar2015>`__ - 1 contribution
- `Spencer Hachmeister (@TheHackmeister) <https://github.com/TheHackmeister>`__ - 1 contribution
- `TheJulianJES (@TheJulianJES) <https://github.com/TheJulianJES>`__ - 2 contributions
- `Florian Gareis (@TheZoker) <https://github.com/TheZoker>`__ - 7 contributions
- `Rick van Hattem (@WoLpH) <https://github.com/WoLpH>`__ - 1 contribution
- `Johan Bloemberg (@aequitas) <https://github.com/aequitas>`__ - 6 contributions
- `Anders (@ahd71) <https://github.com/ahd71>`__ - 1 contribution
- `Adriaan Peeters (@apeeters) <https://github.com/apeeters>`__ - 3 contributions
- `Florian Mösch (@badbadc0ffee) <https://github.com/badbadc0ffee>`__ - 4 contributions
- `balk77 (@balk77) <https://github.com/balk77>`__ - 1 contribution
- `Brandon Davidson (@brandond) <https://github.com/brandond>`__ - 11 contributions
- `chris-jennings (@chris-jennings) <https://github.com/chris-jennings>`__ - 1 contribution
- `James Crook (@cooljimy84) <https://github.com/cooljimy84>`__ - 1 contribution
- `Corban Mailloux (@corbanmailloux) <https://github.com/corbanmailloux>`__ - 5 contributions
- `cryptelli (@cryptelli) <https://github.com/cryptelli>`__ - 2 contributions
- `Dirk Jahnke (@dirkj) <https://github.com/dirkj>`__ - 1 contribution
- `Jiang Sheng (@doskoi) <https://github.com/doskoi>`__ - 1 contribution
- `Robert Schütz (@dotlambda) <https://github.com/dotlambda>`__ - 3 contributions
- `Drew Perttula (@drewp) <https://github.com/drewp>`__ - 1 contribution
- `Anders Persson (@emwap) <https://github.com/emwap>`__ - 1 contribution
- `erazor666 (@erazor666) <https://github.com/erazor666>`__ - 1 contribution
- `escoand (@escoand) <https://github.com/escoand>`__ - 5 contributions
- `Malte Franken (@exxamalte) <https://github.com/exxamalte>`__ - 2 contributions
- `Fabian Affolter (@fabaff) <https://github.com/fabaff>`__ - 10 contributions
- `The Gitter Badger (@gitter-badger) <https://github.com/gitter-badger>`__ - 1 contribution
- `Antoine GRÉA (@grea09) <https://github.com/grea09>`__ - 3 contributions
- `Boris Hajduk (@hajdbo) <https://github.com/hajdbo>`__ - 3 contributions
- `Ivan Kravets (@ivankravets) <https://github.com/ivankravets>`__ - 1 contribution
- `Jan Pieper (@janpieper) <https://github.com/janpieper>`__ - 2 contributions
- `JbLb (@jblb) <https://github.com/jblb>`__ - 1 contribution
- `jdads1 (@jdads1) <https://github.com/jdads1>`__ - 1 contribution
- `Jesse Hills (@jesserockz) <https://github.com/jesserockz>`__ - 3 contributions
- `John Erik Halse (@johnerikhalse) <https://github.com/johnerikhalse>`__ - 1 contribution
- `JonnyaiR (@jonnyair) <https://github.com/jonnyair>`__ - 2 contributions
- `Ken Davidson (@kwdavidson) <https://github.com/kwdavidson>`__ - 1 contribution
- `Jeppe Ladefoged (@ladefoged81) <https://github.com/ladefoged81>`__ - 2 contributions
- `Lazar Obradovic (@lobradov) <https://github.com/lobradov>`__ - 3 contributions
- `Lewis Juggins (@lwis) <https://github.com/lwis>`__ - 1 contribution
- `Magnus Øverli (@magnusoverli) <https://github.com/magnusoverli>`__ - 1 contribution
- `meijerwynand (@meijerwynand) <https://github.com/meijerwynand>`__ - 2 contributions
- `mjoshd (@mjoshd) <https://github.com/mjoshd>`__ - 2 contributions
- `Matt N. (@mnoorenberghe) <https://github.com/mnoorenberghe>`__ - 1 contribution
- `mtl010957 (@mtl010957) <https://github.com/mtl010957>`__ - 2 contributions
- `Michiel van Turnhout (@mvturnho) <https://github.com/mvturnho>`__ - 2 contributions
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__ - 1 contribution
- `nnmalex (@nnmalex) <https://github.com/nnmalex>`__ - 1 contribution
- `Greg Johnson (@notgwj) <https://github.com/notgwj>`__ - 1 contribution
- `Nuno Sousa (@nunofgs) <https://github.com/nunofgs>`__ - 1 contribution
- `Oscar Bolmsten (@oscar-b) <https://github.com/oscar-b>`__ - 3 contributions
- `Paul Nicholls (@pauln) <https://github.com/pauln>`__ - 1 contribution
- `per1234 (@per1234) <https://github.com/per1234>`__ - 2 contributions
- `pixiandreas (@pixiandreas) <https://github.com/pixiandreas>`__ - 1 contribution
- `DK (@poldim) <https://github.com/poldim>`__ - 1 contribution
- `puuu (@puuu) <https://github.com/puuu>`__ - 6 contributions
- `Tommy Jonsson (@quazzie) <https://github.com/quazzie>`__ - 1 contribution
- `r-jordan (@r-jordan) <https://github.com/r-jordan>`__ - 1 contribution
- `Pär Stålberg (@rabbadab) <https://github.com/rabbadab>`__ - 1 contribution
- `Robbie Page (@rorpage) <https://github.com/rorpage>`__ - 1 contribution
- `Emanuele Tessore (@setola) <https://github.com/setola>`__ - 1 contribution
- `sherbang (@sherbang) <https://github.com/sherbang>`__ - 4 contributions
- `thubot (@thubot) <https://github.com/thubot>`__ - 1 contribution
- `tubalainen (@tubalainen) <https://github.com/tubalainen>`__ - 2 contributions
- `Xuming Feng (@voicevon) <https://github.com/voicevon>`__ - 2 contributions
- `Ian Wells (@wellsi) <https://github.com/wellsi>`__ - 1 contribution
- `wutr (@wutr) <https://github.com/wutr>`__ - 1 contribution
- `Marcin Jaworski (@yawor) <https://github.com/yawor>`__ - 2 contributions
- `Vladimir Eremin (@yottatsa) <https://github.com/yottatsa>`__ - 1 contribution
- `YuanL.Lee (@yuanl) <https://github.com/yuanl>`__ - 1 contribution
*This page was last updated Wed Mar 13 17:25:05 2019 UTC.*

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
images/donate-patreon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
images/donate-paypal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

1
images/heart.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5 2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53L12 21.35z"/></svg>

After

Width:  |  Height:  |  Size: 255 B

View File

@ -24,3 +24,6 @@ that will only be used in raw HTML and thus not auto-included.
.. image:: logo-text.svg
.. image:: donate-patreon.png
.. image:: donate-paypal.png

View File

@ -17,7 +17,7 @@ ESPHome
<a href="https://github.com/esphome/esphome"><img src="/_images/shield-github.svg" alt="GitHub" class="index-shield"></a>
<a href="https://discord.gg/KhAMKrd"><img src="/_images/shield-discord.svg" alt="Discord" class="index-shield"></a>
<a href="https://twitter.com/esphome_"><img src="/_images/shield-twitter.svg" alt="Twitter" class="index-shield"></a>
<a href="/guides/faq.html#donations"><img src="/_images/shield-donate.svg" alt="Donate" class="index-shield"></a>
<a href="/guides/supporters.html"><img src="/_images/shield-donate.svg" alt="Donate" class="index-shield"></a>
.. _guides:
@ -39,6 +39,7 @@ Guides
Contributing, guides/contributing, github-circle.svg
Changelog, changelog/index, new-box.svg
Supporters, guides/supporters, heart.svg
.. _devices:
@ -282,7 +283,7 @@ Cookbook
.. imgtable::
Garage Door, cookbook/garage-door, window-open.svg
Endstop Cover, cookbook/endstop-cover, window-open.svg
PIR Sensor, cookbook/pir, pir.jpg
Relay, cookbook/relay, relay.jpg
BRUH Multisensor, cookbook/bruh, bruh.png
@ -294,6 +295,8 @@ Cookbook
H801 LED Controller, cookbook/h801, h801.jpg
Time & Temperature on OLED Display, cookbook/display_time_temp_oled, display_time_temp_oled_2.jpg
Mirabella Genio Bulb, cookbook/mirabella-genio-bulb, cookbook-mirabella-genio-b22-rgbw.jpg
Garage Door, cookbook/garage-door, window-open.svg
Brilliant / Mirabella Genio Smart Plugs, cookbook/brilliant-mirabella-genio-smart-plugs, cookbook-brilliant-mirabella-genio-smart-plugs.jpg
Do you have other awesome automations or cool setups? Please feel free to add them to the
documentation for others to copy. See :doc:`Contributing </guides/contributing>`.