|
@ -0,0 +1,25 @@
|
||||||
|
# See https://pre-commit.com for more information
|
||||||
|
# See https://pre-commit.com/hooks.html for more hooks
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/ambv/black
|
||||||
|
rev: 20.8b1
|
||||||
|
hooks:
|
||||||
|
- id: black
|
||||||
|
args:
|
||||||
|
- --safe
|
||||||
|
- --quiet
|
||||||
|
- repo: https://gitlab.com/pycqa/flake8
|
||||||
|
rev: 3.8.4
|
||||||
|
hooks:
|
||||||
|
- id: flake8
|
||||||
|
additional_dependencies:
|
||||||
|
- flake8-docstrings==1.5.0
|
||||||
|
- pydocstyle==5.1.1
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v3.4.0
|
||||||
|
hooks:
|
||||||
|
- id: no-commit-to-branch
|
||||||
|
args:
|
||||||
|
- --branch=current
|
||||||
|
- --branch=next
|
||||||
|
- --branch=beta
|
2
Doxygen
|
@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
|
||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 1.16.2
|
PROJECT_NUMBER = 1.17.0b1
|
||||||
|
|
||||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||||
# for a project that appears at the top of each page and should give viewer a
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
|
|
2
Makefile
|
@ -1,5 +1,5 @@
|
||||||
ESPHOME_PATH = ../esphome
|
ESPHOME_PATH = ../esphome
|
||||||
ESPHOME_REF = v1.16.2
|
ESPHOME_REF = v1.17.0b1
|
||||||
|
|
||||||
.PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png
|
.PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1.16.2
|
1.17.0b1
|
|
@ -2,7 +2,7 @@ Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
.. redirect::
|
.. redirect::
|
||||||
:url: /changelog/v1.16.0.html
|
:url: /changelog/v1.17.0.html
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:glob:
|
:glob:
|
||||||
|
|
|
@ -29,7 +29,7 @@ Changelog - Version 1.14.0 - November 1
|
||||||
SGP30, components/sensor/sgp30, sgp30.jpg
|
SGP30, components/sensor/sgp30, sgp30.jpg
|
||||||
|
|
||||||
Tx20, components/sensor/tx20, tx20.jpg
|
Tx20, components/sensor/tx20, tx20.jpg
|
||||||
VL53L0x, components/sensor/vl53l0x, vl53l0x.svg
|
VL53L0x, components/sensor/vl53l0x, vl53l0x.png
|
||||||
Xiaomi CGG1, components/sensor/xiaomi_cgg1, xiaomi_cgg1.jpg
|
Xiaomi CGG1, components/sensor/xiaomi_cgg1, xiaomi_cgg1.jpg
|
||||||
Xiaomi LYWSD02, components/sensor/xiaomi_lywsd02, xiaomi_lywsd02.jpg
|
Xiaomi LYWSD02, components/sensor/xiaomi_lywsd02, xiaomi_lywsd02.jpg
|
||||||
ZyAura, components/sensor/zyaura, zgm053.jpg
|
ZyAura, components/sensor/zyaura, zgm053.jpg
|
||||||
|
|
|
@ -0,0 +1,176 @@
|
||||||
|
Changelog - Version 1.17.0 - TBD 2021
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Changelog for ESPHome version 1.17.0.
|
||||||
|
:image: /_static/changelog-1.17.0.png
|
||||||
|
:author_twitter: @esphome_
|
||||||
|
|
||||||
|
.. imgtable::
|
||||||
|
:columns: 4
|
||||||
|
|
||||||
|
Inkbird IBS-TH1 Mini, components/sensor/inkbird_ibsth1_mini, inkbird_isbth1_mini.jpg
|
||||||
|
MCP4725, components/output/mcp4725, mcp4725.jpg
|
||||||
|
Xiaomi Miscale, components/sensor/xiaomi_miscale, xiaomi_miscale.jpg
|
||||||
|
Xiaomi Miscale2, components/sensor/xiaomi_miscale2, xiaomi_miscale2.jpg
|
||||||
|
Midea Air Conditioner, components/climate/midea_ac, midea.svg
|
||||||
|
Addressable Light Display, components/display/addressable_light, addressable_light.jpg
|
||||||
|
Pulse Meter, components/sensor/pulse_meter, pulse.svg
|
||||||
|
|
||||||
|
RELEASE NOTES TO GO HERE
|
||||||
|
|
||||||
|
New Features
|
||||||
|
------------
|
||||||
|
|
||||||
|
- esphome: Vl53l0x change address :esphomepr:`1126` by :ghuser:`kkellner` (new-feature)
|
||||||
|
- esphome: Background calibration & ABC commands for SenseAir S8 :esphomepr:`1623` by :ghuser:`nmaggioni` (new-feature)
|
||||||
|
- esphome: Add trigger for http actions to receive the status code :esphomepr:`1599` by :ghuser:`jesserockz` (new-feature)
|
||||||
|
|
||||||
|
New Integrations
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- esphome: Adding support for the Inkbird IBS-TH1 Mini sensor :esphomepr:`1099` by :ghuser:`fkirill` (new-integration)
|
||||||
|
- esphome: Add MCP4725 DAC Component :esphomepr:`1418` by :ghuser:`JJK801` (new-integration)
|
||||||
|
- esphome: Add Xiaomi Miscale v1 and v2 :esphomepr:`1368` by :ghuser:`dckiller51` (new-integration)
|
||||||
|
- esphome: Add support for the SM300D2 7-in-1 sensor module :esphomepr:`1524` by :ghuser:`moritzgloeckl` (new-integration)
|
||||||
|
- esphome: Midea climate support :esphomepr:`1328` by :ghuser:`dudanov` (new-integration)
|
||||||
|
- esphome: Add addressable_light display platform :esphomepr:`1272` by :ghuser:`justfalter` (new-integration) (notable-change)
|
||||||
|
- esphome: Implement pulse_meter as an improvement on pulse_counter and pulse_width for meters :esphomepr:`1434` by :ghuser:`stevebaxter` (new-integration)
|
||||||
|
|
||||||
|
Breaking Changes
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- esphome: MCP23XXX Refactor :esphomepr:`1560` by :ghuser:`jesserockz` (breaking-change)
|
||||||
|
|
||||||
|
Notable Changes
|
||||||
|
---------------
|
||||||
|
|
||||||
|
- esphome: Device class attribute for sensor component :esphomepr:`1525` by :ghuser:`marecabo` (notable-change)
|
||||||
|
- esphome: Add default device classes to sensor components :esphomepr:`1533` by :ghuser:`marecabo` (notable-change)
|
||||||
|
- esphome: Add addressable_light display platform :esphomepr:`1272` by :ghuser:`justfalter` (new-integration) (notable-change)
|
||||||
|
|
||||||
|
All changes
|
||||||
|
-----------
|
||||||
|
|
||||||
|
- esphome: Bump voluptuous from 0.12.0 to 0.12.1 :esphomepr:`1411` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: add http request tests :esphomepr:`1448` by :ghuser:`glmnet`
|
||||||
|
- esphome: codegen: Lambda improvements :esphomepr:`1476` by :ghuser:`balrog-kun`
|
||||||
|
- docs: Add options to control pulse duration on Climate_IR_LG Component :docspr:`963` by :ghuser:`mhentschke`
|
||||||
|
- esphome: Add options to control pulse duration on Climate_IR_LG Component :esphomepr:`1470` by :ghuser:`mhentschke`
|
||||||
|
- esphome: Adding support for the Inkbird IBS-TH1 Mini sensor :esphomepr:`1099` by :ghuser:`fkirill` (new-integration)
|
||||||
|
- docs: Adding documentation for Inkbird IBS-TH1 Mini sensor :docspr:`657` by :ghuser:`fkirill`
|
||||||
|
- esphome: Add config validator location :esphomepr:`1490` by :ghuser:`glmnet`
|
||||||
|
- esphome: Add MCP4725 DAC Component :esphomepr:`1418` by :ghuser:`JJK801` (new-integration)
|
||||||
|
- docs: Add MCP4725 docs :docspr:`889` by :ghuser:`JJK801`
|
||||||
|
- docs: Fix format consistency :docspr:`989` by :ghuser:`glmnet`
|
||||||
|
- esphome: Added codeowners to max7219digit :esphomepr:`1487` by :ghuser:`rspaargaren`
|
||||||
|
- esphome: Correct Native API Wire Format Documentation :esphomepr:`1528` by :ghuser:`justin-gerhardt`
|
||||||
|
- esphome: st7735_conf_fixes :esphomepr:`1530` by :ghuser:`SenexCrenshaw`
|
||||||
|
- docs: ST7735 Changed configuration items to snake_case :docspr:`1000` by :ghuser:`SenexCrenshaw`
|
||||||
|
- esphome: Device class attribute for sensor component :esphomepr:`1525` by :ghuser:`marecabo` (notable-change)
|
||||||
|
- docs: Add doc for device_class attribute of sensor :docspr:`996` by :ghuser:`marecabo`
|
||||||
|
- docs: Add sleep duration to enter deep sleep action :docspr:`995` by :ghuser:`nuttytree`
|
||||||
|
- esphome: Add duration option to action start deep sleep :esphomepr:`1526` by :ghuser:`nuttytree`
|
||||||
|
- esphome: fix substitution losing track of document range :esphomepr:`1547` by :ghuser:`glmnet`
|
||||||
|
- docs: Update esp32_camera.rst :docspr:`1020` by :ghuser:`lukaszrud`
|
||||||
|
- docs: Fix format next :docspr:`1023` by :ghuser:`glmnet`
|
||||||
|
- docs: Add another project to diy.rst :docspr:`1019` by :ghuser:`shish`
|
||||||
|
- docs: Update esphome-configs URL :docspr:`1018` by :ghuser:`shish`
|
||||||
|
- docs: Icon is ignored by HA when device class is set :docspr:`1011` by :ghuser:`marecabo`
|
||||||
|
- docs: Update pid.rst :docspr:`1006` by :ghuser:`boradwell`
|
||||||
|
- docs: Mention that Hyperion.NG works with E1.31 :docspr:`975` by :ghuser:`rradar`
|
||||||
|
- esphome: Add Xiaomi Miscale v1 and v2 :esphomepr:`1368` by :ghuser:`dckiller51` (new-integration)
|
||||||
|
- docs: Add docs for Xiaomi Miscale v1 and v2 :docspr:`1021` by :ghuser:`dckiller51`
|
||||||
|
- docs: Add missing closing parenthesis in example :docspr:`1029` by :ghuser:`lepinkainen`
|
||||||
|
- docs: Update Inkplate.rst :docspr:`1026` by :ghuser:`jakommo`
|
||||||
|
- docs: typo in st7735 model number :docspr:`1025` by :ghuser:`wjcarpenter`
|
||||||
|
- docs: Fix mcp23sXX id config :docspr:`1017` by :ghuser:`jesserockz`
|
||||||
|
- docs: Update bme680.rst :docspr:`1007` by :ghuser:`wifwucite`
|
||||||
|
- docs: Sim800l dial :docspr:`1027` by :ghuser:`spilin`
|
||||||
|
- esphome: Add dial support for sim800l component :esphomepr:`1558` by :ghuser:`spilin`
|
||||||
|
- esphome: Climate IR LG -keep previous temp and fan if swing :esphomepr:`1556` by :ghuser:`Otamay`
|
||||||
|
- esphome: Vl53l0x change address :esphomepr:`1126` by :ghuser:`kkellner` (new-feature)
|
||||||
|
- docs: Update vl53l0x docs :docspr:`679` by :ghuser:`kkellner`
|
||||||
|
- esphome: tuya: Use queue for sending command messages :esphomepr:`1404` by :ghuser:`stubs12`
|
||||||
|
- esphome: Replace substitutions in substitutions first :esphomepr:`1567` by :ghuser:`edenhaus`
|
||||||
|
- esphome: Added heater to climate_ir_lg :esphomepr:`1555` by :ghuser:`Otamay`
|
||||||
|
- esphome: More yaml validation :esphomepr:`1568` by :ghuser:`glmnet`
|
||||||
|
- esphome: Add default device classes to sensor components :esphomepr:`1533` by :ghuser:`marecabo` (notable-change)
|
||||||
|
- docs: Document recurring data in uart switch :docspr:`986` by :ghuser:`gabe565`
|
||||||
|
- esphome: Add support for recurring data in uart switch :esphomepr:`1514` by :ghuser:`gabe565`
|
||||||
|
- esphome: Added samsung36 ir protocol :esphomepr:`1438` by :ghuser:`tuxBurner`
|
||||||
|
- docs: Added remote samsung36 protocol docs :docspr:`904` by :ghuser:`tuxBurner`
|
||||||
|
- docs: Add IWOOLE Table Lamp cookbook entry :docspr:`947` by :ghuser:`Deinara`
|
||||||
|
- docs: Update uart.rst example to read all available characters :docspr:`1031` by :ghuser:`RoganDawes`
|
||||||
|
- esphome: ADC fix: GPIO0 not usable as output if ADC_VCC is used :esphomepr:`1557` by :ghuser:`ferbar`
|
||||||
|
- esphome: Add constants for device classes of binary_sensor :esphomepr:`1549` by :ghuser:`marecabo`
|
||||||
|
- esphome: fix path on windows escape :esphomepr:`1573` by :ghuser:`glmnet`
|
||||||
|
- esphome: Migrate ESPColor to Color :esphomepr:`1551` by :ghuser:`SenexCrenshaw`
|
||||||
|
- docs: Migrate ESPColor to Color :docspr:`1036` by :ghuser:`SenexCrenshaw`
|
||||||
|
- esphome: Add support for the SM300D2 7-in-1 sensor module :esphomepr:`1524` by :ghuser:`moritzgloeckl` (new-integration)
|
||||||
|
- docs: Added documentation for the SM300D2 sensor :docspr:`993` by :ghuser:`moritzgloeckl`
|
||||||
|
- esphome: changed color temp from float to int :esphomepr:`1522` by :ghuser:`codyjamestechnical`
|
||||||
|
- esphome: Bump pytest-cov from 2.10.1 to 2.11.1 :esphomepr:`1483` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Bump colorlog from 4.6.2 to 4.7.2 :esphomepr:`1473` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: pins: Add three new boards :esphomepr:`1576` by :ghuser:`balrog-kun`
|
||||||
|
- esphome: Bump pytest from 6.2.1 to 6.2.2 :esphomepr:`1574` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Bump pytz from 2020.5 to 2021.1 :esphomepr:`1575` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Fix for waveshare 2.13in-ttgo-b73 :esphomepr:`1543` by :ghuser:`nikito7`
|
||||||
|
- docs: Added new blogpost :docspr:`1038` by :ghuser:`pieterbrink123`
|
||||||
|
- esphome: Add min/max filters :esphomepr:`1569` by :ghuser:`gabe565`
|
||||||
|
- docs: Document new min/max filters :docspr:`1032` by :ghuser:`gabe565`
|
||||||
|
- esphome: Bump pylint from 2.6.0 to 2.7.2 :esphomepr:`1582` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Extend 'uart:' with 'invert:' for esp32 :esphomepr:`1586` by :ghuser:`needspeed`
|
||||||
|
- docs: Uart invert option for ESP32 :docspr:`1039` by :ghuser:`Mynasru`
|
||||||
|
- esphome: Bump platformio from 5.0.4 to 5.1.0 :esphomepr:`1581` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: fix servo warning :esphomepr:`1591` by :ghuser:`glmnet`
|
||||||
|
- docs: add-black :docspr:`1044` by :ghuser:`glmnet`
|
||||||
|
- esphome: add-black :esphomepr:`1593` by :ghuser:`glmnet`
|
||||||
|
- esphome: MCP23XXX Refactor :esphomepr:`1560` by :ghuser:`jesserockz` (breaking-change)
|
||||||
|
- docs: Update MCP23XXX docs with interrupts and pin schemas :docspr:`1028` by :ghuser:`jesserockz`
|
||||||
|
- esphome: Improve error checking: too many component id candidates :esphomepr:`1570` by :ghuser:`glmnet`
|
||||||
|
- esphome: Schema dump :esphomepr:`1564` by :ghuser:`glmnet`
|
||||||
|
- docs: Dump schema :docspr:`1030` by :ghuser:`glmnet`
|
||||||
|
- docs: Update i2c.rst :docspr:`1043` by :ghuser:`webeling67`
|
||||||
|
- docs: Update rf_bridge.rst :docspr:`1042` by :ghuser:`samnewman86`
|
||||||
|
- esphome: Inkplate 6 Optimizations :esphomepr:`1592` by :ghuser:`Sizurka`
|
||||||
|
- docs: Fix RF Bridge link to Portisch Repo :docspr:`1045` by :ghuser:`jesserockz`
|
||||||
|
- docs: pin schema and other fixes :docspr:`1047` by :ghuser:`glmnet`
|
||||||
|
- esphome: schema-dump-pins :esphomepr:`1596` by :ghuser:`glmnet`
|
||||||
|
- docs: Adding that mpr121_id is a valid option for binary_sensor :docspr:`966` by :ghuser:`minideezel`
|
||||||
|
- esphome: change lcd clear() to clear the buffer :esphomepr:`1600` by :ghuser:`ssieb`
|
||||||
|
- esphome: PN532 - don't read extra page and fix size :esphomepr:`1565` by :ghuser:`ssieb`
|
||||||
|
- docs: schema-filters :docspr:`1052` by :ghuser:`glmnet`
|
||||||
|
- esphome: Fix component_tests config :esphomepr:`1608` by :ghuser:`madron`
|
||||||
|
- esphome: Added receive for Fujitsu ACs :esphomepr:`1577` by :ghuser:`alex-richards`
|
||||||
|
- esphome: Change COLOR_ON to be 255 values instead of 1 :esphomepr:`1594` by :ghuser:`jesserockz`
|
||||||
|
- esphome: a4988 wait 1ms when coming out of sleep :esphomepr:`1597` by :ghuser:`WeekendWarrior1`
|
||||||
|
- docs: Remove cs_pin from rc522 i2c example :docspr:`1059` by :ghuser:`jesserockz`
|
||||||
|
- esphome: Support fan speed levels :esphomepr:`1541` by :ghuser:`blejdfist`
|
||||||
|
- docs: Documentation for fan speed levels :docspr:`1056` by :ghuser:`blejdfist`
|
||||||
|
- docs: Add CLI logs section :docspr:`1060` by :ghuser:`Tmin10`
|
||||||
|
- esphome: Add option to suffix name with mac address :esphomepr:`1615` by :ghuser:`jesserockz`
|
||||||
|
- esphome: Midea climate support :esphomepr:`1328` by :ghuser:`dudanov` (new-integration)
|
||||||
|
- docs: Midea Climate support :docspr:`804` by :ghuser:`dudanov`
|
||||||
|
- docs: Add docs for `name_add_mac_suffix` config :docspr:`1058` by :ghuser:`jesserockz`
|
||||||
|
- esphome: SPI transfer fix. Use write when no miso pin is set :esphomepr:`1563` by :ghuser:`SenexCrenshaw`
|
||||||
|
- esphome: SPI Improvements :esphomepr:`1617` by :ghuser:`SenexCrenshaw`
|
||||||
|
- esphome: Add addressable_light display platform :esphomepr:`1272` by :ghuser:`justfalter` (new-integration) (notable-change)
|
||||||
|
- docs: Add docs for addressable_light display :docspr:`755` by :ghuser:`justfalter`
|
||||||
|
- esphome: Implement pulse_meter as an improvement on pulse_counter and pulse_width for meters :esphomepr:`1434` by :ghuser:`stevebaxter` (new-integration)
|
||||||
|
- esphome: e131: fix issue 1579: limitation of maximum light count :esphomepr:`1619` by :ghuser:`docteurzoidberg`
|
||||||
|
- docs: Add documentation for pulse_meter :docspr:`900` by :ghuser:`stevebaxter`
|
||||||
|
- esphome: Bump platformio from 5.1.0 to 5.1.1 :esphomepr:`1618` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Fix pulse-meter with device_class and black :esphomepr:`1621` by :ghuser:`jesserockz`
|
||||||
|
- esphome: Declare Color objects in main.cpp :esphomepr:`1395` by :ghuser:`kbx81`
|
||||||
|
- esphome: Add 2.13in-ttgo-b1 waveshare epaper module. :esphomepr:`1326` by :ghuser:`matikij`
|
||||||
|
- docs: Add docs for ttgo-b1 version (next branch) :docspr:`808` by :ghuser:`matikij`
|
||||||
|
- esphome: Bump flake8 from 3.8.4 to 3.9.0 :esphomepr:`1612` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Bundle platformio lib_deps in docker images :esphomepr:`1625`
|
||||||
|
- esphome: Bump protobuf from 3.13.0 to 3.15.6 :esphomepr:`1607` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Bump pyyaml from 5.3.1 to 5.4.1 :esphomepr:`1482` by :ghuser:`dependabot[bot]`
|
||||||
|
- esphome: Switch docker images to debian :esphomepr:`1626`
|
||||||
|
- esphome: Background calibration & ABC commands for SenseAir S8 :esphomepr:`1623` by :ghuser:`nmaggioni` (new-feature)
|
||||||
|
- docs: SenseAir: background calibration & ABC commands :docspr:`1066` by :ghuser:`nmaggioni`
|
||||||
|
- esphome: Add trigger for http actions to receive the status code :esphomepr:`1599` by :ghuser:`jesserockz` (new-feature)
|
||||||
|
- docs: Add docs for http_request on_response trigger :docspr:`1049` by :ghuser:`jesserockz`
|
|
@ -40,7 +40,7 @@ Configuration variables:
|
||||||
- **name** (**Required**, string): The name of the binary sensor.
|
- **name** (**Required**, string): The name of the binary sensor.
|
||||||
- **mac_address** (*Optional*, MAC Address): The MAC address to track for this
|
- **mac_address** (*Optional*, MAC Address): The MAC address to track for this
|
||||||
binary sensor. Either this or ``service_uuid`` has to be present.
|
binary sensor. Either this or ``service_uuid`` has to be present.
|
||||||
- **service_uuid** (*Optional*, string) 16 bit, 32 bit, or 128 bit BLE Service UUID
|
- **service_uuid** (*Optional*, string): 16 bit, 32 bit, or 128 bit BLE Service UUID
|
||||||
which can be tracked if the device randomizes the MAC address. Either
|
which can be tracked if the device randomizes the MAC address. Either
|
||||||
this or ``mac_address`` has to be present.
|
this or ``mac_address`` has to be present.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify
|
- **id** (*Optional*, :ref:`config-id`): Manually specify
|
||||||
|
|
|
@ -85,23 +85,40 @@ of these entries matters!)
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Supported filters:
|
``invert``
|
||||||
|
**********
|
||||||
|
|
||||||
- **invert**: Simple filter that just inverts every value from the binary sensor.
|
Simple filter that just inverts every value from the binary sensor.
|
||||||
- **delayed_on**: When a signal ON is received, wait for the specified time period until publishing
|
|
||||||
an ON state. If an OFF value is received while waiting, the ON action is discarded. Or in other words:
|
``delayed_on``
|
||||||
Only send an ON value if the binary sensor has stayed ON for at least the specified time period.
|
**************
|
||||||
**Useful for debouncing push buttons**.
|
|
||||||
- **delayed_off**: When a signal OFF is received, wait for the specified time period until publishing
|
(**Required**, :ref:`config-time`): When a signal ON is received, wait for the specified time period until publishing
|
||||||
an OFF state. If an ON value is received while waiting, the OFF action is discarded. Or in other words:
|
an ON state. If an OFF value is received while waiting, the ON action is discarded. Or in other words:
|
||||||
Only send an OFF value if the binary sensor has stayed OFF for at least the specified time period.
|
Only send an ON value if the binary sensor has stayed ON for at least the specified time period.
|
||||||
**Useful for debouncing push buttons**.
|
**Useful for debouncing push buttons**.
|
||||||
- **delayed_on_off**: Only send an ON or OFF value if the binary sensor has stayed in the same state
|
|
||||||
for at least the specified time period.
|
``delayed_off``
|
||||||
**Useful for debouncing binary switches**.
|
***************
|
||||||
- **lambda**: Specify any :ref:`lambda <config-lambda>` for more complex filters. The input value from
|
|
||||||
the binary sensor is ``x`` and you can return ``true`` for ON, ``false`` for OFF, and ``{}`` to stop
|
(**Required**, :ref:`config-time`): When a signal OFF is received, wait for the specified time period until publishing
|
||||||
the filter chain.
|
an OFF state. If an ON value is received while waiting, the OFF action is discarded. Or in other words:
|
||||||
|
Only send an OFF value if the binary sensor has stayed OFF for at least the specified time period.
|
||||||
|
**Useful for debouncing push buttons**.
|
||||||
|
|
||||||
|
``delayed_on_off``
|
||||||
|
******************
|
||||||
|
|
||||||
|
(**Required**, :ref:`config-time`): Only send an ON or OFF value if the binary sensor has stayed in the same state
|
||||||
|
for at least the specified time period.
|
||||||
|
**Useful for debouncing binary switches**.
|
||||||
|
|
||||||
|
``lambda``
|
||||||
|
**********
|
||||||
|
|
||||||
|
Specify any :ref:`lambda <config-lambda>` for more complex filters. The input value from
|
||||||
|
the binary sensor is ``x`` and you can return ``true`` for ON, ``false`` for OFF, and ``{}`` to stop
|
||||||
|
the filter chain.
|
||||||
|
|
||||||
Binary Sensor Automation
|
Binary Sensor Automation
|
||||||
------------------------
|
------------------------
|
||||||
|
|
|
@ -6,6 +6,11 @@ MPR121 Capacitive Touch Sensor
|
||||||
:image: mpr121.jpg
|
:image: mpr121.jpg
|
||||||
:keywords: MPR121
|
:keywords: MPR121
|
||||||
|
|
||||||
|
.. _mpr121-component:
|
||||||
|
|
||||||
|
Component/Hub
|
||||||
|
-------------
|
||||||
|
|
||||||
The ``mpr121`` sensor platform allows you to use your MPR121
|
The ``mpr121`` sensor platform allows you to use your MPR121
|
||||||
(`datasheet <https://cdn-learn.adafruit.com/downloads/pdf/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial.pdf>`__,
|
(`datasheet <https://cdn-learn.adafruit.com/downloads/pdf/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial.pdf>`__,
|
||||||
`Adafruit`_) Capacitive Touch Sensor with ESPHome. The :ref:`I²C <i2c>` is
|
`Adafruit`_) Capacitive Touch Sensor with ESPHome. The :ref:`I²C <i2c>` is
|
||||||
|
@ -43,8 +48,6 @@ Configuration variables:
|
||||||
|
|
||||||
The configuration is made up of two parts: The central component, and individual Binary sensors per channel.
|
The configuration is made up of two parts: The central component, and individual Binary sensors per channel.
|
||||||
|
|
||||||
Base Configuration:
|
|
||||||
|
|
||||||
- **address** (*Optional*, integer): The I²C address of the sensor. Defaults to ``0x5A``.
|
- **address** (*Optional*, integer): The I²C address of the sensor. Defaults to ``0x5A``.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor.
|
||||||
- **touch_debounce** (*Optional*, integer): The minimum length before a touch is recognized. Range is from 0 to 7.
|
- **touch_debounce** (*Optional*, integer): The minimum length before a touch is recognized. Range is from 0 to 7.
|
||||||
|
@ -55,12 +58,21 @@ Base Configuration:
|
||||||
and should be between 5 and 30 (lower = more sensitive). Defaults to 12. Typically the touch threshold is a little bigger than the release threshold.
|
and should be between 5 and 30 (lower = more sensitive). Defaults to 12. Typically the touch threshold is a little bigger than the release threshold.
|
||||||
- **release_threshold** (*Optional*, integer): The release defines the sensitivity for touch detection and should be between 5 and 30. Defaults to 6.
|
- **release_threshold** (*Optional*, integer): The release defines the sensitivity for touch detection and should be between 5 and 30. Defaults to 6.
|
||||||
|
|
||||||
Binary Sensor Configuration:
|
Binary Sensor
|
||||||
|
-------------
|
||||||
|
|
||||||
- **name** (**Optional**, string): The name for the binary sensor.
|
The ``mpr121`` binary sensor allows you to use your MPR121 with ESPHome.
|
||||||
|
First, setup a :ref:`mpr121-component` and then use this binary sensor platform to create individual
|
||||||
|
binary sensors for each touch sensor.
|
||||||
|
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
|
||||||
|
- **name** (*Optional*, string): The name for the binary sensor.
|
||||||
- **mpr121_id** (*Optional*, :ref:`config-id`): The ID of the MPR121 defined above. Useful for multiple MPR121's on the I²C bus
|
- **mpr121_id** (*Optional*, :ref:`config-id`): The ID of the MPR121 defined above. Useful for multiple MPR121's on the I²C bus
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- **channel** (*Required*, integer): The channel number at the MPR121 the touchkey is connected to.
|
- **channel** (**Required**, integer): The channel number at the MPR121 the touchkey is connected to.
|
||||||
- **touch_threshold** (*Optional*, integer): A per-channel override of the global touch_threshold value. If not specified, uses the global value.
|
- **touch_threshold** (*Optional*, integer): A per-channel override of the global touch_threshold value. If not specified, uses the global value.
|
||||||
- **release_threshold** (*Optional*, integer): A per-channel override of the global release_threshold value. If not specified, uses the global value.
|
- **release_threshold** (*Optional*, integer): A per-channel override of the global release_threshold value. If not specified, uses the global value.
|
||||||
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||||
|
|
|
@ -28,14 +28,62 @@ You will need to switch the dip switches located on the module according to the
|
||||||
SPI is usually switch 1 OFF and switch 2 ON and I²C is usually switch 1 ON and switch 2 OFF.
|
SPI is usually switch 1 OFF and switch 2 ON and I²C is usually switch 1 ON and switch 2 OFF.
|
||||||
You will need to have the :ref:`SPI Bus <spi>` or the :ref:`I²C Bus <i2c>` configured depending on your choice.
|
You will need to have the :ref:`SPI Bus <spi>` or the :ref:`I²C Bus <i2c>` configured depending on your choice.
|
||||||
|
|
||||||
|
Over SPI
|
||||||
|
--------
|
||||||
|
|
||||||
|
The ``pn532_spi`` component allows you to use PN532 NFC/RFID controllers
|
||||||
|
(`datasheet <https://cdn-shop.adafruit.com/datasheets/pn532ds.pdf>`__, `Adafruit <https://www.adafruit.com/product/364>`__)
|
||||||
|
with ESPHome. This component is a global hub that establishes the connection to the PN532 via :ref:`SPI <spi>` and
|
||||||
|
outputs its data. Using the :ref:`PN532 binary sensors <pn532-tag>` you can then
|
||||||
|
create individual binary sensors that track if an NFC/RFID tag is currently detected by the PN532.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
# Example configuration for SPI (choose which one!)
|
|
||||||
pn532_spi:
|
pn532_spi:
|
||||||
cs_pin: D3
|
cs_pin: D3
|
||||||
update_interval: 1s
|
update_interval: 1s
|
||||||
|
|
||||||
# Example configuration for I²C (choose which one!)
|
|
||||||
|
binary_sensor:
|
||||||
|
- platform: pn532
|
||||||
|
uid: 74-10-37-94
|
||||||
|
name: "PN532 NFC Tag"
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
************************
|
||||||
|
|
||||||
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that the chip select line
|
||||||
|
is connected to.
|
||||||
|
- **update_interval** (*Optional*, :ref:`config-time`): The duration of each scan on the PN532. This affects the
|
||||||
|
duration that the individual binary sensors stay active when they're found.
|
||||||
|
If a device is not found within this time window, it will be marked as not present. Defaults to 1s.
|
||||||
|
- **on_tag** (*Optional*, :ref:`Automation <automation>`): An automation to perform
|
||||||
|
when a tag is read. See :ref:`pn532-on_tag`.
|
||||||
|
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||||
|
to use multiple SPI buses.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this component.
|
||||||
|
|
||||||
|
.. figure:: images/pn532-spi.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 80.0%
|
||||||
|
|
||||||
|
Example for hooking up the PN532 via SPI. Notice the position of the two switches on the right.
|
||||||
|
|
||||||
|
.. _pn532-on_tag:
|
||||||
|
|
||||||
|
|
||||||
|
Over I²C
|
||||||
|
--------
|
||||||
|
|
||||||
|
The ``pn532`` component allows you to use PN532 NFC/RFID controllers
|
||||||
|
(`datasheet <https://cdn-shop.adafruit.com/datasheets/pn532ds.pdf>`__, `Adafruit <https://www.adafruit.com/product/364>`__)
|
||||||
|
with ESPHome. This component is a global hub that establishes the connection to the PN532 via :ref:`I²C <i2c>` and
|
||||||
|
outputs its data. Using the :ref:`PN532 binary sensors <pn532-tag>` you can then
|
||||||
|
create individual binary sensors that track if an NFC/RFID tag is currently detected by the PN532.
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
pn532_i2c:
|
pn532_i2c:
|
||||||
update_interval: 1s
|
update_interval: 1s
|
||||||
|
|
||||||
|
@ -47,29 +95,18 @@ You will need to have the :ref:`SPI Bus <spi>` or the :ref:`I²C Bus <i2c>` conf
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
************************
|
************************
|
||||||
|
|
||||||
- **cs_pin** (**Required for SPI**, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that the chip select line
|
|
||||||
is connected to.
|
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The duration of each scan on the PN532. This affects the
|
- **update_interval** (*Optional*, :ref:`config-time`): The duration of each scan on the PN532. This affects the
|
||||||
duration that the individual binary sensors stay active when they're found.
|
duration that the individual binary sensors stay active when they're found.
|
||||||
If a device is not found within this time window, it will be marked as not present. Defaults to 1s.
|
If a device is not found within this time window, it will be marked as not present. Defaults to 1s.
|
||||||
- **on_tag** (*Optional*, :ref:`Automation <automation>`): An automation to perform
|
- **on_tag** (*Optional*, :ref:`Automation <automation>`): An automation to perform
|
||||||
when a tag is read. See :ref:`pn532-on_tag`.
|
when a tag is read. See :ref:`pn532-on_tag`.
|
||||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
|
||||||
to use multiple SPI buses.
|
|
||||||
- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`I²C Component <spi>` if you want
|
- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`I²C Component <spi>` if you want
|
||||||
to use multiple I²C buses.
|
to use multiple I²C buses.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this component.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this component.
|
||||||
|
|
||||||
.. figure:: images/pn532-spi.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 80.0%
|
|
||||||
|
|
||||||
Example for hooking up the PN532 via SPI. Notice the position of the two switches on the right.
|
``on_tag`` Action
|
||||||
|
-----------------
|
||||||
.. _pn532-on_tag:
|
|
||||||
|
|
||||||
``on_tag``
|
|
||||||
----------
|
|
||||||
|
|
||||||
This automation will be triggered when the PN532 module responds with a tag. This will only be triggered
|
This automation will be triggered when the PN532 module responds with a tag. This will only be triggered
|
||||||
if the tag is changed or goes away for one cycle of ``update_interval``.
|
if the tag is changed or goes away for one cycle of ``update_interval``.
|
||||||
|
@ -120,8 +157,8 @@ Alternatively you could also send the value directly to Home Assistant via a
|
||||||
|
|
||||||
.. _pn532-tag:
|
.. _pn532-tag:
|
||||||
|
|
||||||
NFC/RFID Tag
|
``pn532`` Binary Sensor
|
||||||
------------
|
-----------------------
|
||||||
|
|
||||||
The ``pn532`` binary sensor platform lets you track if an NFC/RFID tag with a given
|
The ``pn532`` binary sensor platform lets you track if an NFC/RFID tag with a given
|
||||||
unique id (``uid``) is currently being detected by the PN532 or not.
|
unique id (``uid``) is currently being detected by the PN532 or not.
|
||||||
|
|
|
@ -8,30 +8,32 @@ RC522 RFID
|
||||||
|
|
||||||
.. _rc522-component:
|
.. _rc522-component:
|
||||||
|
|
||||||
Component/Hub
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The ``rc522`` component allows you to use RC522 RFID controllers
|
The ``rc522`` component allows you to use RC522 RFID controllers
|
||||||
(`datasheet <hthttps://www.nxp.com/docs/en/data-sheet/MFRC522.pdff>`__, `Ali Express <https://es.aliexpress.com/item/1260729519.html>`__)
|
(`datasheet <hthttps://www.nxp.com/docs/en/data-sheet/MFRC522.pdff>`__, `Ali Express <https://es.aliexpress.com/item/1260729519.html>`__)
|
||||||
with ESPHome. This component is a global hub that establishes the connection to the RC522 via either :ref:`SPI <spi>` or
|
with ESPHome. ESPHome can read the tag UID from it, every RFID tag comes with a unique
|
||||||
:ref:`I²C <i2c>` and outputs its data. Using the :ref:`RC522 binary sensors <rc522-tag>` you can then
|
UID value. Each known tag can be associated to a binary sensor, or you can use the tag information directly.
|
||||||
create individual binary sensors that track if an RFID tag is currently detected by the RC522.
|
|
||||||
|
|
||||||
.. figure:: images/rc522-full.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 60.0%
|
|
||||||
|
|
||||||
See :ref:`rc522-setting_up_tags` for information on how to setup individual binary sensors for this component.
|
See :ref:`rc522-setting_up_tags` for information on how to setup individual binary sensors for this component.
|
||||||
|
|
||||||
The RC522 supports SPI, I²C and UART communication protocols, ESPHome can use either SPI or I²C.
|
The RC522 supports SPI, I²C and UART communication protocols, ESPHome can use either SPI or I²C.
|
||||||
|
|
||||||
|
Component/Hub
|
||||||
|
-------------
|
||||||
|
|
||||||
* If you have a module like the image above, it can only be used in SPI mode (`unless hacked <https://forum.arduino.cc/index.php?topic=442750.0>`__)
|
* If you have a module like the image above, it can only be used in SPI mode (`unless hacked <https://forum.arduino.cc/index.php?topic=442750.0>`__)
|
||||||
and you need to have an :ref:`SPI bus <spi>` in your configuration with both the **miso_pin** and **mosi_pin** set.
|
and you need to have an :ref:`SPI bus <spi>` in your configuration with both the **miso_pin** and **mosi_pin** set.
|
||||||
|
|
||||||
* If you have a RC522 which communicates via I²C like in the M5 Stack then you need to have an :ref:`I²C <i2c>` bus configured.
|
* If you have a RC522 which communicates via I²C like in the M5 Stack then you need to have an :ref:`I²C <i2c>` bus configured.
|
||||||
|
|
||||||
SPI Option
|
.. figure:: images/rc522-full.jpg
|
||||||
**********
|
:align: center
|
||||||
|
:width: 60.0%
|
||||||
|
|
||||||
|
Over SPI
|
||||||
|
--------
|
||||||
|
|
||||||
|
The ``rc522_spi`` component allows you to use RC522 RFID controllers with ESPHome. This component is a global hub that
|
||||||
|
establishes the connection to the RC522 via :ref:`SPI <spi>` (also avilable over I²C). Using the
|
||||||
|
:ref:`RC522 binary sensors <rc522-tag>` you can then create individual binary sensors that track if
|
||||||
|
an RFID tag is currently detected by the RC522.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -45,8 +47,29 @@ SPI Option
|
||||||
uid: 74-10-37-94
|
uid: 74-10-37-94
|
||||||
name: "RC522 RFID Tag"
|
name: "RC522 RFID Tag"
|
||||||
|
|
||||||
I²C Option
|
Configuration variables:
|
||||||
**********
|
************************
|
||||||
|
|
||||||
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that the chip select line
|
||||||
|
is connected to.
|
||||||
|
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||||
|
to use multiple SPI buses.
|
||||||
|
- **on_tag** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a tag is read. See
|
||||||
|
:ref:`rc522-on_tag`.
|
||||||
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin connected to the RST line. Some tests
|
||||||
|
shows the RC522 working okay without this.
|
||||||
|
- **update_interval** (*Optional*, :ref:`config-time`): The duration of each scan on the RC522. This affects the
|
||||||
|
duration that the individual binary sensors stay active when they're found.
|
||||||
|
If a device is not found within this time window, it will be marked as not present. Defaults to ``1s``.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this component.
|
||||||
|
|
||||||
|
Over I²C
|
||||||
|
--------
|
||||||
|
|
||||||
|
The ``rc522_i2c`` component allows you to use RC522 RFID controllers with ESPHome. This component is a global hub that
|
||||||
|
establishes the connection to the RC522 via :ref:`I²C <i2c>` (also avilable over SPI). Using the
|
||||||
|
:ref:`RC522 binary sensors <rc522-tag>` you can then create individual binary sensors that track if
|
||||||
|
an RFID tag is currently detected by the RC522.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -62,36 +85,24 @@ I²C Option
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
************************
|
************************
|
||||||
|
|
||||||
|
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x28``.
|
||||||
|
- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`I²C Component <i2c>` if you want
|
||||||
|
to use multiple I²C buses.
|
||||||
|
- **on_tag** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a tag is read. See
|
||||||
|
:ref:`rc522-on_tag`.
|
||||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin connected to the RST line. Some tests
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin connected to the RST line. Some tests
|
||||||
shows the RC522 working okay without this.
|
shows the RC522 working okay without this.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The duration of each scan on the RC522. This affects the
|
- **update_interval** (*Optional*, :ref:`config-time`): The duration of each scan on the RC522. This affects the
|
||||||
duration that the individual binary sensors stay active when they're found.
|
duration that the individual binary sensors stay active when they're found.
|
||||||
If a device is not found within this time window, it will be marked as not present. Defaults to ``1s``.
|
If a device is not found within this time window, it will be marked as not present. Defaults to ``1s``.
|
||||||
- **on_tag** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a tag is read. See
|
|
||||||
:ref:`rc522-on_tag`.
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this component.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this component.
|
||||||
|
|
||||||
SPI Only:
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that the chip select line
|
|
||||||
is connected to.
|
|
||||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
|
||||||
to use multiple SPI buses.
|
|
||||||
|
|
||||||
|
|
||||||
I²C Only:
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x2C``.
|
|
||||||
- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`I²C Component <i2c>` if you want
|
|
||||||
to use multiple I²C buses.
|
|
||||||
|
|
||||||
|
|
||||||
.. _rc522-on_tag:
|
.. _rc522-on_tag:
|
||||||
|
|
||||||
``on_tag``
|
``on_tag`` Action
|
||||||
----------
|
-----------------
|
||||||
|
|
||||||
This automation will be triggered when the RC522 module responds with a tag. Please note that this
|
This automation will be triggered when the RC522 module responds with a tag. Please note that this
|
||||||
can be called quite often (with an interval of ``update_interval``) as it's triggered repeatedly
|
can be called quite often (with an interval of ``update_interval``) as it's triggered repeatedly
|
||||||
|
@ -123,8 +134,8 @@ using :ref:`api-homeassistant_tag_scanned_action`.
|
||||||
|
|
||||||
.. _rc522-tag:
|
.. _rc522-tag:
|
||||||
|
|
||||||
RFID Tag
|
``rc522`` Binary Sensor
|
||||||
--------
|
-----------------------
|
||||||
|
|
||||||
The ``rc522`` binary sensor platform lets you track if an RFID tag with a given
|
The ``rc522`` binary sensor platform lets you track if an RFID tag with a given
|
||||||
unique id (``uid``) is currently being detected by the RC522 or not.
|
unique id (``uid``) is currently being detected by the RC522 or not.
|
||||||
|
|
|
@ -83,8 +83,8 @@ using :ref:`api-homeassistant_tag_scanned_action`.
|
||||||
|
|
||||||
.. _rdm6300-tag:
|
.. _rdm6300-tag:
|
||||||
|
|
||||||
NFC/RFID Tag
|
``rdm6300`` Binary Sensor
|
||||||
------------
|
-------------------------
|
||||||
|
|
||||||
The ``rdm6300`` binary sensor platform lets you track if an NFC/RFID tag with a given
|
The ``rdm6300`` binary sensor platform lets you track if an NFC/RFID tag with a given
|
||||||
unique id (``uid``) is currently being detected by the RDM6300 or not.
|
unique id (``uid``) is currently being detected by the RDM6300 or not.
|
||||||
|
|
|
@ -22,8 +22,8 @@ There are two types of this sensor:
|
||||||
|
|
||||||
.. _RobotDyn: https://www.tinytronics.nl/shop/nl/sensoren/touch/robotdyn-touch-module-ttp229-lsf-16-kanaals
|
.. _RobotDyn: https://www.tinytronics.nl/shop/nl/sensoren/touch/robotdyn-touch-module-ttp229-lsf-16-kanaals
|
||||||
|
|
||||||
``ttp229_lsf`` Type
|
``ttp229_lsf`` Component
|
||||||
-------------------
|
------------------------
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -40,19 +40,20 @@ Configuration variables:
|
||||||
|
|
||||||
The configuration is made up of two parts: The central component, and individual Binary sensors per channel.
|
The configuration is made up of two parts: The central component, and individual Binary sensors per channel.
|
||||||
|
|
||||||
Base Configuration:
|
|
||||||
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this sensor.
|
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this sensor.
|
||||||
|
|
||||||
Binary Sensor Configuration:
|
``ttp229_lsf`` Binary Sensor
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
- **name** (**Required**, string): The name of the binary sensor.
|
- **name** (**Required**, string): The name of the binary sensor.
|
||||||
- **channel** (**Required**, integer): The channel number at the TTP229 the touchkey is connected to.
|
- **channel** (**Required**, integer): The channel number at the TTP229 the touchkey is connected to.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||||
|
|
||||||
``ttp229_bsf`` Type
|
``ttp229_bsf`` Component
|
||||||
-------------------
|
------------------------
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -79,7 +80,10 @@ Base Configuration:
|
||||||
SCL pin is connected to.
|
SCL pin is connected to.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this component.
|
- **id** (*Optional*, :ref:`config-id`): Manually set the ID of this component.
|
||||||
|
|
||||||
Binary Sensor Configuration:
|
``ttp229_bsf`` Binary Sensor
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
- **name** (**Required**, string): The name of the binary sensor.
|
- **name** (**Required**, string): The name of the binary sensor.
|
||||||
- **channel** (**Required**, integer): The channel number at the TTP229 the touchkey is connected to.
|
- **channel** (**Required**, integer): The channel number at the TTP229 the touchkey is connected to.
|
||||||
|
|
|
@ -58,7 +58,7 @@ Configuration variables:
|
||||||
- **can_id** (**Required**, integer): default *can id* used for transmitting frames.
|
- **can_id** (**Required**, integer): default *can id* used for transmitting frames.
|
||||||
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*:
|
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*:
|
||||||
*False*: Standard 11 bits IDs, *True*: Extended 29 bits ID
|
*False*: Standard 11 bits IDs, *True*: Extended 29 bits ID
|
||||||
- **bit_rate** (*Optional*, one of the supported bitrates= defaults to ``125KBPS``.
|
- **bit_rate** (*Optional*, enum): One of the supported bitrates. Defaults to ``125KBPS``.
|
||||||
|
|
||||||
- 5KBPS
|
- 5KBPS
|
||||||
- 10KBPS
|
- 10KBPS
|
||||||
|
@ -80,7 +80,7 @@ Configuration variables:
|
||||||
Automations:
|
Automations:
|
||||||
|
|
||||||
- **on_frame** (*Optional*, :ref:`Automation <automation>`): An automation to perform when ability
|
- **on_frame** (*Optional*, :ref:`Automation <automation>`): An automation to perform when ability
|
||||||
CAN Frame is received. See below.
|
CAN Frame is received. See :ref:`canbus-on-frame`.
|
||||||
|
|
||||||
.. _canbus-on-frame:
|
.. _canbus-on-frame:
|
||||||
|
|
||||||
|
@ -107,8 +107,8 @@ This automation will be triggered when a can frame is received. A variable ``x`
|
||||||
then:
|
then:
|
||||||
light.toggle: light1
|
light.toggle: light1
|
||||||
|
|
||||||
Transmit Frame Action
|
``canbus.send`` Action
|
||||||
*********************
|
**********************
|
||||||
|
|
||||||
The can bus can transmit frames by means of the ``canbus.send`` action.
|
The can bus can transmit frames by means of the ``canbus.send`` action.
|
||||||
There are several forms to use it:
|
There are several forms to use it:
|
||||||
|
@ -132,7 +132,7 @@ There are several forms to use it:
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **data** (*Required*, binary data): Data to transmit, up to 8 bytes or
|
- **data** (**Required**, binary data): Data to transmit, up to 8 bytes or
|
||||||
characters are supported by can bus per frame.
|
characters are supported by can bus per frame.
|
||||||
- **canbus_id** (*Optional*): Optionally set the can bus id to use for transmitting
|
- **canbus_id** (*Optional*): Optionally set the can bus id to use for transmitting
|
||||||
the frame. Not needed if you are using only 1 can bus.
|
the frame. Not needed if you are using only 1 can bus.
|
||||||
|
@ -141,14 +141,17 @@ Configuration variables:
|
||||||
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*:
|
- **use_extended_id** (*Optional*, boolean): default *False* identifies the type of *can_id*:
|
||||||
*False*: Standard 11 Bit IDs, *True*: Extended 29Bit ID
|
*False*: Standard 11 Bit IDs, *True*: Extended 29Bit ID
|
||||||
|
|
||||||
MCP2515
|
MCP2515 Component
|
||||||
-------
|
-----------------
|
||||||
|
|
||||||
The MCP2515 is a spi device and therfore you must first add the configuration for the spi bus to your file.
|
The MCP2515 is a spi device and therfore you must first add the configuration for the spi bus to your file.
|
||||||
You need to have an :ref:`SPI bus <spi>` in your configuration with both the **mosi_pin** and **miso_pin** set.
|
You need to have an :ref:`SPI bus <spi>` in your configuration with both the **mosi_pin** and **miso_pin** set.
|
||||||
|
|
||||||
For wireing up the MSP2515 please refer to the section below.
|
For wireing up the MSP2515 please refer to the section below.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
************************
|
||||||
|
|
||||||
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Is used to tell the receiving SPI device
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Is used to tell the receiving SPI device
|
||||||
when it should listen for data on the SPI bus. Each device has an individual ``CS`` line.
|
when it should listen for data on the SPI bus. Each device has an individual ``CS`` line.
|
||||||
Sometimes also called ``SS``.
|
Sometimes also called ``SS``.
|
||||||
|
|
|
@ -66,8 +66,8 @@ Do note that the actions are only called when the current temperature leaves the
|
||||||
idle_action:
|
idle_action:
|
||||||
- switch.turn_off: heater
|
- switch.turn_off: heater
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
-----------------------
|
------------------------
|
||||||
|
|
||||||
- **sensor** (**Required**, :ref:`config-id`): The sensor that is used to measure the current temperature.
|
- **sensor** (**Required**, :ref:`config-id`): The sensor that is used to measure the current temperature.
|
||||||
- **default_target_temperature_low** (**Required**, float): The default low target temperature for
|
- **default_target_temperature_low** (**Required**, float): The default low target temperature for
|
||||||
|
|
|
@ -15,30 +15,30 @@ as your remote unit would do.
|
||||||
There is a growing list of compatible units. If your unit is not listed below you can fill a feature
|
There is a growing list of compatible units. If your unit is not listed below you can fill a feature
|
||||||
request so it will be added (see FAQ).
|
request so it will be added (see FAQ).
|
||||||
|
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Name | Platform name | Supports receiver | |
|
| Name | Platform name | Supports receiver |
|
||||||
| | | | |
|
| | | |
|
||||||
+========================+=====================+======================+====================================+
|
+=======================================+=====================+======================+
|
||||||
| Coolix | ``coolix`` | yes | |
|
| Coolix | ``coolix`` | yes |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Daikin | ``daikin`` | yes | |
|
| Daikin | ``daikin`` | yes |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Fujitsu General | ``fujitsu_general`` | | |
|
| Fujitsu General | ``fujitsu_general`` | |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Mitsubishi | ``mitsubishi`` | | |
|
| Mitsubishi | ``mitsubishi`` | |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| TCL112, Fuego | ``tcl112`` | yes | |
|
| TCL112, Fuego | ``tcl112`` | yes |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Toshiba | ``toshiba`` | yes | |
|
| Toshiba | ``toshiba`` | yes |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Yashima | ``yashima`` | | |
|
| Yashima | ``yashima`` | |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Whirlpool | ``whirlpool`` | yes | :ref:`more info<model_whirlpool>` |
|
| :ref:`Whirlpool<climate_ir_whirlpool>`| ``whirlpool`` | yes |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| LG | ``climate_ir_lg`` | yes | |
|
| :ref:`LG<climate_ir_lg>` | ``climate_ir_lg`` | yes |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
| Hitachi | ``hitachi_ac344`` | yes | |
|
| Hitachi | ``hitachi_ac344`` | yes |
|
||||||
+------------------------+---------------------+----------------------+------------------------------------+
|
+---------------------------------------+---------------------+----------------------+
|
||||||
|
|
||||||
This component requires that you have setup a :doc:`/components/remote_transmitter`.
|
This component requires that you have setup a :doc:`/components/remote_transmitter`.
|
||||||
|
|
||||||
|
@ -110,19 +110,48 @@ IR receiver.
|
||||||
name: "Living Room AC"
|
name: "Living Room AC"
|
||||||
receiver_id: rcvr
|
receiver_id: rcvr
|
||||||
|
|
||||||
.. _model_whirlpool:
|
.. _climate_ir_whirlpool:
|
||||||
|
|
||||||
Whirlpool
|
``whirlpool`` Climate
|
||||||
---------
|
---------------------
|
||||||
|
|
||||||
Additional configuration is available for this model
|
Additional configuration is available for this model
|
||||||
|
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
- **model** (*Optional*, string): There are two valid models
|
- **model** (*Optional*, string): There are two valid models
|
||||||
|
|
||||||
* ``MODEL_DG11J1_3A``: Temperature range is from 18 to 32 (default)
|
-* ``DG11J1-3A``: Temperature range is from 18 to 32 (default)
|
||||||
* ``MODEL_DG11J1_91``: Temperature range is from 16 to 30
|
-* ``DG11J1-91``: Temperature range is from 16 to 30
|
||||||
|
|
||||||
|
|
||||||
|
.. _climate_ir_lg:
|
||||||
|
|
||||||
|
``climate_ir_lg`` Climate
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Additional configuration is available for this platform
|
||||||
|
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **header_high** (*Optional*, :ref:`config-time`): time for the high part of the header for the LG protocol. Defaults to ``8000us``
|
||||||
|
- **header_low** (*Optional*, :ref:`config-time`): time for the low part of the header for the LG protocol. Defaults to ``4000us``
|
||||||
|
- **bit_high** (*Optional*, :ref:`config-time`): time for the high part of any bit in the LG protocol. Defaults to ``600us``
|
||||||
|
- **bit_one_low** (*Optional*, :ref:`config-time`): time for the low part of a '1' bit in the LG protocol. Defaults to ``1600us``
|
||||||
|
- **bit_zero_low** (*Optional*, :ref:`config-time`): time for the low part of a '0' bit in the LG protocol. Defaults to ``550us``
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
climate:
|
||||||
|
- platform: climate_ir_lg
|
||||||
|
name: "AC"
|
||||||
|
sensor: room_temperature
|
||||||
|
header_high: 3265us # AC Units from LG in Brazil, for example use these timings
|
||||||
|
header_low: 9856us
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
Midea Air Conditioner
|
||||||
|
=====================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up a Midea climate device
|
||||||
|
:image: air-conditioner.png
|
||||||
|
|
||||||
|
The ``midea_ac`` component creates a Midea air conditioner climate device.
|
||||||
|
|
||||||
|
This component requires a auto-loaded ``midea-dongle`` component, that use hardware UART.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
This protocol also used by some vendors:
|
||||||
|
|
||||||
|
- `Electrolux <https://www.electrolux.ru/>`_
|
||||||
|
- `Qlima <https://www.qlima.com/>`_
|
||||||
|
- `Artel <https://www.artelgroup.com/>`_
|
||||||
|
- `Carrier <https://www.carrier.com/>`_
|
||||||
|
- `Comfee <http://www.comfee-russia.ru/>`_
|
||||||
|
- `Inventor <https://www.inventorairconditioner.com/>`_
|
||||||
|
- and maybe others
|
||||||
|
|
||||||
|
Example of hardware implementation is `Midea Open Dongle <https://github.com/dudanov/midea-open-dongle>`_ in free `KiCad <https://kicad-pcb.org>`_ format.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
|
||||||
|
# Disable logging over UART (required)
|
||||||
|
logger:
|
||||||
|
baud_rate: 0
|
||||||
|
|
||||||
|
# UART settings for Midea dongle (required)
|
||||||
|
uart:
|
||||||
|
tx_pin: 1
|
||||||
|
rx_pin: 3
|
||||||
|
baud_rate: 9600
|
||||||
|
|
||||||
|
# Optional (if you want modify settings)
|
||||||
|
midea_dongle:
|
||||||
|
strength_icon: true
|
||||||
|
|
||||||
|
# Main settings
|
||||||
|
climate:
|
||||||
|
- platform: midea_ac
|
||||||
|
name: "My Midea AC"
|
||||||
|
visual:
|
||||||
|
min_temperature: 18 °C
|
||||||
|
max_temperature: 25 °C
|
||||||
|
temperature_step: 0.1 °C
|
||||||
|
beeper: true
|
||||||
|
swing_horizontal: true
|
||||||
|
swing_both: true
|
||||||
|
outdoor_temperature:
|
||||||
|
name: "Temp"
|
||||||
|
power_usage:
|
||||||
|
name: "Power"
|
||||||
|
humidity_setpoint:
|
||||||
|
name: "Hum"
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
- **midea_dongle_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the ``midea_dongle`` if you want to use multiple devices.
|
||||||
|
- **name** (**Required**, string): The name of the climate device.
|
||||||
|
- **outdoor_temperature** (*Optional*): The information for the outdoor temperature
|
||||||
|
sensor.
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
- **power_usage** (*Optional*): The information for the current power consumption
|
||||||
|
sensor.
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
- **humidity_setpoint** (*Optional*): The information for the humidity indoor
|
||||||
|
sensor (experimental).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
- **beeper** (*Optional*, boolean): Beeper feedback on command. Defaults to ``False``.
|
||||||
|
- **swing_horizontal** (*Optional*, boolean): Enable **swing horizontal** option. Defaults to ``False``.
|
||||||
|
- **swing_both** (*Optional*, boolean): Enable **swing both** option. Defaults to ``False``.
|
||||||
|
- All other options from :ref:`Climate <config-climate>`.
|
||||||
|
|
||||||
|
Configuration variables of midea-dongle component:
|
||||||
|
**************************************************
|
||||||
|
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :doc:`../uart` if you want
|
||||||
|
to use multiple UART buses.
|
||||||
|
- **strength_icon** (*Optional*, boolean): Set if your device have signal strength icon
|
||||||
|
and you want to use this feature. By default, on connected state, icon show maximum signal quality. Defaults to ``False``.
|
||||||
|
|
||||||
|
|
||||||
|
Acknowledgments:
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Thanks to the following people for their contributions to reverse engineering the UART protocol and source code in the following repositories:
|
||||||
|
|
||||||
|
* `Mac Zhou <https://github.com/mac-zhou/midea-msmart>`_
|
||||||
|
* `NeoAcheron <https://github.com/NeoAcheron/midea-ac-py>`_
|
||||||
|
* `Rene Klootwijk <https://github.com/reneklootwijk/node-mideahvac>`_
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :doc:`/components/climate/index`
|
||||||
|
- :apiref:`climate/midea_ac.h`
|
||||||
|
- :ghedit:`Edit`
|
|
@ -253,8 +253,8 @@ Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): ID of the PID Climate being reset.
|
- **id** (**Required**, :ref:`config-id`): ID of the PID Climate being reset.
|
||||||
|
|
||||||
PID Climate Sensor
|
``pid`` Sensor
|
||||||
------------------
|
--------------
|
||||||
|
|
||||||
Additionally, the PID climate platform provides an optional sensor platform to monitor
|
Additionally, the PID climate platform provides an optional sensor platform to monitor
|
||||||
the calculated PID parameters to help finding good PID values.
|
the calculated PID parameters to help finding good PID values.
|
||||||
|
|
|
@ -133,8 +133,7 @@ Examples:
|
||||||
|
|
||||||
Got all that? Great. Let's take a closer look at some configuration.
|
Got all that? Great. Let's take a closer look at some configuration.
|
||||||
|
|
||||||
Configuration Variables
|
Configuration Variables:
|
||||||
-----------------------
|
|
||||||
|
|
||||||
The thermostat controller uses the sensor to determine whether it should heat or cool.
|
The thermostat controller uses the sensor to determine whether it should heat or cool.
|
||||||
|
|
||||||
|
|
|
@ -48,11 +48,11 @@ Configuration variables:
|
||||||
- **switch_datapoint** (**Required**, int): The datapoint id number of the climate switch.
|
- **switch_datapoint** (**Required**, int): The datapoint id number of the climate switch.
|
||||||
- **target_temperature_datapoint** (**Required**, int): The datapoint id number of the target temperature.
|
- **target_temperature_datapoint** (**Required**, int): The datapoint id number of the target temperature.
|
||||||
- **current_temperature_datapoint** (**Required**, int): The datapoint id number of the current temperature.
|
- **current_temperature_datapoint** (**Required**, int): The datapoint id number of the current temperature.
|
||||||
- **temperature_multiplier** (**Optional**, float): A multiplier to modify the incoming and outgoing temperature values - :ref:`see below <temperature-multiplier>`.
|
- **temperature_multiplier** (*Optional*, float): A multiplier to modify the incoming and outgoing temperature values - :ref:`see below <temperature-multiplier>`.
|
||||||
If the device has different multipliers for current and target temperatures, **temperature_multiplier** can be replaced with both of:
|
If the device has different multipliers for current and target temperatures, **temperature_multiplier** can be replaced with both of:
|
||||||
|
|
||||||
- **current_temperature_multiplier** (**Optional**, float): A multiplier to modify the current temperature value.
|
- **current_temperature_multiplier** (*Optional*, float): A multiplier to modify the current temperature value.
|
||||||
- **target_temperature_multiplier** (**Optional**, float): A multiplier to modify the target temperature value.
|
- **target_temperature_multiplier** (*Optional*, float): A multiplier to modify the target temperature value.
|
||||||
- All other options from :ref:`Climate <config-climate>`.
|
- All other options from :ref:`Climate <config-climate>`.
|
||||||
|
|
||||||
.. _temperature-multiplier:
|
.. _temperature-multiplier:
|
||||||
|
|
|
@ -22,7 +22,7 @@ a bunch of useful information like reset reason, free heap size, ESPHome version
|
||||||
logger:
|
logger:
|
||||||
level: debug
|
level: debug
|
||||||
|
|
||||||
There are no configuration variables for this component.
|
No configuration variables.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -33,9 +33,8 @@ Configuration variables:
|
||||||
|
|
||||||
- **run_duration** (*Optional*, :ref:`config-time`): The time duration the node should be active, i.e. run code.
|
- **run_duration** (*Optional*, :ref:`config-time`): The time duration the node should be active, i.e. run code.
|
||||||
- **sleep_duration** (*Optional*, :ref:`config-time`): The time duration to stay in deep sleep mode.
|
- **sleep_duration** (*Optional*, :ref:`config-time`): The time duration to stay in deep sleep mode.
|
||||||
- **wakeup_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`):
|
- **wakeup_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Only on ESP32. A pin to wake up to once
|
||||||
Only on ESP32. A pin to wake up to once in deep sleep mode. Use the inverted property to wake up
|
in deep sleep mode. Use the inverted property to wake up to LOW signals.
|
||||||
to LOW signals.
|
|
||||||
- **wakeup_pin_mode** (*Optional*): Only on ESP32. Specify how to handle waking up from a ``wakeup_pin`` if
|
- **wakeup_pin_mode** (*Optional*): Only on ESP32. Specify how to handle waking up from a ``wakeup_pin`` if
|
||||||
the wakeup pin is already in the state with which it would wake up when attempting to enter deep sleep.
|
the wakeup pin is already in the state with which it would wake up when attempting to enter deep sleep.
|
||||||
See :ref:`deep_sleep-esp32_wakeup_pin_mode`. Defaults to ``IGNORE``
|
See :ref:`deep_sleep-esp32_wakeup_pin_mode`. Defaults to ``IGNORE``
|
||||||
|
@ -84,6 +83,11 @@ This action makes the given deep sleep component enter deep sleep immediately.
|
||||||
on_...:
|
on_...:
|
||||||
then:
|
then:
|
||||||
- deep_sleep.enter: deep_sleep_1
|
- deep_sleep.enter: deep_sleep_1
|
||||||
|
sleep_duration: 20min
|
||||||
|
|
||||||
|
Configuration options:
|
||||||
|
|
||||||
|
- **sleep_duration** (*Optional*, :ref:`config-time`): The time duration to stay in deep sleep mode.
|
||||||
|
|
||||||
|
|
||||||
.. _deep_sleep-prevent_action:
|
.. _deep_sleep-prevent_action:
|
||||||
|
|
|
@ -24,7 +24,7 @@ The module can be powered by the 3.3V output of a NodeMCU. For communication you
|
||||||
the ``tx_pin`` of the ``uart`` bus to the module's ``RX`` but if you need feedback of playback active
|
the ``tx_pin`` of the ``uart`` bus to the module's ``RX`` but if you need feedback of playback active
|
||||||
you will also need to connect the ``rx_pin`` to the module's ``TX``.
|
you will also need to connect the ``rx_pin`` to the module's ``TX``.
|
||||||
For best quality audio a powered stereo speaker can be connected to the modules ``DAC_R``,
|
For best quality audio a powered stereo speaker can be connected to the modules ``DAC_R``,
|
||||||
``DAC_I`` and ``GND``, alternatively the module features a built-in 3W audio amplifier, in that case
|
``DAC_L`` and ``GND``, alternatively the module features a built-in 3W audio amplifier, in that case
|
||||||
the pins ``SPK_1`` and ``SPK_2`` should be connected to one passive speaker and a 5V 1A power supply
|
the pins ``SPK_1`` and ``SPK_2`` should be connected to one passive speaker and a 5V 1A power supply
|
||||||
will be required.
|
will be required.
|
||||||
|
|
||||||
|
@ -115,8 +115,8 @@ Configuration options:
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
Plays files inside numbered folders, folders must be numbered from 1 and with leading
|
Plays files inside numbered folders, folders must be numbered from 1 and with leading
|
||||||
zeros. Like `01`, `02`, ... etc. Files inside the folders must be numbered with two
|
zeros. Like ``01``, ``02``, ... etc. Files inside the folders must be numbered with two
|
||||||
leading zeros, like `001.mp3`, `002.mp3`, ... etc.
|
leading zeros, like ``001.mp3``, ``002.mp3``, ... etc.
|
||||||
Folder numbers can range from 1 to 99 and file name from 1 to 255 or folder number
|
Folder numbers can range from 1 to 99 and file name from 1 to 255 or folder number
|
||||||
from 1 to 10 and file number from 1 to 1000.
|
from 1 to 10 and file number from 1 to 1000.
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ Changes volume.
|
||||||
Configuration options:
|
Configuration options:
|
||||||
|
|
||||||
- **volume** (**Required**, int, :ref:`templatable <config-templatable>`): The volume value.
|
- **volume** (**Required**, int, :ref:`templatable <config-templatable>`): The volume value.
|
||||||
Valid values goes from 0 to 30.
|
Valid values goes from ``0`` to ``30``.
|
||||||
|
|
||||||
``dfplayer.set_eq`` Action
|
``dfplayer.set_eq`` Action
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
|
@ -0,0 +1,146 @@
|
||||||
|
Addressable Light
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up displays using addressable lights and LED matrix
|
||||||
|
:image: addressable_light.jpg
|
||||||
|
|
||||||
|
The ``addressable_light`` display platform allows to display text and graphics on an addressable
|
||||||
|
light that has been arranged in a display matrix.
|
||||||
|
|
||||||
|
The display requires that an :apiclass:`AddressableLight <light::AddressableLight>` component, such as
|
||||||
|
:doc:`/components/light/fastled` or :doc:`/components/light/neopixelbus`, be defined.
|
||||||
|
|
||||||
|
.. figure:: images/addressable_light.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 75.0%
|
||||||
|
|
||||||
|
WS2812B Addressable Light Display
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
light:
|
||||||
|
- platform: fastled_clockless
|
||||||
|
chipset: WS2812B
|
||||||
|
pin: GPIO4
|
||||||
|
num_leds: 64
|
||||||
|
rgb_order: GRB
|
||||||
|
name: "led_matrix"
|
||||||
|
id: led_matrix_light
|
||||||
|
default_transition_length: 0s
|
||||||
|
color_correct: [50%, 50%, 50%]
|
||||||
|
restore_mode: ALWAYS_ON
|
||||||
|
|
||||||
|
display:
|
||||||
|
- platform: addressable_light
|
||||||
|
id: led_matrix_display
|
||||||
|
addressable_light_id: led_matrix_light
|
||||||
|
width: 8
|
||||||
|
height: 8
|
||||||
|
rotation: 180°
|
||||||
|
update_interval: 16ms
|
||||||
|
lambda: |-
|
||||||
|
// Draw a bulls-eye pattern
|
||||||
|
Color red = Color(0xFF0000);
|
||||||
|
Color green = Color(0x00FF00);
|
||||||
|
Color blue = Color(0x0000FF);
|
||||||
|
it.rectangle(0, 0, 8, 8, red);
|
||||||
|
it.rectangle(1, 1, 6, 6, green);
|
||||||
|
it.rectangle(2, 2, 4, 4, blue);
|
||||||
|
it.rectangle(3, 3, 2, 2, red);
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- **addressable_light_id** (**Required**, :ref:`config-id`): The id of the addressable light component to use
|
||||||
|
as a display.
|
||||||
|
- **width** (**Required**, int): The width of the LED matrix in pixels.
|
||||||
|
- **height** (**Required**, int): The height of the LED matrix in pixels.
|
||||||
|
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
||||||
|
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
||||||
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to call the lambda to update the display.
|
||||||
|
Defaults to ``16ms``.
|
||||||
|
- **pixel_mapper** (*Optional*, :ref:`lambda <config-lambda>`): A lambda that returns the integer address of the LED
|
||||||
|
given the supplied the ``x`` and ``y`` pixel coordinate. By default, a left-to-right direct pixel mapper is used.
|
||||||
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
|
``it`` will be an instance of :apiclass:`DisplayBuffer <display::DisplayBuffer>`.
|
||||||
|
See :ref:`display-engine` for more information.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When enabled (the default, but also via ``it.set_enabled(true)``), any effect currently running on the
|
||||||
|
addressable light will be disabled. When disabled (``it.set_enabled(false)``), the last configured effect will
|
||||||
|
be restored.
|
||||||
|
|
||||||
|
While the display is enabled, it is still possible to control the parent addressable light component in some
|
||||||
|
limited capacity. Changing the brightness will still work, but changing the color will have no affect. It is not
|
||||||
|
adivsable to enable any effects (ex: rainbow, color wipe, etc) while the display is enabled, as this will cause a
|
||||||
|
great deal of flickering while the effect competes with the display for rendering.
|
||||||
|
|
||||||
|
|
||||||
|
pixel_mapper
|
||||||
|
------------
|
||||||
|
|
||||||
|
An addressable LED matrix is just an addressable LED strip laid out in a matrix -- the path often snaking
|
||||||
|
down-up-down, left-right-left, or whichever way the manufacturer has chosen. Like an addressable LED strip,
|
||||||
|
each pixel on a matrix is addressed as an offset from the first pixel (0). The job of the pixel mapper is
|
||||||
|
to translate a logical x-y pixel coordinate to the address of the expected physical LED.
|
||||||
|
|
||||||
|
Determining the correct algorithm for the pixel mapper for your matrix will hopefully only require some graph paper and a little bit of math.
|
||||||
|
|
||||||
|
|
||||||
|
Default
|
||||||
|
*******
|
||||||
|
|
||||||
|
The default pixel mapper assumes that the led matrix is addressed starting with the top left LED, moving to the right, and
|
||||||
|
then starting with the left-most row of the next row.
|
||||||
|
|
||||||
|
.. figure:: images/addressable_light_pixel_map_default.png
|
||||||
|
:align: center
|
||||||
|
:width: 75.0%
|
||||||
|
|
||||||
|
Default pixel_mapper as used with a 4x4 led matrix
|
||||||
|
|
||||||
|
|
||||||
|
BTF-Lighting 8x32 WS2812B Flexible LED Matrix
|
||||||
|
*********************************************
|
||||||
|
|
||||||
|
The following image illustrates the path the addressable strip takes through the common the BTF-Lighting 8x32 matrix.
|
||||||
|
|
||||||
|
.. figure:: images/addressable_light_pixel_map_8x32.png
|
||||||
|
:align: center
|
||||||
|
:width: 75.0%
|
||||||
|
|
||||||
|
LED layout for BTF-Lighting 8x32 WS2812B Flexible LED Matrix
|
||||||
|
|
||||||
|
|
||||||
|
Below is a definition that includes a pixel_mapper suitable for these 8x32 matrices.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
display:
|
||||||
|
- platform: addressable_light
|
||||||
|
id: led_matrix_32x8_display
|
||||||
|
addressable_light_id: led_matrix_32x8
|
||||||
|
width: 32
|
||||||
|
height: 8
|
||||||
|
pixel_mapper: |-
|
||||||
|
if (x % 2 == 0) {
|
||||||
|
return (x * 8) + y;
|
||||||
|
}
|
||||||
|
return (x * 8) + (7 - y);
|
||||||
|
rotation: 0°
|
||||||
|
update_interval: 16ms
|
||||||
|
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :apiref:`addressable_light/addressable_light_display.h`
|
||||||
|
- :doc:`/components/light/index`
|
||||||
|
- :doc:`/components/light/fastled`
|
||||||
|
- :doc:`/components/light/neopixelbus`
|
||||||
|
- :doc:`/components/light/partition`
|
||||||
|
- :ghedit:`Edit`
|
|
@ -38,8 +38,8 @@ beyond the typical SPI connections, it is better suited for use with the ESP32.
|
||||||
it.fill(COLOR_BLACK);
|
it.fill(COLOR_BLACK);
|
||||||
it.print(0, 0, id(my_font), id(my_red), TextAlign::TOP_LEFT, "Hello World!");
|
it.print(0, 0, id(my_font), id(my_red), TextAlign::TOP_LEFT, "Hello World!");
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
***********************
|
************************
|
||||||
|
|
||||||
- **model** (**Required**): The model of the display. Options are:
|
- **model** (**Required**): The model of the display. Options are:
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 32 KiB |
|
@ -321,11 +321,41 @@ use any string you pass it, like ``"ON"`` or ``"OFF"``.
|
||||||
Displaying Time
|
Displaying Time
|
||||||
***************
|
***************
|
||||||
|
|
||||||
With ESPHome you can also display the current time using the NTP protocol. Please see the example :ref:`here <strftime>`.
|
You can display current time using a time component. Please see the example :ref:`here <strftime>`.
|
||||||
|
|
||||||
|
|
||||||
|
.. _config-color:
|
||||||
|
|
||||||
|
Color
|
||||||
|
*****
|
||||||
|
|
||||||
|
When using RGB-capable displays in ESPHome you may wish to use custom colors.
|
||||||
|
A ``color`` component exists for just this purpose:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
color:
|
||||||
|
- id: my_light_red
|
||||||
|
red: 100%
|
||||||
|
green: 20%
|
||||||
|
blue: 25%
|
||||||
|
white: 0%
|
||||||
|
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **red** (*Optional*, percentage): The percentage of the red component. Defaults to ``100%``.
|
||||||
|
- **green** (*Optional*, percentage): The percentage of the green component. Defaults to ``100%``.
|
||||||
|
- **blue** (*Optional*, percentage): The percentage of the blue component. Defaults to ``100%``.
|
||||||
|
- **white** (*Optional*, percentage): The percentage of the white component. Defaults to ``100%``.
|
||||||
|
|
||||||
|
RGB displays use red, green, and blue, while grayscale displays may use white.
|
||||||
|
|
||||||
Images
|
Images
|
||||||
******
|
******
|
||||||
|
|
||||||
|
Use this component to store graphical images on the device, you can then draw the images on compatible displays.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
image:
|
image:
|
||||||
|
@ -338,7 +368,7 @@ Configuration variables:
|
||||||
- **file** (**Required**, string): The path (relative to where the .yaml file is) of the image file.
|
- **file** (**Required**, string): The path (relative to where the .yaml file is) of the image file.
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the image later
|
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the image later
|
||||||
in your display code.
|
in your display code.
|
||||||
- **resize** (*Optional*, int): If set, this will resize the image to fit inside the given dimensions ``WIDTHxHEIGHT``
|
- **resize** (*Optional*, string): If set, this will resize the image to fit inside the given dimensions ``WIDTHxHEIGHT``
|
||||||
and preserve the aspect ratio.
|
and preserve the aspect ratio.
|
||||||
- **type** (*Optional*): Specifies how to encode image internally. Defaults to ``BINARY``.
|
- **type** (*Optional*): Specifies how to encode image internally. Defaults to ``BINARY``.
|
||||||
|
|
||||||
|
@ -388,8 +418,8 @@ as the additional parameters.
|
||||||
Animation
|
Animation
|
||||||
*********
|
*********
|
||||||
|
|
||||||
Animation inherits all options from the image component.
|
Allows to use animated images on displays. Animation inherits all options from the image component.
|
||||||
It adds an additional method to change the shown picture of a gif.
|
It adds an additional lambda method: ``next_frame()`` to change the shown picture of a gif.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -426,6 +456,30 @@ This can be combined with all Lambdas:
|
||||||
lambda: |-
|
lambda: |-
|
||||||
id(my_animation).next_frame();
|
id(my_animation).next_frame();
|
||||||
|
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
- **file** (**Required**, string): The path (relative to where the .yaml file is) of the gif file.
|
||||||
|
- **id** (**Required**, :ref:`config-id`): The ID with which you will be able to reference the animation later
|
||||||
|
in your display code.
|
||||||
|
- **resize** (*Optional*, string): If set, this will resize all the frames to fit inside the given dimensions ``WIDTHxHEIGHT``
|
||||||
|
and preserve the aspect ratio.
|
||||||
|
- **type** (*Optional*): Specifies how to encode each frame internally. Defaults to ``BINARY``.
|
||||||
|
|
||||||
|
- ``BINARY``: Two colors, suitable for 1 color displays or 2 color image in color displays. Uses 1 bit
|
||||||
|
per pixel, 8 pixels per byte.
|
||||||
|
- ``GREYSCALE``: Full scale grey. Uses 8 bits per pixel, 1 pixel per byte.
|
||||||
|
- ``RGB24``: Full RGB color stored. Uses 3 bytes per pixel.
|
||||||
|
|
||||||
|
- **dither** (*Optional*): Specifies which dither method used to process each frame, only used in GREYSCALE and BINARY type image.
|
||||||
|
Defaults to ``NONE``. You can read more about it `here <https://pillow.readthedocs.io/en/stable/reference/Image.html?highlight=Dither#PIL.Image.Image.convert>`__
|
||||||
|
and `here <https://en.wikipedia.org/wiki/Dither>`__.
|
||||||
|
|
||||||
|
- ``NONE``: Every pixel convert to its nearest color.
|
||||||
|
- ``FLOYDSTEINBERG``: Uses Floyd-Steinberg dither to approximate the original image luminosity levels.
|
||||||
|
|
||||||
|
|
||||||
.. _display-pages:
|
.. _display-pages:
|
||||||
|
|
||||||
Display Pages
|
Display Pages
|
||||||
|
@ -495,6 +549,7 @@ You can then switch between these with three different actions:
|
||||||
- display.page.show_next: my_display
|
- display.page.show_next: my_display
|
||||||
- component.update: my_display
|
- component.update: my_display
|
||||||
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,277 @@
|
||||||
|
Inkplate 6
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up Inkplate E-Paper displays in ESPHome.
|
||||||
|
:image: inkplate.jpg
|
||||||
|
|
||||||
|
All-in-one e-paper display ``Inkplate 6``
|
||||||
|
Inkplate 6 is a powerful, Wi-Fi enabled ESP32 based six-inch e-paper display – recycled from a Kindle e-reader. Its main feature is simplicity.
|
||||||
|
Learn more at `Inkplate's website <https://inkplate.io/>`__
|
||||||
|
|
||||||
|
.. figure:: images/inkplate.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 75.0%
|
||||||
|
|
||||||
|
Inkplate 6
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example minimal configuration entry
|
||||||
|
|
||||||
|
mcp23017:
|
||||||
|
- id: mcp23017_hub
|
||||||
|
address: 0x20
|
||||||
|
|
||||||
|
display:
|
||||||
|
- platform: inkplate6
|
||||||
|
id: inkplate_display
|
||||||
|
greyscale: false
|
||||||
|
partial_updating: false
|
||||||
|
update_interval: 60s
|
||||||
|
|
||||||
|
ckv_pin: 32
|
||||||
|
sph_pin: 33
|
||||||
|
gmod_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 1
|
||||||
|
gpio0_enable_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 8
|
||||||
|
oe_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 0
|
||||||
|
spv_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 2
|
||||||
|
powerup_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 4
|
||||||
|
wakeup_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 3
|
||||||
|
vcom_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 5
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
When using the Inkplate epaper module, the GPIO pin numbers above *cannot be changed* as they are
|
||||||
|
hardwired within the module/PCB.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Inkplate module cannot perform partial update if 3 bit mode is on.
|
||||||
|
It just ignores the function call in that case.
|
||||||
|
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
************************
|
||||||
|
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
- **greyscale** (*Optional*, boolean): Makes the screen display 3 bit colors. Defaults to ``False``
|
||||||
|
- **partial_updating** (*Optional*, boolean): Makes the screen update partially, which is faster, but leaves burnin. Defaults to ``False``
|
||||||
|
- **full_update_every** (*Optional*, int): When partial updating is enabled, forces a full screen update after chosen number of updates. Defaults to ``10``
|
||||||
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
|
See :ref:`display-engine` for more information.
|
||||||
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||||
|
|
||||||
|
- **ckv_pin** (**Required**, :ref:`config-pin`): The CKV pin for the Inkplate display.
|
||||||
|
- **gmod_pin** (**Required**, :ref:`config-pin`): The GMOD pin for the Inkplate display.
|
||||||
|
- **gpio0_enable_pin** (**Required**, :ref:`config-pin`): The GPIO0 Enable pin for the Inkplate display.
|
||||||
|
- **oe_pin** (**Required**, :ref:`config-pin`): The OE pin for the Inkplate display.
|
||||||
|
- **powerup_pin** (**Required**, :ref:`config-pin`): The Powerup pin for the Inkplate display.
|
||||||
|
- **sph_pin** (**Required**, :ref:`config-pin`): The SPH pin for the Inkplate display.
|
||||||
|
- **spv_pin** (**Required**, :ref:`config-pin`): The SPV pin for the Inkplate display.
|
||||||
|
- **vcom_pin** (**Required**, :ref:`config-pin`): The VCOM pin for the Inkplate display.
|
||||||
|
- **cl_pin** (*Optional*, :ref:`config-pin`): The CL pin for the Inkplate display.
|
||||||
|
Defaults to GPIO0.
|
||||||
|
- **le_pin** (*Optional*, :ref:`config-pin`): The LE pin for the Inkplate display.
|
||||||
|
Defaults to GPIO2.
|
||||||
|
|
||||||
|
- **display_data_0_pin** (*Optional*, :ref:`config-pin`): The Data 0 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO4.
|
||||||
|
- **display_data_1_pin** (*Optional*, :ref:`config-pin`): The Data 1 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO5.
|
||||||
|
- **display_data_2_pin** (*Optional*, :ref:`config-pin`): The Data 2 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO18.
|
||||||
|
- **display_data_3_pin** (*Optional*, :ref:`config-pin`): The Data 3 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO19.
|
||||||
|
- **display_data_4_pin** (*Optional*, :ref:`config-pin`): The Data 4 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO23.
|
||||||
|
- **display_data_5_pin** (*Optional*, :ref:`config-pin`): The Data 5 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO25.
|
||||||
|
- **display_data_6_pin** (*Optional*, :ref:`config-pin`): The Data 6 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO26.
|
||||||
|
- **display_data_7_pin** (*Optional*, :ref:`config-pin`): The Data 7 pin for the Inkplate display.
|
||||||
|
Defaults to GPIO27.
|
||||||
|
|
||||||
|
|
||||||
|
Complete example
|
||||||
|
****************
|
||||||
|
|
||||||
|
The following is a complete example YAML configuration that does a few things beyond the usual
|
||||||
|
Wi-Fi, API, and OTA configuration.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
esphome:
|
||||||
|
name: inkplate
|
||||||
|
platform: ESP32
|
||||||
|
board: esp-wrover-kit
|
||||||
|
|
||||||
|
logger:
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: <YOUR WIFI SSID>
|
||||||
|
password: <YOUR WIFI PASSWORD>
|
||||||
|
ap:
|
||||||
|
ssid: Inkplate-AP
|
||||||
|
password: '12345678'
|
||||||
|
|
||||||
|
captive_portal:
|
||||||
|
|
||||||
|
ota:
|
||||||
|
|
||||||
|
api:
|
||||||
|
|
||||||
|
switch:
|
||||||
|
- platform: restart
|
||||||
|
name: "Inkplate Reboot"
|
||||||
|
id: reboot
|
||||||
|
|
||||||
|
- platform: gpio
|
||||||
|
id: battery_read_mosfet
|
||||||
|
pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 9
|
||||||
|
inverted: true
|
||||||
|
|
||||||
|
- platform: template
|
||||||
|
name: "Inkplate Greyscale mode"
|
||||||
|
lambda: return id(inkplate_display).get_greyscale();
|
||||||
|
turn_on_action:
|
||||||
|
- lambda: id(inkplate_display).set_greyscale(true);
|
||||||
|
turn_off_action:
|
||||||
|
- lambda: id(inkplate_display).set_greyscale(false);
|
||||||
|
|
||||||
|
- platform: template
|
||||||
|
name: "Inkplate Partial Updating"
|
||||||
|
lambda: return id(inkplate_display).get_partial_updating();
|
||||||
|
turn_on_action:
|
||||||
|
- lambda: id(inkplate_display).set_partial_updating(true);
|
||||||
|
turn_off_action:
|
||||||
|
- lambda: id(inkplate_display).set_partial_updating(false);
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: adc
|
||||||
|
id: battery_voltage
|
||||||
|
update_interval: never
|
||||||
|
attenuation: 11db
|
||||||
|
pin: 35
|
||||||
|
- platform: template
|
||||||
|
name: "Inkplate Battery Voltage"
|
||||||
|
lambda: |-
|
||||||
|
id(battery_read_mosfet).turn_on();
|
||||||
|
delay(1);
|
||||||
|
float adc = id(battery_voltage).sample();
|
||||||
|
id(battery_read_mosfet).turn_off();
|
||||||
|
return adc;
|
||||||
|
filters:
|
||||||
|
- multiply: 2
|
||||||
|
|
||||||
|
i2c:
|
||||||
|
|
||||||
|
mcp23017:
|
||||||
|
- id: mcp23017_hub
|
||||||
|
address: 0x20
|
||||||
|
|
||||||
|
binary_sensor:
|
||||||
|
- platform: status
|
||||||
|
name: "Inkplate Status"
|
||||||
|
id: system_status
|
||||||
|
|
||||||
|
- platform: gpio
|
||||||
|
name: "Inkplate Touch Pad 1"
|
||||||
|
pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 10
|
||||||
|
- platform: gpio
|
||||||
|
name: "Inkplate Touch Pad 2"
|
||||||
|
pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 11
|
||||||
|
- platform: gpio
|
||||||
|
name: "Inkplate Touch Pad 3"
|
||||||
|
pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 12
|
||||||
|
|
||||||
|
time:
|
||||||
|
- platform: sntp
|
||||||
|
id: esptime
|
||||||
|
|
||||||
|
font:
|
||||||
|
- file: "Helvetica.ttf"
|
||||||
|
id: helvetica_96
|
||||||
|
size: 96
|
||||||
|
- file: "Helvetica.ttf"
|
||||||
|
id: helvetica_48
|
||||||
|
size: 48
|
||||||
|
|
||||||
|
|
||||||
|
display:
|
||||||
|
- platform: inkplate6
|
||||||
|
id: inkplate_display
|
||||||
|
greyscale: false
|
||||||
|
partial_updating: false
|
||||||
|
update_interval: 60s
|
||||||
|
|
||||||
|
ckv_pin: 32
|
||||||
|
sph_pin: 33
|
||||||
|
gmod_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 1
|
||||||
|
gpio0_enable_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 8
|
||||||
|
oe_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 0
|
||||||
|
spv_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 2
|
||||||
|
powerup_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 4
|
||||||
|
wakeup_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 3
|
||||||
|
vcom_pin:
|
||||||
|
mcp23017: mcp23017_hub
|
||||||
|
number: 5
|
||||||
|
|
||||||
|
lambda: |-
|
||||||
|
it.fill(COLOR_ON);
|
||||||
|
|
||||||
|
it.print(100, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_LEFT, "ESPHome");
|
||||||
|
|
||||||
|
it.strftime(400, 300, id(helvetica_48), COLOR_OFF, TextAlign::CENTER, "%Y-%m-%d", id(esptime).now());
|
||||||
|
it.strftime(400, 400, id(helvetica_96), COLOR_OFF, TextAlign::CENTER, "%H:%M", id(esptime).now());
|
||||||
|
|
||||||
|
if (id(system_status).state) {
|
||||||
|
it.print(700, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_RIGHT, "Online");
|
||||||
|
} else {
|
||||||
|
it.print(700, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_RIGHT, "Offline");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :doc:`index`
|
||||||
|
- `Arduino Inkplate 6 library <https://github.com/e-radionicacom/Inkplate-6-Arduino-library>`__ by `E-radionica.com <https://e-radionica.com/>`__
|
||||||
|
- :ghedit:`Edit`
|
|
@ -7,8 +7,8 @@ Character-Based LCD Display
|
||||||
|
|
||||||
.. _lcd-pcf8574:
|
.. _lcd-pcf8574:
|
||||||
|
|
||||||
PCF8574
|
lcd_pcf8574 Component
|
||||||
-------
|
---------------------
|
||||||
|
|
||||||
The ``lcd_pcf8574`` display platform allows you to use standard character-based LCD displays like
|
The ``lcd_pcf8574`` display platform allows you to use standard character-based LCD displays like
|
||||||
`this one <https://docs.labs.mediatek.com/resource/linkit7697-arduino/en/tutorial/driving-1602-lcd-with-pcf8574-pcf8574a>`__
|
`this one <https://docs.labs.mediatek.com/resource/linkit7697-arduino/en/tutorial/driving-1602-lcd-with-pcf8574-pcf8574a>`__
|
||||||
|
@ -56,8 +56,8 @@ Configuration variables:
|
||||||
|
|
||||||
.. _lcd-gpio:
|
.. _lcd-gpio:
|
||||||
|
|
||||||
GPIO
|
lcd_gpio Component
|
||||||
----
|
------------------
|
||||||
|
|
||||||
The ``lcd_gpio`` display platform allows you to use standard character-based LCD displays like `this one <https://www.adafruit.com/product/181>`__
|
The ``lcd_gpio`` display platform allows you to use standard character-based LCD displays like `this one <https://www.adafruit.com/product/181>`__
|
||||||
with ESPHome. This integration is only for LCD displays that display individual characters on a screen (usually 16-20 columns
|
with ESPHome. This integration is only for LCD displays that display individual characters on a screen (usually 16-20 columns
|
||||||
|
|
|
@ -39,8 +39,7 @@ Configuration variables:
|
||||||
|
|
||||||
- **uart_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`UART bus <uart>` you wish to use for this display.
|
- **uart_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`UART bus <uart>` you wish to use for this display.
|
||||||
Use this if you want to use multiple UART buses at once.
|
Use this if you want to use multiple UART buses at once.
|
||||||
- **brightness** (*Optional*, percentage): Set the screen brightness. Must be in range
|
- **brightness** (*Optional*, percentage): Set display brightness in %. Defaults to ``100%``
|
||||||
``0%`` to ``100%`` or ``0.0`` to ``1.0``. Defaults to ``100%``.
|
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the nextion display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the nextion display.
|
||||||
See :ref:`display-nextion_lambda` for more information.
|
See :ref:`display-nextion_lambda` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to call the lambda to update the display.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to call the lambda to update the display.
|
||||||
|
|
|
@ -53,9 +53,9 @@ To use a backlight LIGHT pin needs to be connected to ground. If connected to GP
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
************************
|
************************
|
||||||
|
|
||||||
- **reset_pin** (**Required**)(:ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **reset_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
- **cs_pin** (**Required**)(:ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
||||||
- **dc_pin** (**Required**)(:ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
|
|
@ -61,7 +61,7 @@ Configuration variables:
|
||||||
- **address** (*Optional*, int): Manually specify the :ref:`I²C <i2c>` address of the display. Defaults to 0x3C.
|
- **address** (*Optional*, int): Manually specify the :ref:`I²C <i2c>` address of the display. Defaults to 0x3C.
|
||||||
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
||||||
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
||||||
- **brightness** (*Optional*): Set the screen brightness in percents 0.0-1.0. Defaults to `1.0` that corresponds to 100%.
|
- **brightness** (*Optional*, percentage): Set display brightness in %. Defaults to ``100%``
|
||||||
- **external_vcc** (*Optional*, boolean): Set this to true if you have the VCC pin connected to an external power supply.
|
- **external_vcc** (*Optional*, boolean): Set this to true if you have the VCC pin connected to an external power supply.
|
||||||
Defaults to ``false``.
|
Defaults to ``false``.
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
|
@ -69,7 +69,6 @@ Configuration variables:
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- **brightness** (*Optional*, float): Manually override display brightness in %. Defaults to ``100%``
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -133,6 +132,7 @@ Configuration variables:
|
||||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin. Defaults to not connected.
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin. Defaults to not connected.
|
||||||
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
||||||
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
||||||
|
- **brightness** (*Optional*, percentage): Set display brightness in %. Defaults to ``100%``
|
||||||
- **external_vcc** (*Optional*, boolean): Set this to true if you have the VCC pin connected to an external power supply.
|
- **external_vcc** (*Optional*, boolean): Set this to true if you have the VCC pin connected to an external power supply.
|
||||||
Defaults to ``false``.
|
Defaults to ``false``.
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
|
@ -142,7 +142,6 @@ Configuration variables:
|
||||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||||
to use multiple SPI buses.
|
to use multiple SPI buses.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- **brightness** (*Optional*, float): Manually override display brightness in %. Defaults to ``100%``
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -7,8 +7,8 @@ SSD1322 OLED Display
|
||||||
|
|
||||||
.. _ssd1322-spi:
|
.. _ssd1322-spi:
|
||||||
|
|
||||||
Usage
|
``ssd1322_spi`` Component
|
||||||
-----
|
-------------------------
|
||||||
|
|
||||||
The ``ssd1322_spi`` display platform allows you to use
|
The ``ssd1322_spi`` display platform allows you to use
|
||||||
SSD1322 (`datasheet <https://www.newhavendisplay.com/specs/NHD-3.12-25664UCW2.pdf>`__,
|
SSD1322 (`datasheet <https://www.newhavendisplay.com/specs/NHD-3.12-25664UCW2.pdf>`__,
|
||||||
|
@ -47,9 +47,9 @@ Configuration variables:
|
||||||
|
|
||||||
- ``SSD1322 256x64``
|
- ``SSD1322 256x64``
|
||||||
|
|
||||||
- **reset_pin** (:ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
- **cs_pin** (:ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
- **dc_pin** (:ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
|
|
@ -7,8 +7,8 @@ SSD1325/7 OLED Display
|
||||||
|
|
||||||
.. _ssd1325-spi:
|
.. _ssd1325-spi:
|
||||||
|
|
||||||
Usage
|
``ssd1325_spi`` Component
|
||||||
-----
|
-------------------------
|
||||||
|
|
||||||
The ``ssd1325_spi`` display platform allows you to use
|
The ``ssd1325_spi`` display platform allows you to use
|
||||||
SSD1325 (`datasheet <https://cdn-shop.adafruit.com/datasheets/SSD1325.pdf>`__,
|
SSD1325 (`datasheet <https://cdn-shop.adafruit.com/datasheets/SSD1325.pdf>`__,
|
||||||
|
@ -44,8 +44,8 @@ that explains how to do this, if necessary.
|
||||||
lambda: |-
|
lambda: |-
|
||||||
it.print(0, 0, id(font), "Hello World!");
|
it.print(0, 0, id(font), "Hello World!");
|
||||||
|
|
||||||
Configuration Variables
|
Configuration variables:
|
||||||
***********************
|
************************
|
||||||
|
|
||||||
- **model** (**Required**): The model of the display. Options are:
|
- **model** (**Required**): The model of the display. Options are:
|
||||||
|
|
||||||
|
@ -54,10 +54,10 @@ Configuration Variables
|
||||||
- ``SSD1325 96x16``
|
- ``SSD1325 96x16``
|
||||||
- ``SSD1325 64x48``
|
- ``SSD1325 64x48``
|
||||||
|
|
||||||
- **reset_pin** (:ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
- **cs_pin** (:ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that that the CS line is connected to.
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
|
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that that the CS line is connected to.
|
||||||
The CS line can be connected to GND if this is the only device on the SPI bus.
|
The CS line can be connected to GND if this is the only device on the SPI bus.
|
||||||
- **dc_pin** (:ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
|
|
@ -41,8 +41,8 @@ ESP; this is recommended as it improves reliability.
|
||||||
lambda: |-
|
lambda: |-
|
||||||
it.print(0, 0, id(font), "Hello World!");
|
it.print(0, 0, id(font), "Hello World!");
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
***********************
|
************************
|
||||||
|
|
||||||
- **model** (**Required**): The model of the display. At present, only one option is available:
|
- **model** (**Required**): The model of the display. At present, only one option is available:
|
||||||
|
|
||||||
|
@ -52,13 +52,12 @@ Configuration variables
|
||||||
- **address** (*Optional*, int): Manually specify the :ref:`I²C <i2c>` address of the display. Defaults to 0x3D.
|
- **address** (*Optional*, int): Manually specify the :ref:`I²C <i2c>` address of the display. Defaults to 0x3D.
|
||||||
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
||||||
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
||||||
- **brightness** (*Optional*): Set the screen brightness in percents 0.0-1.0. Defaults to `1.0` that corresponds to 100%.
|
- **brightness** (*Optional*, percentage): Set display brightness in %. Defaults to ``100%``
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- **brightness** (*Optional*, float): Manually override display brightness in %. Defaults to ``100%``
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -101,8 +100,8 @@ available pin on the ESP; this is recommended as it improves reliability.
|
||||||
lambda: |-
|
lambda: |-
|
||||||
it.print(0, 0, id(font), "Hello World!");
|
it.print(0, 0, id(font), "Hello World!");
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
***********************
|
************************
|
||||||
|
|
||||||
- **model** (**Required**): The model of the display. At present, only one option is available:
|
- **model** (**Required**): The model of the display. At present, only one option is available:
|
||||||
|
|
||||||
|
@ -113,6 +112,7 @@ Configuration variables
|
||||||
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin. Defaults to not connected.
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin. Defaults to not connected.
|
||||||
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ``lambda:`` will be rotated
|
||||||
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
by this option. One of ``0°`` (default), ``90°``, ``180°``, ``270°``.
|
||||||
|
- **brightness** (*Optional*, percentage): Set display brightness in %. Defaults to ``100%``
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
@ -120,7 +120,6 @@ Configuration variables
|
||||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||||
to use multiple SPI buses.
|
to use multiple SPI buses.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- **brightness** (*Optional*, float): Manually override display brightness in %. Defaults to ``100%``
|
|
||||||
|
|
||||||
Configuration examples
|
Configuration examples
|
||||||
**********************
|
**********************
|
||||||
|
|
|
@ -39,13 +39,13 @@ require 5 volts connected to their ``+`` pin. Connect the GND or G pin to ground
|
||||||
lambda: |-
|
lambda: |-
|
||||||
it.print(0, 0, id(font), "Hello World!");
|
it.print(0, 0, id(font), "Hello World!");
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
***********************
|
************************
|
||||||
|
|
||||||
- **reset_pin** (:ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that that the CS line is connected to.
|
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that that the CS line is connected to.
|
||||||
The CS line can be connected to GND if this is the only device on the SPI bus.
|
The CS line can be connected to GND if this is the only device on the SPI bus.
|
||||||
- **dc_pin** (:ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
|
|
@ -7,8 +7,8 @@ SSD1351 OLED Display
|
||||||
|
|
||||||
.. _ssd1351-spi:
|
.. _ssd1351-spi:
|
||||||
|
|
||||||
Usage
|
``ssd1351_spi`` Component
|
||||||
-----
|
-------------------------
|
||||||
|
|
||||||
The ``ssd1351_spi`` display platform allows you to use
|
The ``ssd1351_spi`` display platform allows you to use
|
||||||
SSD1351 (`datasheet <https://cdn-shop.adafruit.com/datasheets/SSD1351-Revision+1.3.pdf>`__,
|
SSD1351 (`datasheet <https://cdn-shop.adafruit.com/datasheets/SSD1351-Revision+1.3.pdf>`__,
|
||||||
|
@ -43,18 +43,17 @@ which should be connected to 3.3 volts only. Connect the GND or G pin to GND.
|
||||||
lambda: |-
|
lambda: |-
|
||||||
it.print(0, 0, id(font), "Hello World!");
|
it.print(0, 0, id(font), "Hello World!");
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
***********************
|
************************
|
||||||
|
|
||||||
- **model** (**Required**): The model of the display. Options are:
|
- **model** (**Required**): The model of the display. Options are:
|
||||||
|
|
||||||
- ``SSD1351 128x128`` (SSD1351 with 128 columns and 128 rows)
|
- ``SSD1351 128x128`` (SSD1351 with 128 columns and 128 rows)
|
||||||
- ``SSD1351 128x96`` (SSD1351 with 128 columns and 96 rows)
|
- ``SSD1351 128x96`` (SSD1351 with 128 columns and 96 rows)
|
||||||
|
|
||||||
- **reset_pin** (:ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
- **cs_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that that the CS line is connected to.
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin on the ESP that that the CS line is connected to.
|
||||||
The CS line can be connected to GND if this is the only device on the SPI bus.
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
- **dc_pin** (:ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
|
|
@ -42,20 +42,20 @@ There are numerous board types out there. Some initialize differently as well. T
|
||||||
update_interval: 5s
|
update_interval: 5s
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **model** (**Required**, "See Models Below"): This the model to use. INITR_BLACKTAB is the default
|
- **model** (**Required**, "See Models Below"): This the model to use. INITR_BLACKTAB is the default
|
||||||
- **reset_pin** (:ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
||||||
- **cs_pin** (:ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
- **dc_pin** (:ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
- **device_width** (**Required**, int): The device width. 128 is default
|
||||||
- **devicewidth** (**Required**, int): The device width. 128 is default
|
- **device_height** (**Required**, int): The device height. 160 is default
|
||||||
- **deviceheight** (**Required**, int): The device height. 160 is default
|
- **col_start** (**Required**, int): The device height. 160 is default
|
||||||
- **colstart** (**Required**, int): The device height. 160 is default
|
- **row_start** (**Required**, int): The device height. 160 is default
|
||||||
- **rowstart** (**Required**, int): The device height. 160 is default
|
- **eight_bit_color** (*Optional*, "True/False" ): 8bit mode. Default is False. This saves 50% of the buffer required for the display.
|
||||||
- **eightbitcolor** (*Optional*, "True/False" ): 8bit mode. Default is False. This saves 50% of the buffer required for the display.
|
- **reset_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
|
|
||||||
Memory notes:
|
Memory notes:
|
||||||
~~~~~~~~~~~~~
|
*************
|
||||||
|
|
||||||
- 8Bit color saves 50% of the buffer required.
|
- 8Bit color saves 50% of the buffer required.
|
||||||
- eightbitcolor: True 160x128 = 20480 *Important for memory constrained devices*
|
- eightbitcolor: True 160x128 = 20480 *Important for memory constrained devices*
|
||||||
|
@ -63,7 +63,7 @@ Memory notes:
|
||||||
|
|
||||||
|
|
||||||
Models:
|
Models:
|
||||||
~~~~~~~
|
*******
|
||||||
|
|
||||||
- INITR_GREENTAB
|
- INITR_GREENTAB
|
||||||
- INITR_REDTAB
|
- INITR_REDTAB
|
||||||
|
|
|
@ -50,13 +50,13 @@ hardwired programming. (OTA updates are of course possible after ESPHome is init
|
||||||
When using the TTGO T-Display module, the GPIO pin numbers above *cannot be changed* as they are
|
When using the TTGO T-Display module, the GPIO pin numbers above *cannot be changed* as they are
|
||||||
hardwired within the module/PCB.
|
hardwired within the module/PCB.
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
***********************
|
************************
|
||||||
|
|
||||||
- **backlight_pin** (:ref:`Pin Schema <config-pin_schema>`): The display's backlight pin.
|
- **backlight_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The display's backlight pin.
|
||||||
- **cs_pin** (:ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The CS pin.
|
||||||
- **dc_pin** (:ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
- **dc_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DC pin.
|
||||||
- **reset_pin** (:ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
- **reset_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The RESET pin.
|
||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
|
|
@ -8,7 +8,7 @@ Waveshare E-Paper Display
|
||||||
The ``waveshare_epaper`` display platform allows you to use
|
The ``waveshare_epaper`` display platform allows you to use
|
||||||
some E-Paper displays sold by `Waveshare <https://www.waveshare.com/product/displays/e-paper.htm>`__
|
some E-Paper displays sold by `Waveshare <https://www.waveshare.com/product/displays/e-paper.htm>`__
|
||||||
with ESPHome. The 2.13" `TTGO module <https://github.com/lewisxhe/TTGO-EPaper-Series>`__ with an ESP32 on the board is supported as well.
|
with ESPHome. The 2.13" `TTGO module <https://github.com/lewisxhe/TTGO-EPaper-Series>`__ with an ESP32 on the board is supported as well.
|
||||||
Depending on your specific revision of the board you might need to try out the `-b73` version (see below).
|
Depending on your specific revision of the board you might need to try out the `-b73` or `-b1` version (see below).
|
||||||
Similar modules sold by other vendors might also work but not have been tested yet. Currently only
|
Similar modules sold by other vendors might also work but not have been tested yet. Currently only
|
||||||
single-color E-Ink displays are implemented and of those only a few modules.
|
single-color E-Ink displays are implemented and of those only a few modules.
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ Configuration variables:
|
||||||
- ``2.13in`` (not tested)
|
- ``2.13in`` (not tested)
|
||||||
- ``2.13in-ttgo`` (T5_V2.3 tested)
|
- ``2.13in-ttgo`` (T5_V2.3 tested)
|
||||||
- ``2.13in-ttgo-b73`` (T5_V2.3 with B73 display tested)
|
- ``2.13in-ttgo-b73`` (T5_V2.3 with B73 display tested)
|
||||||
|
- ``2.13in-ttgo-b1`` (T5_V2.3 with B1 display tested)
|
||||||
- ``2.70in`` (currently not working with the HAT Rev 2.1 version)
|
- ``2.70in`` (currently not working with the HAT Rev 2.1 version)
|
||||||
- ``2.90in``
|
- ``2.90in``
|
||||||
- ``2.90inv2``
|
- ``2.90inv2``
|
||||||
|
|
|
@ -154,7 +154,7 @@ variable ``x`` of type ``std::vector<uint8_t>`` is passed to the automation for
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **mac_address** (*Optional*, MAC Address): The MAC address to filter for this automation.
|
- **mac_address** (*Optional*, MAC Address): The MAC address to filter for this automation.
|
||||||
- **manufacturer_id** (**Required**, string) 16 bit, 32 bit, or 128 bit BLE Manufacturer ID.
|
- **manufacturer_id** (**Required**, string): 16 bit, 32 bit, or 128 bit BLE Manufacturer ID.
|
||||||
- See :ref:`Automation <automation>`.
|
- See :ref:`Automation <automation>`.
|
||||||
|
|
||||||
.. _esp32_ble_tracker-on_ble_service_data_advertise:
|
.. _esp32_ble_tracker-on_ble_service_data_advertise:
|
||||||
|
@ -182,7 +182,7 @@ variable ``x`` of type ``std::vector<uint8_t>`` is passed to the automation for
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **mac_address** (*Optional*, MAC Address): The MAC address to filter for this automation.
|
- **mac_address** (*Optional*, MAC Address): The MAC address to filter for this automation.
|
||||||
- **service_uuid** (**Required**, string) 16 bit, 32 bit, or 128 bit BLE Service UUID.
|
- **service_uuid** (**Required**, string): 16 bit, 32 bit, or 128 bit BLE Service UUID.
|
||||||
- See :ref:`Automation <automation>`.
|
- See :ref:`Automation <automation>`.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
|
|
|
@ -49,6 +49,9 @@ Advanced options:
|
||||||
- **libraries** (*Optional*, list of libraries): A list of `platformio libraries <https://platformio.org/lib>`__
|
- **libraries** (*Optional*, list of libraries): A list of `platformio libraries <https://platformio.org/lib>`__
|
||||||
to include in the project. See `platformio lib install <https://docs.platformio.org/en/latest/userguide/lib/cmd_install.html>`__.
|
to include in the project. See `platformio lib install <https://docs.platformio.org/en/latest/userguide/lib/cmd_install.html>`__.
|
||||||
- **comment** (*Optional*, string): Additional text information about this node. Only for display in UI.
|
- **comment** (*Optional*, string): Additional text information about this node. Only for display in UI.
|
||||||
|
- **name_add_mac_suffix** (*Optional*, boolean): Appends the last 6 bytes of the mac address of the device to
|
||||||
|
the name in the form `<name>_aabbcc`. Defaults to ``False``.
|
||||||
|
See :ref:`esphome-mac_suffix`.
|
||||||
|
|
||||||
ESP8266 Options:
|
ESP8266 Options:
|
||||||
|
|
||||||
|
@ -297,6 +300,17 @@ Now upload the updated config to the device. As a second step, you now need to r
|
||||||
|
|
||||||
The same procedure can be done for changing the static IP of a device.
|
The same procedure can be done for changing the static IP of a device.
|
||||||
|
|
||||||
|
|
||||||
|
.. _esphome-mac_suffix:
|
||||||
|
|
||||||
|
Adding the MAC address as a suffix to the device name
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
Using ``name_add_mac_suffix`` allows the user to compile a single binary file to flash
|
||||||
|
many of the same device and they will all have unique names/hostnames.
|
||||||
|
Note that you will still need to create an individual YAML config file if you want to
|
||||||
|
OTA update the devices in the future.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -48,9 +48,9 @@ Configuration variables:
|
||||||
|
|
||||||
- **manual_ip** (*Optional*): Manually configure the static IP of the node.
|
- **manual_ip** (*Optional*): Manually configure the static IP of the node.
|
||||||
|
|
||||||
- **static_ip** (*Required*, IPv4 address): The static IP of your node.
|
- **static_ip** (**Required**, IPv4 address): The static IP of your node.
|
||||||
- **gateway** (*Required*, IPv4 address): The gateway of the local network.
|
- **gateway** (**Required**, IPv4 address): The gateway of the local network.
|
||||||
- **subnet** (*Required*, IPv4 address): The subnet of the local network.
|
- **subnet** (**Required**, IPv4 address): The subnet of the local network.
|
||||||
- **dns1** (*Optional*, IPv4 address): The main DNS server to use.
|
- **dns1** (*Optional*, IPv4 address): The main DNS server to use.
|
||||||
- **dns2** (*Optional*, IPv4 address): The backup DNS server to use.
|
- **dns2** (*Optional*, IPv4 address): The backup DNS server to use.
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 16 KiB |
|
@ -7,14 +7,13 @@ Fan Component
|
||||||
|
|
||||||
With the ``fan`` domain you can create components that appear as fans in
|
With the ``fan`` domain you can create components that appear as fans in
|
||||||
the Home Assistant frontend. A fan can be switched ON or OFF, optionally
|
the Home Assistant frontend. A fan can be switched ON or OFF, optionally
|
||||||
has a speed setting (``LOW``, ``MEDIUM``, ``HIGH``) and can have an
|
has a speed level between 1 and the maximum supported speed level of the fan, and can have an
|
||||||
oscillate output.
|
oscillate and direction output.
|
||||||
|
|
||||||
This component restores its state on reboot/reset.
|
This component restores its state on reboot/reset.
|
||||||
|
|
||||||
.. figure:: images/fan-ui.png
|
.. figure:: images/fan-ui.png
|
||||||
:align: center
|
:align: center
|
||||||
:width: 70.0%
|
|
||||||
|
|
||||||
.. _config-fan:
|
.. _config-fan:
|
||||||
|
|
||||||
|
@ -93,9 +92,8 @@ Configuration options:
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the fan.
|
- **id** (**Required**, :ref:`config-id`): The ID of the fan.
|
||||||
- **oscillating** (*Optional*, boolean, :ref:`templatable <config-templatable>`):
|
- **oscillating** (*Optional*, boolean, :ref:`templatable <config-templatable>`):
|
||||||
Set the oscillation state of the fan. Defaults to not affecting oscillation.
|
Set the oscillation state of the fan. Defaults to not affecting oscillation.
|
||||||
- **speed** (*Optional*, string, :ref:`templatable <config-templatable>`):
|
- **speed** (*Optional*, int, :ref:`templatable <config-templatable>`):
|
||||||
Set the speed setting of the fan. One of ``OFF``, ``LOW``, ``MEDIUM``, ``HIGH``.
|
Set the speed level of the fan. Can be a number between 1 and the maximum speed level of the fan.
|
||||||
If you template this value, return ``FAN_SPEED_...``, for example ``FAN_SPEED_HIGH``.
|
|
||||||
|
|
||||||
Full Fan Index
|
Full Fan Index
|
||||||
--------------
|
--------------
|
||||||
|
|
|
@ -30,15 +30,9 @@ Configuration variables:
|
||||||
:ref:`output <output>` to use for the oscillation state of this fan. Default is empty.
|
:ref:`output <output>` to use for the oscillation state of this fan. Default is empty.
|
||||||
- **direction_output** (*Optional*, :ref:`config-id`): The id of the
|
- **direction_output** (*Optional*, :ref:`config-id`): The id of the
|
||||||
:ref:`output <output>` to use for the direction state of the fan. Default is empty.
|
:ref:`output <output>` to use for the direction state of the fan. Default is empty.
|
||||||
- **speed** (*Optional*): Set the float values for each speed setting:
|
- **speed_count** (*Optional*, int): Set the number of supported discrete speed levels. The value is used
|
||||||
|
to calculate the percentages for each speed. E.g. ``2`` means that you have 50% and 100% while ``100``
|
||||||
- **low** (*Required*, float): Set the value for the low speed
|
will allow 1% increments in the output. Defaults to ``100``.
|
||||||
setting. Must be in range 0 to 1. Defaults to 0.33.
|
|
||||||
- **medium** (*Required*, float): Set the value for the medium speed
|
|
||||||
setting. Must be in range 0 to 1. Defaults to 0.66.
|
|
||||||
- **high** (*Required*, float): Set the value for the high speed
|
|
||||||
setting. Must be in range 0 to 1. Defaults to 1.
|
|
||||||
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- All other options from :ref:`Fan Component <config-fan>`.
|
- All other options from :ref:`Fan Component <config-fan>`.
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ Configuration variables:
|
||||||
- **name** (**Required**, string): The name of the fan.
|
- **name** (**Required**, string): The name of the fan.
|
||||||
- **speed_datapoint** (**Required**, int): The datapoint id number of the fan speed.
|
- **speed_datapoint** (**Required**, int): The datapoint id number of the fan speed.
|
||||||
- **switch_datapoint** (**Required**, int): The datapoint id number of the fan switch.
|
- **switch_datapoint** (**Required**, int): The datapoint id number of the fan switch.
|
||||||
- **oscillation_datapoint** (**Optional**, int): The datapoint id number of the oscillation
|
- **oscillation_datapoint** (*Optional*, int): The datapoint id number of the oscillation
|
||||||
switch. Probably not supported on any Tuya controllers currently, but it's there if need be.
|
switch. Probably not supported on any Tuya controllers currently, but it's there if need be.
|
||||||
- All other options from :ref:`Fan <config-fan>`.
|
- All other options from :ref:`Fan <config-fan>`.
|
||||||
|
|
||||||
|
|
|
@ -33,10 +33,7 @@ in your configuration - only the RX pin should be necessary.
|
||||||
time:
|
time:
|
||||||
- platform: gps
|
- platform: gps
|
||||||
|
|
||||||
Configuration variables:
|
The component is split up in platforms. No configuration variables.
|
||||||
------------------------
|
|
||||||
|
|
||||||
The component is split up in platforms.
|
|
||||||
|
|
||||||
First you need to define a global GPS module hub (as seen above).
|
First you need to define a global GPS module hub (as seen above).
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,12 @@ This :ref:`action <config-action>` sends a GET request.
|
||||||
headers:
|
headers:
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
verify_ssl: false
|
verify_ssl: false
|
||||||
|
on_response:
|
||||||
|
then:
|
||||||
|
- logger.log:
|
||||||
|
format: 'Response status: %d'
|
||||||
|
args:
|
||||||
|
- status_code
|
||||||
# Short form
|
# Short form
|
||||||
- http_request.get: https://esphome.io
|
- http_request.get: https://esphome.io
|
||||||
|
|
||||||
|
@ -57,6 +63,7 @@ Configuration variables:
|
||||||
- **url** (**Required**, string, :ref:`templatable <config-templatable>`): URL to send request.
|
- **url** (**Required**, string, :ref:`templatable <config-templatable>`): URL to send request.
|
||||||
- **headers** (*Optional*, mapping): Map of HTTP headers. Values are :ref:`templatable <config-templatable>`.
|
- **headers** (*Optional*, mapping): Map of HTTP headers. Values are :ref:`templatable <config-templatable>`.
|
||||||
- **verify_ssl** (*Optional*, boolean): Verify the SSL certificate of the endpoint. Defaults to ``true``.
|
- **verify_ssl** (*Optional*, boolean): Verify the SSL certificate of the endpoint. Defaults to ``true``.
|
||||||
|
- **on_response** (*Optional*, :ref:`Automation <automation>`): An automation to perform when the request is finished.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -112,6 +119,29 @@ Configuration variables:
|
||||||
- **method** (**Required**, string): HTTP method to use (``GET``, ``POST``, ``PUT``, ``DELETE``, ``PATCH``).
|
- **method** (**Required**, string): HTTP method to use (``GET``, ``POST``, ``PUT``, ``DELETE``, ``PATCH``).
|
||||||
- All other options from :ref:`http_request-post_action`.
|
- All other options from :ref:`http_request-post_action`.
|
||||||
|
|
||||||
|
.. _http_request-on_response:
|
||||||
|
|
||||||
|
``on_response`` Trigger
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
This automation will be triggered when the HTTP request is finished and will supply the
|
||||||
|
http response code in parameter ``status_code`` as an ``int``.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...
|
||||||
|
then:
|
||||||
|
- http_request.get:
|
||||||
|
url: https://esphome.io
|
||||||
|
verify_ssl: false
|
||||||
|
on_response:
|
||||||
|
then:
|
||||||
|
- logger.log:
|
||||||
|
format: "Response status: %d"
|
||||||
|
args:
|
||||||
|
- status_code
|
||||||
|
|
||||||
|
|
||||||
.. _http_request-examples:
|
.. _http_request-examples:
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
|
|
|
@ -37,7 +37,7 @@ Configuration variables:
|
||||||
Defaults to ``True``.
|
Defaults to ``True``.
|
||||||
- **frequency** (*Optional*, float): Set the frequency the I²C bus should operate on.
|
- **frequency** (*Optional*, float): Set the frequency the I²C bus should operate on.
|
||||||
Defaults to ``50kHz``. Values are ``50kHz``, ``100kHz``, ``200kHz``, ... ``800kHz``
|
Defaults to ``50kHz``. Values are ``50kHz``, ``100kHz``, ``200kHz``, ... ``800kHz``
|
||||||
- **id** (*Optional*, :ref:`config-id`) Manually specify the ID for this I²C bus if you need multiple I²C buses.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this I²C bus if you need multiple I²C buses.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ This action toggles a light with the given ID when executed.
|
||||||
# Shorthand:
|
# Shorthand:
|
||||||
- light.toggle: light_1
|
- light.toggle: light_1
|
||||||
|
|
||||||
Configuration options:
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
||||||
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition
|
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition
|
||||||
|
@ -121,7 +121,7 @@ This action turns a light with the given ID on when executed.
|
||||||
# Shorthand
|
# Shorthand
|
||||||
- light.turn_on: light_1
|
- light.turn_on: light_1
|
||||||
|
|
||||||
Configuration options:
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
||||||
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition
|
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition
|
||||||
|
@ -180,7 +180,7 @@ This action turns a light with the given ID off when executed.
|
||||||
# Shorthand
|
# Shorthand
|
||||||
- light.turn_off: light_1
|
- light.turn_off: light_1
|
||||||
|
|
||||||
Configuration options:
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
||||||
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition
|
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition
|
||||||
|
@ -214,7 +214,7 @@ is essentially just a combination of the turn_on and turn_off calls.
|
||||||
id: light_1
|
id: light_1
|
||||||
state: on
|
state: on
|
||||||
|
|
||||||
Configuration options:
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
||||||
- **state** (*Optional*, :ref:`templatable <config-templatable>`, boolean): Change the ON/OFF
|
- **state** (*Optional*, :ref:`templatable <config-templatable>`, boolean): Change the ON/OFF
|
||||||
|
@ -238,10 +238,10 @@ by a relative amount.
|
||||||
id: light_1
|
id: light_1
|
||||||
relative_brightness: 5%
|
relative_brightness: 5%
|
||||||
|
|
||||||
Configuration options:
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
- **id** (**Required**, :ref:`config-id`): The ID of the light.
|
||||||
- **relative_brightness** (**Required***, :ref:`templatable <config-templatable>`, percentage):
|
- **relative_brightness** (**Required**, :ref:`templatable <config-templatable>`, percentage):
|
||||||
The relative brightness to dim the light by.
|
The relative brightness to dim the light by.
|
||||||
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition.
|
- **transition_length** (*Optional*, :ref:`config-time`, :ref:`templatable <config-templatable>`): The length of the transition.
|
||||||
|
|
||||||
|
@ -718,8 +718,12 @@ This effect allows you to access each LED individually in a custom light effect.
|
||||||
Available variables in the lambda:
|
Available variables in the lambda:
|
||||||
|
|
||||||
- **it** - :apiclass:`AddressableLight <light::AddressableLight>` instance (see API reference for more info).
|
- **it** - :apiclass:`AddressableLight <light::AddressableLight>` instance (see API reference for more info).
|
||||||
- **current_color** - :apistruct:`ESPColor <light::ESPColor>` instance (see API reference for more info).
|
- **current_color** - :apistruct:`Color <Color>` instance (see API reference for more info).
|
||||||
- **initial_run** - A bool which is true on the first execution of the lambda. Useful to reset static variables when restarting an effect.
|
- **initial_run** - A bool which is true on the first execution of the lambda. Useful to reset static variables when restarting a effect.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
ESPColor has been migrated to Color. See :apistruct:`Color <Color>` for more information.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -733,18 +737,18 @@ Available variables in the lambda:
|
||||||
// it.size() - Number of LEDs
|
// it.size() - Number of LEDs
|
||||||
// it[num] - Access the LED at index num.
|
// it[num] - Access the LED at index num.
|
||||||
// Set the LED at num to the given r, g, b values
|
// Set the LED at num to the given r, g, b values
|
||||||
// it[num] = ESPColor(r, g, b);
|
// it[num] = Color(r, g, b);
|
||||||
// Get the color at index num (ESPColor instance)
|
// Get the color at index num (Color instance)
|
||||||
// it[num].get();
|
// it[num].get();
|
||||||
|
|
||||||
// Example: Simple color wipe
|
// Example: Simple color wipe
|
||||||
for (int i = it.size() - 1; i > 0; i--) {
|
for (int i = it.size() - 1; i > 0; i--) {
|
||||||
it[i] = it[i - 1].get();
|
it[i] = it[i - 1].get();
|
||||||
}
|
}
|
||||||
it[0] = ESPColor::random_color();
|
it[0] = Color::random_color();
|
||||||
|
|
||||||
// Bonus: use .range() and .all() to set many LEDs without having to write a loop.
|
// Bonus: use .range() and .all() to set many LEDs without having to write a loop.
|
||||||
it.range(0, 50) = ESPColor::BLACK;
|
it.range(0, 50) = Color::BLACK;
|
||||||
it.all().fade_to_black(10);
|
it.all().fade_to_black(10);
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
@ -768,7 +772,7 @@ Available variables in the lambda:
|
||||||
// again you can use the initial_run variables
|
// again you can use the initial_run variables
|
||||||
if (initial_run) {
|
if (initial_run) {
|
||||||
progress = 0;
|
progress = 0;
|
||||||
it.all() = ESPColor::BLACK;
|
it.all() = Color::BLACK;
|
||||||
// optionally do a return so nothing happens until the next update_interval
|
// optionally do a return so nothing happens until the next update_interval
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -817,8 +821,10 @@ Configuration variables:
|
||||||
- **sequence** (*Optional*, :ref:`Action <config-action>`): The actions to perform in sequence
|
- **sequence** (*Optional*, :ref:`Action <config-action>`): The actions to perform in sequence
|
||||||
until the effect is stopped.
|
until the effect is stopped.
|
||||||
|
|
||||||
E1.31
|
.. _e131-light-effect:
|
||||||
*****
|
|
||||||
|
E1.31 Effect
|
||||||
|
************
|
||||||
|
|
||||||
This effect enables controlling addressable lights using UDP-based
|
This effect enables controlling addressable lights using UDP-based
|
||||||
E1.31_ protocol.
|
E1.31_ protocol.
|
||||||
|
@ -840,16 +846,15 @@ For Example JINX_ or Hyperion.NG_ could be used to control E1.31_ enabled ESPHom
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **method** (*Optional*): Listening method, one of ``multicast`` or ``unicast``. Defaults to ``multicast``.
|
- **universe** (**Required**, integer): The value of universe, between 1 to 512.
|
||||||
- **universe** (*Required*, integer): The value of universe, between 1 to 512.
|
|
||||||
- **channels** (*Optional*): The type of data. This is used to specify if it is a ``MONO``,
|
- **channels** (*Optional*): The type of data. This is used to specify if it is a ``MONO``,
|
||||||
``RGB`` or ``RGBW`` light and in which order the colors are. Defaults to ``RGB``.
|
``RGB`` or ``RGBW`` light and in which order the colors are. Defaults to ``RGB``.
|
||||||
|
|
||||||
There are three modes of operation:
|
There are three modes of operation:
|
||||||
|
|
||||||
- `MONO`: this supports 1 channel per LED (luminance), up-to 512 LEDs per universe
|
- ``MONO``: this supports 1 channel per LED (luminance), up-to 512 LEDs per universe
|
||||||
- `RGB`: this supports 3 channels per LED (RGB), up-to 170 LEDs (3*170 = 510 bytes) per universe
|
- ``RGB``: this supports 3 channels per LED (RGB), up-to 170 LEDs (3*170 = 510 bytes) per universe
|
||||||
- `RGBW`: this supports 4 channels per LED (RGBW), up-to 128 LEDs (4*128 = 512 bytes) per universe
|
- ``RGBW``: this supports 4 channels per LED (RGBW), up-to 128 LEDs (4*128 = 512 bytes) per universe
|
||||||
|
|
||||||
If there's more LEDs than allowed per-universe, additional universe will be used.
|
If there's more LEDs than allowed per-universe, additional universe will be used.
|
||||||
In the above example of 189 LEDs, first 170 LEDs will be assigned to 1 universe,
|
In the above example of 189 LEDs, first 170 LEDs will be assigned to 1 universe,
|
||||||
|
@ -858,14 +863,22 @@ the rest of 19 LEDs will be automatically assigned to 2 universe.
|
||||||
It is possible to enable multiple light platforms to listen to the same universe concurrently,
|
It is possible to enable multiple light platforms to listen to the same universe concurrently,
|
||||||
allowing to replicate the behaviour on multiple strips.
|
allowing to replicate the behaviour on multiple strips.
|
||||||
|
|
||||||
The udp port esphome is listenig on is 5568.
|
E1.31 Component
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The :ref:`e131-light-effect` requires a component hub for the ``e131`` light effect.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **method** (*Optional*): Listening method, one of ``multicast`` or ``unicast``. Defaults to ``multicast``.
|
||||||
|
|
||||||
|
|
||||||
.. _E1.31: https://www.doityourselfchristmas.com/wiki/index.php?title=E1.31_(Streaming-ACN)_Protocol
|
.. _E1.31: https://www.doityourselfchristmas.com/wiki/index.php?title=E1.31_(Streaming-ACN)_Protocol
|
||||||
.. _JINX: http://www.live-leds.de/jinx-v1-3-with-resizable-mainwindow-real-dmx-and-sacne1-31/
|
.. _JINX: http://www.live-leds.de/jinx-v1-3-with-resizable-mainwindow-real-dmx-and-sacne1-31/
|
||||||
.. _Hyperion.NG: https://github.com/hyperion-project/hyperion.ng
|
.. _Hyperion.NG: https://github.com/hyperion-project/hyperion.ng
|
||||||
|
|
||||||
Adalight
|
Adalight Effect
|
||||||
********
|
***************
|
||||||
|
|
||||||
This effect enables controlling addressable lights using UART-based
|
This effect enables controlling addressable lights using UART-based
|
||||||
Adalight_ protocol, allowing to create realtime ambient lighting effects.
|
Adalight_ protocol, allowing to create realtime ambient lighting effects.
|
||||||
|
@ -902,8 +915,8 @@ Configuration variables:
|
||||||
.. _Adalight: https://learn.adafruit.com/adalight-diy-ambient-tv-lighting
|
.. _Adalight: https://learn.adafruit.com/adalight-diy-ambient-tv-lighting
|
||||||
.. _Prismatik: https://github.com/psieg/Lightpack
|
.. _Prismatik: https://github.com/psieg/Lightpack
|
||||||
|
|
||||||
WLED
|
WLED Effect
|
||||||
****
|
***********
|
||||||
|
|
||||||
This effect enables controlling addressable lights using UDP-based
|
This effect enables controlling addressable lights using UDP-based
|
||||||
`UDP Realtime Control`_ protocol used by WLED_, allowing to create realtime ambient
|
`UDP Realtime Control`_ protocol used by WLED_, allowing to create realtime ambient
|
||||||
|
|
|
@ -37,6 +37,9 @@ Advanced settings:
|
||||||
Defaults to ``UART0``.
|
Defaults to ``UART0``.
|
||||||
- **esp8266_store_log_strings_in_flash** (*Optional*, boolean): If set to false, disables storing
|
- **esp8266_store_log_strings_in_flash** (*Optional*, boolean): If set to false, disables storing
|
||||||
log strings in the flash section of the device (uses more memory). Defaults to true.
|
log strings in the flash section of the device (uses more memory). Defaults to true.
|
||||||
|
- **on_message** (*Optional*, :ref:`Automation <automation>`): An action to be
|
||||||
|
performed when a message is to be looged. The vairables ``int level``, ``const char* tag`` and
|
||||||
|
``const char* message`` are available for lambda processing.
|
||||||
|
|
||||||
.. _logger-hardware_uarts:
|
.. _logger-hardware_uarts:
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,8 @@ The Microchip MCP230xx series of general purpose, parallel I/O expansion for I²
|
||||||
|
|
||||||
.. _mcp23008-label:
|
.. _mcp23008-label:
|
||||||
|
|
||||||
MCP23008
|
MCP23008 Component
|
||||||
--------
|
------------------
|
||||||
|
|
||||||
The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/devicedoc/21919e.pdf>`__,
|
The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/devicedoc/21919e.pdf>`__,
|
||||||
`Adafruit <https://www.adafruit.com/product/593>`__) has 8 GPIOs that can be configured independently.
|
`Adafruit <https://www.adafruit.com/product/593>`__) has 8 GPIOs that can be configured independently.
|
||||||
|
@ -33,7 +33,7 @@ The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/device
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23008 Pin #0"
|
name: "MCP23008 Pin #0"
|
||||||
pin:
|
pin:
|
||||||
mcp23008: mcp23008_hub
|
mcp23xxx: mcp23008_hub
|
||||||
# Use pin number 0
|
# Use pin number 0
|
||||||
number: 0
|
number: 0
|
||||||
mode: OUTPUT
|
mode: OUTPUT
|
||||||
|
@ -44,7 +44,7 @@ The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/device
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23008 Pin #1"
|
name: "MCP23008 Pin #1"
|
||||||
pin:
|
pin:
|
||||||
mcp23008: mcp23008_hub
|
mcp23xxx: mcp23008_hub
|
||||||
# Use pin number 1
|
# Use pin number 1
|
||||||
number: 1
|
number: 1
|
||||||
# One of INPUT or INPUT_PULLUP
|
# One of INPUT or INPUT_PULLUP
|
||||||
|
@ -52,7 +52,7 @@ The MCP23008 component (`datasheet <http://ww1.microchip.com/downloads/en/device
|
||||||
inverted: False
|
inverted: False
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23008 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23008 component.
|
||||||
- **address** (*Optional*, int): The I²C address of the driver.
|
- **address** (*Optional*, int): The I²C address of the driver.
|
||||||
|
@ -61,10 +61,20 @@ Configuration variables:
|
||||||
Useful when the MCP23008's power supply is greater than 3.3 volts. Note that this pin
|
Useful when the MCP23008's power supply is greater than 3.3 volts. Note that this pin
|
||||||
will require a pull-up resistor (to 3.3 volts) when this mode is enabled.
|
will require a pull-up resistor (to 3.3 volts) when this mode is enabled.
|
||||||
|
|
||||||
|
Pin configuration variables:
|
||||||
|
****************************
|
||||||
|
|
||||||
|
- **mcp23xxx** (**Required**, :ref:`config-id`): The id of the MCP23008 component.
|
||||||
|
- **interrupt** (*Optional*): Set this pin to trigger the INT pin on the component. Can be one of ``CHANGE``, ``RISING``, ``FALLING``.
|
||||||
|
- **number** (**Required**, integer): The pin number.
|
||||||
|
- **inverted** (*Optional*, boolean): If all read and written values
|
||||||
|
should be treated as inverted. Defaults to ``False``.
|
||||||
|
- **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT`` or ``OUTPUT``.
|
||||||
|
|
||||||
.. _mcp23016-label:
|
.. _mcp23016-label:
|
||||||
|
|
||||||
MCP23016
|
MCP23016 Component
|
||||||
--------
|
------------------
|
||||||
|
|
||||||
The MCP23016 component (`datasheet <http://ww1.microchip.com/downloads/en/devicedoc/20090c.pdf>`__)
|
The MCP23016 component (`datasheet <http://ww1.microchip.com/downloads/en/devicedoc/20090c.pdf>`__)
|
||||||
has 16 GPIOs and can be configured the same way than the other variants.
|
has 16 GPIOs and can be configured the same way than the other variants.
|
||||||
|
@ -104,16 +114,23 @@ has 16 GPIOs and can be configured the same way than the other variants.
|
||||||
|
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23016 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23016 component.
|
||||||
- **address** (*Optional*, int): The I²C address of the driver.
|
- **address** (*Optional*, int): The I²C address of the driver.
|
||||||
Defaults to ``0x20``.
|
Defaults to ``0x20``.
|
||||||
|
|
||||||
|
Pin configuration variables:
|
||||||
|
****************************
|
||||||
|
|
||||||
|
- **mcp23xxx** (**Required**, :ref:`config-id`): The id of the MCP23016 component.
|
||||||
|
- All other options from :ref:`Pin Schema <config-pin_schema>`
|
||||||
|
|
||||||
|
|
||||||
.. _mcp23017-label:
|
.. _mcp23017-label:
|
||||||
|
|
||||||
MCP23017
|
MCP23017 Component
|
||||||
--------
|
------------------
|
||||||
|
|
||||||
The MCP23017 component allows you to use MCP23017 I/O expanders
|
The MCP23017 component allows you to use MCP23017 I/O expanders
|
||||||
(`datasheet <http://ww1.microchip.com/downloads/en/devicedoc/20001952c.pdf>`__,
|
(`datasheet <http://ww1.microchip.com/downloads/en/devicedoc/20001952c.pdf>`__,
|
||||||
|
@ -137,7 +154,7 @@ binary sensor or GPIO switch.
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23017 Pin #0"
|
name: "MCP23017 Pin #0"
|
||||||
pin:
|
pin:
|
||||||
mcp23017: mcp23017_hub
|
mcp23xxx: mcp23017_hub
|
||||||
# Use pin number 0
|
# Use pin number 0
|
||||||
number: 0
|
number: 0
|
||||||
mode: OUTPUT
|
mode: OUTPUT
|
||||||
|
@ -148,7 +165,7 @@ binary sensor or GPIO switch.
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23017 Pin #1"
|
name: "MCP23017 Pin #1"
|
||||||
pin:
|
pin:
|
||||||
mcp23017: mcp23017_hub
|
mcp23xxx: mcp23017_hub
|
||||||
# Use pin number 1
|
# Use pin number 1
|
||||||
number: 1
|
number: 1
|
||||||
# One of INPUT or INPUT_PULLUP
|
# One of INPUT or INPUT_PULLUP
|
||||||
|
@ -156,7 +173,7 @@ binary sensor or GPIO switch.
|
||||||
inverted: False
|
inverted: False
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23017 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23017 component.
|
||||||
- **address** (*Optional*, int): The I²C address of the driver.
|
- **address** (*Optional*, int): The I²C address of the driver.
|
||||||
|
@ -165,6 +182,13 @@ Configuration variables:
|
||||||
Useful when the MCP23017's power supply is greater than 3.3 volts. Note that these pins
|
Useful when the MCP23017's power supply is greater than 3.3 volts. Note that these pins
|
||||||
will require pull-up resistors (to 3.3 volts) when this mode is enabled.
|
will require pull-up resistors (to 3.3 volts) when this mode is enabled.
|
||||||
|
|
||||||
|
Pin configuration variables:
|
||||||
|
****************************
|
||||||
|
|
||||||
|
- **mcp23xxx** (**Required**, :ref:`config-id`): The id of the MCP23017 component.
|
||||||
|
- **interrupt** (*Optional*): Set this pin to trigger the port INT pin on the component. Can be one of ``CHANGE``, ``RISING``, ``FALLING``.
|
||||||
|
- All other options from :ref:`Pin Schema <config-pin_schema>`
|
||||||
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -15,8 +15,8 @@ This is exactly the same API as the MCP23SXX I/O Expander except talks on the SP
|
||||||
|
|
||||||
.. _mcp23S08-label:
|
.. _mcp23S08-label:
|
||||||
|
|
||||||
MCP23S08
|
MCP23S08 Component
|
||||||
--------
|
------------------
|
||||||
|
|
||||||
The MCP23S08 component (`datasheet <http://ww1.microchip.com/downloads/en/DeviceDoc/MCP23008-MCP23S08-Data-Sheet-20001919F.pdf>`__,
|
The MCP23S08 component (`datasheet <http://ww1.microchip.com/downloads/en/DeviceDoc/MCP23008-MCP23S08-Data-Sheet-20001919F.pdf>`__,
|
||||||
`Digi-Key <https://www.digikey.com/product-detail/en/microchip-technology/MCP23S08-E-P/MCP23S08-E-P-ND/735954>`__) has 8 GPIOs that can be configured independently.
|
`Digi-Key <https://www.digikey.com/product-detail/en/microchip-technology/MCP23S08-E-P/MCP23S08-E-P-ND/735954>`__) has 8 GPIOs that can be configured independently.
|
||||||
|
@ -34,7 +34,7 @@ The MCP23S08 component (`datasheet <http://ww1.microchip.com/downloads/en/Device
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23S08 Pin #0"
|
name: "MCP23S08 Pin #0"
|
||||||
pin:
|
pin:
|
||||||
mcp23s08: mcp23s08_hub
|
mcp23xxx: mcp23s08_hub
|
||||||
# Use pin number 0
|
# Use pin number 0
|
||||||
number: 0
|
number: 0
|
||||||
# One of INPUT, INPUT_PULLUP or OUTPUT
|
# One of INPUT, INPUT_PULLUP or OUTPUT
|
||||||
|
@ -46,7 +46,7 @@ The MCP23S08 component (`datasheet <http://ww1.microchip.com/downloads/en/Device
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23S08 Pin #1"
|
name: "MCP23S08 Pin #1"
|
||||||
pin:
|
pin:
|
||||||
mcp23s08: mcp23s08_hub
|
mcp23xxx: mcp23s08_hub
|
||||||
# Use pin number 1
|
# Use pin number 1
|
||||||
number: 1
|
number: 1
|
||||||
# One of INPUT or INPUT_PULLUP
|
# One of INPUT or INPUT_PULLUP
|
||||||
|
@ -54,18 +54,28 @@ The MCP23S08 component (`datasheet <http://ww1.microchip.com/downloads/en/Device
|
||||||
inverted: False
|
inverted: False
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23S08 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23S08 component.
|
||||||
- **cs_pin** (*Required*, int): The SPI chip select pin to use
|
- **cs_pin** (**Required**, int): The SPI chip select pin to use
|
||||||
- **deviceaddress** (*Optional*, int): The address of the chip.
|
- **deviceaddress** (*Optional*, int): The address of the chip.
|
||||||
Defaults to ``0``.
|
Defaults to ``0``.
|
||||||
|
- **open_drain_interrupt** (*Optional*, bool): Configure interrupt pins to open-drain mode.
|
||||||
|
Useful when the MCP23S08's power supply is greater than 3.3 volts. Note that these pins
|
||||||
|
will require pull-up resistors (to 3.3 volts) when this mode is enabled.
|
||||||
|
|
||||||
|
Pin Configuration Variables:
|
||||||
|
****************************
|
||||||
|
|
||||||
|
- **mcp23xxx** (**Required**, :ref:`config-id`): The id of the MCP23S08 component.
|
||||||
|
- **interrupt** (*Optional*): Set this pin to trigger the INT pin on the component. Can be one of ``CHANGE``, ``RISING``, ``FALLING``.
|
||||||
|
- All other options from :ref:`Pin Schema <config-pin_schema>`
|
||||||
|
|
||||||
|
|
||||||
.. _mcp23S17-label:
|
.. _mcp23S17-label:
|
||||||
|
|
||||||
MCP23S17
|
MCP23S17 Component
|
||||||
--------
|
------------------
|
||||||
|
|
||||||
The MCP23S17 component allows you to use MCP23S17 I/O expanders
|
The MCP23S17 component allows you to use MCP23S17 I/O expanders
|
||||||
(`datasheet <http://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf>`__,
|
(`datasheet <http://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf>`__,
|
||||||
|
@ -90,7 +100,7 @@ binary sensor or GPIO switch.
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23S17 Pin #0"
|
name: "MCP23S17 Pin #0"
|
||||||
pin:
|
pin:
|
||||||
mcp23s17: mcp23s17_hub
|
mcp23xxx: mcp23s17_hub
|
||||||
# Use pin number 0
|
# Use pin number 0
|
||||||
number: 0
|
number: 0
|
||||||
mode: OUTPUT
|
mode: OUTPUT
|
||||||
|
@ -101,7 +111,7 @@ binary sensor or GPIO switch.
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "MCP23S17 Pin #1"
|
name: "MCP23S17 Pin #1"
|
||||||
pin:
|
pin:
|
||||||
mcp23s17: mcp23s17_hub
|
mcp23xxx: mcp23s17_hub
|
||||||
# Use pin number 1
|
# Use pin number 1
|
||||||
number: 1
|
number: 1
|
||||||
# One of INPUT or INPUT_PULLUP
|
# One of INPUT or INPUT_PULLUP
|
||||||
|
@ -109,12 +119,22 @@ binary sensor or GPIO switch.
|
||||||
inverted: False
|
inverted: False
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23S17 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP23S17 component.
|
||||||
- **cs_pin** (*Required*, int): The SPI chip select pin to use.
|
- **cs_pin** (**Required**, int): The SPI chip select pin to use.
|
||||||
- **deviceaddress** (*Optional*, int): The address of the chip.
|
- **deviceaddress** (*Optional*, int): The address of the chip.
|
||||||
Defaults to ``0``.
|
Defaults to ``0``.
|
||||||
|
- **open_drain_interrupt** (*Optional*, bool): Configure interrupt pins to open-drain mode.
|
||||||
|
Useful when the MCP23S17's power supply is greater than 3.3 volts. Note that these pins
|
||||||
|
will require pull-up resistors (to 3.3 volts) when this mode is enabled.
|
||||||
|
|
||||||
|
Pin Configuration Variables:
|
||||||
|
****************************
|
||||||
|
|
||||||
|
- **mcp23xxx** (**Required**, :ref:`config-id`): The id of the MCP23S17 component.
|
||||||
|
- **interrupt** (*Optional*): Set this pin to trigger the port INT pin on the component. Can be one of ``CHANGE``, ``RISING``, ``FALLING``.
|
||||||
|
- All other options from :ref:`Pin Schema <config-pin_schema>`
|
||||||
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
|
|
|
@ -48,7 +48,7 @@ Configuration variables:
|
||||||
- **topic_prefix** (*Optional*, string): The prefix used for all MQTT
|
- **topic_prefix** (*Optional*, string): The prefix used for all MQTT
|
||||||
messages. Should not contain trailing slash. Defaults to
|
messages. Should not contain trailing slash. Defaults to
|
||||||
``<APP_NAME>``.
|
``<APP_NAME>``.
|
||||||
- **log_topic** (*Optional*, :ref:`mqtt-message`) The topic to send MQTT log
|
- **log_topic** (*Optional*, :ref:`mqtt-message`): The topic to send MQTT log
|
||||||
messages to.
|
messages to.
|
||||||
- **birth_message** (*Optional*, :ref:`mqtt-message`): The message to send when
|
- **birth_message** (*Optional*, :ref:`mqtt-message`): The message to send when
|
||||||
a connection to the broker is established. See :ref:`mqtt-last_will_birth` for more information.
|
a connection to the broker is established. See :ref:`mqtt-last_will_birth` for more information.
|
||||||
|
@ -440,9 +440,9 @@ Publish an MQTT message on a topic using this action in automations.
|
||||||
|
|
||||||
Configuration options:
|
Configuration options:
|
||||||
|
|
||||||
- **topic** (*Required*, string, :ref:`templatable <config-templatable>`):
|
- **topic** (**Required**, string, :ref:`templatable <config-templatable>`):
|
||||||
The MQTT topic to publish the message.
|
The MQTT topic to publish the message.
|
||||||
- **payload** (*Required*, string, :ref:`templatable <config-templatable>`): The message content.
|
- **payload** (**Required**, string, :ref:`templatable <config-templatable>`): The message content.
|
||||||
- **qos** (*Optional*, int, :ref:`templatable <config-templatable>`): The `Quality of
|
- **qos** (*Optional*, int, :ref:`templatable <config-templatable>`): The `Quality of
|
||||||
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
|
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
|
||||||
level of the topic. Defaults to 0.
|
level of the topic. Defaults to 0.
|
||||||
|
@ -491,9 +491,9 @@ as seen below.
|
||||||
|
|
||||||
Configuration options:
|
Configuration options:
|
||||||
|
|
||||||
- **topic** (*Required*, string, :ref:`templatable <config-templatable>`):
|
- **topic** (**Required**, string, :ref:`templatable <config-templatable>`):
|
||||||
The MQTT topic to publish the message.
|
The MQTT topic to publish the message.
|
||||||
- **payload** (*Required*, :ref:`lambda <config-lambda>`): The message content.
|
- **payload** (**Required**, :ref:`lambda <config-lambda>`): The message content.
|
||||||
- **qos** (*Optional*, int): The `Quality of
|
- **qos** (*Optional*, int): The `Quality of
|
||||||
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
|
Service <https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels>`__
|
||||||
level of the topic. Defaults to 0.
|
level of the topic. Defaults to 0.
|
||||||
|
|
|
@ -39,12 +39,13 @@ Configuration variables:
|
||||||
automatically be switched on too.
|
automatically be switched on too.
|
||||||
- **inverted** (*Optional*, boolean): If the output should be treated
|
- **inverted** (*Optional*, boolean): If the output should be treated
|
||||||
as inverted. Defaults to ``False``.
|
as inverted. Defaults to ``False``.
|
||||||
- **min_power** (*Optional*, float): Only for float outputs. Sets the
|
|
||||||
minimum output value of this output platform.
|
Float outputs only:
|
||||||
Must be in range from 0 to max_power. Defaults to 0.
|
|
||||||
- **max_power** (*Optional*, float): Only for float outputs. Sets the
|
- **min_power** (*Optional*, float): Sets the minimum output value of this output platform.
|
||||||
maximum output value of this output platform.
|
Must be in range from 0 to max_power. Defaults to ``0``.
|
||||||
Must be in range from min_power to 1. Defaults to 1.
|
- **max_power** (*Optional*, float): Sets the maximum output value of this output platform.
|
||||||
|
Must be in range from min_power to 1. Defaults to ``1``.
|
||||||
|
|
||||||
|
|
||||||
.. _output-turn_on_action:
|
.. _output-turn_on_action:
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
MCP4725 Output
|
||||||
|
==============
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up MCP4725 outputs on the ESP.
|
||||||
|
:image: mcp4725.png
|
||||||
|
|
||||||
|
The MCP4725 output component allows to use `12bit external DAC
|
||||||
|
<https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog-converter-hookup-guide/all>`__
|
||||||
|
in order to have analog output(s) on any board by using I2C. Devices default address is ``0x60``
|
||||||
|
and configurable alternative is ``0x61``.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
|
||||||
|
# Set a global i2c connection
|
||||||
|
i2c:
|
||||||
|
sda: 21
|
||||||
|
scl: 22
|
||||||
|
scan: True
|
||||||
|
|
||||||
|
# Set the output with default (address: 0x60 / global i2c)
|
||||||
|
output:
|
||||||
|
- platform: mcp4725
|
||||||
|
id: dac_output
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
then:
|
||||||
|
- output.set_level:
|
||||||
|
id: dac_output
|
||||||
|
level: 100%
|
||||||
|
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
|
||||||
|
- **address** (*Optional*, int): Manually specify the I2C address of
|
||||||
|
the DAC. Defaults to ``0x60``.
|
||||||
|
- All other options from :ref:`Output <config-output>`.
|
||||||
|
|
||||||
|
Usage with voltages higher than 3.3v
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
In order to drive analog modules with voltages higher than 3.3v, use a `TTL bi-directionnal level
|
||||||
|
converter <https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide/all>`__
|
||||||
|
|
||||||
|
Be careful about what converter you use, some of of them have channels labeled with `RX` and `TX`,
|
||||||
|
in this case only `TX` channels are bi-directional (so you must use 2 `TX` channels for I2C to work).
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :doc:`/components/output/esp32_dac`
|
||||||
|
- :doc:`/components/output/esp8266_pwm`
|
||||||
|
- :ghedit:`Edit`
|
|
@ -8,8 +8,8 @@ MY9231/MY9291 LED driver
|
||||||
|
|
||||||
.. _my9231-component:
|
.. _my9231-component:
|
||||||
|
|
||||||
Component
|
Component/Hub
|
||||||
---------
|
-------------
|
||||||
|
|
||||||
The MY9231/MY9291 component represents a MY9231/MY9291 LED diver chain
|
The MY9231/MY9291 component represents a MY9231/MY9291 LED diver chain
|
||||||
(`MY9231 description <http://www.my-semi.com.tw/file/MY9231_BF_0.91.pdf>`__,
|
(`MY9231 description <http://www.my-semi.com.tw/file/MY9231_BF_0.91.pdf>`__,
|
||||||
|
@ -57,6 +57,40 @@ Configuration variables:
|
||||||
this ``my9231`` component. Use this if you have multiple MY9231/MY9291 chains
|
this ``my9231`` component. Use this if you have multiple MY9231/MY9291 chains
|
||||||
connected at the same time.
|
connected at the same time.
|
||||||
|
|
||||||
|
|
||||||
|
.. _my9231-output:
|
||||||
|
|
||||||
|
Output
|
||||||
|
------
|
||||||
|
|
||||||
|
The MY931/MY9291 output component exposes a MY931/MY9291 channel of a global
|
||||||
|
:ref:`my9231-component` as a float output.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
my9231:
|
||||||
|
- data_pin: GPIO12
|
||||||
|
clock_pin: GPIO14
|
||||||
|
|
||||||
|
# Individual outputs
|
||||||
|
output:
|
||||||
|
- platform: my9231
|
||||||
|
id: 'my9231_output1'
|
||||||
|
channel: 0
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
************************
|
||||||
|
|
||||||
|
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
|
||||||
|
- **channel** (**Required**, int): Chose the channel of the MY9231/MY9291 chain of
|
||||||
|
this output component. Channel 0 is the most close channel.
|
||||||
|
- **my9231_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the
|
||||||
|
:ref:`my9231-component`.
|
||||||
|
Use this if you have multiple MY9231/MY9291 chains you want to use at the same time.
|
||||||
|
- All other options from :ref:`Output <config-output>`.
|
||||||
|
|
||||||
|
|
||||||
Sonoff B1 configuration example
|
Sonoff B1 configuration example
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
|
@ -172,38 +206,6 @@ And here is a complete configuration for the AiThinker AiLight:
|
||||||
white: output_cold_white
|
white: output_cold_white
|
||||||
|
|
||||||
|
|
||||||
.. _my9231-output:
|
|
||||||
|
|
||||||
Driver Output
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The MY931/MY9291 output component exposes a MY931/MY9291 channel of a global
|
|
||||||
:ref:`my9231-component` as a float output.
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
# Example configuration entry
|
|
||||||
my9231:
|
|
||||||
- data_pin: GPIO12
|
|
||||||
clock_pin: GPIO14
|
|
||||||
|
|
||||||
# Individual outputs
|
|
||||||
output:
|
|
||||||
- platform: my9231
|
|
||||||
id: 'my9231_output1'
|
|
||||||
channel: 0
|
|
||||||
|
|
||||||
Configuration variables:
|
|
||||||
************************
|
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
|
|
||||||
- **channel** (**Required**, int): Chose the channel of the MY9231/MY9291 chain of
|
|
||||||
this output component. Channel 0 is the most close channel.
|
|
||||||
- **my9231_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the
|
|
||||||
:ref:`my9231-component`.
|
|
||||||
Use this if you have multiple MY9231/MY9291 chains you want to use at the same time.
|
|
||||||
- All other options from :ref:`Output <config-output>`.
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,8 @@ SM16716 LED driver
|
||||||
|
|
||||||
.. _sm16716-component:
|
.. _sm16716-component:
|
||||||
|
|
||||||
Component
|
Component/Hub
|
||||||
---------
|
-------------
|
||||||
|
|
||||||
The SM16716 component represents a SM16716 LED diver chain
|
The SM16716 component represents a SM16716 LED diver chain
|
||||||
(`SM16716 description <https://github.com/sowbug/sm16716/blob/master/SM16716%20Datasheet%20%5BChinese%5D.pdf>`__,
|
(`SM16716 description <https://github.com/sowbug/sm16716/blob/master/SM16716%20Datasheet%20%5BChinese%5D.pdf>`__,
|
||||||
|
@ -61,8 +61,8 @@ Configuration variables:
|
||||||
|
|
||||||
.. _sm16716-output:
|
.. _sm16716-output:
|
||||||
|
|
||||||
Driver Output
|
Output
|
||||||
-------------
|
------
|
||||||
|
|
||||||
The SM16716 output component exposes a SM16716 channel of a global
|
The SM16716 output component exposes a SM16716 channel of a global
|
||||||
:ref:`sm16716-component` as a float output.
|
:ref:`sm16716-component` as a float output.
|
||||||
|
|
|
@ -38,8 +38,8 @@ Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
|
||||||
- **type** (**Required**, string): The type of output. One of ``binary`` and ``float``.
|
- **type** (**Required**, string): The type of output. One of ``binary`` and ``float``.
|
||||||
- **on_write_action** (*Required*, :ref:`Action <config-action>`): The action that should
|
- **write_action** (**Required**, :ref:`Automation <automation>`): An automation to perform
|
||||||
be performed when the state of the output is updated.
|
when the state of the output is updated.
|
||||||
- All other options from :ref:`Output <config-output>`.
|
- All other options from :ref:`Output <config-output>`.
|
||||||
|
|
||||||
See :apiclass:`output::BinaryOutput` and :apiclass:`output::FloatOutput`.
|
See :apiclass:`output::BinaryOutput` and :apiclass:`output::FloatOutput`.
|
||||||
|
@ -51,10 +51,10 @@ See :apiclass:`output::BinaryOutput` and :apiclass:`output::FloatOutput`.
|
||||||
|
|
||||||
.. _output-template-on_write_action:
|
.. _output-template-on_write_action:
|
||||||
|
|
||||||
``output.template.on_write`` Action
|
``write_action`` Trigger
|
||||||
-----------------------------------
|
------------------------
|
||||||
|
|
||||||
When the state for this output is updated, the on_write action is executed.
|
When the state for this output is updated, the ``write_action`` is triggered.
|
||||||
It is possible to access the state value inside Lambdas:
|
It is possible to access the state value inside Lambdas:
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
|
@ -47,13 +47,24 @@ not work.
|
||||||
inverted: False
|
inverted: False
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this PCF8574 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this PCF8574 component.
|
||||||
- **address** (*Optional*, int): The I²C address of the driver.
|
- **address** (*Optional*, int): The I²C address of the driver.
|
||||||
Defaults to ``0x21``.
|
Defaults to ``0x21``.
|
||||||
- **pcf8575** (*Optional*, boolean): Whether this is a 16-pin PCF8575. Defaults to ``False``.
|
- **pcf8575** (*Optional*, boolean): Whether this is a 16-pin PCF8575. Defaults to ``False``.
|
||||||
|
|
||||||
|
|
||||||
|
Pin configuration variables:
|
||||||
|
****************************
|
||||||
|
|
||||||
|
- **pcf8574** (**Required**, :ref:`config-id`): The id of the PCF8574 component of the pin.
|
||||||
|
- **number** (**Required**, integer): The pin number.
|
||||||
|
- **inverted** (*Optional*, boolean): If all read and written values
|
||||||
|
should be treated as inverted. Defaults to ``False``.
|
||||||
|
- **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT`` or ``OUTPUT``.
|
||||||
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ Configuration variables:
|
||||||
- **pioneer**: Decode and dump Pioneer infrared codes.
|
- **pioneer**: Decode and dump Pioneer infrared codes.
|
||||||
- **jvc**: Decode and dump JVC infrared codes.
|
- **jvc**: Decode and dump JVC infrared codes.
|
||||||
- **samsung**: Decode and dump Samsung infrared codes.
|
- **samsung**: Decode and dump Samsung infrared codes.
|
||||||
|
- **samsung36**: Decode and dump Samsung36 infrared codes.
|
||||||
- **sony**: Decode and dump Sony infrared codes.
|
- **sony**: Decode and dump Sony infrared codes.
|
||||||
- **rc_switch**: Decode and dump RCSwitch RF codes.
|
- **rc_switch**: Decode and dump RCSwitch RF codes.
|
||||||
- **rc5**: Decode and dump RC5 IR codes.
|
- **rc5**: Decode and dump RC5 IR codes.
|
||||||
|
@ -80,6 +81,9 @@ Automations:
|
||||||
- **on_samsung** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
- **on_samsung** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||||
Samsung remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::SamsungData`
|
Samsung remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::SamsungData`
|
||||||
is passed to the automation for use in lambdas.
|
is passed to the automation for use in lambdas.
|
||||||
|
- **on_samsung36** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||||
|
Samsung36 remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::Samsung36Data`
|
||||||
|
is passed to the automation for use in lambdas.
|
||||||
- **on_panasonic** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
- **on_panasonic** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||||
Panasonic remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::PanasonicData`
|
Panasonic remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::PanasonicData`
|
||||||
is passed to the automation for use in lambdas.
|
is passed to the automation for use in lambdas.
|
||||||
|
@ -153,6 +157,11 @@ Remote code selection (exactly one of these has to be included):
|
||||||
|
|
||||||
- **data** (**Required**, int): The data to trigger on, see dumper output for more info.
|
- **data** (**Required**, int): The data to trigger on, see dumper output for more info.
|
||||||
|
|
||||||
|
- **samsung36**: Trigger on a decoded Samsung36 remote code with the given data.
|
||||||
|
|
||||||
|
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
|
||||||
|
- **command** (**Required**, int): The command.
|
||||||
|
|
||||||
- **panasonic**: Trigger on a decoded Panasonic remote code with the given data.
|
- **panasonic**: Trigger on a decoded Panasonic remote code with the given data.
|
||||||
|
|
||||||
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
|
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
|
||||||
|
@ -214,7 +223,7 @@ Remote code selection (exactly one of these has to be included):
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
To caputure the codes more effectively with directly connected receiver like tsop38238 you can try to use `INPUT_PULLUP`:
|
To caputure the codes more effectively with directly connected receiver like tsop38238 you can try to use ``INPUT_PULLUP``:
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,9 @@ Configuration variables:
|
||||||
If you're looking for the same functionality as is default in the ``rpi_rf`` integration in
|
If you're looking for the same functionality as is default in the ``rpi_rf`` integration in
|
||||||
Home Assistant, you'll want to set the **times** to 10 and the **wait_time** to 0s.
|
Home Assistant, you'll want to set the **times** to 10 and the **wait_time** to 0s.
|
||||||
|
|
||||||
|
If you're looking for the same functionality as is default in the ``rpi_rf`` integration in
|
||||||
|
Home Assistant, you'll want to set the **times** to 10 and the **wait_time** to 0s.
|
||||||
|
|
||||||
.. _remote_transmitter-transmit_raw:
|
.. _remote_transmitter-transmit_raw:
|
||||||
|
|
||||||
``remote_transmitter.transmit_raw`` Action
|
``remote_transmitter.transmit_raw`` Action
|
||||||
|
@ -209,6 +212,24 @@ Configuration variables:
|
||||||
- **data** (**Required**, int): The data to send, see dumper output for more details.
|
- **data** (**Required**, int): The data to send, see dumper output for more details.
|
||||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||||
|
|
||||||
|
``remote_transmitter.transmit_samsung36`` Action
|
||||||
|
************************************************
|
||||||
|
|
||||||
|
This :ref:`action <config-action>` sends a Samsung36 infrared remote code to a remote transmitter.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
- remote_transmitter.transmit_samsung36:
|
||||||
|
address: 0x0400
|
||||||
|
command: 0x000E00FF
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **address** (**Required**, int): The address to send, see dumper output for more details.
|
||||||
|
- **command** (**Required**, int): The Samsung36 command to send, see dumper output for more details.
|
||||||
|
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||||
|
|
||||||
``remote_transmitter.transmit_panasonic`` Action
|
``remote_transmitter.transmit_panasonic`` Action
|
||||||
************************************************
|
************************************************
|
||||||
|
|
||||||
|
@ -244,7 +265,7 @@ This :ref:`action <config-action>` sends a Pioneer infrared remote code to a rem
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **rc_code_1** (**Required**, int): The remote control code to send, see dumper output for more details.
|
- **rc_code_1** (**Required**, int): The remote control code to send, see dumper output for more details.
|
||||||
- **rc_code_2** (**Optional**, int): The secondary remote control code to send; some codes are sent in
|
- **rc_code_2** (*Optional*, int): The secondary remote control code to send; some codes are sent in
|
||||||
two parts.
|
two parts.
|
||||||
- Note that ``repeat`` is still optional, however **Pioneer devices may require that a given code is
|
- Note that ``repeat`` is still optional, however **Pioneer devices may require that a given code is
|
||||||
received multiple times before they will act on it.** Add this if your device does not respond to
|
received multiple times before they will act on it.** Add this if your device does not respond to
|
||||||
|
|
|
@ -5,6 +5,12 @@ APDS9960 Sensor
|
||||||
:description: Instructions for setting up APDS9960 sensors.
|
:description: Instructions for setting up APDS9960 sensors.
|
||||||
:image: apds9960.jpg
|
:image: apds9960.jpg
|
||||||
|
|
||||||
|
|
||||||
|
.. _apds9960-component:
|
||||||
|
|
||||||
|
Component/Hub
|
||||||
|
-------------
|
||||||
|
|
||||||
The ``apds9960`` sensor platform allows you to use your APDS9960 RGB and gesture sensors
|
The ``apds9960`` sensor platform allows you to use your APDS9960 RGB and gesture sensors
|
||||||
(`datasheet <https://cdn.sparkfun.com/datasheets/Sensors/Proximity/apds9960.pdf>`__,
|
(`datasheet <https://cdn.sparkfun.com/datasheets/Sensors/Proximity/apds9960.pdf>`__,
|
||||||
`SparkFun`_) with ESPHome.
|
`SparkFun`_) with ESPHome.
|
||||||
|
@ -49,7 +55,13 @@ Base Configuration:
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval
|
||||||
to check the sensor. Defaults to ``60s``.
|
to check the sensor. Defaults to ``60s``.
|
||||||
|
|
||||||
Sensor Configuration:
|
Sensor
|
||||||
|
------
|
||||||
|
|
||||||
|
The ``apds9960`` sensor allows you to use your :doc:`apds9960` to perform different
|
||||||
|
measurements.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
- **name** (**Required**, string): The name for the sensor.
|
- **name** (**Required**, string): The name for the sensor.
|
||||||
- **type** (**Required**, string): The type of sensor measurement. One of
|
- **type** (**Required**, string): The type of sensor measurement. One of
|
||||||
|
@ -63,7 +75,13 @@ Sensor Configuration:
|
||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
Binary Sensor Configuration:
|
Binary Sensor
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The ``apds9960`` binary sensor allows you to use your :doc:`apds9960` to perform different
|
||||||
|
measurements.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
- **name** (**Required**, string): The name for the binary sensor.
|
- **name** (**Required**, string): The name for the binary sensor.
|
||||||
- **direction** (**Required**, string): The direction to measure. One of:
|
- **direction** (**Required**, string): The direction to measure. One of:
|
||||||
|
|
|
@ -6,7 +6,7 @@ AMS AS3935 Franklin Lightning Sensor
|
||||||
:image: images/as3935.jpg
|
:image: images/as3935.jpg
|
||||||
:keywords: as3935
|
:keywords: as3935
|
||||||
|
|
||||||
The ``as3935`` sensor platform allows you to use your AS3935 sensor
|
The **AS3935** sensor platform allows you to use your AS3935 sensor
|
||||||
(`AliExpress`_, `AMS_AS3935`_)
|
(`AliExpress`_, `AMS_AS3935`_)
|
||||||
in order to get notified when a thunderstorm is getting close.
|
in order to get notified when a thunderstorm is getting close.
|
||||||
|
|
||||||
|
@ -14,6 +14,9 @@ The AS3935 can detect the presence of lightning activity and provide an estimati
|
||||||
on the distance to the head of the storm. The chip issues a notification through an interrupt
|
on the distance to the head of the storm. The chip issues a notification through an interrupt
|
||||||
pin.
|
pin.
|
||||||
|
|
||||||
|
Component/Hub
|
||||||
|
-------------
|
||||||
|
|
||||||
The AS3935 can be configured to use either the SPI **or** I²C protocol for data communication.
|
The AS3935 can be configured to use either the SPI **or** I²C protocol for data communication.
|
||||||
First choose which communication method you want to use for the sensor, set the SI pin for the appropriate
|
First choose which communication method you want to use for the sensor, set the SI pin for the appropriate
|
||||||
level and set up the ESPhome integration for the chosen communication method.
|
level and set up the ESPhome integration for the chosen communication method.
|
||||||
|
@ -46,17 +49,20 @@ A1 I²C address selection MSB
|
||||||
.. _AliExpress: https://de.aliexpress.com/af/as3935.html?SearchText=as3935
|
.. _AliExpress: https://de.aliexpress.com/af/as3935.html?SearchText=as3935
|
||||||
.. _AMS_AS3935: https://ams.com/as3935
|
.. _AMS_AS3935: https://ams.com/as3935
|
||||||
|
|
||||||
|
Over SPI
|
||||||
|
--------
|
||||||
|
|
||||||
|
The ``as3935_spi`` sensor platform allows you to use your AS3935 sensor
|
||||||
|
(`AliExpress`_, `AMS_AS3935`_) in order to get notified when a thunderstorm is getting close.
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
# Example configuration for SPI (decide for one!)
|
# Example configuration for SPI (decide for one!)
|
||||||
as3935_spi:
|
as3935_spi:
|
||||||
cs_pin: GPIO12
|
cs_pin: GPIO12
|
||||||
irq_pin: GPIO13
|
irq_pin: GPIO13
|
||||||
# Example configuration for I²C (decide for one!)
|
# Example lightning and energy sensor
|
||||||
as3935_i2c:
|
|
||||||
irq_pin: GPIO12
|
|
||||||
|
|
||||||
# Example configuration for creating sensors
|
|
||||||
sensor:
|
sensor:
|
||||||
- platform: as3935
|
- platform: as3935
|
||||||
lightning_energy:
|
lightning_energy:
|
||||||
|
@ -68,9 +74,10 @@ A1 I²C address selection MSB
|
||||||
name: "Storm Alert"
|
name: "Storm Alert"
|
||||||
|
|
||||||
|
|
||||||
Configuration variables (shared):
|
Configuration variables:
|
||||||
---------------------------------
|
************************
|
||||||
|
|
||||||
|
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
|
||||||
- **irq_pin** (**Required**, :ref:`config-pin`): The IRQ pin, which indicates if a lightning strike has been detected.
|
- **irq_pin** (**Required**, :ref:`config-pin`): The IRQ pin, which indicates if a lightning strike has been detected.
|
||||||
- **indoor** (*Optional*, boolean): Indicates if the sensor is used indoor. Defaults to ``true``.
|
- **indoor** (*Optional*, boolean): Indicates if the sensor is used indoor. Defaults to ``true``.
|
||||||
- **noise_level** (*Optional*, integer): Noise floor level is compared to known reference voltage.
|
- **noise_level** (*Optional*, integer): Noise floor level is compared to known reference voltage.
|
||||||
|
@ -90,34 +97,16 @@ Configuration variables (shared):
|
||||||
- **capacitance** (*Optional*, integer): This setting will add capacitance to the series RLC antenna on the product
|
- **capacitance** (*Optional*, integer): This setting will add capacitance to the series RLC antenna on the product
|
||||||
to help tune its resonance. The datasheet specifies being within 3.5 percent of 500kHz to get optimal lightning
|
to help tune its resonance. The datasheet specifies being within 3.5 percent of 500kHz to get optimal lightning
|
||||||
detection and distance sensing. It's possible to add up to 120pF in steps of 8pF to the antenna. Defaults to ``0``.
|
detection and distance sensing. It's possible to add up to 120pF in steps of 8pF to the antenna. Defaults to ``0``.
|
||||||
|
|
||||||
- **watchdog_threshold** (*Optional*, integer): Determines the threshold for events that trigger the IRQ pin.
|
- **watchdog_threshold** (*Optional*, integer): Determines the threshold for events that trigger the IRQ pin.
|
||||||
Defaults to ``2``.
|
Defaults to ``2``.
|
||||||
|
|
||||||
Sensor entries:
|
|
||||||
|
|
||||||
- **lightning_energy** (*Optional*): Lightning energy value. According to the datasheet this is only a pure value that doesn't have any physical meaning.
|
Over I²C
|
||||||
|
--------
|
||||||
|
|
||||||
- **name** (**Required**, string): The name for the lightning energy sensor.
|
The ``as3935_i2c`` sensor platform allows you to use your AS3935 sensor
|
||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
(`AliExpress`_, `AMS_AS3935`_) in order to get notified when a thunderstorm is getting close.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
|
||||||
- **distance** (*Optional*): Distance in km to the front of the storm and not the distance to a lightning strike.
|
|
||||||
|
|
||||||
- **name** (**Required**, string): The name for the distance sensor.
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
|
||||||
- **binary sensor** (*Optional*): Binary sensor that indicates if a lightning strike was detected.
|
|
||||||
|
|
||||||
- **name** (**Required**, string): The name of the binary sensor.
|
|
||||||
- **id** (*Optional*,
|
|
||||||
:ref:`config-id`): Manually specify
|
|
||||||
the ID used for code generation.
|
|
||||||
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
|
||||||
|
|
||||||
Configuration variables (I²C):
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Use this if you want to use your AS3935 in I²C mode.
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -135,33 +124,67 @@ Use this if you want to use your AS3935 in I²C mode.
|
||||||
- platform: as3935
|
- platform: as3935
|
||||||
name: "Storm Alert"
|
name: "Storm Alert"
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
************************
|
||||||
|
|
||||||
|
|
||||||
- **address** (*Optional*, int): Manually specify the I²C address of
|
- **address** (*Optional*, int): Manually specify the I²C address of
|
||||||
the sensor. Defaults to ``0x03`` (``A0` and ``A1`` pins pulled low).
|
the sensor. Defaults to ``0x03`` (``A0` and ``A1`` pins pulled low).
|
||||||
Another address can be ``0x02``.
|
Another address can be ``0x02``.
|
||||||
|
- **irq_pin** (**Required**, :ref:`config-pin`): The IRQ pin, which indicates if a lightning strike has been detected.
|
||||||
|
- **indoor** (*Optional*, boolean): Indicates if the sensor is used indoor. Defaults to ``true``.
|
||||||
|
- **noise_level** (*Optional*, integer): Noise floor level is compared to known reference voltage.
|
||||||
|
If this level is exceeded the chip will issue an interrupt to the IRQ pin, broadcasting that it can not
|
||||||
|
operate properly due to noise (INT_NH). Defaults to ``2``.
|
||||||
|
- **spike_rejection** (*Optional*, integer): Helps to differentiate between real events and actual lightning.
|
||||||
|
Increasing this value increases robustness at the cost of sensitivity to distant events. Defaults to ``2``.
|
||||||
|
- **lightning_threshold** (*Optional*, integer): The number of lightnings that must appear in a 15-minute time
|
||||||
|
window before a lightning storm is detected.
|
||||||
|
15 minutes is the window of time before the number of detected lightning events is reset.
|
||||||
|
The number of lightning strikes can be set to 1,5,9, or 16. Defaults to ``1``.
|
||||||
|
- **mask_disturber** (*Optional*, boolean): This setting will return whether or not disturbers trigger
|
||||||
|
the IRQ Pin. Defaults to ``false``.
|
||||||
|
- **div_ratio** (*Optional*, integer): The antenna is designed to resonate at 500kHz and so can be tuned
|
||||||
|
with the following setting. The accuracy of the antenna must be within 3.5 percent of that value for
|
||||||
|
proper signal validation and distance estimation. Defaults to ``0``.
|
||||||
|
- **capacitance** (*Optional*, integer): This setting will add capacitance to the series RLC antenna on the product
|
||||||
|
to help tune its resonance. The datasheet specifies being within 3.5 percent of 500kHz to get optimal lightning
|
||||||
|
detection and distance sensing. It's possible to add up to 120pF in steps of 8pF to the antenna. Defaults to ``0``.
|
||||||
|
- **watchdog_threshold** (*Optional*, integer): Determines the threshold for events that trigger the IRQ pin.
|
||||||
|
Defaults to ``2``.
|
||||||
|
|
||||||
Configuration variables (SPI):
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
Use this if you want to use your AS3935 in SPI mode.
|
Sensor
|
||||||
|
------
|
||||||
|
|
||||||
.. code-block:: yaml
|
A sensor platform to read lightning data
|
||||||
|
|
||||||
# Example configuration for SPI (decide for one!)
|
Configuration variables:
|
||||||
as3935_spi:
|
|
||||||
cs_pin: GPIO12
|
- **lightning_energy** (*Optional*): Lightning energy value. According to the datasheet this is only a pure value that doesn't have any physical meaning.
|
||||||
irq_pin: GPIO13
|
|
||||||
# Example lightning and energy sensor
|
- **name** (**Required**, string): The name for the lightning energy sensor.
|
||||||
sensor:
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- platform: as3935
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
lightning_energy:
|
|
||||||
name: "Lightning Energy"
|
- **distance** (*Optional*): Distance in km to the front of the storm and not the distance to a lightning strike.
|
||||||
distance:
|
|
||||||
name: "Distance Storm"
|
- **name** (**Required**, string): The name for the distance sensor.
|
||||||
binary_sensor:
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- platform: as3935
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
name: "Storm Alert"
|
|
||||||
|
|
||||||
|
Binary Sensor
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Binary sensor that indicates if a lightning strike was detected.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the binary sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
- All other options from :ref:`Binary Sensor <config-binary_sensor>`.
|
||||||
|
|
||||||
- **cs_pin** (*Required*, :ref:`Pin Schema <config-pin_schema>`): The chip select pin.
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -403,6 +403,7 @@ Note that the number of arguments you put in the curly braces *must* match the n
|
||||||
``sensors:`` block - *and* they must be in the same order.
|
``sensors:`` block - *and* they must be in the same order.
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
************************
|
||||||
|
|
||||||
- **lambda** (**Required**, :ref:`lambda <config-lambda>`): The lambda to run for instantiating the
|
- **lambda** (**Required**, :ref:`lambda <config-lambda>`): The lambda to run for instantiating the
|
||||||
sensor(s).
|
sensor(s).
|
||||||
|
|
|
@ -45,8 +45,8 @@ Configuration variables:
|
||||||
|
|
||||||
.. _dallas-sensor:
|
.. _dallas-sensor:
|
||||||
|
|
||||||
Sensors
|
Sensor
|
||||||
-------
|
------
|
||||||
|
|
||||||
The ``dallas`` sensor allows you to use DS18B20 and similar sensors.
|
The ``dallas`` sensor allows you to use DS18B20 and similar sensors.
|
||||||
First, you need to define a :ref:`dallas sensor component <dallas-component>`.
|
First, you need to define a :ref:`dallas sensor component <dallas-component>`.
|
||||||
|
|
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -27,6 +27,7 @@ override them if you want to.
|
||||||
# Optional variables:
|
# Optional variables:
|
||||||
unit_of_measurement: "°C"
|
unit_of_measurement: "°C"
|
||||||
icon: "mdi:water-percent"
|
icon: "mdi:water-percent"
|
||||||
|
device_class: "temperature"
|
||||||
accuracy_decimals: 1
|
accuracy_decimals: 1
|
||||||
expire_after: 30s
|
expire_after: 30s
|
||||||
filters:
|
filters:
|
||||||
|
@ -40,7 +41,11 @@ Configuration variables:
|
||||||
- **unit_of_measurement** (*Optional*, string): Manually set the unit
|
- **unit_of_measurement** (*Optional*, string): Manually set the unit
|
||||||
of measurement the sensor should advertise its values with. This does
|
of measurement the sensor should advertise its values with. This does
|
||||||
not actually do any maths (conversion between units).
|
not actually do any maths (conversion between units).
|
||||||
- **icon** (*Optional*, icon): Manually set the icon to use for the sensor in the frontend.
|
- **device_class** (*Optional*, string): The device class for the
|
||||||
|
sensor. See https://www.home-assistant.io/integrations/sensor/#device-class
|
||||||
|
for a list of available options. Set to ``""`` to remove the default device class of a sensor.
|
||||||
|
- **icon** (*Optional*, icon): Manually set the icon to use for the sensor in the frontend. The icon set here
|
||||||
|
is ignored by Home Assistant, if a device class is already set.
|
||||||
- **accuracy_decimals** (*Optional*, int): Manually set the accuracy of decimals to use when reporting values.
|
- **accuracy_decimals** (*Optional*, int): Manually set the accuracy of decimals to use when reporting values.
|
||||||
- **filters** (*Optional*): Specify filters to use for some basic
|
- **filters** (*Optional*): Specify filters to use for some basic
|
||||||
transforming of values. See :ref:`Sensor Filters <sensor-filters>` for more information.
|
transforming of values. See :ref:`Sensor Filters <sensor-filters>` for more information.
|
||||||
|
@ -127,8 +132,10 @@ for platforms with multiple sensors)
|
||||||
- delta: 5.0
|
- delta: 5.0
|
||||||
- lambda: return x * (9.0/5.0) + 32.0;
|
- lambda: return x * (9.0/5.0) + 32.0;
|
||||||
|
|
||||||
``offset`` / ``multiply``
|
``offset``
|
||||||
*************************
|
**********
|
||||||
|
|
||||||
|
Adds a constant value to each sensor value.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -139,8 +146,10 @@ for platforms with multiple sensors)
|
||||||
- offset: 2.0
|
- offset: 2.0
|
||||||
- multiply: 1.2
|
- multiply: 1.2
|
||||||
|
|
||||||
Offset adds a constant value to each sensor value. Multiply multiplies each value
|
``multiply``
|
||||||
by a constant value.
|
************
|
||||||
|
|
||||||
|
Multiplies each value by a constant value.
|
||||||
|
|
||||||
.. _sensor-filter-calibrate_linear:
|
.. _sensor-filter-calibrate_linear:
|
||||||
|
|
||||||
|
@ -200,7 +209,7 @@ degree with a least squares solver.
|
||||||
``filter_out``
|
``filter_out``
|
||||||
**************
|
**************
|
||||||
|
|
||||||
Filter out specific values to be displayed. For example to filter out the value ``85.0``
|
(**Required**, number): Filter out specific values to be displayed. For example to filter out the value ``85.0``
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -213,8 +222,9 @@ Filter out specific values to be displayed. For example to filter out the value
|
||||||
``median``
|
``median``
|
||||||
**********
|
**********
|
||||||
|
|
||||||
Calculate moving median over the data. This can be used to filter outliers from the received
|
A `simple moving median <https://en.wikipedia.org/wiki/Median_filter#Worked_1D_example>`__
|
||||||
sensor data. A large window size will make the filter slow to react to input changes.
|
over the last few values. This can be used to filter outliers from the received sensor data. A large
|
||||||
|
window size will make the filter slow to react to input changes.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -227,28 +237,78 @@ sensor data. A large window size will make the filter slow to react to input cha
|
||||||
send_every: 4
|
send_every: 4
|
||||||
send_first_at: 3
|
send_first_at: 3
|
||||||
|
|
||||||
- **median**: A `simple moving median
|
Configuration variables:
|
||||||
<https://en.wikipedia.org/wiki/Median_filter#Worked_1D_example>`__
|
|
||||||
over the last few values.
|
|
||||||
|
|
||||||
- **window_size**: The number of values over which to calculate the median
|
- **window_size** (*Optional*, integer): The number of values over which to calculate the median
|
||||||
when pushing out a value. This number should
|
when pushing out a value. This number should
|
||||||
be odd if you want an actual received value pushed out.
|
be odd if you want an actual received value pushed out.
|
||||||
Defaults to ``5``.
|
Defaults to ``5``.
|
||||||
- **send_every**: How often a sensor value should be pushed out. For
|
- **send_every** (*Optional*, integer): How often a sensor value should be pushed out. For
|
||||||
example, in above configuration the median is calculated after every 4th
|
example, in above configuration the median is calculated after every 4th
|
||||||
received sensor value, over the last 7 received values.
|
received sensor value, over the last 7 received values.
|
||||||
Defaults to ``5``.
|
Defaults to ``5``.
|
||||||
- **send_first_at**: By default, the very first raw value on boot is immediately
|
- **send_first_at** (*Optional*, integer): By default, the very first raw value on boot is immediately
|
||||||
published. With this parameter you can specify when the very first value is to be sent.
|
published. With this parameter you can specify when the very first value is to be sent.
|
||||||
Must be smaller than or equal to ``send_every``
|
Must be smaller than or equal to ``send_every``
|
||||||
Defaults to ``1``.
|
Defaults to ``1``.
|
||||||
|
|
||||||
``sliding_window_moving_average`` / ``exponential_moving_average``
|
``min``
|
||||||
******************************************************************
|
*******
|
||||||
|
|
||||||
Two simple moving averages over the data. These can be used to have a short update interval
|
A moving minimum over the last few values. A large window size will make the filter slow to
|
||||||
on the sensor but only push out an average on a specific interval (thus increasing resolution).
|
react to input changes.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
- platform: wifi_signal
|
||||||
|
# ...
|
||||||
|
filters:
|
||||||
|
- min:
|
||||||
|
window_size: 7
|
||||||
|
send_every: 4
|
||||||
|
send_first_at: 3
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **window_size** (*Optional*, integer): The number of values over which to calculate the min/max when pushing out a
|
||||||
|
value. Defaults to ``5``.
|
||||||
|
- **send_every** (*Optional*, integer): How often a sensor value should be pushed out. For
|
||||||
|
example, in above configuration the min is calculated after every 4th
|
||||||
|
received sensor value, over the last 7 received values.
|
||||||
|
Defaults to ``5``.
|
||||||
|
- **send_first_at** (*Optional*, integer): By default, the very first raw value on boot is immediately
|
||||||
|
published. With this parameter you can specify when the very first value is to be sent.
|
||||||
|
Must be smaller than or equal to ``send_every``
|
||||||
|
Defaults to ``1``.
|
||||||
|
|
||||||
|
``max``
|
||||||
|
*******
|
||||||
|
|
||||||
|
A moving maximum over the last few values. A large window size will make the filter slow to
|
||||||
|
react to input changes.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **window_size** (*Optional*, integer): The number of values over which to calculate the min/max
|
||||||
|
when pushing out a value.
|
||||||
|
Defaults to ``5``.
|
||||||
|
- **send_every** (*Optional*, integer): How often a sensor value should be pushed out. For
|
||||||
|
example, in above configuration the min is calculated after every 4th
|
||||||
|
received sensor value, over the last 7 received values.
|
||||||
|
Defaults to ``5``.
|
||||||
|
- **send_first_at** (*Optional*, integer): By default, the very first raw value on boot is immediately
|
||||||
|
published. With this parameter you can specify when the very first value is to be sent.
|
||||||
|
Must be smaller than or equal to ``send_every``
|
||||||
|
Defaults to ``1``.
|
||||||
|
|
||||||
|
|
||||||
|
``sliding_window_moving_average``
|
||||||
|
*********************************
|
||||||
|
|
||||||
|
A `simple moving average <https://en.wikipedia.org/wiki/Moving_average#Simple_moving_average>`__
|
||||||
|
over the last few values. It can be used to have a short update interval on the sensor but only push
|
||||||
|
out an average on a specific interval (thus increasing resolution).
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -260,28 +320,36 @@ on the sensor but only push out an average on a specific interval (thus increasi
|
||||||
window_size: 15
|
window_size: 15
|
||||||
send_every: 15
|
send_every: 15
|
||||||
|
|
||||||
- **sliding_window_moving_average**: A `simple moving
|
Configuration variables:
|
||||||
average <https://en.wikipedia.org/wiki/Moving_average#Simple_moving_average>`__
|
|
||||||
over the last few values.
|
|
||||||
|
|
||||||
- **window_size**: The number of values over which to perform an
|
- **window_size** (*Optional*, integer): The number of values over which to perform an
|
||||||
average when pushing out a value.
|
average when pushing out a value.
|
||||||
- **send_every**: How often a sensor value should be pushed out. For
|
- **send_every** (*Optional*, integer): How often a sensor value should be pushed out. For
|
||||||
example, in above configuration the weighted average is only
|
example, in above configuration the weighted average is only
|
||||||
pushed out on every 15th received sensor value.
|
pushed out on every 15th received sensor value.
|
||||||
- **send_first_at**: By default, the very first raw value on boot is immediately
|
- **send_first_at** (*Optional*, integer): By default, the very first raw value on boot is immediately
|
||||||
published. With this parameter you can specify when the very first value is to be sent.
|
published. With this parameter you can specify when the very first value is to be sent.
|
||||||
Defaults to ``1``.
|
Defaults to ``1``.
|
||||||
|
|
||||||
- **exponential_moving_average**: A simple `exponential moving
|
``exponential_moving_average``
|
||||||
average <https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average>`__
|
******************************
|
||||||
over the last few values.
|
|
||||||
|
|
||||||
- **alpha**: The forget factor/alpha value of the filter.
|
A simple `exponential moving average
|
||||||
- **send_every**: How often a sensor value should be pushed out.
|
<https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average>`__ over the last few
|
||||||
|
values. It can be used to have a short update interval on the sensor but only push
|
||||||
|
out an average on a specific interval (thus increasing resolution).
|
||||||
|
|
||||||
``throttle`` / ``heartbeat`` / ``debounce`` / ``delta``
|
Configuration variables:
|
||||||
*******************************************************
|
|
||||||
|
- **alpha** (*Optional*, float): The forget factor/alpha value of the filter. Defaults to ``0.1``.
|
||||||
|
- **send_every** (*Optional*, integer): How often a sensor value should be pushed out. Defaults to ``15``.
|
||||||
|
|
||||||
|
``throttle``
|
||||||
|
************
|
||||||
|
|
||||||
|
Throttle the incoming values. When this filter gets an incoming value,
|
||||||
|
it checks if the last incoming value is at least ``specified time period`` old.
|
||||||
|
If it is not older than the configured value, the value is not passed forward.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -293,28 +361,38 @@ on the sensor but only push out an average on a specific interval (thus increasi
|
||||||
- delta: 5.0
|
- delta: 5.0
|
||||||
- lambda: return x * (9.0/5.0) + 32.0;
|
- lambda: return x * (9.0/5.0) + 32.0;
|
||||||
|
|
||||||
- **throttle**: Throttle the incoming values. When this filter gets an incoming value,
|
|
||||||
it checks if the last incoming value is at least ``specified time period`` old.
|
|
||||||
If it is not older than the configured value, the value is not passed forward.
|
|
||||||
|
|
||||||
- **heartbeat**: Send the last value that this sensor in the specified time interval.
|
``heartbeat``
|
||||||
So a value of ``10s`` will cause the filter to output values every 10s regardless
|
|
||||||
of the input values.
|
|
||||||
|
|
||||||
- **debounce**: Only send values if the last incoming value is at least ``specified time period``
|
|
||||||
old. For example if two values come in at almost the same time, this filter will only output
|
|
||||||
the last value and only after the specified time period has passed without any new incoming
|
|
||||||
values.
|
|
||||||
|
|
||||||
- **delta**: This filter stores the last value passed through this filter and only
|
|
||||||
passes incoming values through if the absolute difference is greater than the configured
|
|
||||||
value. For example if a value of 1.0 first comes in, it's passed on. If the delta filter
|
|
||||||
is configured with a value of 5, it will now not pass on an incoming value of 2.0, only values
|
|
||||||
that are at least 6.0 big or -4.0.
|
|
||||||
|
|
||||||
``or`` Filter
|
|
||||||
*************
|
*************
|
||||||
|
|
||||||
|
Send the last value that this sensor in the specified time interval.
|
||||||
|
So a value of ``10s`` will cause the filter to output values every 10s regardless
|
||||||
|
of the input values.
|
||||||
|
|
||||||
|
``debounce``
|
||||||
|
************
|
||||||
|
|
||||||
|
Only send values if the last incoming value is at least ``specified time period``
|
||||||
|
old. For example if two values come in at almost the same time, this filter will only output
|
||||||
|
the last value and only after the specified time period has passed without any new incoming
|
||||||
|
values.
|
||||||
|
|
||||||
|
``delta``
|
||||||
|
*********
|
||||||
|
|
||||||
|
This filter stores the last value passed through this filter and only
|
||||||
|
passes incoming values through if the absolute difference is greater than the configured
|
||||||
|
value. For example if a value of 1.0 first comes in, it's passed on. If the delta filter
|
||||||
|
is configured with a value of 5, it will now not pass on an incoming value of 2.0, only values
|
||||||
|
that are at least 6.0 big or -4.0.
|
||||||
|
|
||||||
|
``or``
|
||||||
|
******
|
||||||
|
|
||||||
|
Pass forward a value with the first child filter that returns. Above example
|
||||||
|
will only pass forward values that are *either* at least 1s old or are if the absolute
|
||||||
|
difference is at least 5.0.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
# Example filters:
|
# Example filters:
|
||||||
|
@ -323,22 +401,18 @@ on the sensor but only push out an average on a specific interval (thus increasi
|
||||||
- throttle: 1s
|
- throttle: 1s
|
||||||
- delta: 5.0
|
- delta: 5.0
|
||||||
|
|
||||||
- **or**: Pass forward a value with the first child filter that returns. Above example
|
|
||||||
will only pass forward values that are *either* at least 1s old or are if the absolute
|
|
||||||
difference is at least 5.0.
|
|
||||||
|
|
||||||
|
``lambda``
|
||||||
|
**********
|
||||||
|
|
||||||
``lambda`` Filter
|
Perform a simple mathematical operation over the sensor values. The input value is ``x`` and
|
||||||
*****************
|
the result of the lambda is used as the output (use ``return``).
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
filters:
|
filters:
|
||||||
- lambda: return x * (9.0/5.0) + 32.0;
|
- lambda: return x * (9.0/5.0) + 32.0;
|
||||||
|
|
||||||
**lambda**: Perform a simple mathematical operation over the sensor
|
|
||||||
values. The input value is ``x`` and the result of the lambda is used
|
|
||||||
as the output (use ``return``).
|
|
||||||
|
|
||||||
Make sure to add ``.0`` to all values in the lambda, otherwise divisions of integers will
|
Make sure to add ``.0`` to all values in the lambda, otherwise divisions of integers will
|
||||||
result in integers (not floating point values).
|
result in integers (not floating point values).
|
||||||
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
Inkbird IBS-TH1 Mini BLE Sensor
|
||||||
|
===============================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up Inkbird IBS-TH1 Mini Bluetooth-based temperature and humidity sensors in ESPHome.
|
||||||
|
:image: inkbird_isbth1_mini.jpg
|
||||||
|
:keywords: Inkbird, BLE, Bluetooth, IBS-TH1
|
||||||
|
|
||||||
|
The ``inkbird_ibsth1_mini`` sensor platform lets you track the output of Inkbird IBS-TH1 Mini Bluetooth
|
||||||
|
Low Energy devices using the :doc:`/components/esp32_ble_tracker`. This component will track the
|
||||||
|
temperature, humidity and the battery level of the IBS-TH1 Mini device every time the
|
||||||
|
sensor sends out a BLE broadcast. Note that contrary to other implementations, ESPHome can track as
|
||||||
|
many IBS-TH1 Mini devices at once as you want.
|
||||||
|
|
||||||
|
.. figure:: images/inkbird_isbth1_mini-full.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 80.0%
|
||||||
|
|
||||||
|
Inkbird IBS-TH1 Mini Temperature and Humidity Sensor over BLE.
|
||||||
|
|
||||||
|
.. figure:: images/inkbird_isbth1_mini-ui.png
|
||||||
|
:align: center
|
||||||
|
:width: 80.0%
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
esp32_ble_tracker:
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: inkbird_ibsth1_mini
|
||||||
|
mac_address: 38:81:D7:0A:9C:11
|
||||||
|
temperature:
|
||||||
|
name: "Inkbird IBS-TH1 Mini Temperature"
|
||||||
|
humidity:
|
||||||
|
name: "Inkbird IBS-TH1 Mini Humidity"
|
||||||
|
battery_level:
|
||||||
|
name: "Inkbird IBS-TH1 Mini Battery Level"
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- **mac_address** (**Required**, MAC Address): The MAC address of the Inkbird IBS-TH1 Mini device.
|
||||||
|
- **temperature** (*Optional*): The information for the temperature sensor.
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name for the temperature sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **humidity** (*Optional*): The information for the humidity sensor
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name for the humidity sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **battery_level** (*Optional*): The information for the battery level sensor
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name for the battery level sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
|
||||||
|
Setting Up Devices
|
||||||
|
------------------
|
||||||
|
|
||||||
|
To set up Inkbird IBS-TH1 Mini devices you first need to find their MAC Address so that ESPHome can
|
||||||
|
identify them. So first, create a simple configuration without any ``inkbird_ibsth1_mini`` entries
|
||||||
|
like so:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
esp32_ble_tracker:
|
||||||
|
|
||||||
|
After uploading the ESP32 will immediately try to scan for BLE devices such as the Inkbird IBS-TH1 Mini.
|
||||||
|
When it detects these sensors, it will automatically parse the BLE message print a
|
||||||
|
message like this one:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
[13:36:43][D][esp32_ble_tracker:544]: Found device 38:81:D7:0A:9C:11 RSSI=-53
|
||||||
|
[13:36:43][D][esp32_ble_tracker:565]: Address Type: PUBLIC
|
||||||
|
[13:36:43][D][esp32_ble_tracker:567]: Name: 'sps'
|
||||||
|
|
||||||
|
Note that it can sometimes take some time for the first BLE broadcast to be received. Please note that address type
|
||||||
|
should say 'PUBLIC' and the device name should be 'sps', this is how you find the Inkbird IBS-TH1 Mini among all the
|
||||||
|
other devices.
|
||||||
|
|
||||||
|
Then just copy the address (``38:81:D7:0A:9C:11``) into a new ``sensor.inkbird_ibsth1_mini`` platform
|
||||||
|
entry like in the configuration example at the top.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The ESPHome Inkbird IBS-TH1 Mini integration listens passively to packets the device sends by itself.
|
||||||
|
ESPHome therefore has no impact on the battery life of the device.
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :doc:`/components/esp32_ble_tracker`
|
||||||
|
- :doc:`/components/sensor/index`
|
||||||
|
- :apiref:`inkbird_ibsth1_mini/inkbird_ibsth1_mini.h`
|
||||||
|
- `OpenMQTTGateway <https://github.com/1technophile/OpenMQTTGateway>`__ by `@1technophile <https://github.com/1technophile>`__
|
||||||
|
- :ghedit:`Edit`
|
|
@ -15,8 +15,10 @@ hold circuitry.
|
||||||
:width: 50.0%
|
:width: 50.0%
|
||||||
|
|
||||||
|
|
||||||
MCP3008
|
.. _mcp3008-component:
|
||||||
-------
|
|
||||||
|
Component/Hub
|
||||||
|
-------------
|
||||||
|
|
||||||
The MCP3008 component allows you to use MCP3008 8-Channel 10-Bit A/D Converter
|
The MCP3008 component allows you to use MCP3008 8-Channel 10-Bit A/D Converter
|
||||||
(`datasheet <http://ww1.microchip.com/downloads/en/DeviceDoc/21295d.pdf>`__,
|
(`datasheet <http://ww1.microchip.com/downloads/en/DeviceDoc/21295d.pdf>`__,
|
||||||
|
@ -65,14 +67,19 @@ If you want just the scaled value you can use the read_data function
|
||||||
name: Freezer Temperature
|
name: Freezer Temperature
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
MCP3008 Component
|
|
||||||
*****************
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP3008 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP3008 component.
|
||||||
- **cs_pin** (**Required**, int): The SPI cable select pin to use
|
- **cs_pin** (**Required**, int): The SPI cable select pin to use
|
||||||
|
|
||||||
MCP3008 Sensor Component
|
|
||||||
************************
|
Sensor
|
||||||
|
------
|
||||||
|
|
||||||
|
The ``mcp3008`` sensor allows you to use your MCP3008 10-Bit A/D Converter sensors with ESPHome.
|
||||||
|
First, setup a :ref:`MCP3008 Hub <mcp3008-component>` for your MCP3008 sensor and then use this
|
||||||
|
sensor platform to create individual sensors that will report the voltage to Home Assistant.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id of the parent MCP3008 component.
|
- **id** (**Required**, :ref:`config-id`): The id of the parent MCP3008 component.
|
||||||
- **number** (**Required**, int): The pin number of the MCP3008
|
- **number** (**Required**, int): The pin number of the MCP3008
|
||||||
- **reference_voltage** (*Optional*, float): The reference voltage. Defaults to ``3.3V``.
|
- **reference_voltage** (*Optional*, float): The reference voltage. Defaults to ``3.3V``.
|
||||||
|
|
|
@ -32,15 +32,11 @@ required to be set up in your configuration for this sensor to work.
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
- **temperature** (**Required**): The information for the temperature sensor.
|
- **name** (**Required**, string): The name for the temperature sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
- **name** (**Required**, string): The name for the temperature sensor.
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
|
||||||
|
|
||||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x18``.
|
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x18``.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
Pulse Meter Sensor
|
||||||
|
==================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up pulse meter sensors.
|
||||||
|
:image: pulse.png
|
||||||
|
|
||||||
|
The pulse meter sensor allows you to count the number and frequency of pulses on any pin. It is intended to be a drop-in replacement
|
||||||
|
for :doc:`integration sensor </components/sensor/pulse_counter>`, but offering better resolution.
|
||||||
|
It measures the time between rising edges on a pin, for each pulse it outputs the frequency in pulses/min.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
sensor:
|
||||||
|
- platform: pulse_meter
|
||||||
|
pin: 12
|
||||||
|
name: "Pulse Meter"
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- **pin** (**Required**, :ref:`config-pin`): The pin to count pulses on.
|
||||||
|
- **name** (**Required**, string): The name of the sensor.
|
||||||
|
|
||||||
|
- **internal_filter** (*Optional*, :ref:`config-time`): If a pulse shorter than this
|
||||||
|
time is detected, it’s discarded and no pulse is counted. Defaults to ``13us``. For S0 pulse meters that are used to meter power consumption 50-100 ms is a reasonable value.
|
||||||
|
|
||||||
|
- **timeout** (*Optional*, :ref:`config-time`): If we don't see a pulse for this length of time, we assume 0 pulses/sec. Defaults to ``5 min``.
|
||||||
|
- **total** (*Optional*, :ref:`Sensor <config-sensor>`): An additional sensor that outputs the total number of pulses counted.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
Converting units
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The sensor defaults to units of “pulses/min”. You can change this by using :ref:`sensor-filters`.
|
||||||
|
For example, if you’re using the pulse meter with a photodiode to
|
||||||
|
count the light pulses on a power meter that outputs 1000 pulses per kWh,
|
||||||
|
you can use the following to output instantaneous usage in kW:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
sensor:
|
||||||
|
- platform: pulse_meter
|
||||||
|
pin: 12
|
||||||
|
unit_of_measurement: 'kW'
|
||||||
|
name: 'Electricity Usage'
|
||||||
|
filters:
|
||||||
|
- multiply: 0.06
|
||||||
|
|
||||||
|
Counting total pulses
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
When the total sensor is configured, pulse_meter also reports the total
|
||||||
|
number of pulses measured. When used on a power meter, this can be used to
|
||||||
|
measure the total consumed energy in kWh.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
sensor:
|
||||||
|
- platform: pulse_meter
|
||||||
|
pin: 12
|
||||||
|
unit_of_measurement: 'kW'
|
||||||
|
name: 'Electricity Usage'
|
||||||
|
filters:
|
||||||
|
- multiply: 0.06
|
||||||
|
total:
|
||||||
|
name: "Electricity Total"
|
||||||
|
unit_of_measurement: "kWh"
|
||||||
|
accuracy_decimals: 0
|
||||||
|
filters:
|
||||||
|
- multiply: 0.001
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :ref:`sensor-filters`
|
||||||
|
- :doc:`/components/sensor/pulse_counter`
|
||||||
|
- :apiref:`pulse_meter/pulse_meter_sensor.h`
|
||||||
|
- :ghedit:`Edit`
|
|
@ -129,7 +129,7 @@ Configuration variables:
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
- Only available if RAWv2 protocol is used.
|
- Only available if RAWv2 protocol is used.
|
||||||
|
|
||||||
- **movement_count** (*Optional*): The information for the movement count
|
- **movement_counter** (*Optional*): The information for the movement count
|
||||||
sensor
|
sensor
|
||||||
|
|
||||||
- **name** (**Required**, string): The name for the movement count sensor.
|
- **name** (**Required**, string): The name for the movement count sensor.
|
||||||
|
|
|
@ -64,6 +64,77 @@ Configuration variables:
|
||||||
|
|
||||||
``G+`` should be connected to power supply (supported voltage is 4.5 V to 5.25 V), ``G0`` to ``GND`` pin
|
``G+`` should be connected to power supply (supported voltage is 4.5 V to 5.25 V), ``G0`` to ``GND`` pin
|
||||||
|
|
||||||
|
.. _senseair-background_calibration_action:
|
||||||
|
|
||||||
|
``senseair.background_calibration`` Action
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
This :ref:`action <config-action>` initiates a background calibration on the sensor with the given ID: the current
|
||||||
|
CO2 level will be used as a reference for the 400ppm threshold. Ensure that the sensor is in a stable environment with
|
||||||
|
fresh ambient air, preferably near a window that has already been opened for a sufficient time.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
then:
|
||||||
|
- senseair.background_calibration: my_senseair_id
|
||||||
|
|
||||||
|
.. _senseair-background_calibration_result_action:
|
||||||
|
|
||||||
|
``senseair.background_calibration_result`` Action
|
||||||
|
-------------------------------------------------
|
||||||
|
|
||||||
|
This :ref:`action <config-action>` requests the result of the background calibration procedure from the sensor
|
||||||
|
with the given ID. The value will be printed in ESPHome logs.
|
||||||
|
|
||||||
|
Wait at least one sensor lamp cycle after having triggered the background calibration before requesting its result.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
then:
|
||||||
|
- senseair.background_calibration_result: my_senseair_id
|
||||||
|
|
||||||
|
.. _senseair-abc_get_period_action:
|
||||||
|
|
||||||
|
``senseair.abc_get_period`` Action
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
This :ref:`action <config-action>` requests the currently configured ABC interval from the sensor with the given ID.
|
||||||
|
The value will be printed in ESPHome logs.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
then:
|
||||||
|
- senseair.abc_get_period: my_senseair_id
|
||||||
|
|
||||||
|
.. _senseair-abc_enable_action:
|
||||||
|
|
||||||
|
``senseair.abc_enable`` Action
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This :ref:`action <config-action>` enables Automatic Baseline Calibration on the sensor with the given ID.
|
||||||
|
ABC will be activated with the default interval of 180 hours.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
then:
|
||||||
|
- senseair.abc_enable: my_senseair_id
|
||||||
|
|
||||||
|
.. _senseair-abc_disable_action:
|
||||||
|
|
||||||
|
``senseair.abc_disable`` Action
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
This :ref:`action <config-action>` disables Automatic Baseline Calibration on the sensor with the given ID.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
then:
|
||||||
|
- senseair.abc_disable: my_senseair_id
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -0,0 +1,123 @@
|
||||||
|
SM300D2 7-in-1 Air Quality Sensor
|
||||||
|
=================================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up SM300D2 sensor to work with ESPHome
|
||||||
|
:image: sm300d2-full.jpg
|
||||||
|
:keywords: sm300d2
|
||||||
|
|
||||||
|
The ``sm300d2`` sensor platform allows you to use the SM300D2 7-in-1 Air Quality Sensor with ESPHome.
|
||||||
|
|
||||||
|
.. figure:: images/sm300d2-full.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 50.0%
|
||||||
|
|
||||||
|
SM300D2 7-in-1 Air Quality Sensor.
|
||||||
|
|
||||||
|
.. figure:: images/sm300d2-ui.png
|
||||||
|
:align: center
|
||||||
|
:width: 50.0%
|
||||||
|
|
||||||
|
|
||||||
|
The SM300D2 sensor supports connections via UART or RS485. This platform only supports UART-connections.
|
||||||
|
Make sure you have a :ref:`UART bus <uart>` in your configuration with the ``rx_pin`` connected to the
|
||||||
|
TX pin of the sensor. The sensor does not support receiving data, so the ``tx_pin`` does not need to be
|
||||||
|
connected. The sensor expects the baud rate to be set at 9600.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Example configuration entry
|
||||||
|
uart:
|
||||||
|
rx_pin: D0
|
||||||
|
tx_pin: D1
|
||||||
|
baud_rate: 9600
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: sm300d2
|
||||||
|
co2:
|
||||||
|
name: "SM300D2 CO2 Value"
|
||||||
|
formaldehyde:
|
||||||
|
name: "SM300D2 Formaldehyde Value"
|
||||||
|
tvoc:
|
||||||
|
name: "SM300D2 TVOC Value"
|
||||||
|
pm_2_5:
|
||||||
|
name: "SM300D2 PM2.5 Value"
|
||||||
|
pm_10_0:
|
||||||
|
name: "SM300D2 PM10 Value"
|
||||||
|
temperature:
|
||||||
|
name: "SM300D2 Temperature Value"
|
||||||
|
humidity:
|
||||||
|
name: "SM300D2 Humidity Value"
|
||||||
|
update_interval: 60s
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
|
||||||
|
- **co2** (**Required**): The CO₂ data from the sensor in parts per million (ppm).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the CO₂ sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **formaldehyde** (**Required**): The formaldehyde data of the sensor in micrograms per cubic meter air (µg/m³).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the formaldehyde sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **tvoc** (**Required**): The total volatile organic compounds (TVOC) data of the sensor in micrograms per cubic meter air (µg/m³).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the TVOC sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **pm_2_5** (**Required**): The PM2.5 data of the sensor in micrograms per cubic meter air (µg/m³).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the PM2.5 sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **pm_10_0** (**Required**): The PM10 data of the sensor in micrograms per cubic meter air (µg/m³).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the PM10 sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **temperature** (**Required**): The temperature data of the sensor in degrees celsius (°C).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the temperature sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **humidity** (**Required**): The humidity data of the sensor in percent relative humidity (%).
|
||||||
|
|
||||||
|
- **name** (**Required**, string): The name of the humidity sensor.
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||||
|
sensor. Defaults to ``60s``.
|
||||||
|
|
||||||
|
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component <uart>` if you want
|
||||||
|
to use multiple UART buses.
|
||||||
|
|
||||||
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for actions.
|
||||||
|
|
||||||
|
.. figure:: images/sm300d2-pins.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 80.0%
|
||||||
|
|
||||||
|
Pins on the SM300D2. UART RX is not in use.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
``5V`` should be connected to power supply (supported voltage is 4.8 V to 5.2 V), ``GD`` to ``GND`` pin
|
||||||
|
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :ref:`sensor-filters`
|
||||||
|
- :apiref:`sm300d2/sm300d2.h`
|
||||||
|
- :ghedit:`Edit`
|
|
@ -34,8 +34,8 @@ If accuracy is a must, see section 8.2.2.2 of the `datasheet <https://www.ti.com
|
||||||
name: "Living Room Temperature"
|
name: "Living Room Temperature"
|
||||||
update_interval: 60s
|
update_interval: 60s
|
||||||
|
|
||||||
Configuration variables
|
Configuration variables:
|
||||||
-----------------------
|
------------------------
|
||||||
|
|
||||||
- **name** (**Required**, string): The name for the temperature sensor.
|
- **name** (**Required**, string): The name for the temperature sensor.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for lambdas/multiple sensors.
|
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for lambdas/multiple sensors.
|
||||||
|
|
|
@ -3,12 +3,12 @@ VL53L0X Time Of Flight Distance Sensor
|
||||||
|
|
||||||
.. seo::
|
.. seo::
|
||||||
:description: Instructions for setting up VL53L0X distance sensors in ESPHome.
|
:description: Instructions for setting up VL53L0X distance sensors in ESPHome.
|
||||||
:image: vl53l0x.jpg
|
:image: vl53l0x.png
|
||||||
:keywords: VL53L0X
|
:keywords: VL53L0X
|
||||||
|
|
||||||
The ``vl53l0x`` sensor platform allows you to use VL53L0X optical time of flight
|
The ``vl53l0x`` sensor platform allows you to use VL53L0X optical time of flight
|
||||||
(`datasheet <https://www.st.com/resource/en/datasheet/vl53l0x.pdf>`__,
|
(`datasheet <https://www.st.com/resource/en/datasheet/vl53l0x.pdf>`__,
|
||||||
`ST <https://www.st.com/resource/en/datasheet/vl53l0x.pdf>`__) with ESPHome
|
`ST <https://www.st.com/en/imaging-and-photonics-solutions/vl53l0x.html>`__) with ESPHome
|
||||||
to measure distances. The sensor works optically by emitting short infrared pulses
|
to measure distances. The sensor works optically by emitting short infrared pulses
|
||||||
and measuring the time it takes the light to be reflected back
|
and measuring the time it takes the light to be reflected back
|
||||||
|
|
||||||
|
@ -17,8 +17,21 @@ on several conditions like surface reflectance, field of view, temperature etc.
|
||||||
you can expect surfaces up to 60cm to work, after that you need to make sure the surface is reflecting
|
you can expect surfaces up to 60cm to work, after that you need to make sure the surface is reflecting
|
||||||
well enough (see also section 5 of datasheet).
|
well enough (see also section 5 of datasheet).
|
||||||
|
|
||||||
The :ref:`I²C Bus <i2c>` is
|
.. figure:: images/vl53l0x.png
|
||||||
required to be set up in your configuration for this sensor to work.
|
:align: center
|
||||||
|
:width: 100.0%
|
||||||
|
|
||||||
|
The :ref:`I²C Bus <i2c>` is required to be set up in your configuration for this sensor to work.
|
||||||
|
|
||||||
|
- ``VCC`` connects to 3V3 (``3V3`` will output 3.3V), or directly connect ``VCC`` to 3.3V
|
||||||
|
- ``GND`` connects to ground
|
||||||
|
- ``SCL`` connects I2C SCL (clock)
|
||||||
|
- ``SDA`` connects I2C SDA (data)
|
||||||
|
- ``GPIO1`` is not used by ESPHome
|
||||||
|
- ``XSHUT`` connects to free GPIO pin. Enable/disable device. This is optional if there is only one
|
||||||
|
VL53L0X sensor on the I²C bus and the default ``0x29`` address is used. Otherwise this is required.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. figure:: images/vl53l0x-full.jpg
|
.. figure:: images/vl53l0x-full.jpg
|
||||||
:align: center
|
:align: center
|
||||||
|
@ -32,7 +45,7 @@ required to be set up in your configuration for this sensor to work.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
# Example configuration entry
|
# Simple configuration entry example
|
||||||
sensor:
|
sensor:
|
||||||
- platform: vl53l0x
|
- platform: vl53l0x
|
||||||
name: "VL53L0x Distance"
|
name: "VL53L0x Distance"
|
||||||
|
@ -50,11 +63,44 @@ Configuration variables:
|
||||||
(mega counts per second). This is the minimum signal amplitude detected by the sensor necessary
|
(mega counts per second). This is the minimum signal amplitude detected by the sensor necessary
|
||||||
for it to report a valid reading. Setting a lower value may increase the range of the sensor
|
for it to report a valid reading. Setting a lower value may increase the range of the sensor
|
||||||
but also increases the chance of getting inaccurate readings. Defaults to ``0.25``.
|
but also increases the chance of getting inaccurate readings. Defaults to ``0.25``.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
|
||||||
- **long_range** (*Optional*, bool): Set the sensor in long range mode. The signal_rate_limit is overruled
|
- **long_range** (*Optional*, bool): Set the sensor in long range mode. The signal_rate_limit is overruled
|
||||||
to ``0.1``. Defaults to false.
|
to ``0.1``. Defaults to ``false``.
|
||||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x29``.
|
- **address** (*Optional*, int): Manually specify the i2c address of the sensor. Defaults to ``0x29``.
|
||||||
|
If an address other the ``0x29`` is specified, the sensor will be dynamically re-addressed at startup.
|
||||||
|
A dynamic re-address of sensor requires the ``enable_pin`` configuration variable to be assigned.
|
||||||
|
If more then one VL53L0X sensor is used on the same i2c bus, a unique address must be specified per sensor.
|
||||||
|
- **enable_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin connected to XSHUT
|
||||||
|
on vl53l0x to enable/disable sensor. **Required** if not using address ``0x29`` which is the cause if you
|
||||||
|
have multiple VL53L0X on the same i2c bus. In this case you have to assign a different pin to each VL53L0X.
|
||||||
|
- **timeout** (*Optional*, :ref:`config-time`): Sensor setup timeout. Default to ``10ms``.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# Muliple VL53L0X sensors on same i2c bus
|
||||||
|
# Example configuration entry
|
||||||
|
sensor:
|
||||||
|
- platform: vl53l0x
|
||||||
|
name: "distance1"
|
||||||
|
id: distance1
|
||||||
|
address: 0x41
|
||||||
|
enable_pin: GPIO16
|
||||||
|
timeout: 200us
|
||||||
|
update_interval: 500ms
|
||||||
|
unit_of_measurement: "m"
|
||||||
|
|
||||||
|
- platform: vl53l0x
|
||||||
|
name: "distance2"
|
||||||
|
id: distance2
|
||||||
|
address: 0x42
|
||||||
|
enable_pin: GPIO17
|
||||||
|
timeout: 200us
|
||||||
|
update_interval: 500ms
|
||||||
|
unit_of_measurement: "m"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -0,0 +1,100 @@
|
||||||
|
Xiaomi Miscale Sensors
|
||||||
|
========================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up Xiaomi Miscale bluetooth-based sensors in ESPHome.
|
||||||
|
:image: xiaomi_miscale.jpg
|
||||||
|
:keywords: Xiaomi, BLE, Bluetooth, XMTZC01HM, XMTZC04HM
|
||||||
|
|
||||||
|
The ``xiaomi_miscale`` sensor platform lets you track the output of Xiaomi Bluetooth Low Energy devices using the :doc:`/components/esp32_ble_tracker`. This component will track, for example, the weight of the device every time the sensor sends out a BLE broadcast. Contrary to other implementations, ``xiaomi_miscale`` listens passively to advertisement packets and does not pair with the device. Hence ESPHome has no impact on battery life.
|
||||||
|
|
||||||
|
To get the body scores using your weight, height, age and gender see the custom_components `<https://github.com/dckiller51/bodymiscale>`__
|
||||||
|
|
||||||
|
Supported Devices
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
XMTZC01HM, XMTZC04HM
|
||||||
|
********************
|
||||||
|
|
||||||
|
Miscale measures weight.
|
||||||
|
|
||||||
|
.. figure:: images/xiaomi_miscale.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 60.0%
|
||||||
|
|
||||||
|
Configuration example:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: xiaomi_miscale
|
||||||
|
mac_address: 'C8:47:8C:9F:7B:0A'
|
||||||
|
weight:
|
||||||
|
name: "Xiaomi Mi Scale Weight"
|
||||||
|
|
||||||
|
Configuration example with multiple users :
|
||||||
|
|
||||||
|
You have to replace the numbers in the lambdas to determine your weight which is between X weight and X weight.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: xiaomi_miscale
|
||||||
|
mac_address: 'C8:47:8C:9F:7B:0A'
|
||||||
|
weight:
|
||||||
|
name: "Xiaomi Mi Scale Weight"
|
||||||
|
id: weight_miscale
|
||||||
|
on_value:
|
||||||
|
then:
|
||||||
|
- lambda: |-
|
||||||
|
if (id(weight_miscale).state >= 69 && id(weight_miscale).state <= 74.49) {
|
||||||
|
return id(weight_user1).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 74.50 && id(weight_miscale).state <= 83) {
|
||||||
|
return id(weight_user2).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 46 && id(weight_miscale).state <= 65) {
|
||||||
|
return id(weight_user3).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 28 && id(weight_miscale).state <= 45) {
|
||||||
|
return id(weight_user4).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 5 && id(weight_miscale).state <= 20) {
|
||||||
|
return id(weight_user5).publish_state(x);}
|
||||||
|
|
||||||
|
- platform: template
|
||||||
|
name: Weight Aurélien
|
||||||
|
id: weight_user1
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Weight Siham
|
||||||
|
id: weight_user2
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Weight Théo
|
||||||
|
id: weight_user3
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Weight Sacha
|
||||||
|
id: weight_user4
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Weight Noham
|
||||||
|
id: weight_user5
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :doc:`/components/esp32_ble_tracker`
|
||||||
|
- :doc:`/components/sensor/index`
|
||||||
|
- bodymiscale score integration for Home Assistant (bodymiscale custom component) `<https://github.com/dckiller51/bodymiscale>`__
|
||||||
|
|
||||||
|
- :ghedit:`Edit`
|
|
@ -0,0 +1,149 @@
|
||||||
|
Xiaomi Miscale2 Sensors
|
||||||
|
========================
|
||||||
|
|
||||||
|
.. seo::
|
||||||
|
:description: Instructions for setting up Xiaomi Miscale2 bluetooth-based sensors in ESPHome.
|
||||||
|
:image: xiaomi_miscale2.jpg
|
||||||
|
:keywords: Xiaomi, BLE, Bluetooth, XMTZC02HM, XMTZC05HM
|
||||||
|
|
||||||
|
The ``xiaomi_miscale2`` sensor platform lets you track the output of Xiaomi Bluetooth Low Energy devices using the :doc:`/components/esp32_ble_tracker`. This component will track, for example, the weight and the impedance of the device every time the sensor sends out a BLE broadcast. Contrary to other implementations, ``xiaomi_miscale2`` listens passively to advertisement packets and does not pair with the device. Hence ESPHome has no impact on battery life.
|
||||||
|
|
||||||
|
To get the body scores using your weight, height, age and gender see the custom_components `<https://github.com/dckiller51/bodymiscale>`__
|
||||||
|
|
||||||
|
Supported Devices
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
XMTZC02HM, XMTZC05HM
|
||||||
|
********************
|
||||||
|
|
||||||
|
Miscale2 measures weight and impedance.
|
||||||
|
|
||||||
|
.. figure:: images/xiaomi_miscale2.jpg
|
||||||
|
:align: center
|
||||||
|
:width: 60.0%
|
||||||
|
|
||||||
|
Configuration example:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: xiaomi_miscale2
|
||||||
|
mac_address: '5C:CA:D3:70:D4:A2'
|
||||||
|
weight:
|
||||||
|
name: "Xiaomi Mi Scale Weight"
|
||||||
|
impedance:
|
||||||
|
name: "Xiaomi Mi Scale Impedance"
|
||||||
|
|
||||||
|
Configuration example with multiple users :
|
||||||
|
|
||||||
|
You have to replace the numbers in the lambdas to determine your weight which is between X weight and X weight.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: xiaomi_miscale2
|
||||||
|
mac_address: '5C:CA:D3:70:D4:A2'
|
||||||
|
weight:
|
||||||
|
name: "Xiaomi Mi Scale Weight"
|
||||||
|
id: weight_miscale
|
||||||
|
on_value:
|
||||||
|
then:
|
||||||
|
- lambda: |-
|
||||||
|
if (id(weight_miscale).state >= 69 && id(weight_miscale).state <= 74.49) {
|
||||||
|
return id(weight_user1).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 74.50 && id(weight_miscale).state <= 83) {
|
||||||
|
return id(weight_user2).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 46 && id(weight_miscale).state <= 65) {
|
||||||
|
return id(weight_user3).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 28 && id(weight_miscale).state <= 45) {
|
||||||
|
return id(weight_user4).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 5 && id(weight_miscale).state <= 20) {
|
||||||
|
return id(weight_user5).publish_state(x);}
|
||||||
|
|
||||||
|
impedance:
|
||||||
|
name: "Xiaomi Mi Scale Impedance"
|
||||||
|
id: impedance_xiaomi
|
||||||
|
on_value:
|
||||||
|
then:
|
||||||
|
- lambda: |-
|
||||||
|
if (id(weight_miscale).state >= 69 && id(weight_miscale).state <= 74.49) {
|
||||||
|
return id(impedance_user1).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 74.50 && id(weight_miscale).state <= 83) {
|
||||||
|
return id(impedance_user2).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 46 && id(weight_miscale).state <= 65) {
|
||||||
|
return id(impedance_user3).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 28 && id(weight_miscale).state <= 45) {
|
||||||
|
return id(impedance_user4).publish_state(x);}
|
||||||
|
else if (id(weight_miscale).state >= 5 && id(weight_miscale).state <= 20) {
|
||||||
|
return id(impedance_user5).publish_state(x);}
|
||||||
|
|
||||||
|
- platform: template
|
||||||
|
name: Weight Aurélien
|
||||||
|
id: weight_user1
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Impedance Aurélien
|
||||||
|
id: impedance_user1
|
||||||
|
unit_of_measurement: 'ohm'
|
||||||
|
icon: mdi:omega
|
||||||
|
accuracy_decimals: 0
|
||||||
|
- platform: template
|
||||||
|
name: Weight Siham
|
||||||
|
id: weight_user2
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Impedance Siham
|
||||||
|
id: impedance_user2
|
||||||
|
unit_of_measurement: 'ohm'
|
||||||
|
icon: mdi:omega
|
||||||
|
accuracy_decimals: 0
|
||||||
|
- platform: template
|
||||||
|
name: Weight Théo
|
||||||
|
id: weight_user3
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Impedance Théo
|
||||||
|
id: impedance_user3
|
||||||
|
unit_of_measurement: 'ohm'
|
||||||
|
icon: mdi:omega
|
||||||
|
accuracy_decimals: 0
|
||||||
|
- platform: template
|
||||||
|
name: Weight Sacha
|
||||||
|
id: weight_user4
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Impedance Sacha
|
||||||
|
id: impedance_user4
|
||||||
|
unit_of_measurement: 'ohm'
|
||||||
|
icon: mdi:omega
|
||||||
|
accuracy_decimals: 0
|
||||||
|
- platform: template
|
||||||
|
name: Weight Noham
|
||||||
|
id: weight_user5
|
||||||
|
unit_of_measurement: 'kg'
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
accuracy_decimals: 2
|
||||||
|
- platform: template
|
||||||
|
name: Impedance Noham
|
||||||
|
id: impedance_user5
|
||||||
|
unit_of_measurement: 'ohm'
|
||||||
|
icon: mdi:omega
|
||||||
|
accuracy_decimals: 0
|
||||||
|
|
||||||
|
|
||||||
|
See Also
|
||||||
|
--------
|
||||||
|
|
||||||
|
- :doc:`/components/esp32_ble_tracker`
|
||||||
|
- :doc:`/components/sensor/index`
|
||||||
|
- bodymiscale score integration for Home Assistant (bodymiscale custom component) `<https://github.com/dckiller51/bodymiscale>`__
|
||||||
|
|
||||||
|
- :ghedit:`Edit`
|
|
@ -2,11 +2,11 @@ Sim800L Component
|
||||||
=================
|
=================
|
||||||
|
|
||||||
.. seo::
|
.. seo::
|
||||||
:description: Instructions for setting up the SIM800L GSM module to send and receive SMS in ESPHome.
|
:description: Instructions for setting up the SIM800L GSM module to dial, send and receive SMS in ESPHome.
|
||||||
:image: sim800l.jpg
|
:image: sim800l.jpg
|
||||||
:keywords: SMS SIM800L GSM
|
:keywords: SMS SIM800L GSM
|
||||||
|
|
||||||
The ``SIM800L`` Component provides the ability to send and receive SMS text messages. The device must be
|
The ``SIM800L`` Component provides the ability to dial, send and receive SMS text messages. The device must be
|
||||||
connected via a :doc:`UART bus </components/uart>` supporting both receiving and transmitting line.
|
connected via a :doc:`UART bus </components/uart>` supporting both receiving and transmitting line.
|
||||||
The UART bus must be configured at the same speed of the module which is by default 9600bps.
|
The UART bus must be configured at the same speed of the module which is by default 9600bps.
|
||||||
The required connection wires are ``+VCC``, ``GND``, ``RX`` and ``TX``.
|
The required connection wires are ``+VCC``, ``GND``, ``RX`` and ``TX``.
|
||||||
|
@ -92,11 +92,24 @@ Send a SMS message to a phone recipient using this action in automations.
|
||||||
message: !lambda |-
|
message: !lambda |-
|
||||||
return id(reed_switch).state ? "Door is now OPEN" : "Hey door just CLOSED";
|
return id(reed_switch).state ? "Door is now OPEN" : "Hey door just CLOSED";
|
||||||
|
|
||||||
|
|
||||||
|
.. _sim800l-dial_action:
|
||||||
|
|
||||||
|
``sim800l.dial`` Action
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Dial to a phone recipient using this action in automations.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
then:
|
||||||
|
- sim800l.dial:
|
||||||
|
recipient: '+15551234567'
|
||||||
|
|
||||||
Configuration options:
|
Configuration options:
|
||||||
|
|
||||||
- **recipient** (***Required**, string, :ref:`templatable <config-templatable>`): The message recipient.
|
- **recipient** (***Required**, string, :ref:`templatable <config-templatable>`): The number to dial.
|
||||||
number.
|
|
||||||
- **message** (**Required**, string, :ref:`templatable <config-templatable>`): The message content.
|
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the SIM800L if you have multiple components.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the SIM800L if you have multiple components.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -105,14 +118,14 @@ Configuration options:
|
||||||
|
|
||||||
.. code-block:: cpp
|
.. code-block:: cpp
|
||||||
|
|
||||||
id(sim800l1).send_sms("+15551234567", "The message content");
|
id(sim800l1).dial("+15551234567");
|
||||||
|
|
||||||
|
|
||||||
Getting started with Home Assistant
|
Getting started with Home Assistant
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
The following code will get you up and running with a configuration updating received messages
|
The following code will get you up and running with a configuration updating received messages
|
||||||
on Home Assistant and will also setup a service so you can send messages with your SIM800L.
|
on Home Assistant and will also setup a service so you can send messages and dial with your SIM800L.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
@ -126,6 +139,12 @@ on Home Assistant and will also setup a service so you can send messages with yo
|
||||||
- sim800l.send_sms:
|
- sim800l.send_sms:
|
||||||
recipient: !lambda 'return recipient;'
|
recipient: !lambda 'return recipient;'
|
||||||
message: !lambda 'return message;'
|
message: !lambda 'return message;'
|
||||||
|
- service: dial
|
||||||
|
variables:
|
||||||
|
recipient: string
|
||||||
|
then:
|
||||||
|
- sim800l.dial:
|
||||||
|
recipient: !lambda 'return recipient;'
|
||||||
|
|
||||||
text_sensor:
|
text_sensor:
|
||||||
- platform: template
|
- platform: template
|
||||||
|
@ -159,6 +178,9 @@ To trigger the automation from Home Assistant you can invoke the service with th
|
||||||
data:
|
data:
|
||||||
recipient: "+15551234567"
|
recipient: "+15551234567"
|
||||||
message: "Hello World!"
|
message: "Hello World!"
|
||||||
|
- service: esphome.livingroom_dial
|
||||||
|
data:
|
||||||
|
recipient: "+15551234567"
|
||||||
|
|
||||||
|
|
||||||
Relay management commands received from an authorized sender:
|
Relay management commands received from an authorized sender:
|
||||||
|
|
|
@ -43,7 +43,7 @@ Use of the OE pin is optional. If used, the pin should be pulled up externally.
|
||||||
inverted: False
|
inverted: False
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
************************
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this SN74HC595 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this SN74HC595 component.
|
||||||
- **data_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 SER input.
|
- **data_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 SER input.
|
||||||
|
@ -52,11 +52,21 @@ Configuration variables:
|
||||||
- **oe_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 OE pin
|
- **oe_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 OE pin
|
||||||
- **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up-to 4. Defaults to ``1``.
|
- **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up-to 4. Defaults to ``1``.
|
||||||
|
|
||||||
|
|
||||||
|
Pin configuration variables:
|
||||||
|
****************************
|
||||||
|
|
||||||
|
- **sn74hc595** (**Required**, :ref:`config-id`): The id of the SN74HC595 component of the pin.
|
||||||
|
- **number** (**Required**, integer): The pin number.
|
||||||
|
- **inverted** (*Optional*, boolean): If all written values should be treated as inverted.
|
||||||
|
Defaults to ``False``.
|
||||||
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
- :doc:`switch/gpio`
|
- :doc:`switch/gpio`
|
||||||
- :doc:`binary_sensor/gpio`
|
- :doc:`binary_sensor/gpio`
|
||||||
- `Serial to Parallel Shifting-Out with a 74HC595 <https://www.arduino.cc/en/tutorial/ShiftOut>`
|
- `Serial to Parallel Shifting-Out with a 74HC595 <https://www.arduino.cc/en/tutorial/ShiftOut>`__
|
||||||
- :apiref:`sn74hc595/sn74hc595.h`
|
- :apiref:`sn74hc595/sn74hc595.h`
|
||||||
- :ghedit:`Edit`
|
- :ghedit:`Edit`
|
||||||
|
|
|
@ -16,8 +16,27 @@ and ULN2003 (`datasheet <http://www.ti.com/lit/ds/symlink/uln2003a.pdf>`__) are
|
||||||
This component will not show up in the Home Assistant front-end automatically because
|
This component will not show up in the Home Assistant front-end automatically because
|
||||||
Home Assistant doesn't have support for steppers. Please see :ref:`stepper-ha-config`.
|
Home Assistant doesn't have support for steppers. Please see :ref:`stepper-ha-config`.
|
||||||
|
|
||||||
A4988 Configuration
|
.. _base_stepper_config:
|
||||||
-------------------
|
|
||||||
|
Base Stepper Configuration
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
All stepper configuration schemas inherit these options.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **max_speed** (**Required**, float): The maximum speed in ``steps/s`` (steps per seconds) to drive the
|
||||||
|
stepper at. Note most steppers can't step properly with speeds higher than 250 steps/s.
|
||||||
|
- **acceleration** (*Optional*, float): The acceleration in ``steps/s^2`` (steps per seconds squared)
|
||||||
|
to use when starting to move. The default is ``inf`` which means infinite acceleration, so the
|
||||||
|
stepper will try to drive with the full speed immediately. This value is helpful if that first motion of
|
||||||
|
the motor is too jerky for what it's moving. If you make this a small number, it will take the motor a
|
||||||
|
moment to get up to speed.
|
||||||
|
- **deceleration** (*Optional*, float): The same as ``acceleration``, but for when the motor is decelerating
|
||||||
|
shortly before reaching the set position. Defaults to ``inf`` (immediate deceleration).
|
||||||
|
|
||||||
|
A4988 Component
|
||||||
|
---------------
|
||||||
|
|
||||||
Put this code into the configuration file on ESPhome for this device.
|
Put this code into the configuration file on ESPhome for this device.
|
||||||
|
|
||||||
|
@ -43,16 +62,11 @@ Configuration variables:
|
||||||
stepper driver.
|
stepper driver.
|
||||||
- **dir_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The ``DIRECTION`` pin of the A4988
|
- **dir_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The ``DIRECTION`` pin of the A4988
|
||||||
stepper driver.
|
stepper driver.
|
||||||
- **max_speed** (**Required**, float): The maximum speed in ``steps/s`` (steps per seconds) to drive the
|
|
||||||
stepper at. Note most steppers can't step properly with speeds higher than 250 steps/s.
|
|
||||||
- **sleep_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Optionally also use the ``SLEEP`` pin
|
- **sleep_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Optionally also use the ``SLEEP`` pin
|
||||||
of the A4988 stepper driver. If specified, the driver will be put into sleep mode as soon as the stepper
|
of the A4988 stepper driver. If specified, the driver will be put into sleep mode as soon as the stepper
|
||||||
reaches the target steps.
|
reaches the target steps.
|
||||||
- **acceleration** (*Optional*, float): The acceleration in ``steps/s^2`` (steps per seconds squared)
|
|
||||||
to use when starting to move. The default is ``inf`` which means infinite acceleration, so the
|
- All other from :ref:`base_stepper_config`.
|
||||||
stepper will try to drive with the full speed immediately.
|
|
||||||
- **deceleration** (*Optional*, float): The same as ``acceleration``, but for when the motor is decelerating
|
|
||||||
shortly before reaching the set position. Defaults to ``inf`` (immediate deceleration).
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -67,8 +81,8 @@ Configuration variables:
|
||||||
number: D1
|
number: D1
|
||||||
inverted: True
|
inverted: True
|
||||||
|
|
||||||
ULN2003 Configuration
|
ULN2003 Component
|
||||||
---------------------
|
-----------------
|
||||||
|
|
||||||
Put this code into the configuration file on ESPHome for this device.
|
Put this code into the configuration file on ESPHome for this device.
|
||||||
|
|
||||||
|
@ -92,8 +106,10 @@ Put this code into the configuration file on ESPHome for this device.
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): Specify the ID of the stepper so that you can control it.
|
- **id** (**Required**, :ref:`config-id`): Specify the ID of the stepper so that you can control it.
|
||||||
- **pin_a**, **pin_b**, **pin_c**, **pin_d** (**Required**, :ref:`Pin Schema <config-pin_schema>`):
|
- **pin_a** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin **a** of the stepper control board.
|
||||||
The four pins of the stepper control board.
|
- **pin_b** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin **b** of the stepper control board.
|
||||||
|
- **pin_c** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin **c** of the stepper control board.
|
||||||
|
- **pin_d** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin **d** of the stepper control board.
|
||||||
- **sleep_when_done** (*Optional*, boolean): Whether to turn off all coils when the stepper has
|
- **sleep_when_done** (*Optional*, boolean): Whether to turn off all coils when the stepper has
|
||||||
reached the target position
|
reached the target position
|
||||||
- **step_mode** (*Optional*, string): The step mode to operate the motor with. One of:
|
- **step_mode** (*Optional*, string): The step mode to operate the motor with. One of:
|
||||||
|
@ -102,15 +118,7 @@ Configuration variables:
|
||||||
- ``HALF_STEP``
|
- ``HALF_STEP``
|
||||||
- ``WAVE_DRIVE``
|
- ``WAVE_DRIVE``
|
||||||
|
|
||||||
- **max_speed** (**Required**, float): The maximum speed in ``steps/s`` (steps per seconds) to drive the
|
- All other from :ref:`base_stepper_config`.
|
||||||
stepper at. Note most steppers can't step properly with speeds higher than 250 steps/s.
|
|
||||||
- **acceleration** (*Optional*, float): The acceleration in ``steps/s^2`` (steps per seconds squared)
|
|
||||||
to use when starting to move. The default is ``inf`` which means infinite acceleration, so the
|
|
||||||
stepper will try to drive with the full speed immediately. This value is helpful if that first motion of
|
|
||||||
the motor is too jerky for what it's moving. If you make this a small number, it will take the motor a
|
|
||||||
moment to get up to speed.
|
|
||||||
- **deceleration** (*Optional*, float): The same as ``acceleration``, but for when the motor is decelerating
|
|
||||||
shortly before reaching the set position. Defaults to ``inf`` (immediate deceleration).
|
|
||||||
|
|
||||||
.. _stepper-set_target_action:
|
.. _stepper-set_target_action:
|
||||||
|
|
||||||
|
@ -141,7 +149,7 @@ position (in steps). The stepper will always run towards the target position and
|
||||||
Configuration options:
|
Configuration options:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the stepper.
|
- **id** (**Required**, :ref:`config-id`): The ID of the stepper.
|
||||||
- **target** (*Optional*, int, :ref:`templatable <config-templatable>`): The target position in steps.
|
- **target** (**Required**, int, :ref:`templatable <config-templatable>`): The target position in steps.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
|
@ -195,10 +203,10 @@ the target again.
|
||||||
return -1000;
|
return -1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
Configuration options:
|
Configuration variables:
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The ID of the stepper.
|
- **id** (**Required**, :ref:`config-id`): The ID of the stepper.
|
||||||
- **target** (*Optional*, int, :ref:`templatable <config-templatable>`): The target position in steps.
|
- **position** (**Required**, int, :ref:`templatable <config-templatable>`): The position to report in steps.
|
||||||
|
|
||||||
.. _stepper-set_speed_action:
|
.. _stepper-set_speed_action:
|
||||||
|
|
||||||
|
|
|
@ -57,8 +57,8 @@ Automation:
|
||||||
|
|
||||||
- **elevation** (*Optional*, float): The elevation to cross. Defaults to 0° (horizon).
|
- **elevation** (*Optional*, float): The elevation to cross. Defaults to 0° (horizon).
|
||||||
|
|
||||||
Sensor Platform
|
``sun`` Sensor
|
||||||
---------------
|
--------------
|
||||||
|
|
||||||
Additionally, the sun component exposes its values over a sensor platform.
|
Additionally, the sun component exposes its values over a sensor platform.
|
||||||
|
|
||||||
|
@ -85,8 +85,8 @@ Configuration variables:
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
- All other options from :ref:`Sensor <config-sensor>`.
|
- All other options from :ref:`Sensor <config-sensor>`.
|
||||||
|
|
||||||
Text Sensor Platform
|
``sun`` Text Sensor
|
||||||
--------------------
|
-------------------
|
||||||
|
|
||||||
Other properties like the next sunset time can be read out with the sun text_sensor platform.
|
Other properties like the next sunset time can be read out with the sun text_sensor platform.
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,10 @@ The ``uart`` switch platform allows you to send a pre-defined sequence of bytes
|
||||||
- platform: uart
|
- platform: uart
|
||||||
name: "UART Bytes Output"
|
name: "UART Bytes Output"
|
||||||
data: [0xDE, 0xAD, 0xBE, 0xEF]
|
data: [0xDE, 0xAD, 0xBE, 0xEF]
|
||||||
|
- platform: uart
|
||||||
|
name: "UART Recurring Output"
|
||||||
|
data: [0xDE, 0xAD, 0xBE, 0xEF]
|
||||||
|
send_every: 1s
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
------------------------
|
------------------------
|
||||||
|
@ -31,6 +35,7 @@ Configuration variables:
|
||||||
- **name** (**Required**, string): The name for the switch.
|
- **name** (**Required**, string): The name for the switch.
|
||||||
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
|
- **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
- **send_every** (*Optional*, :ref:`config-time`): Sends recurring data instead of sending once.
|
||||||
- All other options from :ref:`Switch <config-switch>`.
|
- All other options from :ref:`Switch <config-switch>`.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
|
|
|
@ -41,8 +41,8 @@ complicated components that use the pin schema will not work. For example the I
|
||||||
scan_time: 2
|
scan_time: 2
|
||||||
debounce_time: 1
|
debounce_time: 1
|
||||||
|
|
||||||
Configuration variables for the SX1509 device:
|
Configuration variables:
|
||||||
----------------------------------------------
|
------------------------
|
||||||
|
|
||||||
- **id** (**Required**, :ref:`config-id`): The id to use for this SX1509 component.
|
- **id** (**Required**, :ref:`config-id`): The id to use for this SX1509 component.
|
||||||
- **address** (*Optional*, int): The I²C address of the driver.
|
- **address** (*Optional*, int): The I²C address of the driver.
|
||||||
|
@ -53,9 +53,9 @@ up to 8x8 matrix (i.e. 64 keys).
|
||||||
|
|
||||||
- **keypad** (*Optional*): Add this to enable the keypad.
|
- **keypad** (*Optional*): Add this to enable the keypad.
|
||||||
|
|
||||||
- **key_row** (*Required*, int): The number of keypad rows to use. This enables any number of the first 7 pins.
|
- **key_rows** (**Required**, int): The number of keypad rows to use. This enables any number of the first 7 pins.
|
||||||
So a value of 3 enables pins 0,1,2 to be used as the rows for the keypad matrix. This value must be between 1 and 8.
|
So a value of 3 enables pins 0,1,2 to be used as the rows for the keypad matrix. This value must be between 1 and 8.
|
||||||
- **key_columns** (*Required*, int): The number of keypad columns to use. This enables any number of the last 7 pins.
|
- **key_columns** (**Required**, int): The number of keypad columns to use. This enables any number of the last 7 pins.
|
||||||
So a value of 4 enables pins 8,9,10,11 to be used as the columns for the keypad matrix. This value must be between 1 and 8.
|
So a value of 4 enables pins 8,9,10,11 to be used as the columns for the keypad matrix. This value must be between 1 and 8.
|
||||||
- **sleep_time** (*Optional*, int): No key press within this time will set keypad engine to sleep.
|
- **sleep_time** (*Optional*, int): No key press within this time will set keypad engine to sleep.
|
||||||
- **scan_time** (*Optional*, int): Scan time per row (must be set above debounce time).
|
- **scan_time** (*Optional*, int): Scan time per row (must be set above debounce time).
|
||||||
|
@ -108,6 +108,9 @@ Attention should be paid to the capabilities of the I/O pins.
|
||||||
| 15 | ✓ | | ✓ |
|
| 15 | ✓ | | ✓ |
|
||||||
+-----+------------------+-----+--------+
|
+-----+------------------+-----+--------+
|
||||||
|
|
||||||
|
Binary Sensor
|
||||||
|
=============
|
||||||
|
|
||||||
To use the individual keys on the keypad you need to add individual binary_sensor entries in the config.
|
To use the individual keys on the keypad you need to add individual binary_sensor entries in the config.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
@ -125,12 +128,16 @@ To use the individual keys on the keypad you need to add individual binary_senso
|
||||||
row: 0
|
row: 0
|
||||||
col: 1
|
col: 1
|
||||||
|
|
||||||
Configuration variables for the SX1509 keypad keys:
|
Configuration variables:
|
||||||
---------------------------------------------------
|
------------------------
|
||||||
|
|
||||||
- **row** (**Required**, int): The row number for this key on the keypad.
|
- **row** (**Required**, int): The row number for this key on the keypad.
|
||||||
- **col** (**Required**, int): The column number for this key on the keypad.
|
- **col** (**Required**, int): The column number for this key on the keypad.
|
||||||
|
|
||||||
|
|
||||||
|
Pin configuration variables:
|
||||||
|
----------------------------
|
||||||
|
|
||||||
With the following configuration items you may use the individual pins of the SX1509 as the pins for binary_sensor, switch, or output.
|
With the following configuration items you may use the individual pins of the SX1509 as the pins for binary_sensor, switch, or output.
|
||||||
The outputs can in turn be used to add PWM-enabled lights like the monochromatic light.
|
The outputs can in turn be used to add PWM-enabled lights like the monochromatic light.
|
||||||
|
|
||||||
|
@ -174,7 +181,14 @@ The outputs can in turn be used to add PWM-enabled lights like the monochromatic
|
||||||
name: "light0"
|
name: "light0"
|
||||||
output: sx1509_output
|
output: sx1509_output
|
||||||
|
|
||||||
- All other options from :ref:`Output <config-output>`.
|
|
||||||
|
- **sx1509** (**Required**, :ref:`config-id`): The id of the SX1509 component of the pin.
|
||||||
|
- **number** (**Required**, integer): The pin number.
|
||||||
|
- **inverted** (*Optional*, boolean): If all read and written values
|
||||||
|
should be treated as inverted. Defaults to ``False``.
|
||||||
|
- **mode** (*Optional*, string): A pin mode to set for the pin at. One of ``INPUT``,
|
||||||
|
``INPUT_PULLUP`` or ``OUTPUT``.
|
||||||
|
|
||||||
|
|
||||||
And naturally you may use all automation functions with these SX1509 binary_sensors, switches and output (lights).
|
And naturally you may use all automation functions with these SX1509 binary_sensors, switches and output (lights).
|
||||||
|
|
||||||
|
|
|
@ -215,8 +215,8 @@ Configuration variables:
|
||||||
|
|
||||||
- All other from :ref:`base_time_config`.
|
- All other from :ref:`base_time_config`.
|
||||||
|
|
||||||
SNTP Configuration
|
SNTP Time Source
|
||||||
------------------
|
----------------
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,10 @@ Configuration variables:
|
||||||
- **stop_bits** (*Optional*, int): The number of stop bits to send. Options: 1, 2. Defaults to 1.
|
- **stop_bits** (*Optional*, int): The number of stop bits to send. Options: 1, 2. Defaults to 1.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this UART hub if you need multiple UART hubs.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this UART hub if you need multiple UART hubs.
|
||||||
|
|
||||||
|
ESP32 options:
|
||||||
|
|
||||||
|
- **invert** (*Optional*, boolean): Invert the logic levels of the RX and TX pins. Options: ``True`` or ``False``. Defaults to ``False``.
|
||||||
|
|
||||||
.. _uart-hardware_uarts:
|
.. _uart-hardware_uarts:
|
||||||
|
|
||||||
Hardware UARTs
|
Hardware UARTs
|
||||||
|
|