diff --git a/Makefile b/Makefile index e3a9612ff..9e16c06ba 100644 --- a/Makefile +++ b/Makefile @@ -9,9 +9,7 @@ SOURCEDIR = . BUILDDIR = _build ESPHOMELIB_PATH = ../esphomelib - html: - # ESPHOMELIB_PATH=$(ESPHOMELIB_PATH) doxygen Doxygen $(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) cleanhtml: @@ -20,7 +18,10 @@ cleanhtml: minifyhtml: html ./minify.sh -deploy: cleanhtml html minifyhtml +doxyg: + ESPHOMELIB_PATH=$(ESPHOMELIB_PATH) doxygen Doxygen + +deploy: doxyg cleanhtml html minifyhtml touch "$(BUILDDIR)/html/.nojekyll" echo "esphomelib.com" >"$(BUILDDIR)/html/CNAME" cd "$(BUILDDIR)/html" && git add --all && git commit -m "Deploy to gh-pages" diff --git a/api/binary_sensor/esp32_touch.rst b/api/binary_sensor/esp32_touch.rst index ca24b75c6..67729fe0c 100644 --- a/api/binary_sensor/esp32_touch.rst +++ b/api/binary_sensor/esp32_touch.rst @@ -11,7 +11,7 @@ Example Usage touch->set_iir_filter(1000); App.register_binary_sensor(touch_hub->make_touch_pad("ESP32 Touch Pad 9", TOUCH_PAD_NUM9, 1000)); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_esp32_touch_component`. diff --git a/api/binary_sensor/gpio.rst b/api/binary_sensor/gpio.rst index ebed020b8..ff7d3e754 100644 --- a/api/binary_sensor/gpio.rst +++ b/api/binary_sensor/gpio.rst @@ -11,7 +11,7 @@ Example Usage // Custom pinMode App.make_gpio_binary_sensor("Window Open", GPIOInputPin(36, INPUT_PULLUP)); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_gpio_binary_sensor`. diff --git a/api/binary_sensor/index.rst b/api/binary_sensor/index.rst index a1b7cd51f..ade64a173 100644 --- a/api/binary_sensor/index.rst +++ b/api/binary_sensor/index.rst @@ -30,7 +30,7 @@ Example Usage App.make_gpio_binary_sensor("Window Open", 36); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::register_binary_sensor` and :cpp:func:`Application::make_gpio_binary_sensor`. diff --git a/api/binary_sensor/status.rst b/api/binary_sensor/status.rst index 8a3eeed9d..a121565a9 100644 --- a/api/binary_sensor/status.rst +++ b/api/binary_sensor/status.rst @@ -11,7 +11,7 @@ Example Usage App.make_status_binary_sensor("Livingroom Node Status"); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_status_binary_sensor`. diff --git a/api/core/application.rst b/api/core/application.rst index 128ea7ef9..0f5017bd0 100644 --- a/api/core/application.rst +++ b/api/core/application.rst @@ -1,7 +1,7 @@ Application =========== -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr The :cpp:class:`Application` class has two objectives: 1. handle all of your :cpp:class:`Component`\ s and 2. provide helper methods to simplify creating a component. diff --git a/api/core/controller.rst b/api/core/controller.rst index fbb45db03..02cca14f2 100644 --- a/api/core/controller.rst +++ b/api/core/controller.rst @@ -1,8 +1,6 @@ Controller ========== -.. cpp:namespace:: Controller - API Reference ------------- @@ -11,7 +9,7 @@ API Reference Controller ********** -.. doxygenclass:: Component +.. doxygenclass:: Controller :members: :protected-members: :undoc-members: diff --git a/api/fan/index.rst b/api/fan/index.rst index 08d396fe4..8ce55b0c1 100644 --- a/api/fan/index.rst +++ b/api/fan/index.rst @@ -23,7 +23,7 @@ Example Usage oscillating_fan.output->set_binary(App.make_gpio_output(34)); oscillating_fan.output->set_oscillation(App.make_gpio_output(35)); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_fan`. diff --git a/api/light/fastled.rst b/api/light/fastled.rst new file mode 100644 index 000000000..3764a2a8b --- /dev/null +++ b/api/light/fastled.rst @@ -0,0 +1,32 @@ +FastLED Light Output +==================== + +Since version 1.4.0 esphomelib supports many types of addressable LEDs using the FastLED +library. + +Example Usage +------------- + +.. code-block:: cpp + + // Binary + auto fast_led = App.make_fast_led_light("Fast LED Light"); + // 60 NEOPIXEL LEDS on pin GPIO23 + fast_led.fast_led->add_leds(60); + +.. cpp:namespace:: nullptr + +See :cpp:func:`Application::make_fast_led_light`. + +API Reference +------------- + +.. cpp:namespace:: nullptr + +FastLEDLightOutputComponent +*************************** + +.. doxygenclass:: light::FastLEDLightOutputComponent + :members: + :protected-members: + :undoc-members: diff --git a/api/light/index.rst b/api/light/index.rst index 741ad110a..6ababea44 100644 --- a/api/light/index.rst +++ b/api/light/index.rst @@ -7,6 +7,9 @@ Lights in esphomelib are implemented like fans. Both the hardware and the MQTT f access a combined :cpp:class:`LightState` object and use only that to set state and receive state updates. +.. toctree:: + fastled.rst + Example Usage ------------- @@ -20,7 +23,7 @@ Example Usage App.make_rgb_light("RGB Lights", red, green, blue); App.make_rgbw_light("RGBW Lights", red, green, blue, white); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_binary_light`, :cpp:func:`Application::make_monochromatic_light`, :cpp:func:`Application::make_rgb_light`, :cpp:func:`Application::make_rgbw_light`. diff --git a/api/misc/debug.rst b/api/misc/debug.rst new file mode 100644 index 000000000..85902db01 --- /dev/null +++ b/api/misc/debug.rst @@ -0,0 +1,23 @@ +Debug Component +=============== + +Example Usage +------------- + +.. code-block:: cpp + + App.make_debug_component(); + +.. cpp:namespace:: nullptr + +See :cpp:func:`Application::make_debug_component`. + +API Reference +------------- + +.. cpp:namespace:: nullptr + +.. doxygenclass:: DebugComponent + :members: + :protected-members: + :undoc-members: diff --git a/api/misc/esp32_ble_tracker.rst b/api/misc/esp32_ble_tracker.rst index fd7bf5592..c5dbe70e8 100644 --- a/api/misc/esp32_ble_tracker.rst +++ b/api/misc/esp32_ble_tracker.rst @@ -12,7 +12,7 @@ Example Usage 0xAC, 0x37, 0x43, 0x77, 0x5F, 0x4C })); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_esp32_ble_tracker`. diff --git a/api/misc/index.rst b/api/misc/index.rst index ec64a1c2d..95b4f9351 100644 --- a/api/misc/index.rst +++ b/api/misc/index.rst @@ -4,3 +4,4 @@ Miscellaneous Components .. toctree:: PCF8574 ESP32 Bluetooth Low Energy Tracker + Debug Component diff --git a/api/misc/pcf8574.rst b/api/misc/pcf8574.rst index 0f1bd84b0..4df8e3b7a 100644 --- a/api/misc/pcf8574.rst +++ b/api/misc/pcf8574.rst @@ -17,7 +17,7 @@ Example Usage auto *out = App.make_gpio_output(pcf8574->make_output_pin(2)); App.make_binary_light("PCF pin 2 light", out); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_pcf8574_component`. diff --git a/api/output/esp8266-pwm.rst b/api/output/esp8266-pwm.rst index 7ad3a9828..482f27ebb 100644 --- a/api/output/esp8266-pwm.rst +++ b/api/output/esp8266-pwm.rst @@ -17,7 +17,7 @@ Example Usage // Advanced: Setting a custom frequency globally analogWriteFreq(500); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_esp8266_pwm_output`. diff --git a/api/output/gpio-binary.rst b/api/output/gpio-binary.rst index 0825f32b7..e0d37b577 100644 --- a/api/output/gpio-binary.rst +++ b/api/output/gpio-binary.rst @@ -11,7 +11,7 @@ Example Usage // Custom pinMode App.make_gpio_output(GPIOOutputPin(33, OUTPUT_OPEN_DRAIN)); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_gpio_output` (and :cpp:func:`Application::make_gpio_switch`). diff --git a/api/output/ledc.rst b/api/output/ledc.rst index 1a76a7157..66c09f27a 100644 --- a/api/output/ledc.rst +++ b/api/output/ledc.rst @@ -11,7 +11,7 @@ Example Usage // Custom Frequency App.make_ledc_output(33, 2000.0); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_ledc_output`. diff --git a/api/output/pca9685.rst b/api/output/pca9685.rst index b15d91948..5f06ac7ff 100644 --- a/api/output/pca9685.rst +++ b/api/output/pca9685.rst @@ -11,7 +11,7 @@ Example Usage // Create the PCA9685 Output hub with frequency 500Hz. auto *pca9685 = App.make_pca9685_component(500.0f); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_pca9685_component`. diff --git a/api/sensor/adc-sensor.rst b/api/sensor/adc-sensor.rst index 02a6ca69b..8df02be1a 100644 --- a/api/sensor/adc-sensor.rst +++ b/api/sensor/adc-sensor.rst @@ -16,7 +16,7 @@ Example Usage auto adc = App.make_adc_sensor("Analog Voltage", 13); adc.adc.set_attenuation(ADC_11db); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_adc_sensor`. diff --git a/api/sensor/ads1115.rst b/api/sensor/ads1115.rst index 47c292b16..9fb6c33fe 100644 --- a/api/sensor/ads1115.rst +++ b/api/sensor/ads1115.rst @@ -39,7 +39,7 @@ Doing so requires some steps: auto *sensor = ads1115->get_sensor("ADS1115 Voltage #1", ADS1115_MUX_P0_N1, ADS1115_PGA_6P144); App.register_sensor(sensor); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_ads1115_component`. diff --git a/api/sensor/bh1750.rst b/api/sensor/bh1750.rst index 2f9327b73..5bd25ff6c 100644 --- a/api/sensor/bh1750.rst +++ b/api/sensor/bh1750.rst @@ -22,7 +22,7 @@ Example Usage // default resolution is 0.5 LX bh1750.bh1750->set_resolution(sensor::BH1750_RESOLUTION_1P0_LX); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_bh1750_sensor`. diff --git a/api/sensor/bme280.rst b/api/sensor/bme280.rst index dd9b030a7..56933b9b4 100644 --- a/api/sensor/bme280.rst +++ b/api/sensor/bme280.rst @@ -26,7 +26,7 @@ Example Usage bme280.bme280->set_humidity_oversampling(sensor::BME280_OVERSAMPLING_4X); bme280.bme280->set_pressure_oversampling(sensor::BME280_OVERSAMPLING_16X); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_bme280_sensor`. diff --git a/api/sensor/bme680.rst b/api/sensor/bme680.rst index 8f1ff5c3b..a09ea9b6c 100644 --- a/api/sensor/bme680.rst +++ b/api/sensor/bme680.rst @@ -26,7 +26,7 @@ Example Usage // set heater to 200°C for 100ms, default is off bme680.bme680->set_heater(200, 100); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_bme680_sensor`. diff --git a/api/sensor/bmp085.rst b/api/sensor/bmp085.rst index ec1342436..0f50e19a8 100644 --- a/api/sensor/bmp085.rst +++ b/api/sensor/bmp085.rst @@ -21,7 +21,7 @@ Example Usage // create sensors App.make_bmp085_sensor("Outside Temperature", "Outside Pressure"); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_bmp085_sensor`. diff --git a/api/sensor/dallas.rst b/api/sensor/dallas.rst index 4ba22eaae..5589965cb 100644 --- a/api/sensor/dallas.rst +++ b/api/sensor/dallas.rst @@ -25,7 +25,7 @@ Example Usage // By index App.register_sensor(dallas->get_sensor_by_index("Ambient Temperature", 0)); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_dallas_component` and :cpp:func:`Application::register_sensor`. diff --git a/api/sensor/dht.rst b/api/sensor/dht.rst index bb0f08b5c..df490d9b5 100644 --- a/api/sensor/dht.rst +++ b/api/sensor/dht.rst @@ -9,7 +9,7 @@ Example Usage // Basic App.make_dht_sensor("Outside Temperature", "Outside Humidity", 12); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_dht_sensor`. diff --git a/api/sensor/hdc1080.rst b/api/sensor/hdc1080.rst index d58077fc6..fe7ce0978 100644 --- a/api/sensor/hdc1080.rst +++ b/api/sensor/hdc1080.rst @@ -17,7 +17,7 @@ Example Usage // create sensors App.make_hdc1080_sensor("Outside Temperature", "Outside Humidity"); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_hdc1080_sensor`. diff --git a/api/sensor/htu21d.rst b/api/sensor/htu21d.rst index 03c508bf6..07343ba51 100644 --- a/api/sensor/htu21d.rst +++ b/api/sensor/htu21d.rst @@ -17,7 +17,7 @@ Example Usage // create sensors App.make_htu21d_sensor("Outside Temperature", "Outside Humidity"); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_htu21d_sensor`. diff --git a/api/sensor/index.rst b/api/sensor/index.rst index 2d5ebbf12..2959fd23b 100644 --- a/api/sensor/index.rst +++ b/api/sensor/index.rst @@ -3,7 +3,7 @@ Sensor The `sensor` namespace contains all sensors. -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::register_sensor`. @@ -25,6 +25,7 @@ See :cpp:func:`Application::register_sensor`. bme280.rst bme680.rst sht3xd.rst + bh1750.rst API Reference diff --git a/api/sensor/mpu6050.rst b/api/sensor/mpu6050.rst index d1a924f9e..6c804120e 100644 --- a/api/sensor/mpu6050.rst +++ b/api/sensor/mpu6050.rst @@ -28,7 +28,7 @@ Example Usage App.register_sensor(mpu6050->make_gyro_z_sensor("MPU6050 Gyro Z")); App.register_sensor(mpu6050->make_temperature_sensor("MPU6050 Temperature")); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_mpu6050_sensor`. diff --git a/api/sensor/pulse-counter.rst b/api/sensor/pulse-counter.rst index 62af1c697..6491d8f5e 100644 --- a/api/sensor/pulse-counter.rst +++ b/api/sensor/pulse-counter.rst @@ -19,7 +19,7 @@ Example Usage strom_warme.mqtt->clear_filters(); strom_warme.mqtt->add_multiply_filter(0.06f); // convert from Wh pulse to kW -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_pulse_counter_sensor`. diff --git a/api/sensor/sht3xd.rst b/api/sensor/sht3xd.rst index 26d1009df..d134e0db9 100644 --- a/api/sensor/sht3xd.rst +++ b/api/sensor/sht3xd.rst @@ -22,7 +22,7 @@ Example Usage // default accuracy is high sht3xd.sht3xd->set_accuracy(sensor::SHT3XD_ACCURACY_LOW); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_sht3xd_sensor`. diff --git a/api/sensor/tsl2561.rst b/api/sensor/tsl2561.rst index 219caac90..bd1c54545 100644 --- a/api/sensor/tsl2561.rst +++ b/api/sensor/tsl2561.rst @@ -24,7 +24,7 @@ Example Usage // set a higher gain for low light conditions, default: 1x tsl2561.tsl2561->set_gain(sensor::TSL2561_GAIN_16X); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_tsl2561_sensor`. diff --git a/api/sensor/ultrasonic.rst b/api/sensor/ultrasonic.rst index 5d915d8ac..9751fd43b 100644 --- a/api/sensor/ultrasonic.rst +++ b/api/sensor/ultrasonic.rst @@ -16,7 +16,7 @@ Example Usage // Set timeout, 4 meters ultrasonic.sensor->set_timeout_m(4.0f); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_ultrasonic_sensor`. diff --git a/api/switch/ir-transmitter.rst b/api/switch/ir-transmitter.rst index ed90b4115..536acffb4 100644 --- a/api/switch/ir-transmitter.rst +++ b/api/switch/ir-transmitter.rst @@ -16,7 +16,7 @@ Example Usage App.register_switch(panasonic_on); App.register_switch(ir->create_transmitter("Panasonic TV Volume Up", SendData::from_panasonic(0x4004, 0x1000405))); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_ir_transmitter` and :cpp:func:`Application::register_switch`. diff --git a/api/switch/restart.rst b/api/switch/restart.rst index 014a1b981..807254693 100644 --- a/api/switch/restart.rst +++ b/api/switch/restart.rst @@ -10,7 +10,7 @@ Example Usage App.make_restart_switch("Livingroom Restart"); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_restart_switch`. diff --git a/api/switch/shutdown.rst b/api/switch/shutdown.rst index 21c2fb2fd..72ecaa555 100644 --- a/api/switch/shutdown.rst +++ b/api/switch/shutdown.rst @@ -14,7 +14,7 @@ Example Usage App.make_shutdown_switch("Livingroom Shutdown"); -.. cpp:namespace:: esphomelib +.. cpp:namespace:: nullptr See :cpp:func:`Application::make_shutdown_switch`. diff --git a/esphomeyaml/bh1750.jpg b/esphomeyaml/bh1750.jpg new file mode 100644 index 000000000..184da182b Binary files /dev/null and b/esphomeyaml/bh1750.jpg differ diff --git a/esphomeyaml/bluetooth.svg b/esphomeyaml/bluetooth.svg new file mode 100644 index 000000000..a2346d123 --- /dev/null +++ b/esphomeyaml/bluetooth.svg @@ -0,0 +1,4 @@ + + + + diff --git a/esphomeyaml/bme280.jpg b/esphomeyaml/bme280.jpg new file mode 100644 index 000000000..d9dbaeaee Binary files /dev/null and b/esphomeyaml/bme280.jpg differ diff --git a/esphomeyaml/bme680.jpg b/esphomeyaml/bme680.jpg new file mode 100644 index 000000000..0069a6d45 Binary files /dev/null and b/esphomeyaml/bme680.jpg differ diff --git a/esphomeyaml/color_lens.svg b/esphomeyaml/color_lens.svg new file mode 100644 index 000000000..5943dc5c0 --- /dev/null +++ b/esphomeyaml/color_lens.svg @@ -0,0 +1,4 @@ + + + + diff --git a/esphomeyaml/components/ads1115.rst b/esphomeyaml/components/ads1115.rst index 89d7c881a..94ce70811 100644 --- a/esphomeyaml/components/ads1115.rst +++ b/esphomeyaml/components/ads1115.rst @@ -26,12 +26,9 @@ Configuration variables: - **address** (**Required**, int): The i²c address of the sensor. See `I²C Addresses <#i2c-addresses>`__ for more information. -- **rate** (*Optional*, int): The internal rate the sensor is using for - its conversions in the unit samples per second. One of ``8``, ``16``, - ``32``, ``64``, ``128``, ``250``, ``475``, ``860``. Defaults to - ``128``. - **id** (*Optional*, - `id `__): Manually specify the ID for this ADS1115 Hub. Use this if you want to use multiple ADS1115 hubs at once. + `id `__): Manually specify the ID for this ADS1115 Hub. Use this if you + want to use multiple ADS1115 hubs at once. I²C Addresses ~~~~~~~~~~~~~ diff --git a/esphomeyaml/components/binary_sensor/esp32_ble.png b/esphomeyaml/components/binary_sensor/esp32_ble.png new file mode 100644 index 000000000..85b4d717f Binary files /dev/null and b/esphomeyaml/components/binary_sensor/esp32_ble.png differ diff --git a/esphomeyaml/components/binary_sensor/esp32_ble.rst b/esphomeyaml/components/binary_sensor/esp32_ble.rst new file mode 100644 index 000000000..dee052206 --- /dev/null +++ b/esphomeyaml/components/binary_sensor/esp32_ble.rst @@ -0,0 +1,64 @@ +ESP32 Bluetooth Low Energy Device +================================= + +The ``esp32_ble`` binary sensor platform lets you track the presence of a +bluetooth low energy device. + +.. note:: + + See the `ESP32 BLE Hub Page `__ for + current limitations of this platform + +|image0| + +.. code:: yaml + + # Example configuration entry + esp32_ble: + scan_interval: 300s + + binary_sensor: + - platform: esp32_ble + mac_address: AC:37:43:77:5F:4C + name: "ESP32 BLE Tracker Google Home Mini" + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **mac_address** (**Required**, MAC Address): The MAC address to track for this + binary sensor. +- **name** (**Required**, string): The name of the binary sensor. +- **id** (*Optional*, + `id `__): Manually specify + the ID used for code generation. +- All other options from `Binary + Sensor `__ + and `MQTT + Component `__. + +Setting Up Devices +~~~~~~~~~~~~~~~~~~ + +To set up binary sensors for specific BLE beacons you first have to know which MAC address +to track. Most devices show this screen in some setting menu. If you don't know the MAC address, +however, you can use the ``esp32_ble`` hub without any binary sensors attached and read through +the logs to see discovered Bluetooth Low Energy devices. + +.. code:: yaml + + # Example configuration entry for finding MAC addresses + esp32_ble: + +Using above configuration, first you should see a ``Starting scan...`` debug message at +boot-up. Then, when a BLE device is discovered, you should see messages like +``Found device AC:37:43:77:5F:4C RSSI=-80`` together with some information about their +address type and advertised name. If you don't see these messages, your device is unfortunately +currently not supported. + +Please note that devices that show a ``RANDOM`` address type in the logs cannot be used for +tracking, since their MAC-address periodically changes. + + +.. |image0| image:: /esphomeyaml/components/binary_sensor/esp32_ble.png + :class: align-center + :width: 80.0% diff --git a/esphomeyaml/components/binary_sensor/esp32_touch.png b/esphomeyaml/components/binary_sensor/esp32_touch.png new file mode 100644 index 000000000..8c346b88c Binary files /dev/null and b/esphomeyaml/components/binary_sensor/esp32_touch.png differ diff --git a/esphomeyaml/components/binary_sensor/esp32_touch.rst b/esphomeyaml/components/binary_sensor/esp32_touch.rst new file mode 100644 index 000000000..264a49271 --- /dev/null +++ b/esphomeyaml/components/binary_sensor/esp32_touch.rst @@ -0,0 +1,99 @@ +ESP32 Touch Pad Binary Sensor +============================= + +The ``esp32_touch`` binary sensor platform lets you use the touch peripheral of the +ESP32 to detect if a certain pin is being "touched". + +First, you need to setup the `global touch hub `__. Then +you can add individual touch pads as binary sensors. When a touch is detected on these pins, the binary +sensor will report an ``ON`` state. And, of course, if no touch is detected, the binary sensor will report +an ``OFF`` state. + +|image0| + +.. code:: yaml + + # Example configuration entry + esp32_touch: + + binary_sensor: + - platform: esp32_touch + name: "ESP32 Touch Pad GPIO27" + pin: GPIO27 + threshold: 1000 + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **pin** (**Required**, `pin `__): The pin to detect touch + events on. +- **threshold** (**Required**, int): The threshold to use to detect touch events. Smaller values mean + a higher probability that the pad is being touched. +- **name** (**Required**, string): The name of the binary sensor. +- **id** (*Optional*, + `id `__): Manually specify + the ID used for code generation. +- All other options from `Binary + Sensor `__ + and `MQTT + Component `__. + +Touch Pad Pins +~~~~~~~~~~~~~~ + +8 pins on the ESP32 can be used to detect touches. These are (in the default "raw" pin names): + +- ``GPIO0`` +- ``GPIO2`` +- ``GPIO4`` +- ``GPIO12`` +- ``GPIO13`` +- ``GPIO14`` +- ``GPIO15`` +- ``GPIO27`` +- ``GPIO32`` +- ``GPIO33`` + +Finding thresholds +~~~~~~~~~~~~~~~~~~ + +For each touch pad you want to monitor, you need to find a threshold first. This threshold is +used to determine if a pad is being touched or not using the raw values from the sensor. Lower +raw values mean that it is more likely that a touch is happening. For example, values around +1000 to 1600 usually mean the pad is not being touched, and values in the range of 600 and less +mean the pad is probably being touched. + +To find suitable threshold values, first configure the `ESP32 touch hub `__ +to output measured values using the ``setup_mode:`` configuration option. Next, add some binary sensors +for the touch pads you want to observe. Also put some threshold in the configuration as seen below +to make the validator happy, we are going to find good thresholds in a moment anyway. + +.. code:: yaml + + # Example configuration entry for finding threshold values + esp32_touch: + setup_mode: True + + binary_sensor: + - platform: esp32_touch + name: "ESP32 Touch Pad GPIO27" + pin: GPIO27 + threshold: 1000 + +Then upload the program and open the logs, you will see values like these. Try touching the pins +and you will (hopefully) see the value decreasing a bit. Play around with different amounts of +force you put on the touch pad until you find a good value that can differentiate between +touch/non-touch events. + +|image1| + +Finally, put your threshold parameter in the configuration. Do not forget to disable the ``setup_mode`` +option again by setting it to ``False``. Otherwise you will end up spamming the logs and slowing the device +down. + +.. |image0| image:: /esphomeyaml/components/binary_sensor/esp32_touch.png + :class: align-center + :width: 80.0% + +.. |image1| image:: /esphomeyaml/components/binary_sensor/esp32_touch_finding_thresholds.png + :class: align-center diff --git a/esphomeyaml/components/binary_sensor/esp32_touch_finding_thresholds.png b/esphomeyaml/components/binary_sensor/esp32_touch_finding_thresholds.png new file mode 100644 index 000000000..9255ab4f1 Binary files /dev/null and b/esphomeyaml/components/binary_sensor/esp32_touch_finding_thresholds.png differ diff --git a/esphomeyaml/components/esp32_ble.rst b/esphomeyaml/components/esp32_ble.rst new file mode 100644 index 000000000..d50cdb157 --- /dev/null +++ b/esphomeyaml/components/esp32_ble.rst @@ -0,0 +1,43 @@ +ESP32 Bluetooth Low Energy Hub +============================== + +The ``esp32_ble`` component creates a global hub so that you can track bluetooth low +energy devices using your ESP32 node. + +Currently this component only works with few supported bluetooth devices (most of them +being BLE "beacons") and currently only is capable of creating binary sensors indicating +whether a specific BLE MAC Address can be found or not. + +In the future, this integration will be expanded to support reading RSSI values and hopefully +support lots more devices like tracking smartphones and reading temperature values from BLE sensors. + +.. note:: + + Be warned: This integration is currently not very stable and sometimes causes sporadic + restarts of the node. Additionally, using this integration will increase the required + flash memory size by up to 500kB. + +See `Setting up devices `__ +for information on how you can find out the MAC address of a device and track it using esphomelib. + +.. code:: yaml + + # Example configuration entry + esp32_ble: + scan_interval: 300s + + binary_sensor: + - platform: esp32_ble + mac_address: AC:37:43:77:5F:4C + name: "ESP32 BLE Tracker Google Home Mini" + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **scan_interval** (*Optional*, `time `__): The length of each scan. + If a device is not found within this time window, it will be marked as not present. Defaults to 300s. +- **id** (*Optional*, + `id `__): Manually specify the ID for this ADS1115 Hub. Use this if you + want to use multiple ADS1115 hubs at once. + + diff --git a/esphomeyaml/components/esp32_touch.rst b/esphomeyaml/components/esp32_touch.rst new file mode 100644 index 000000000..560e2fdfb --- /dev/null +++ b/esphomeyaml/components/esp32_touch.rst @@ -0,0 +1,50 @@ +ESP32 Touch Pad Hub +=================== + +The ``esp32_touch`` component creates a global hub for detecting touches on +the eight touch pads of the ESP32 as `binary senors `__. + +.. code:: yaml + + # Example configuration entry + esp32_touch: + setup_mode: False + + binary_sensor: + - platform: esp32_touch + name: "ESP32 Touch Pad GPIO27" + pin: GPIO27 + threshold: 1000 + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **setup_mode** (*Optional*, boolean): Whether debug messages with the touch pad value should + be displayed in the logs. Useful for finding out suitable thresholds for the binary sensors, but + spam the logs. See `setting up touch pads `__ + for more information. Defaults to false. +- **id** (*Optional*, + `id `__): Manually specify the ID for this ADS1115 Hub. Use this if you + want to use multiple ADS1115 hubs at once. + +Advanced options (the defaults are usually quite good, but if you're having accuracy issues, use these): + +- **iir_filter** (*Optional*, `time `__): Optionally set up an + `Infinite Impulse Response `__ + filter should be applied to all touch pads. This can increase the accuracy of the touch pads a lot, but + higher values decrease the response time. A good value to start with is ``10ms``. Default is no IIR filter. +- **sleep_duration** (*Optional*, `time `__): Set a time period + denoting the amount of time the touch peripheral should sleep between measurements. This can decrease + power usage but make the sensor slower. Default is about 27 milliseconds. +- **measurement_duration** (*Optional*, `time `__): Set the conversion + time for all touch pads. A longer conversion time means that more charge/discharge cycles of the touch pad + can be performed, therefore increasing accuracy. Default is about 8ms, the maximum amount. +- **low_voltage_reference** (*Optional*): The low voltage reference to use for the charge cycles. See + the `esp-idf docs `__ + for a nice explanation of this. One of ``0.5V``, ``0.6V``, ``0.7V``, ``0.8V``. Default is ``0.5V``. +- **high_voltage_reference** (*Optional*): The high voltage reference to use for the charge cycles. See + the `esp-idf docs `__ + for a nice explanation of this. One of ``2.4V``, ``2.5V``, ``2.6V``, ``2.7V``. Default is ``2.7V``. +- **voltage_attenuation** (*Optional*): The voltage attenuation to use for the charge cycles. See + the `esp-idf docs `__ + for a nice explanation of this. One of ``1.5V``, ``1V``, ``0.5V``, ``0V``. Default is ``0V``. diff --git a/esphomeyaml/components/esphomeyaml.rst b/esphomeyaml/components/esphomeyaml.rst index 51d8503c6..66706bcf8 100644 --- a/esphomeyaml/components/esphomeyaml.rst +++ b/esphomeyaml/components/esphomeyaml.rst @@ -23,6 +23,8 @@ Configuration variables: characters, digits and underscores. - **platform** (**Required**, string): The platform your board is on, either ``ESP32`` or ``ESP8266``. + See `using the latest arduino framework version <#using-the-latest-arduino-framework-version>`__. + for other options. - **board** (**Required**, string): The board esphomeyaml should specify for platformio. For the ESP32, choose the appropriate one from `this @@ -36,11 +38,31 @@ Configuration variables: use here. Accepts all parameters of `platformio lib install `__. Use ``https://github.com/OttoWinter/esphomelib.git`` for the latest - (unstable) build. Defaults to ``esphomelib``. + (unstable) build. Defaults to the latest stable version. - **simplify** (*Optional*, boolean): Whether to simplify the auto-generated code, i.e. whether to remove unused variables, use ``auto`` types and so on. Defaults to ``true``. - **use_build_flags** (*Optional*, boolean): If esphomeyaml should manually set build flags that specifically set what should be included in the binary. Most of this is already done automatically by the linker but this option can help with - shrinking the firmware size while slowing down compilation. Defaults to ``false``. + shrinking the firmware size while slowing down compilation. Defaults to ``true``. + +Using the latest Arduino framework version +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The default version of the arduino framework distributed through platformio is usually quite old +and the latest staging versions of the framework can in some cases increase stability a lot. + +To use the latest version of the arduino framework with esphomeyaml, specify an URL pointing to +the staging version using the ``platform:`` parameter. + +For the ESP32, this URL is https://github.com/platformio/platform-espressif32.git#feature/stage. +And for the ESP8266, the URL is https://github.com/platformio/platform-espressif8266.git#feature/stage. + +.. code:: yaml + + # Example configuration entry + esphomeyaml: + name: livingroom + platform: 'https://github.com/platformio/platform-espressif32.git#feature/stage' + board: nodemcu-32s diff --git a/esphomeyaml/components/i2c.rst b/esphomeyaml/components/i2c.rst index db2ece57b..57bb0faa2 100644 --- a/esphomeyaml/components/i2c.rst +++ b/esphomeyaml/components/i2c.rst @@ -12,6 +12,14 @@ for several other components: |HDC1080|_ |HTU21D|_ |MPU6050|_ ----------------------- ----------------------- ----------------------- `HDC1080`_ `HTU21D`_ `MPU6050`_ +----------------------- ----------------------- ----------------------- +|BH1750|_ |BME280|_ |BME680|_ +----------------------- ----------------------- ----------------------- +`BH1750`_ `BME280`_ `BME680`_ +----------------------- ----------------------- ----------------------- +|TSL2561|_ |SHT3X-D|_ +----------------------- ----------------------- ----------------------- +`TSL2561`_ `SHT3X-D`_ ======================= ======================= ======================= .. |PCA9685 PWM| image:: /esphomeyaml/pca9685.jpg @@ -38,6 +46,27 @@ for several other components: :class: component-image .. _MPU6050: /esphomeyaml/components/sensor/mpu6050.html +.. |BH1750| image:: /esphomeyaml/bh1750.jpg + :class: component-image +.. _BH1750: /esphomeyaml/components/sensor/bh1750.html + +.. |BME280| image:: /esphomeyaml/bme280.jpg + :class: component-image +.. _BME280: /esphomeyaml/components/sensor/bme280.html + +.. |BME680| image:: /esphomeyaml/bme680.jpg + :class: component-image +.. _BME680: /esphomeyaml/components/sensor/bme680.html + +.. |TSL2561| image:: /esphomeyaml/tsl2561.jpg + :class: component-image +.. _TSL2561: /esphomeyaml/components/sensor/tsl2561.html + +.. |SHT3X-D| image:: /esphomeyaml/sht3xd.jpg + :class: component-image +.. _SHT3X-D: /esphomeyaml/components/sensor/sht3xd.html + + In order for those components to work correctly, you need to define the i²c bus in your configuration. @@ -61,6 +90,14 @@ Configuration variables: - **scan** (*Optional*, boolean): If esphomelib should do a search of the i2c address space on startup. Note that this can slow down startup and is only recommended for when setting up new sensors. Defaults to ``False``. -- **frequency** (*Optional*, float): Only on ESP32. Set the frequency - the i²c bus should operate on. Defaults to “100kHz”. Accepts most - metric suffixes. +- **frequency** (*Optional*, float): Set the frequency + the i²c bus should operate on. Defaults to “100kHz”. +- **receive_timeout** (*Optional*, `time `__): Advanced: Set a timeout + for operations on the i2c bus. Defaults to 100ms. + +.. note:: + + If you're using the ESP32 and i2c frequently is showing errors in the logs, try with the latest + version of the Arduino framework. See + `using the latest arduino framework version `__ + for information on how to do this. diff --git a/esphomeyaml/components/ir_transmitter.rst b/esphomeyaml/components/ir_transmitter.rst index 956aefcc1..05f8c1baa 100644 --- a/esphomeyaml/components/ir_transmitter.rst +++ b/esphomeyaml/components/ir_transmitter.rst @@ -1,14 +1,17 @@ -ESP32 IR Transmitter Component -============================== +IR Transmitter Component +======================== -The IR transmitter component lets you use the `remote -peripheral `__ -on your ESP32 to send infrared messages to control devices in your home. +The IR transmitter component lets you send infrared messages to control devices in your home. First, you need to setup a global hub that specifies which pin your IR led is connected to. Afterwards you can create `individual switches `__ that each send a pre-defined IR code to a device. +.. note:: + + This component is *much* more accurate on the ESP32, since that chipset has a dedicated + peripheral for sending exact signal sequences. + .. code:: yaml # Example configuration entry @@ -33,7 +36,7 @@ Configuration variables: IR LED. - **carrier_duty_percent** (*Optional*, int): The duty percentage of the carrier. 50 for example means that the LED will be on 50% of the - time. Must be in range from 0 to 100. Defaults to 50. + time. Must be in range from 1 to 100. Defaults to 50. - **id** (*Optional*, `id `__): Manually specify the ID used for code generation. Use this if you have multiple IR diff --git a/esphomeyaml/components/light/fastled_clockless.png b/esphomeyaml/components/light/fastled_clockless.png new file mode 100644 index 000000000..7d72510b9 Binary files /dev/null and b/esphomeyaml/components/light/fastled_clockless.png differ diff --git a/esphomeyaml/components/light/fastled_clockless.rst b/esphomeyaml/components/light/fastled_clockless.rst new file mode 100644 index 000000000..7a2161c2a --- /dev/null +++ b/esphomeyaml/components/light/fastled_clockless.rst @@ -0,0 +1,97 @@ +FastLED Clockless Light +======================= + +The ``fastled_clockless`` light platform allows you to create RGB lights +in esphomelib for a `number of supported chipsets <#supported-chipsets>`__. + +Clockless FastLED lights differ from the +`FastLED SPI lights `__ in that they only have +a single data wire to connect, and not separate data and clock wires. + +|image0| + +.. code:: yaml + + # Example configuration entry + light: + - platform: fastled_clockless + chipset: WS2811 + pin: GPIO23 + num_leds: 60 + rgb_order: BRG + name: "FastLED WS2811 Light" + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **name** (**Required**, string): The name of the light. +- **chipset** (**Required**, string): Set a chipset to use. + See `Supported Chipset <#supported-chipsets>`__ for options. +- **pin** (**Required**, `pin `__): The pin for + the data line of the FastLED light. +- **num_leds** (**Required**, int): The number of LEDs attached. +- **rgb_order** (*Optional*, string): The order of the RGB channels. Use this if your + light doesn't seem to map the RGB light channels correctly. For example if your light + shows up green when you set a red color through the frontend. Valid values are ``RGB``, + ``RBG``, ``GRB``, ``GBR``, ``BRG`` and ``BGR``. Defaults to ``RGB``. +- **max_refresh_rate** (*Optional*, `time `__): + A time interval used to limit the number of commands a light can handle per second. For example + 16ms will limit the light to a refresh rate of about 60Hz. Defaults to the default value for the used chipset. +- **gamma_correct** (*Optional*, float): The `gamma correction + factor `__ for the + light. Defaults to ``2.8``. +- **default_transition_length** (*Optional*, + `time `__): The length of + the transition if no transition parameter is provided by Home + Assistant. Defaults to ``1s``. +- **id** (*Optional*, + `id `__): Manually specify + the ID used for code generation. +- All other options from `MQTT + Component `__. + +Supported Chipsets +~~~~~~~~~~~~~~~~~~ + +- ``NEOPIXEL`` +- ``WS2811`` +- ``WS2811_400`` (``WS2811`` with a clock rate of 400kHz) +- ``WS2812B`` +- ``WS2812`` +- ``WS2813`` +- ``WS2852`` +- ``APA104`` +- ``APA106`` +- ``GW6205`` +- ``GW6205_400`` (``GW6205`` with a clock rate of 400kHz) +- ``LPD1886`` +- ``LPD1886_8BIT`` (``LPD1886`` with 8-bit color channel values) +- ``PL9823`` +- ``SK6812`` +- ``SK6822`` +- ``TM1803`` +- ``TM1804`` +- ``TM1809`` +- ``TM1829`` +- ``UCS1903B`` +- ``UCS1903`` +- ``UCS1904`` +- ``UCS2903`` + +Light Effects +~~~~~~~~~~~~~ + +Currently, only a rainbow effect is supported. In the future, more light effects will be added +and supported out-of-the box. Creating custom effects is, however, quite easy with esphomelib. +See the `fastled example `__ +in the esphomelib repository for a simple example. + +|image1| + +.. |image0| image:: /esphomeyaml/components/light/fastled_clockless.png + :class: align-center + :width: 60.0% + +.. |image1| image:: /esphomeyaml/components/light/fastled_effect.png + :class: align-center + :width: 30.0% diff --git a/esphomeyaml/components/light/fastled_effect.png b/esphomeyaml/components/light/fastled_effect.png new file mode 100644 index 000000000..65bafcf22 Binary files /dev/null and b/esphomeyaml/components/light/fastled_effect.png differ diff --git a/esphomeyaml/components/light/fastled_spi.png b/esphomeyaml/components/light/fastled_spi.png new file mode 100644 index 000000000..77d006fb2 Binary files /dev/null and b/esphomeyaml/components/light/fastled_spi.png differ diff --git a/esphomeyaml/components/light/fastled_spi.rst b/esphomeyaml/components/light/fastled_spi.rst new file mode 100644 index 000000000..ed2553b0b --- /dev/null +++ b/esphomeyaml/components/light/fastled_spi.rst @@ -0,0 +1,85 @@ +FastLED SPI Light +================= + +The ``fastled_spi`` light platform allows you to create RGB lights +in esphomelib for a `number of supported chipsets <#supported-chipsets>`__. + +SPI FastLED lights differ from the +`FastLED Clockless lights `__ in that they require +two pins to be connected, one for a data and one for a clock signal whereas the clockless lights +only need a single pin. + +|image0| + +.. code:: yaml + + # Example configuration entry + light: + - platform: fastled_spi + chipset: WS2801 + data_pin: GPIO23 + clock_pin: GPIO22 + num_leds: 60 + rgb_order: BRG + name: "FastLED SPI Light" + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **name** (**Required**, string): The name of the light. +- **chipset** (**Required**, string): Set a chipset to use. + See `Supported Chipset <#supported-chipsets>`__ for options. +- **data_pin** (**Required**, `pin `__): The pin for + the data line of the FastLED light. +- **clock_pin** (**Required**, `pin `__): The pin for + the clock line of the FastLED light. +- **num_leds** (**Required**, int): The number of LEDs attached. +- **rgb_order** (*Optional*, string): The order of the RGB channels. Use this if your + light doesn't seem to map the RGB light channels correctly. For example if your light + shows up green when you set a red color through the frontend. Valid values are ``RGB``, + ``RBG``, ``GRB``, ``GBR``, ``BRG`` and ``BGR``. Defaults to ``RGB``. +- **max_refresh_rate** (*Optional*, `time `__): + A time interval used to limit the number of commands a light can handle per second. For example + 16ms will limit the light to a refresh rate of about 60Hz. Defaults to the default value for the used chipset. +- **gamma_correct** (*Optional*, float): The `gamma correction + factor `__ for the + light. Defaults to ``2.8``. +- **default_transition_length** (*Optional*, + `time `__): The length of + the transition if no transition parameter is provided by Home + Assistant. Defaults to ``1s``. +- **id** (*Optional*, + `id `__): Manually specify + the ID used for code generation. +- All other options from `MQTT + Component `__. + +Supported Chipsets +~~~~~~~~~~~~~~~~~~ + +- ``APA102`` +- ``DOTSTAR`` +- ``LPD8806`` +- ``P9813`` +- ``SK9822`` +- ``SM16716`` +- ``WS2801`` +- ``WS2803`` + +Light Effects +~~~~~~~~~~~~~ + +Currently, only a rainbow effect is supported. In the future, more light effects will be added +and supported out-of-the box. Creating custom effects is, however, quite easy with esphomelib. +See the `fastled example `__ +in the esphomelib repository for a simple example. + +|image1| + +.. |image0| image:: /esphomeyaml/components/light/fastled_spi.png + :class: align-center + :width: 60.0% + +.. |image1| image:: /esphomeyaml/components/light/fastled_effect.png + :class: align-center + :width: 30.0% diff --git a/esphomeyaml/components/logger.rst b/esphomeyaml/components/logger.rst index e22936c6c..aaf21ce8b 100644 --- a/esphomeyaml/components/logger.rst +++ b/esphomeyaml/components/logger.rst @@ -43,6 +43,7 @@ Possible log levels are (sorted by severity): - ``INFO`` - ``DEBUG`` - ``VERBOSE`` +- ``VERY_VERBOSE`` Manual Tag-Specific Log Levels ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/esphomeyaml/components/pca9685.rst b/esphomeyaml/components/pca9685.rst index 112483b72..d700a2c1a 100644 --- a/esphomeyaml/components/pca9685.rst +++ b/esphomeyaml/components/pca9685.rst @@ -35,6 +35,3 @@ Configuration variables: 1526Hz. - **address** (*Optional*, int): The I²C address of the driver. Defaults to ``0x00``. -- **phase_balancer** (*Optional*): The phase balancer to balance the - phases of several channels. One of ``None``, ``Linear`` or - ``Weaved``. Defaults to ``None``. diff --git a/esphomeyaml/components/pcf8574.rst b/esphomeyaml/components/pcf8574.rst index 3fbf316be..d35e28e8c 100644 --- a/esphomeyaml/components/pcf8574.rst +++ b/esphomeyaml/components/pcf8574.rst @@ -20,7 +20,7 @@ not work. :target: `Sparkfun`_ :width: 50.0% - PCF8574 16-Bit ADC. Image by `Sparkfun`_. + PCF8574 I/O Expander. Image by `Sparkfun`_. .. _Sparkfun: https://www.sparkfun.com/products/retired/8130 @@ -37,7 +37,9 @@ not work. - platform: gpio name: "PCF8574 Pin #0" pin: - number: pcf8574_hub.0 + pcf8574: pcf8574_hub + # Use pin number 0 + number: 0 # One of INPUT, INPUT_PULLUP or OUTPUT mode: INPUT inverted: False diff --git a/esphomeyaml/components/sensor/adc.rst b/esphomeyaml/components/sensor/adc.rst index bda931eb7..965418536 100644 --- a/esphomeyaml/components/sensor/adc.rst +++ b/esphomeyaml/components/sensor/adc.rst @@ -42,3 +42,16 @@ Configuration variables: .. |image0| image:: /esphomeyaml/components/sensor/adc.png :class: align-center :width: 80.0% + +ESP32 Attenuation +~~~~~~~~~~~~~~~~~ + +On the ESP32, the voltage measured with the ADC caps out at 1.1V by default as the sensing range +or the attenuation of the ADC is set to ``0db`` by default. + +To measure voltages higher than 1.1V, set ``attenuation`` to one of the following values: + +- ``0db`` for a full-scale voltage of 1.1V (default) +- ``2.5db`` for a full-scale voltage of 1.5V +- ``6db`` for a full-scale voltage of 2.2V +- ``11db`` for a full-scale voltage of 3.9V diff --git a/esphomeyaml/components/sensor/ads1115.rst b/esphomeyaml/components/sensor/ads1115.rst index 120f7215a..c0e9e8e40 100644 --- a/esphomeyaml/components/sensor/ads1115.rst +++ b/esphomeyaml/components/sensor/ads1115.rst @@ -36,10 +36,12 @@ voltage to Home Assistant. Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ -- **multiplexer** (**Required**): The multiplexer channel of this sensor. Effectively means between which pins you want to measure voltage. +- **multiplexer** (**Required**): The multiplexer channel of this sensor. Effectively means between which pins you + want to measure voltage. - **gain** (**Required**, float): The gain of this sensor. - **name** (**Required**, string): The name for this sensor. -- **ads1115_id** (*Optional*, `id `__): Manually specify the ID of the `ADS1115 Hub `__ you want to use this sensor. +- **ads1115_id** (*Optional*, `id `__): Manually specify the ID of the + `ADS1115 Hub `__ you want to use this sensor. - **id** (*Optional*, `id `__): Manually specify the ID used for code generation. @@ -48,21 +50,21 @@ Multiplexer And Gain The ADS1115 has a multiplexer that can be configured to measure voltage between several pin configurations. These are: - - `A0_A1` (between Pin 0 and Pin 1) - - `A0_A3` (between Pin 0 and Pin 3) - - `A1_A3` (between Pin 1 and Pin 3) - - `A2_A3` (between Pin 2 and Pin 3) - - `A0_GND` (between Pin 0 and GND) - - `A1_GND` (between Pin 1 and GND) - - `A2_GND` (between Pin 2 and GND) - - `A3_GND` (between Pin 3 and GND) + - ``A0_A1`` (between Pin 0 and Pin 1) + - ``A0_A3`` (between Pin 0 and Pin 3) + - ``A1_A3`` (between Pin 1 and Pin 3) + - ``A2_A3`` (between Pin 2 and Pin 3) + - ``A0_GND`` (between Pin 0 and GND) + - ``A1_GND`` (between Pin 1 and GND) + - ``A2_GND`` (between Pin 2 and GND) + - ``A3_GND`` (between Pin 3 and GND) Additionally, the ADS1115 has a Programmable Gain Amplifier (PGA) that can help you measure voltages in different ranges, these are: - - `6.144` (measures up to 6.144V) - - `4.096` (measures up to 4.096V) - - `2.048` (measures up to 2.048V) - - `1.024` (measures up to 1.024V) - - `0.512` (measures up to 0.512V) - - `0.256` (measures up to 0.256V) + - ``6.144`` (measures up to 6.144V) + - ``4.096`` (measures up to 4.096V) + - ``2.048`` (measures up to 2.048V) + - ``1.024`` (measures up to 1.024V) + - ``0.512`` (measures up to 0.512V) + - ``0.256`` (measures up to 0.256V) diff --git a/esphomeyaml/components/sensor/bh1750-full.jpg b/esphomeyaml/components/sensor/bh1750-full.jpg new file mode 100644 index 000000000..cda6de5a6 Binary files /dev/null and b/esphomeyaml/components/sensor/bh1750-full.jpg differ diff --git a/esphomeyaml/components/sensor/bh1750.rst b/esphomeyaml/components/sensor/bh1750.rst new file mode 100644 index 000000000..29e82a855 --- /dev/null +++ b/esphomeyaml/components/sensor/bh1750.rst @@ -0,0 +1,48 @@ +BH1750 Ambient Light Sensor +=========================== + +.. warning:: + + This sensor is experimental has not been fully tested yet as I do not own all sensors. If you + can verify it works (or if it doesn't), please notify me on discord. + +The ``bh1750`` sensor platform allows you to use your BH1750 +(`datasheet `__, `Aliexpress`_, `mklec`_) +ambient light sensor with esphomelib. The `I²C +bus `__ is required to be set up in +your configuration for this sensor to work. + +.. figure:: /esphomeyaml/components/sensor/bh1750-full.jpg + :align: center + :target: `Aliexpress`_ + :width: 50.0% + + BH1750 Ambient Light Sensor. Images from `Aliexpress`_ and `mklec`_. + +.. _Aliexpress: https://www.adafruit.com/product/1603 +.. _mklec: http://mklec.com/modules/micro-controller-modules/bh1750-bh1750fvi-digital-light-sensor-module + +.. code:: yaml + + # Example configuration entry + sensor: + - platform: bh1750 + address: 0x23 + update_interval: 15s + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **name** (**Required**, string): The name for the sensor. +- **address** (*Optional*, int): Manually specify the i^2c address of the sensor. + Defaults to ``0x23`` (address if address pin is pulled low). If the address pin is pulled high, + the address is ``0x5C``. +- **resolution** (*Optional*, string): The resolution of the sensor in lx. One of ``4.0``, + ``1.0``, ``0.5``. Defaults to ``0.5`` (the maximum resolution). +- **update_interval** (*Optional*, `time `__): The interval to check the + sensor. Defaults to ``15s``. +- **id** (*Optional*, `id `__): Manually specify the ID used for code + generation. +- All other options from + `Sensor `__ + and `MQTT Component `__. diff --git a/esphomeyaml/components/sensor/bme280-full.jpg b/esphomeyaml/components/sensor/bme280-full.jpg new file mode 100644 index 000000000..e16b4edee Binary files /dev/null and b/esphomeyaml/components/sensor/bme280-full.jpg differ diff --git a/esphomeyaml/components/sensor/bme280.rst b/esphomeyaml/components/sensor/bme280.rst new file mode 100644 index 000000000..a7d3121f1 --- /dev/null +++ b/esphomeyaml/components/sensor/bme280.rst @@ -0,0 +1,94 @@ +BME280 Temperature+Pressure+Humidity Sensor +=========================================== + +.. warning:: + + This sensor is experimental has not been fully tested yet as I do not own all sensors. If you + can verify it works (or if it doesn't), please notify me on discord. + +The ``bme280`` sensor platform allows you to use your BME280 +(`datasheet `__, +`Adafruit`_) temperature, pressure and humidity sensors with esphomelib. The `I²C +bus `__ is required to be set up in +your configuration for this sensor to work. + +.. figure:: /esphomeyaml/components/sensor/bme280-full.jpg + :align: center + :target: `Adafruit`_ + :width: 50.0% + + BME280 Temperature, Pressure & Humidity Sensor. Image by `Adafruit`_. + +.. _Adafruit: https://www.adafruit.com/product/2652 + +.. code:: yaml + + # Example configuration entry + sensor: + - platform: bme280 + temperature: + name: "Outside Temperature" + oversampling: 16x + pressure: + name: "Outside Pressure" + humidity: + name: "Outside Humidity" + address: 0x77 + update_interval: 15s + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **temperature** (**Required**): The information for the temperature. + sensor + + - **name** (**Required**, string): The name for the temperature + sensor. + - **oversampling** (*Optional*): The oversampling parameter for the temperature sensor. + See `Oversampling Options <#oversampling-options>`__. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **pressure** (**Required**): The information for the pressure sensor. + + - **name** (**Required**, string): The name for the pressure sensor. + - **oversampling** (*Optional*): The oversampling parameter for the temperature sensor. + See `Oversampling Options <#oversampling-options>`__. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **humidity** (**Required**): The information for the pressure sensor. + + - **name** (**Required**, string): The name for the humidity sensor. + - **oversampling** (*Optional*): The oversampling parameter for the temperature sensor. + See `Oversampling Options <#oversampling-options>`__. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **address** (*Optional*, int): Manually specify the i^2c address of + the sensor. Defaults to ``0x77``. Another address can be ``0x76``. +- **iir_filter** (*Optional*): Set up an Infinite Impulse Response filter to increase accuracy. One of + ``OFF``, ``2x``, ``4x``, ``16x``. Defaults to ``OFF``. +- **update_interval** (*Optional*, `time `__): The interval to check the + sensor. Defaults to ``15s``. +- **id** (*Optional*, `id `__): Manually specify the ID used for code + generation. + +Oversampling Options +~~~~~~~~~~~~~~~~~~~~ + +By default, the BME280 sensor measures each value 16 times when requesting a new value. You can, however, +configure this amount. Possible oversampling values: + +- ``NONE`` +- ``1x`` +- ``2x`` +- ``4x`` +- ``8x`` +- ``16x`` (default) diff --git a/esphomeyaml/components/sensor/bme680-full.jpg b/esphomeyaml/components/sensor/bme680-full.jpg new file mode 100644 index 000000000..1d6f8370d Binary files /dev/null and b/esphomeyaml/components/sensor/bme680-full.jpg differ diff --git a/esphomeyaml/components/sensor/bme680.rst b/esphomeyaml/components/sensor/bme680.rst new file mode 100644 index 000000000..325f7a42c --- /dev/null +++ b/esphomeyaml/components/sensor/bme680.rst @@ -0,0 +1,104 @@ +BME680 Temperature+Pressure+Humidity+Gas Sensor +=============================================== + +.. warning:: + + This sensor is experimental has not been fully tested yet as I do not own all sensors. If you + can verify it works (or if it doesn't), please notify me on discord. + +The ``bme680`` sensor platform allows you to use your BME680 +(`datasheet `__, +`Adafruit`_) temperature, pressure and humidity sensors with esphomelib. The `I²C +bus `__ is required to be set up in +your configuration for this sensor to work. + +.. figure:: /esphomeyaml/components/sensor/bme680-full.jpg + :align: center + :target: `Adafruit`_ + :width: 50.0% + + BME680 Temperature, Pressure & Humidity Sensor. Image by `Adafruit`_. + +.. _Adafruit: https://www.adafruit.com/product/3660 + +.. code:: yaml + + # Example configuration entry + sensor: + - platform: bme680 + temperature: + name: "Outside Temperature" + oversampling: 16x + pressure: + name: "Outside Pressure" + humidity: + name: "Outside Humidity" + gas_resistance: + name: "Outside Gas Sensor" + address: 0x77 + update_interval: 15s + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **temperature** (**Required**): The information for the temperature. + sensor + + - **name** (**Required**, string): The name for the temperature + sensor. + - **oversampling** (*Optional*): The oversampling parameter for the temperature sensor. + See `Oversampling Options <#oversampling-options>`__. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **pressure** (**Required**): The information for the pressure sensor. + + - **name** (**Required**, string): The name for the pressure sensor. + - **oversampling** (*Optional*): The oversampling parameter for the temperature sensor. + See `Oversampling Options <#oversampling-options>`__. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **humidity** (**Required**): The information for the pressure sensor. + + - **name** (**Required**, string): The name for the humidity sensor. + - **oversampling** (*Optional*): The oversampling parameter for the temperature sensor. + See `Oversampling Options <#oversampling-options>`__. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **gas_resistance** (**Required**): The information for the gas sensor. + + - **name** (**Required**, string): The name for the gas resistance sensor. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **address** (*Optional*, int): Manually specify the i^2c address of + the sensor. Defaults to ``0x77``. Another address can be ``0x76``. +- **iir_filter** (*Optional*): Set up an Infinite Impulse Response filter to increase accuracy. One of + ``OFF``, ``2x``, ``4x``, ``16x``. Defaults to ``OFF``. +- **update_interval** (*Optional*, `time `__): The interval to check the + sensor. Defaults to ``15s``. +- **id** (*Optional*, `id `__): Manually specify the ID used for code + generation. + +Oversampling Options +~~~~~~~~~~~~~~~~~~~~ + +By default, the BME680 sensor measures each value 16 times when requesting a new value. You can, however, +configure this amount. Possible oversampling values: + +- ``NONE`` +- ``1x`` +- ``2x`` +- ``4x`` +- ``8x`` +- ``16x`` (default) diff --git a/esphomeyaml/components/sensor/dht.rst b/esphomeyaml/components/sensor/dht.rst index a28d045a8..4b8605eee 100644 --- a/esphomeyaml/components/sensor/dht.rst +++ b/esphomeyaml/components/sensor/dht.rst @@ -13,19 +13,19 @@ The DHT Temperature+Humidity sensor allows you to use your DHT11 sensors with esphomelib. .. figure:: /esphomeyaml/components/sensor/dht22-full.jpg - :align: center - :target: `Adafruit`_ - :width: 50.0% + :align: center + :target: `Adafruit`_ + :width: 50.0% - DHT22 Temperature & Humidity Sensor. Image by `Adafruit`_. + DHT22 Temperature & Humidity Sensor. Image by `Adafruit`_. .. _Adafruit: https://www.adafruit.com/product/385 |image0| .. |image0| image:: /esphomeyaml/components/sensor/temperature-humidity.png - :class: align-center - :width: 80.0% + :class: align-center + :width: 80.0% .. code:: yaml @@ -68,3 +68,9 @@ Configuration variables: sensor. Defaults to ``15s``. - **id** (*Optional*, `id `__): Manually specify the ID used for code generation. + +.. note:: + + If you're seeing lots of invalid temperature/humidity warnings in the logs, try manually setting the + DHT model with the ``model:`` configuration variable. Other problems could be wrong pull-up resistor values + on the DATA pin or too long cables. diff --git a/esphomeyaml/components/sensor/sht3xd-full.jpg b/esphomeyaml/components/sensor/sht3xd-full.jpg new file mode 100644 index 000000000..410894d93 Binary files /dev/null and b/esphomeyaml/components/sensor/sht3xd-full.jpg differ diff --git a/esphomeyaml/components/sensor/sht3xd.rst b/esphomeyaml/components/sensor/sht3xd.rst new file mode 100644 index 000000000..019c3a922 --- /dev/null +++ b/esphomeyaml/components/sensor/sht3xd.rst @@ -0,0 +1,71 @@ +SHT3X-D Temperature+Humidity Sensor +================================== + +.. warning:: + + This sensor is experimental has not been fully tested yet as I do not own all sensors. If you + can verify it works (or if it doesn't), please notify me on discord. + +The ``sht3xd`` sensor platform Temperature+Humidity sensor allows you to use your Sensiron SHT31-D +(`datasheet `__, +`Adafruit`_ ) sensors with +esphomelib. The `I²C bus `__ is +required to be set up in your configuration for this sensor to work. + +.. figure:: /esphomeyaml/components/sensor/sht3xd-full.jpg + :align: center + :target: `Adafruit`_ + :width: 50.0% + + SHT3X-D Temperature & Humidity Sensor. Image by `Adafruit`_. + +.. _Adafruit: https://www.adafruit.com/product/2857 + +|image0| + +.. |image0| image:: /esphomeyaml/components/sensor/temperature-humidity.png + :class: align-center + :width: 80.0% + +.. code:: yaml + + # Example configuration entry + sensor: + - platform: sht3xd + temperature: + name: "Living Room Temperature" + humidity: + name: "Living Room Humidity" + accuracy: high + address: 0x44 + update_interval: 15s + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **temperature** (**Required**): The information for the temperature + sensor + + - **name** (**Required**, string): The name for the temperature + sensor. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **humidity** (**Required**): The information for the humidity sensor + + - **name** (**Required**, string): The name for the humidity sensor. + - All other options from + `Sensor `__ + and `MQTT + Component `__. + +- **address** (*Optional*, int): Manually specify the i^2c address of the sensor. + Defaults to ``0xff``. +- **accuracy** (*Optional*, string): The accuracy of the sensor. One of ``low``, ``medium`` and ``high``. + Defaults to ``high``. +- **update_interval** (*Optional*, `time `__): The interval to check the + sensor. Defaults to ``15s``. +- **id** (*Optional*, `id `__): Manually specify the ID used for code + generation. diff --git a/esphomeyaml/components/sensor/tsl2561-full.jpg b/esphomeyaml/components/sensor/tsl2561-full.jpg new file mode 100644 index 000000000..3af4ac721 Binary files /dev/null and b/esphomeyaml/components/sensor/tsl2561-full.jpg differ diff --git a/esphomeyaml/components/sensor/tsl2561.rst b/esphomeyaml/components/sensor/tsl2561.rst new file mode 100644 index 000000000..45bf45631 --- /dev/null +++ b/esphomeyaml/components/sensor/tsl2561.rst @@ -0,0 +1,54 @@ +TSL2561 Ambient Light Sensor +============================ + +.. warning:: + + This sensor is experimental has not been fully tested yet as I do not own all sensors. If you + can verify it works (or if it doesn't), please notify me on discord. + +The ``tsl2561`` sensor platform allows you to use your BH1750 +(`datasheet `__, +`Adafruit`_) +ambient light sensor with esphomelib. The `I²C +bus `__ is required to be set up in +your configuration for this sensor to work. + +.. figure:: /esphomeyaml/components/sensor/tsl2561-full.jpg + :align: center + :target: `Adafruit`_ + :width: 50.0% + + TSL2561 Ambient Light Sensor. Image by `Adafruit`_. + +.. _Adafruit: https://www.adafruit.com/product/439 + +.. code:: yaml + + # Example configuration entry + sensor: + - platform: tsl2561 + name: "TSL2561 Ambient Light" + address: 0x39 + update_interval: 15s + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **name** (**Required**, string): The name for the sensor. +- **address** (*Optional*, int): Manually specify the i^2c address of the sensor. + Defaults to ``0x39``. +- **integration_time** (*Optional*, `time `__): + The time the sensor will take for each measurement. Longer means more accurate values. One of + ``14ms``, ``101ms``, ``402ms``. Defaults to ``402ms``. +- **gain** (*Optional*, string): The gain of the sensor. Higher values are better in low-light conditions. + One of ``1x`` and ``16x``. Defaults to ``1x``. +- **is_cs_package** (*Optional*, boolean): The "CS" package of this sensor has a slightly different + formula for calculating the illuminance in lx. Set this to ``true`` if you're working with a CS + package. Defaults to ``false``. +- **update_interval** (*Optional*, `time `__): The interval to check the + sensor. Defaults to ``15s``. +- **id** (*Optional*, `id `__): Manually specify the ID used for code + generation. +- All other options from + `Sensor `__ + and `MQTT Component `__. diff --git a/esphomeyaml/components/switch/ir_transmitter.rst b/esphomeyaml/components/switch/ir_transmitter.rst index 9b44874af..dd72ca922 100644 --- a/esphomeyaml/components/switch/ir_transmitter.rst +++ b/esphomeyaml/components/switch/ir_transmitter.rst @@ -1,5 +1,5 @@ -ESP32 IR Transmitter Switch -=========================== +IR Transmitter Switch +===================== The ``ir_transmitter`` switch platform allows you to create switches that send an IR code using the `IR Transmitter @@ -32,17 +32,17 @@ signals on any pin by using the ``raw:`` option. Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ -- **ir_transmitter_id** (**Required**, - `id `__): The id of the `IR - Transmitter - Component `__. - **name** (**Required**, string): The name for the switch. - The IR code, see `Defining IR Codes <#defining-ir-codes>`__. Only one of them can be specified per switch. - **repeat** (*Optional*, int): How often the command should be - repeated. Additionally, an ``wait_time_us`` option can be specified + repeated. Additionally, an ``wait_time`` option can be specified in the ``repeat`` section to set how long to wait in between repeats. Defaults to 1 (code is - sent once). + sent once). Example: ``repeat: {times: 10, wait_time: 20us} `` +- **ir_transmitter_id** (*Optional*, + `id `__): The id of the `IR + Transmitter + Component `__. Defaults to the first hub specified. - **id** (*Optional*, `id `__): Manually specify the ID used for code generation. @@ -112,5 +112,5 @@ Configuration variables: mean OFF. .. |image0| image:: /esphomeyaml/components/switch/ir-transmitter.png - :class: align-center - :width: 80.0% + :class: align-center + :width: 80.0% diff --git a/esphomeyaml/configuration-types.rst b/esphomeyaml/configuration-types.rst index f39e69bd9..03e910b21 100644 --- a/esphomeyaml/configuration-types.rst +++ b/esphomeyaml/configuration-types.rst @@ -80,16 +80,16 @@ Available Pin Modes: - ``INPUT`` - ``OUTPUT`` -- ``INPUT_PULLDOWN`` (only on ESP32) -- ``INPUT_PULLUP`` - ``OUTPUT_OPEN_DRAIN`` +- ``ANALOG`` (only on ESP32) +- ``INPUT_PULLUP`` +- ``INPUT_PULLDOWN`` (only on ESP32) +- ``INPUT_PULLDOWN_16`` (only on ESP8266 and only on GPIO16) + +More exotic Pin Modes are also supported, but rarely used: + - ``WAKEUP_PULLUP`` (only on ESP8266) - ``WAKEUP_PULLDOWN`` (only on ESP8266) -- ``INPUT_PULLDOWN_16`` (only on ESP8266 and only on GPIO16) -- ``OPEN_DRAIN`` (only on ESP32) -- ``PULLUP`` (only on ESP32) -- ``PULLDOWN`` (only on ESP32) -- ``ANALOG`` (only on ESP32) - ``SPECIAL`` - ``FUNCTION_0`` (only on ESP8266) - ``FUNCTION_1`` @@ -102,20 +102,21 @@ Available Pin Modes: Time ~~~~ -In lots of places in esphomeyaml you need to define time lengths, most -notably of these is an ``update_interval`` in milliseconds. Internally, -epshomelib always tries to work with millisecond values. But as -esphomeyaml is trying to make your lifes as easy as possible, there are -lots of helpers for defining times. +In lots of places in esphomeyaml you need to define time periods. +There are several ways of doing this. See below examples to see how you can specify time periods: .. code:: yaml some_config_option: + some_time_option: 1000us # 1000 microseconds = 1ms some_time_option: 1000ms # 1000 milliseconds some_time_option: 1.5s # 1.5 seconds some_time_option: 0.5min # half a minute some_time_option: 2h # 2 hours - some_time_option: # 10ms + 30s + 25min + 3h + some_time_option: 2:01 # 2 hours 1 minute + some_time_option: 2:01:30 # 2 hours 1 minute 30 seconds + # 10ms + 30s + 25min + 3h + some_time_option: milliseconds: 10 seconds: 30 minutes: 25 diff --git a/esphomeyaml/index.rst b/esphomeyaml/index.rst index 3ad506ccb..7a207366c 100644 --- a/esphomeyaml/index.rst +++ b/esphomeyaml/index.rst @@ -103,9 +103,17 @@ Sensor Components ---------------------- ---------------------- ---------------------- `HDC1080`_ `HTU21D`_ `MPU6050`_ ---------------------- ---------------------- ---------------------- -|Pulse Counter|_ |Ultrasonic Sensor|_ +|Pulse Counter|_ |Ultrasonic Sensor|_ |BH1750|_ ---------------------- ---------------------- ---------------------- -`Pulse Counter`_ `Ultrasonic Sensor`_ +`Pulse Counter`_ `Ultrasonic Sensor`_ `BH1750`_ +---------------------- ---------------------- ---------------------- +|BME280|_ |BME680|_ |TSL2561|_ +---------------------- ---------------------- ---------------------- +`BME280`_ `BME680`_ `TSL2561`_ +---------------------- ---------------------- ---------------------- +|SHT3X-D|_ +---------------------- ---------------------- ---------------------- +`SHT3X-D`_ ====================== ====================== ====================== .. |Sensor Core| image:: /esphomeyaml/folder-open.svg @@ -152,6 +160,26 @@ Sensor Components :class: component-image .. _Ultrasonic Sensor: /esphomeyaml/components/sensor/ultrasonic.html +.. |BH1750| image:: /esphomeyaml/bh1750.jpg + :class: component-image +.. _BH1750: /esphomeyaml/components/sensor/bh1750.html + +.. |BME280| image:: /esphomeyaml/bme280.jpg + :class: component-image +.. _BME280: /esphomeyaml/components/sensor/bme280.html + +.. |BME680| image:: /esphomeyaml/bme680.jpg + :class: component-image +.. _BME680: /esphomeyaml/components/sensor/bme680.html + +.. |TSL2561| image:: /esphomeyaml/tsl2561.jpg + :class: component-image +.. _TSL2561: /esphomeyaml/components/sensor/tsl2561.html + +.. |SHT3X-D| image:: /esphomeyaml/sht3xd.jpg + :class: component-image +.. _SHT3X-D: /esphomeyaml/components/sensor/sht3xd.html + Binary Sensor Components ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -160,6 +188,10 @@ Binary Sensor Components |Binary Sensor Core|_ |GPIO|_ |Status|_ ---------------------- ---------------------- ---------------------- `Binary Sensor Core`_ `GPIO`_ `Status`_ +---------------------- ---------------------- ---------------------- +|ESP32 BLE Device|_ |ESP32 Touch Pad|_ +---------------------- ---------------------- ---------------------- +`ESP32 BLE Device`_ `ESP32 Touch Pad`_ ====================== ====================== ====================== .. |Binary Sensor Core| image:: /esphomeyaml/folder-open.svg @@ -174,6 +206,14 @@ Binary Sensor Components :class: component-image .. _Status: /esphomeyaml/components/binary_sensor/status.html +.. |ESP32 BLE Device| image:: /esphomeyaml/bluetooth.svg + :class: component-image +.. _ESP32 BLE Device: /esphomeyaml/components/binary_sensor/esp32_ble.html + +.. |ESP32 Touch Pad| image:: /esphomeyaml/touch.svg + :class: component-image +.. _ESP32 Touch Pad: /esphomeyaml/components/binary_sensor/esp32_touch.html + Output Components ~~~~~~~~~~~~~~~~~ @@ -211,15 +251,19 @@ Output Components Light Components ~~~~~~~~~~~~~~~~ -======================== ======================== ======================== -|Light Core|_ |Binary Light|_ |Monochromatic Light|_ ------------------------- ------------------------ ------------------------ -`Light Core`_ `Binary Light`_ `Monochromatic Light`_ ------------------------- ------------------------ ------------------------ -|RGB Light|_ |RGBW Light|_ ------------------------- ------------------------ ------------------------ -`RGB Light`_ `RGBW Light`_ -======================== ======================== ======================== +============================ ============================ ============================ +|Light Core|_ |Binary Light|_ |Monochromatic Light|_ +---------------------------- ---------------------------- ---------------------------- +`Light Core`_ `Binary Light`_ `Monochromatic Light`_ +---------------------------- ---------------------------- ---------------------------- +|RGB Light|_ |RGBW Light|_ |FastLED Clockless Light|_ +---------------------------- ---------------------------- ---------------------------- +`RGB Light`_ `RGBW Light`_ `FastLED Clockless Light`_ +---------------------------- ---------------------------- ---------------------------- +|FastLED SPI Light|_ +---------------------------- ---------------------------- ---------------------------- +`FastLED SPI Light`_ +============================ ============================ ============================ .. |Light Core| image:: /esphomeyaml/folder-open.svg @@ -242,6 +286,14 @@ Light Components :class: component-image .. _RGBW Light: /esphomeyaml/components/light/rgbw.html +.. |FastLED Clockless Light| image:: /esphomeyaml/color_lens.svg + :class: component-image +.. _FastLED Clockless Light: /esphomeyaml/components/light/fastled_clockless.html + +.. |FastLED SPI Light| image:: /esphomeyaml/color_lens.svg + :class: component-image +.. _FastLED SPI Light: /esphomeyaml/components/light/fastled_spi.html + Switch Components ~~~~~~~~~~~~~~~~~ @@ -272,7 +324,7 @@ Switch Components :class: component-image .. _Restart Switch: /esphomeyaml/components/switch/restart.html -.. |Shutdown Switch| image:: /esphomeyaml/power.svg +.. |Shutdown Switch| image:: /esphomeyaml/power_settings.svg :class: component-image .. _Shutdown Switch: /esphomeyaml/components/switch/shutdown.html @@ -314,6 +366,10 @@ Misc Components |ADS1115 Hub|_ |Debug Component|_ |PCF8574 I/O Expander|_ ------------------------ ------------------------ ------------------------ `ADS1115 Hub`_ `Debug Component`_ `PCF8574 I/O Expander`_ +------------------------ ------------------------ ------------------------ +|ESP32 BLE Hub|_ |ESP32 Touch Hub|_ +------------------------ ------------------------ ------------------------ +`ESP32 BLE Hub`_ `ESP32 Touch Hub`_ ======================== ======================== ======================== .. |Dallas Hub| image:: /esphomeyaml/ds18b20.jpg @@ -340,6 +396,14 @@ Misc Components :class: component-image .. _PCF8574 I/O Expander: /esphomeyaml/components/pcf8574.html +.. |ESP32 BLE Hub| image:: /esphomeyaml/bluetooth.svg + :class: component-image +.. _ESP32 BLE Hub: /esphomeyaml/components/esp32_ble.html + +.. |ESP32 Touch Hub| image:: /esphomeyaml/touch.svg + :class: component-image +.. _ESP32 Touch Hub: /esphomeyaml/components/esp32_touch.html + Full Index ~~~~~~~~~~ @@ -397,3 +461,14 @@ Full Index components/fan/binary.rst components/fan/speed.rst components/pcf8574.rst + components/esp32_ble.rst + components/binary_sensor/esp32_ble.rst + components/esp32_touch.rst + components/binary_sensor/esp32_touch.rst + components/light/fastled_clockless.rst + components/light/fastled_spi.rst + components/sensor/bh1750.rst + components/sensor/bme280.rst + components/sensor/bme680.rst + components/sensor/tsl2561.rst + components/sensor/sht3xd.rst diff --git a/esphomeyaml/power_settings.svg b/esphomeyaml/power_settings.svg new file mode 100644 index 000000000..43c1f863a --- /dev/null +++ b/esphomeyaml/power_settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/esphomeyaml/sht3xd.jpg b/esphomeyaml/sht3xd.jpg new file mode 100644 index 000000000..d3a7065a9 Binary files /dev/null and b/esphomeyaml/sht3xd.jpg differ diff --git a/esphomeyaml/touch.svg b/esphomeyaml/touch.svg new file mode 100644 index 000000000..9ff56762b --- /dev/null +++ b/esphomeyaml/touch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/esphomeyaml/tsl2561.jpg b/esphomeyaml/tsl2561.jpg new file mode 100644 index 000000000..e2d3ec430 Binary files /dev/null and b/esphomeyaml/tsl2561.jpg differ diff --git a/index.rst b/index.rst index 62eda752c..9df1321ca 100644 --- a/index.rst +++ b/index.rst @@ -42,7 +42,7 @@ a light is a combination of output components. api/binary_sensor/esp32_touch.rst api/misc/esp32_ble_tracker.rst api/sensor/tsl2561.rst - api/sensor/bht1750.rst + api/sensor/bh1750.rst api/sensor/bme280.rst api/sensor/bme680.rst api/sensor/sht3xd.rst