2
Doxygen
@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome"
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = 2021.12.3
|
||||
PROJECT_NUMBER = 2022.1.0
|
||||
|
||||
# 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
|
||||
|
6
Makefile
@ -1,5 +1,5 @@
|
||||
ESPHOME_PATH = ../esphome
|
||||
ESPHOME_REF = 2021.12.3
|
||||
ESPHOME_REF = 2022.1.0
|
||||
|
||||
.PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify
|
||||
|
||||
@ -10,8 +10,8 @@ html-strict:
|
||||
sphinx-build -M html . _build -W -j auto -n $(O)
|
||||
|
||||
minify:
|
||||
minify -o _static/webserver-v1.min.js _static/webserver-v1.js
|
||||
minify -o _static/webserver-v1.min.css _static/webserver-v1.css
|
||||
minify _static/webserver-v1.js > _static/webserver-v1.min.js
|
||||
minify _static/webserver-v1.css > _static/webserver-v1.min.css
|
||||
|
||||
cleanhtml:
|
||||
rm -rf "_build/html/*"
|
||||
|
BIN
_static/changelog-2022.1.0.png
Normal file
After Width: | Height: | Size: 127 KiB |
@ -1 +1 @@
|
||||
2021.12.3
|
||||
2022.1.0
|
@ -83,6 +83,15 @@ for (; row = states.rows[i]; i++) {
|
||||
});
|
||||
})(row.id);
|
||||
}
|
||||
if (row.classList.contains("number")) {
|
||||
(function(id) {
|
||||
row.children[2].children[0].addEventListener('change', function () {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", '/number/' + id.substr(7) + '/set?value=' + encodeURIComponent(this.value), true);
|
||||
xhr.send();
|
||||
});
|
||||
})(row.id);
|
||||
}
|
||||
if (row.classList.contains("button")) {
|
||||
(function(id) {
|
||||
row.children[2].children[0].addEventListener('click', function () {
|
||||
|
2
_static/webserver-v1.min.js
vendored
@ -1 +1 @@
|
||||
const source=new EventSource("/events");source.addEventListener("log",(function(t){const n=document.getElementById("log");let e="";t.data.startsWith("[1;31m")?e="e":t.data.startsWith("[0;33m")?e="w":t.data.startsWith("[0;32m")?e="i":t.data.startsWith("[0;35m")?e="c":t.data.startsWith("[0;36m")?e="d":t.data.startsWith("[0;37m")?e="v":n.innerHTML+=t.data+"\n",n.innerHTML+='<span class="'+e+'">'+t.data.substr(7,t.data.length-10)+"</span>\n"})),source.addEventListener("state",(function(t){const n=JSON.parse(t.data);document.getElementById(n.id).children[1].innerText=n.state}));const states=document.getElementById("states");let row,i=0;for(;row=states.rows[i];i++)row.children[2].children.length&&(row.classList.contains("switch")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/switch/"+t.substr(7)+"/toggle",!0),n.send()}))}(row.id),row.classList.contains("fan")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/fan/"+t.substr(4)+"/toggle",!0),n.send()}))}(row.id),row.classList.contains("light")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/light/"+t.substr(6)+"/toggle",!0),n.send()}))}(row.id),row.classList.contains("cover")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/cover/"+t.substr(6)+"/open",!0),n.send()})),row.children[2].children[1].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/cover/"+t.substr(6)+"/close",!0),n.send()}))}(row.id),row.classList.contains("select")&&function(t){row.children[2].children[0].addEventListener("change",(function(){const n=new XMLHttpRequest;n.open("POST","/select/"+t.substr(7)+"/set?option="+encodeURIComponent(this.value),!0),n.send()}))}(row.id),row.classList.contains("button")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/button/"+t.substr(7)+"/press",!0),n.send()}))}(row.id));
|
||||
const source=new EventSource("/events");source.addEventListener("log",(function(t){const n=document.getElementById("log");let e="";t.data.startsWith("[1;31m")?e="e":t.data.startsWith("[0;33m")?e="w":t.data.startsWith("[0;32m")?e="i":t.data.startsWith("[0;35m")?e="c":t.data.startsWith("[0;36m")?e="d":t.data.startsWith("[0;37m")?e="v":n.innerHTML+=t.data+"\n",n.innerHTML+='<span class="'+e+'">'+t.data.substr(7,t.data.length-10)+"</span>\n"})),source.addEventListener("state",(function(t){const n=JSON.parse(t.data);document.getElementById(n.id).children[1].innerText=n.state}));const states=document.getElementById("states");let row,i=0;for(;row=states.rows[i];i++)row.children[2].children.length&&(row.classList.contains("switch")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/switch/"+t.substr(7)+"/toggle",!0),n.send()}))}(row.id),row.classList.contains("fan")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/fan/"+t.substr(4)+"/toggle",!0),n.send()}))}(row.id),row.classList.contains("light")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/light/"+t.substr(6)+"/toggle",!0),n.send()}))}(row.id),row.classList.contains("cover")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/cover/"+t.substr(6)+"/open",!0),n.send()})),row.children[2].children[1].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/cover/"+t.substr(6)+"/close",!0),n.send()}))}(row.id),row.classList.contains("select")&&function(t){row.children[2].children[0].addEventListener("change",(function(){const n=new XMLHttpRequest;n.open("POST","/select/"+t.substr(7)+"/set?option="+encodeURIComponent(this.value),!0),n.send()}))}(row.id),row.classList.contains("number")&&function(t){row.children[2].children[0].addEventListener("change",(function(){const n=new XMLHttpRequest;n.open("POST","/number/"+t.substr(7)+"/set?value="+encodeURIComponent(this.value),!0),n.send()}))}(row.id),row.classList.contains("button")&&function(t){row.children[2].children[0].addEventListener("click",(function(){const n=new XMLHttpRequest;n.open("POST","/button/"+t.substr(7)+"/press",!0),n.send()}))}(row.id));
|
||||
|
245
changelog/2022.1.0.rst
Normal file
@ -0,0 +1,245 @@
|
||||
ESPHome 2022.1.0 - 19th January 2022
|
||||
====================================
|
||||
|
||||
.. seo::
|
||||
:description: Changelog for ESPHome 2022.1.0.
|
||||
:image: /_static/changelog-2022.1.0.png
|
||||
:author: ESPHome
|
||||
:author_twitter: @esphome_
|
||||
|
||||
.. imgtable::
|
||||
:columns: 4
|
||||
|
||||
BL0940, components/sensor/bl0940, bl0940.png
|
||||
BMP388 and BMP390, components/sensor/bmp3xx, bmp388.jpg
|
||||
CD74HC4067, components/sensor/cd74hc4067, cd74hc4067.jpg
|
||||
ESP32 Native CAN Bus, components/canbus, canbus.svg
|
||||
Growatt Solar, components/sensor/growatt_solar, growatt.jpg
|
||||
INA260, components/sensor/ina260, ina260.jpg
|
||||
Inkplate 10, components/display/inkplate6, inkplate6.jpg
|
||||
Kalman Combinator, components/sensor/kalman_combinator, function.svg
|
||||
MCP3204, components/sensor/mcp3204, mcp3204.jpg
|
||||
MCP47A1, components/output/mcp47a1, mcp47a1.svg
|
||||
Midea IR Climate, components/climate/ir_climate, air-conditioner-ir.svg
|
||||
Safe Mode Button, components/button/safe_mode, restart-alert.svg
|
||||
Shutdown Button, components/button/shutdown, power_settings.svg
|
||||
Tuya Number, components/number/tuya, tuya.png
|
||||
|
||||
|
||||
HAPPY NEW YEAR!!
|
||||
|
||||
There are a few more new components this release than I expected, yay!!!
|
||||
|
||||
|
||||
ESPHome Web
|
||||
-----------
|
||||
|
||||
Today we're launching a new variant of the ESPHome dashboard: ESPHome Web – https://web.esphome.io.
|
||||
|
||||
The biggest challenge to getting started with ESPHome is the initial installation of ESPHome on your device. This installation needs be done by attaching the device to your computer via a cable. Once installed, updates can be installed over-the-air.
|
||||
|
||||
Last year we added support to the ESPHome dashboard to do the initial installation via the browser. Browsers security require the website to be served over HTTPS to allow device installation. Most people browse it from http://homeassistant.local or other local addresses so only users that manually configured external access or using Home Assistant Cloud could benefit.
|
||||
|
||||
With ESPHome Web we took the installation bits of the ESPHome dashboard and made them available on a website served over HTTPS. It works 100% in your browser without a backend or data leaving your computer. Now anyone can easily install ESPHome on their devices to get started.
|
||||
|
||||
`Visit ESPHome Web`_
|
||||
|
||||
.. _Visit ESPHome Web: https://web.esphome.io/
|
||||
|
||||
JSON
|
||||
----
|
||||
|
||||
I upgraded the ArduinoJson library we use to parse and build json strings to the latest version.
|
||||
All of the internal code has been updated to work with the changes, but any custom code or even
|
||||
``lambda`` might need updating now.
|
||||
|
||||
The most noticeble change is that the ``&`` reference modifier on the ``JsonObject`` that are
|
||||
created in lambdas are no longer required.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: cpp
|
||||
|
||||
JsonObject &blah = root.createNestedObject("blah");
|
||||
|
||||
// This should now be:
|
||||
|
||||
JsonObject blah = root.createNestedObject("blah");
|
||||
|
||||
|
||||
Full list of changes
|
||||
--------------------
|
||||
|
||||
New Features
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- Support different run duration for non-timer wakeup :esphomepr:`2861` by :ghuser:`jhamhader` (new-feature)
|
||||
- Add light.on_state trigger :esphomepr:`2868` by :ghuser:`tony-fav` (new-feature)
|
||||
- Support inkplate10 :esphomepr:`2937` by :ghuser:`jesserockz` (new-feature)
|
||||
|
||||
New Components
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
- Add growatt modbus sensor :esphomepr:`2922` by :ghuser:`leeuwte` (new-integration)
|
||||
- Add Tuya Number support :esphomepr:`2765` by :ghuser:`frankiboy1` (new-integration)
|
||||
- Add shutdown and safe_mode button :esphomepr:`2918` by :ghuser:`jsuanet` (new-integration)
|
||||
- INA260 Current and Power Sensor support :esphomepr:`2788` by :ghuser:`MrEditor97` (new-integration)
|
||||
- Improve PSRAM support :esphomepr:`2884` by :ghuser:`oxan` (new-integration)
|
||||
- Add bl0940 component used by e.g. tuya devices :esphomepr:`1904` by :ghuser:`tobias-` (new-integration)
|
||||
- Add support for BMP388 / BMP 390 pressure and temperature sensor :esphomepr:`2716` by :ghuser:`martgras` (new-integration)
|
||||
- Add MCP47A1 DAC output :esphomepr:`3014` by :ghuser:`jesserockz` (new-integration)
|
||||
- Create new kalman_combinator component :esphomepr:`2965` by :ghuser:`Cat-Ion` (new-integration)
|
||||
- New Midea IR component, improvements and fixes :esphomepr:`2847` by :ghuser:`dudanov` (new-integration)
|
||||
- MCP3204 4-channel 12-bit ADC component :esphomepr:`2895` by :ghuser:`rsumner` (new-integration)
|
||||
- Add cd74hc4067 multiplexer :esphomepr:`2431` by :ghuser:`asoehlke` (new-integration)
|
||||
- Native ESP32 CAN support :esphomepr:`1629` by :ghuser:`Sympatron` (new-integration)
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
- Modbus: use multiply for publishing number :esphomepr:`2916` by :ghuser:`martgras` (breaking-change)
|
||||
- Upgrade ArduinoJson to 6.18.5 and migrate code :esphomepr:`2844` by :ghuser:`jesserockz` (breaking-change)
|
||||
|
||||
Beta Changes
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- Add factory to download name :esphomepr:`3040` by :ghuser:`balloob`
|
||||
- Bump dashboard to 20220113.2 :esphomepr:`3041` by :ghuser:`balloob`
|
||||
- Disable caching for binary download :esphomepr:`3054` by :ghuser:`lutzky`
|
||||
- Rename post_build scripts to fix codeowners script :esphomepr:`3057` by :ghuser:`oxan`
|
||||
- Remove deprecated attribute from virtual entity methods :esphomepr:`3056` by :ghuser:`oxan`
|
||||
- Add number setting to web_server/rest_api :esphomepr:`3055` by :ghuser:`jesserockz`
|
||||
- bump dashboard to 20220116.0 :esphomepr:`3061` by :ghuser:`balloob`
|
||||
- [modbus_controller] add missing skip_updates :esphomepr:`3063` by :ghuser:`martgras`
|
||||
- Fail hard if no random bytes available for encryption :esphomepr:`3067` by :ghuser:`oxan`
|
||||
|
||||
All changes
|
||||
^^^^^^^^^^^
|
||||
|
||||
- Add a simple helper to remap values :esphomepr:`2850` by :ghuser:`jesserockz`
|
||||
- Bump pylint from 2.12.1 to 2.12.2 :esphomepr:`2858` by :ghuser:`dependabot[bot]`
|
||||
- Support different run duration for non-timer wakeup :esphomepr:`2861` by :ghuser:`jhamhader` (new-feature)
|
||||
- Drop len parameter from parse_number() :esphomepr:`2883` by :ghuser:`oxan`
|
||||
- Drop unused xSemaphoreWait define :esphomepr:`2888` by :ghuser:`oxan`
|
||||
- Move i2c scan to setup :esphomepr:`2869` by :ghuser:`martgras`
|
||||
- Introduce hex parsing & formatting helper functions :esphomepr:`2882` by :ghuser:`oxan`
|
||||
- Add light.on_state trigger :esphomepr:`2868` by :ghuser:`tony-fav` (new-feature)
|
||||
- Reduce timing noise in duty_cycle :esphomepr:`2881` by :ghuser:`CarlosGS`
|
||||
- Turn verbose a debug statement in bme280 :esphomepr:`2906` by :ghuser:`CarlosGS`
|
||||
- Add reset_duration option for waveshare epaper HAT rev 2.1 :esphomepr:`1481` by :ghuser:`owenb321`
|
||||
- Log the actual value in modbus number :esphomepr:`2901` by :ghuser:`jesserockz`
|
||||
- Add gpio 12 to strapping pin list :esphomepr:`2902` by :ghuser:`martgras`
|
||||
- Added access to ble_scan_result_evt_param as get_scan_result :esphomepr:`2854` by :ghuser:`myhomeiot`
|
||||
- fix multi-line comment warning/error :esphomepr:`2891` by :ghuser:`martgras`
|
||||
- Bump black from 21.11b1 to 21.12b0 :esphomepr:`2879` by :ghuser:`dependabot[bot]`
|
||||
- Adding Pascal unit to constants :esphomepr:`2914` by :ghuser:`jddonovan`
|
||||
- quantile filter support :esphomepr:`2900` by :ghuser:`konikvranik`
|
||||
- ESP32 CAM add Automatic Exposure Control option :esphomepr:`2892` by :ghuser:`sveip`
|
||||
- Modbus: use multiply for publishing number :esphomepr:`2916` by :ghuser:`martgras` (breaking-change)
|
||||
- Add growatt modbus sensor :esphomepr:`2922` by :ghuser:`leeuwte` (new-integration)
|
||||
- Add Tuya Number support :esphomepr:`2765` by :ghuser:`frankiboy1` (new-integration)
|
||||
- Support inverted tm1637 display :esphomepr:`2878` by :ghuser:`jlsjonas`
|
||||
- Fix tm1637 bootloop :esphomepr:`2929` by :ghuser:`jlsjonas`
|
||||
- Add shutdown and safe_mode button :esphomepr:`2918` by :ghuser:`jsuanet` (new-integration)
|
||||
- Support inkplate10 :esphomepr:`2937` by :ghuser:`jesserockz` (new-feature)
|
||||
- bang_bang: respect set cool- and heat-only modes :esphomepr:`2926` by :ghuser:`sairon`
|
||||
- Update curl package version in docker :esphomepr:`2939` by :ghuser:`jesserockz`
|
||||
- Change HDC1080 init instruction failure from error to warning :esphomepr:`2927` by :ghuser:`grob6000`
|
||||
- Add option to load docker image when building :esphomepr:`2938` by :ghuser:`jesserockz`
|
||||
- Disable nightly dev build :esphomepr:`2943` by :ghuser:`jesserockz`
|
||||
- Revert "Disable nightly dev build" :esphomepr:`2944` by :ghuser:`jesserockz`
|
||||
- Remove Content-Length header from camera snapshot response :esphomepr:`2860` by :ghuser:`DotNetDann`
|
||||
- ST7920 ESP32 fix :esphomepr:`2962` by :ghuser:`marsjan155`
|
||||
- Fix switch log state if inverted :esphomepr:`2960` by :ghuser:`hobbyquaker`
|
||||
- Add pin aliases for featheresp32-s2 :esphomepr:`2970` by :ghuser:`arunderwood`
|
||||
- INA260 Current and Power Sensor support :esphomepr:`2788` by :ghuser:`MrEditor97` (new-integration)
|
||||
- Upgrade ArduinoJson to 6.18.5 and migrate code :esphomepr:`2844` by :ghuser:`jesserockz` (breaking-change)
|
||||
- Don't use pyproject.toml for esphome build :esphomepr:`2980` by :ghuser:`agners`
|
||||
- Explicitly use overloaded begin() for I2C master initialization :esphomepr:`2978` by :ghuser:`agners`
|
||||
- Use template path :esphomepr:`2961` by :ghuser:`balloob`
|
||||
- Fix compile error for idf projects with ArduinoJson 6 :esphomepr:`2979` by :ghuser:`martgras`
|
||||
- Modbus: fix response parsing error for coil write :esphomepr:`2986` by :ghuser:`martgras`
|
||||
- Change unset ESPHOME_LOG_LEVEL fallback to NONE :esphomepr:`2982` by :ghuser:`dbuezas`
|
||||
- Add SH1107_128x64 to the ssd1306 component :esphomepr:`2967` by :ghuser:`arunderwood`
|
||||
- Add logging for some Nextion errors that didn't have any :esphomepr:`2957` by :ghuser:`masto`
|
||||
- Fix HTTPRequestComponent::get_string return value :esphomepr:`2987` by :ghuser:`martgras`
|
||||
- Improve PSRAM support :esphomepr:`2884` by :ghuser:`oxan` (new-integration)
|
||||
- Support ISR based pulse counter on ESP32-C3 :esphomepr:`2983` by :ghuser:`agners`
|
||||
- Use to_string() from STL when available :esphomepr:`2992` by :ghuser:`oxan`
|
||||
- Set UTF-8 encoding and version for prometheus /metrics :esphomepr:`2993` by :ghuser:`MyIgel`
|
||||
- Introduce bit_cast() backport :esphomepr:`2991` by :ghuser:`oxan`
|
||||
- Apply --no-use-pep517 for docker images :esphomepr:`2985` by :ghuser:`jesserockz`
|
||||
- Dont validate baud_rate for sim800l platform :esphomepr:`2945` by :ghuser:`jesserockz`
|
||||
- Modbus: add binary output :esphomepr:`2931` by :ghuser:`martgras`
|
||||
- Add bl0940 component used by e.g. tuya devices :esphomepr:`1904` by :ghuser:`tobias-` (new-integration)
|
||||
- Honor user set values for col/row start for INITR_MINI_160X80. :esphomepr:`2976` by :ghuser:`gonzalop`
|
||||
- Fix clang-tidy with multiple ESP32 toolchains installed :esphomepr:`2998` by :ghuser:`oxan`
|
||||
- Set correct include_dir in platformio.ini :esphomepr:`2999` by :ghuser:`oxan`
|
||||
- SGP40 - Reduce delay in measurement :esphomepr:`2996` by :ghuser:`martgras`
|
||||
- atc mithermometer: Add possibility to report signal strength :esphomepr:`3000` by :ghuser:`mknjc`
|
||||
- Support clang-tidy for ESP32 variants :esphomepr:`3001` by :ghuser:`oxan`
|
||||
- Fix SlowPWM output switch at the end of period :esphomepr:`2984` by :ghuser:`Chupaka`
|
||||
- Add support for BMP388 / BMP 390 pressure and temperature sensor :esphomepr:`2716` by :ghuser:`martgras` (new-integration)
|
||||
- Clean-up reverse_bits helpers :esphomepr:`3011` by :ghuser:`oxan`
|
||||
- Convert clamp() helper to backport of std::clamp() :esphomepr:`3010` by :ghuser:`oxan`
|
||||
- Introduce str_lower_case() and str_upper_case() helpers :esphomepr:`3008` by :ghuser:`oxan`
|
||||
- Drop uint{32,64}_to_string() helper functions :esphomepr:`3009` by :ghuser:`oxan`
|
||||
- Bump PlatformIO to 5.2.4 and zeroconf to 0.37.0 :esphomepr:`3007` by :ghuser:`oxan`
|
||||
- Offset bugfix in Modbus Text Sensor :esphomepr:`3006` by :ghuser:`stegm`
|
||||
- Add MCP47A1 DAC output :esphomepr:`3014` by :ghuser:`jesserockz` (new-integration)
|
||||
- Bump docker dependencies :esphomepr:`3019` by :ghuser:`OttoWinter`
|
||||
- Fix register ranges in modbus controller :esphomepr:`2981` by :ghuser:`stegm`
|
||||
- Add restore_mode to output switch :esphomepr:`3016` by :ghuser:`joshuaspence`
|
||||
- Add turn_on/off trigger to slow_pwm :esphomepr:`2921` by :ghuser:`martgras`
|
||||
- Convert is_callable to a backport of std::is_invocable :esphomepr:`3023` by :ghuser:`oxan`
|
||||
- Create new kalman_combinator component :esphomepr:`2965` by :ghuser:`Cat-Ion` (new-integration)
|
||||
- New Midea IR component, improvements and fixes :esphomepr:`2847` by :ghuser:`dudanov` (new-integration)
|
||||
- Extend esp32_camera with requester to improve performance :esphomepr:`2813` by :ghuser:`ayufan`
|
||||
- MCP3204 4-channel 12-bit ADC component :esphomepr:`2895` by :ghuser:`rsumner` (new-integration)
|
||||
- Adding sdm_meter ability to report total power :esphomepr:`2959` by :ghuser:`MiKuBB`
|
||||
- [Modbus_controller] Fix binary sensor lambda :esphomepr:`3020` by :ghuser:`martgras`
|
||||
- Clean-up random helper functions :esphomepr:`3022` by :ghuser:`oxan`
|
||||
- Fix display picture for nextion display :esphomepr:`3018` by :ghuser:`lhoracek`
|
||||
- Fix heatpumpir codegen min/max temperatures :esphomepr:`3025` by :ghuser:`jeffborg`
|
||||
- Add an action for pzemac to reset the total energy :esphomepr:`2480` by :ghuser:`nuttytree`
|
||||
- Nexa 433MHz RF protocol :esphomepr:`2037` by :ghuser:`GruffyPuffy`
|
||||
- Deprecate virtual methods to set entity properties :esphomepr:`3021` by :ghuser:`oxan`
|
||||
- Run post scripts for factory binaries for flashing :esphomepr:`3003` by :ghuser:`jesserockz`
|
||||
- Add cd74hc4067 multiplexer :esphomepr:`2431` by :ghuser:`asoehlke` (new-integration)
|
||||
- Native ESP32 CAN support :esphomepr:`1629` by :ghuser:`Sympatron` (new-integration)
|
||||
- [Modbus_controller] Fix duplicate cmd check :esphomepr:`3031` by :ghuser:`martgras`
|
||||
- Introduce big- and little-endian integer types :esphomepr:`2997` by :ghuser:`oxan`
|
||||
- Generate basic config for esphome-web devices :esphomepr:`3036` by :ghuser:`jesserockz`
|
||||
- Bump esphome-dashboard to 20220113.1 :esphomepr:`3038` by :ghuser:`jesserockz`
|
||||
- Add factory to download name :esphomepr:`3040` by :ghuser:`balloob`
|
||||
- Bump dashboard to 20220113.2 :esphomepr:`3041` by :ghuser:`balloob`
|
||||
- Disable caching for binary download :esphomepr:`3054` by :ghuser:`lutzky`
|
||||
- Rename post_build scripts to fix codeowners script :esphomepr:`3057` by :ghuser:`oxan`
|
||||
- Remove deprecated attribute from virtual entity methods :esphomepr:`3056` by :ghuser:`oxan`
|
||||
- Add number setting to web_server/rest_api :esphomepr:`3055` by :ghuser:`jesserockz`
|
||||
- bump dashboard to 20220116.0 :esphomepr:`3061` by :ghuser:`balloob`
|
||||
- [modbus_controller] add missing skip_updates :esphomepr:`3063` by :ghuser:`martgras`
|
||||
- Fail hard if no random bytes available for encryption :esphomepr:`3067` by :ghuser:`oxan`
|
||||
|
||||
Past Changelogs
|
||||
---------------
|
||||
|
||||
- :doc:`2021.12.0`
|
||||
- :doc:`2021.11.0`
|
||||
- :doc:`2021.10.0`
|
||||
- :doc:`2021.9.0`
|
||||
- :doc:`2021.8.0`
|
||||
- :doc:`v1.20.0`
|
||||
- :doc:`v1.19.0`
|
||||
- :doc:`v1.18.0`
|
||||
- :doc:`v1.17.0`
|
||||
- :doc:`v1.16.0`
|
||||
- :doc:`v1.15.0`
|
||||
- :doc:`v1.14.0`
|
||||
- :doc:`v1.13.0`
|
||||
- :doc:`v1.12.0`
|
||||
- :doc:`v1.11.0`
|
||||
- :doc:`v1.10.0`
|
||||
- :doc:`v1.9.0`
|
||||
- :doc:`v1.8.0`
|
||||
- :doc:`v1.7.0`
|
@ -2,7 +2,7 @@ Changelog
|
||||
=========
|
||||
|
||||
.. redirect::
|
||||
:url: /changelog/2021.12.0.html
|
||||
:url: /changelog/2022.1.0.html
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
BIN
components/button/images/safemode-ui.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
components/button/images/shutdown-ui.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
38
components/button/safe_mode.rst
Normal file
@ -0,0 +1,38 @@
|
||||
Safe Mode Button
|
||||
================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up buttons that can remotely reboot the ESP in ESPHome into safe mode.
|
||||
:image: restart.svg
|
||||
|
||||
The ``safe_mode`` button allows you to remotely reboot your node into :ref:`Safe Mode <config-ota>`. This is useful in certain situations
|
||||
where a misbehaving component is preventing Over-The-Air updates from completing successfully.
|
||||
|
||||
This component requires :ref:`OTA <config-ota>` to be configured.
|
||||
|
||||
.. figure:: images/safemode-ui.png
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
button:
|
||||
- platform: safe_mode
|
||||
name: "Living Room Restart (Safe Mode)"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **name** (**Required**, string): The name for the button.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- All other options from :ref:`Button <config-button>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`shutdown`
|
||||
- :doc:`restart`
|
||||
- :doc:`template`
|
||||
- :apiref:`safe_mode/safe_mode_button.h`
|
||||
- :ghedit:`Edit`
|
37
components/button/shutdown.rst
Normal file
@ -0,0 +1,37 @@
|
||||
Shutdown Button
|
||||
===============
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up buttons that can remotely shut down the ESP.
|
||||
:image: power_settings.svg
|
||||
|
||||
The ``shutdown`` button platform allows you to shutdown your node remotely
|
||||
through Home Assistant. It does this by putting the node into deep sleep mode with no
|
||||
wakeup source selected. After enabling, the only way to startup the ESP again is by
|
||||
pressing the reset button or restarting the power supply.
|
||||
|
||||
.. figure:: images/shutdown-ui.png
|
||||
:align: center
|
||||
:width: 80.0%
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
button:
|
||||
- platform: shutdown
|
||||
name: "Living Room Shutdown"
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **name** (**Required**, string): The name for the button.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- All other options from :ref:`Button <config-button>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`restart`
|
||||
- :doc:`template`
|
||||
- :apiref:`shutdown/shutdown_button.h`
|
||||
- :ghedit:`Edit`
|
@ -25,7 +25,7 @@ transmitted data.
|
||||
|
||||
The CAN bus itself has only two wires named Can High and Can Low or CanH and CanL. For the ESPHome
|
||||
CAN bus to work you need to select the device that has the physical CAN bus implemented.
|
||||
At this moment only the MCP2515 controller is supported. You can configure multiple buses.
|
||||
You can configure multiple buses.
|
||||
|
||||
Any can bus node can transmit data at any time, and any node can send any ``can_id`` value and any
|
||||
node can receive any can_id too. Is up to you how to organize the can_id values. You can setup a can
|
||||
@ -52,32 +52,37 @@ Each canbus platform extends this configuration schema.
|
||||
std::string b(x.begin(), x.end());
|
||||
ESP_LOGD("can id 500", "%s", &b[0] );
|
||||
|
||||
.. _config-canbus:
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **can_id** (**Required**, int): default *can id* used for transmitting frames.
|
||||
- **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*:
|
||||
*false*: Standard 11 bits IDs, *true*: Extended 29 bits ID
|
||||
- **bit_rate** (*Optional*, enum): One of the supported bitrates. Defaults to ``125KBPS``.
|
||||
Bitrates marked with * are not supported by the internal ESP32 CAN controller.
|
||||
|
||||
- 5KBPS
|
||||
- 10KBPS
|
||||
- 20KBPS
|
||||
- 31K25BPS
|
||||
- 33KBPS
|
||||
- 40KBPS
|
||||
- 5KBPS *
|
||||
- 10KBPS *
|
||||
- 20KBPS *
|
||||
- 31K25BPS *
|
||||
- 33KBPS *
|
||||
- 40KBPS *
|
||||
- 50KBPS
|
||||
- 80KBPS
|
||||
- 83K3BPS
|
||||
- 95KBPS
|
||||
- 80KBPS *
|
||||
- 83K3BPS *
|
||||
- 95KBPS *
|
||||
- 100KBPS
|
||||
- 125KBPS
|
||||
- 200KBPS
|
||||
- 200KBPS *
|
||||
- 250KBPS
|
||||
- 500KBPS
|
||||
- 1000KBPS
|
||||
|
||||
Automations:
|
||||
------------
|
||||
|
||||
- **on_frame** (*Optional*, :ref:`Automation <automation>`): An automation to perform when ability
|
||||
CAN Frame is received. See :ref:`canbus-on-frame`.
|
||||
@ -141,6 +146,31 @@ Configuration variables:
|
||||
- **use_extended_id** (*Optional*, boolean): default *false* identifies the type of *can_id*:
|
||||
*false*: Standard 11 Bit IDs, *true*: Extended 29Bit ID
|
||||
|
||||
ESP32 CAN Component
|
||||
-------------------
|
||||
|
||||
The ESP32 has an integrated CAN controller and therefore doesn't need an external controller necessarily.
|
||||
You only need to specify the RX and TX pins.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
canbus:
|
||||
- platform: esp32_can
|
||||
tx_pin: GPIO1
|
||||
rx_pin: GPIO3
|
||||
can_id: 4
|
||||
bit_rate: 50kbps
|
||||
on_frame:
|
||||
...
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **rx_pin** (**Required**, :ref:`Pin <config-pin>`): Receive pin.
|
||||
- **tx_pin** (**Required**, :ref:`Pin <config-pin>`): Transmit pin.
|
||||
- All other options from :ref:`Canbus <config-canbus>`.
|
||||
|
||||
MCP2515 Component
|
||||
-----------------
|
||||
|
||||
@ -149,20 +179,6 @@ You need to have an :ref:`SPI bus <spi>` in your configuration with both the **m
|
||||
|
||||
For wiring 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
|
||||
when it should listen for data on the SPI bus. Each device has an individual ``CS`` line.
|
||||
Sometimes also called ``SS``.
|
||||
- **clock** (*Optional*): One of ``8MHZ``, ``16MHZ`` or ``20MHZ``. Clock crystal used on the MCP2515 device.
|
||||
Defaults to ``8MHZ``.
|
||||
- **mode** (*Optional*): Operation mode. Default to ``NORMAL``
|
||||
|
||||
- NORMAL: Normal operation
|
||||
- LOOPBACK: Loopback mode can be used to just test you spi connections to the device
|
||||
- LISTENONLY: only receive data
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
@ -184,6 +200,22 @@ Configuration variables:
|
||||
id: light_1
|
||||
brightness: !lambda "return (x.size() > 0) ? (float) x[0]/255 : 0;"
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **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.
|
||||
Sometimes also called ``SS``.
|
||||
- **clock** (*Optional*): One of ``8MHZ``, ``16MHZ`` or ``20MHZ``. Clock crystal used on the MCP2515 device.
|
||||
Defaults to ``8MHZ``.
|
||||
- **mode** (*Optional*): Operation mode. Default to ``NORMAL``
|
||||
|
||||
- NORMAL: Normal operation
|
||||
- LOOPBACK: Loopback mode can be used to just test you spi connections to the device
|
||||
- LISTENONLY: only receive data
|
||||
|
||||
- All other options from :ref:`Canbus <config-canbus>`.
|
||||
|
||||
Wiring options
|
||||
---------------
|
||||
Easiest approach is to just use fully assembled boards and just add one resistor in the MISO line.
|
||||
|
@ -34,6 +34,8 @@ submit a feature request (see FAQ).
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| :ref:`LG<climate_ir_lg>` | ``climate_ir_lg`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| Midea | ``midea_ir`` | yes |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| Mitsubishi | ``mitsubishi`` | |
|
||||
+---------------------------------------+---------------------+----------------------+
|
||||
| TCL112, Fuego | ``tcl112`` | yes |
|
||||
@ -149,6 +151,30 @@ IR receiver.
|
||||
name: "Living Room AC"
|
||||
receiver_id: rcvr
|
||||
|
||||
.. _midea_ir:
|
||||
|
||||
``midea_ir`` Climate
|
||||
-------------------------
|
||||
|
||||
These air conditioners support two protocols: Midea and Coolix. Therefore, when using an IR receiver, it considers both protocols and publishes the received states.
|
||||
|
||||
Additional configuration is available for this platform
|
||||
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **use_fahrenheit** (*Optional*, boolean): Allows you to transfer the temperature to the air conditioner in degrees Fahrenheit. The air conditioner display also shows the temperature in Fahrenheit. Defaults to ``false``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
climate:
|
||||
- platform: midea_ir
|
||||
name: "AC"
|
||||
sensor: room_temperature
|
||||
use_fahrenheit: true
|
||||
|
||||
|
||||
.. _climate_ir_lg:
|
||||
|
||||
``climate_ir_lg`` Climate
|
||||
@ -237,6 +263,7 @@ See Also
|
||||
:apiref:`daikin.h <daikin/daikin.h>`
|
||||
:apiref:`fujitsu_general.h <fujitsu_general/fujitsu_general.h>`,
|
||||
:apiref:`hitachi_ac344.h <hitachi_ac344/hitachi_ac344.h>`,
|
||||
:apiref:`midea_ir.h <midea_ir/midea_ir.h>`,
|
||||
:apiref:`mitsubishi.h <mitsubishi/mitsubishi.h>`,
|
||||
:apiref:`tcl112.h <tcl112/tcl112.h>`,
|
||||
:apiref:`yashima.h <yashima/yashima.h>`
|
||||
|
@ -34,6 +34,13 @@ Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **run_duration** (*Optional*, :ref:`config-time`): The time duration the node should be active, i.e. run code.
|
||||
|
||||
Only on ESP32, instead of time, it is possible to specify run duration according to the wakeup reason from deep-sleep:
|
||||
|
||||
- **default** (**Required**, :ref:`config-time`): default run duration for timer wakeup and any unspecified wakeup reason.
|
||||
- **gpio_wakeup_reason** (*Optional*, :ref:`config-time`): run duration if woken up by GPIO.
|
||||
- **touch_wakeup_reason** (*Optional*, :ref:`config-time`): run duration if woken up by touch.
|
||||
|
||||
- **sleep_duration** (*Optional*, :ref:`config-time`): The time duration to stay in deep sleep mode.
|
||||
- **touch_wakeup** (*Optional*, boolean): Only on ESP32. Use a touch event to wakeup from deep sleep. To be able
|
||||
to wakeup from a touch event, :ref:`esp32-touch-binary-sensor` must be configured properly.
|
||||
|
@ -1,12 +1,14 @@
|
||||
Inkplate 6
|
||||
==========
|
||||
Inkplate 6 and Inkplate 10
|
||||
==========================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up Inkplate E-Paper displays in ESPHome.
|
||||
:image: inkplate6.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.
|
||||
All-in-one e-paper display ``Inkplate 6`` and ``Inkplate 10``.
|
||||
|
||||
The Inkplate 6 and Inkplate 10 are powerful, Wi-Fi enabled ESP32 based six-inch e-paper displays – recycled from a Kindle e-reader. Its main feature is simplicity.
|
||||
|
||||
Learn more at `Inkplate's website <https://inkplate.io/>`__
|
||||
|
||||
.. figure:: images/inkplate6.jpg
|
||||
@ -30,6 +32,7 @@ Learn more at `Inkplate's website <https://inkplate.io/>`__
|
||||
greyscale: false
|
||||
partial_updating: false
|
||||
update_interval: 60s
|
||||
model: inkplate_6
|
||||
|
||||
ckv_pin: 32
|
||||
sph_pin: 33
|
||||
@ -70,6 +73,7 @@ Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **model** (*Optional*, enum): Specify the model ``inkplate_6`` or ``inkplate_10``. Defaults to ``inkplate_6``.
|
||||
- **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``
|
||||
|
@ -56,6 +56,7 @@ Configuration variables:
|
||||
- ``SH1106 128x64``
|
||||
- ``SH1106 96x16``
|
||||
- ``SH1106 64x48``
|
||||
- ``SH1107 128x64``
|
||||
- ``SSD1305 128x32``
|
||||
- ``SSD1305 128x64``
|
||||
|
||||
@ -69,12 +70,12 @@ Configuration variables:
|
||||
Defaults to ``false``.
|
||||
- **flip_x** (*Optional*, boolean): Flip the horizontal axis on the screen. Defaults to ``true``.
|
||||
- **flip_y** (*Optional*, boolean): Flip the vertical axis on the screen. Defaults to ``true``.
|
||||
- **offset_x** (*Optional*, int): Set this option if some horizontal pixel is missing. Numbers are only allowed between ``0~15``. Defaults to ``0``.
|
||||
- **offset_y** (*Optional*, int): Set this option if some vertical pixel is missing. Numbers are only allowed between ``0~15``. Defaults to ``0``.
|
||||
- **offset_x** (*Optional*, int): Set this option if some horizontal pixel is missing. Numbers are only allowed between ``-32~32``. Defaults to ``0``.
|
||||
- **offset_y** (*Optional*, int): Set this option if some vertical pixel is missing. Numbers are only allowed between ``-32~32``. Defaults to ``0``.
|
||||
- **invert** (*Optional*, boolean): Invert all pixel state on the display. Defaults to ``false``.
|
||||
- **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``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``1s``.
|
||||
- **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.
|
||||
|
||||
@ -134,6 +135,7 @@ Configuration variables:
|
||||
- ``SH1106 128x64``
|
||||
- ``SH1106 96x16``
|
||||
- ``SH1106 64x48``
|
||||
- ``SH1107 128x64``
|
||||
- ``SSD1305 128x32``
|
||||
- ``SSD1305 128x64``
|
||||
|
||||
@ -148,12 +150,12 @@ Configuration variables:
|
||||
Defaults to ``false``.
|
||||
- **flip_x** (*Optional*, boolean): Flip the horizontal axis on the screen. Defaults to ``true``.
|
||||
- **flip_y** (*Optional*, boolean): Flip the vertical axis on the screen. Defaults to ``true``.
|
||||
- **offset_x** (*Optional*, int): Set this option if some horizontal pixel is missing. Numbers are only allowed between ``0~15``. Defaults to ``0``.
|
||||
- **offset_y** (*Optional*, int): Set this option if some vertical pixel is missing. Numbers are only allowed between ``0~15``. Defaults to ``0``.
|
||||
- **offset_x** (*Optional*, int): Set this option if some horizontal pixel is missing. Numbers are only allowed between ``-32~32``. Defaults to ``0``.
|
||||
- **offset_y** (*Optional*, int): Set this option if some vertical pixel is missing. Numbers are only allowed between ``-32~32``. Defaults to ``0``.
|
||||
- **invert** (*Optional*, boolean): Invert all pixel state on the display. Defaults to ``false``.
|
||||
- **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``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``1s``.
|
||||
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||
to use multiple SPI buses.
|
||||
|
@ -25,6 +25,8 @@ The module can be powered with 5v or with 3.3v too. To display the colon punctua
|
||||
id: tm1637_display
|
||||
clk_pin: D6
|
||||
dio_pin: D5
|
||||
inverted: true
|
||||
length: 4
|
||||
lambda: |-
|
||||
it.print("0123");
|
||||
|
||||
@ -36,6 +38,9 @@ Configuration variables:
|
||||
- **dio_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin you have the DIO line hooked up to.
|
||||
- **intensity** (*Optional*, int): The intensity with which the TM1637 should drive the outputs. Range is from
|
||||
0 (least intense) to 7 (the default).
|
||||
- **inverted** (*Optional*, bool): Invert character rendering to the TM1637 so you can physically flip the display around.
|
||||
- **length** (*Optional*, int): The amount of digits your TM1637 is driving. Only required when `inverted: true`
|
||||
Range is from 1 to 6 (the default).
|
||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the TM1637.
|
||||
See :ref:`display-tm1637_lambda` for more information.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``1s``.
|
||||
|
@ -107,6 +107,8 @@ Configuration variables:
|
||||
because artifacts accumulate. On the ``1.54in``, ``1.54inv2``, ``2.13in``, ``2.90in`` and ``2.90inv2`` models you have the option to switch only
|
||||
do a full-redraw every x-th time using this option. Defaults to ``30`` on the described models and a full update for
|
||||
all other models.
|
||||
- **reset_duration** (*Optional*, :ref:`config-time`): Duration for the display reset operation. Defaults to ``200ms``.
|
||||
Setting this value to ``2ms`` may resolve issues with newer e-Paper Driver modules (e.g. Rev 2.1).
|
||||
- **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 ``1s``, use ``never`` to only manually update the screen via ``component.update``.
|
||||
|
@ -96,6 +96,9 @@ Frame Settings:
|
||||
- **saturation** (*Optional*, int): The saturation to apply to the picture, from -2 to 2. Defaults to ``0``.
|
||||
- **vertical_flip** (*Optional*, boolean): Whether to flip the image vertically. Defaults to ``true``.
|
||||
- **horizontal_mirror** (*Optional*, boolean): Whether to mirror the image horizontally. Defaults to ``true``.
|
||||
- **aec2** (*Optional*, boolean): Whether to enable Auto Exposure Control 2. Defaults to ``false``.
|
||||
- **ae_level** (*Optional*, int): The auto exposure level to apply to the picture, from -2 to 2. Defaults to ``0``.
|
||||
- **aec_value** (*Optional*, int): The Auto Exposure Control 2 value to apply to the picture, from 0 to 1200. Defaults to ``300``.
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -50,6 +50,8 @@ Configuration variables:
|
||||
when the light is turned on. See :ref:`light-on_turn_on_off_trigger`.
|
||||
- **on_turn_off** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the light is turned off. See :ref:`light-on_turn_on_off_trigger`.
|
||||
- **on_state** (*Optional*, :ref:`Action <config-action>`): An automation to perform
|
||||
when the light's set state is changed. See :ref:`light-on_state_trigger`.
|
||||
|
||||
Additional configuration variables for addressable lights:
|
||||
|
||||
@ -398,6 +400,25 @@ with the behavior of the ``light.is_on`` and ``light.is_off`` condition above.
|
||||
on_turn_off:
|
||||
- logger.log: "Light Turned Off!"
|
||||
|
||||
.. _light-on_state_trigger:
|
||||
|
||||
``light.on_state`` Trigger
|
||||
**************************
|
||||
|
||||
This trigger is activated each time the set light state is changed. It is not triggered
|
||||
based on current state, but rather, it triggers on the set state which can differ from
|
||||
the current state due to transitions. For example, the ``light.on_state`` trigger can
|
||||
be used for immediate action when the light is set to off; while ``light.on_turn_off``
|
||||
does not trigger until the light actually achieves the off state.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
light:
|
||||
- platform: binary # or any other platform
|
||||
# ...
|
||||
on_state:
|
||||
- logger.log: "Light State Changed!"
|
||||
|
||||
.. _light-effects:
|
||||
|
||||
Light Effects
|
||||
|
67
components/number/tuya.rst
Normal file
@ -0,0 +1,67 @@
|
||||
Tuya Number
|
||||
===========
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up a Tuya device integer or enum datapoint..
|
||||
:image: upload.svg
|
||||
|
||||
The ``tuya`` number platform allows you to create a number that controls
|
||||
a tuya serial component. This platform requires :doc:`/components/tuya` to be configured.
|
||||
|
||||
When :doc:`/components/tuya` has been properly configured, it will output a list of
|
||||
valid data points to the log after start-up.
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
[21:37:14][C][tuya:028]: Tuya:
|
||||
[21:37:14][C][tuya:045]: Datapoint 101: enum (value: 4)
|
||||
[21:37:14][C][tuya:045]: Datapoint 102: enum (value: 1)
|
||||
[21:37:14][C][tuya:041]: Datapoint 103: int value (value: 5)
|
||||
[21:37:14][C][tuya:039]: Datapoint 104: switch (value: OFF)
|
||||
[21:37:14][C][tuya:041]: Datapoint 105: int value (value: 229)
|
||||
[21:37:14][C][tuya:041]: Datapoint 106: int value (value: 37)
|
||||
[21:37:14][C][tuya:041]: Datapoint 107: int value (value: 10)
|
||||
[21:37:14][C][tuya:041]: Datapoint 108: int value (value: 35)
|
||||
[21:37:14][C][tuya:041]: Datapoint 109: int value (value: 30)
|
||||
[21:37:14][C][tuya:041]: Datapoint 110: int value (value: 80)
|
||||
[21:37:14][C][tuya:039]: Datapoint 112: switch (value: OFF)
|
||||
[21:37:14][C][tuya:039]: Datapoint 113: switch (value: OFF)
|
||||
[21:37:14][C][tuya:039]: Datapoint 114: switch (value: OFF)
|
||||
[21:37:14][C][tuya:045]: Datapoint 115: enum (value: 4)
|
||||
[21:37:14][C][tuya:045]: Datapoint 116: enum (value: 2)
|
||||
[21:37:14][C][tuya:055]: Product: '{"p":"ymf4oruxqx0xlogp","v":"1.0.3","m":0}'
|
||||
|
||||
The example output above from a Tuya Siren with temperature and humidity sensors. The
|
||||
``tuya`` number platform can be used to control all of the integer and enum datapoints.
|
||||
|
||||
On this device, datapoint 116 represents the volume control, with valid values being
|
||||
0=High, 1=Medium, 2=Low.
|
||||
|
||||
Based on this, you can create a number as follows:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
- platform: "tuya"
|
||||
name: "Volume"
|
||||
number_datapoint: 116
|
||||
min_value: 0
|
||||
max_value: 2
|
||||
step: 1
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **name** (**Required**, string): The name of the switch.
|
||||
- **number_datapoint** (**Required**, int): The datapoint id number of the number.
|
||||
- **min_value** (**Required**, float): The minimum value this number can be.
|
||||
- **max_value** (**Required**, float): The maximum value this number can be.
|
||||
- **step** (**Required**, float): The granularity with which the number can be set.
|
||||
- All other options from :ref:`Number <config-number>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/number/index`
|
||||
- :apiref:`tuya/number/tuya_number.h`
|
||||
- :ghedit:`Edit`
|
48
components/output/mcp47a1.rst
Normal file
@ -0,0 +1,48 @@
|
||||
MCP47A1 Output
|
||||
==============
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up MCP47A1 outputs on the ESP.
|
||||
:image: mcp47a1.svg
|
||||
|
||||
The ``mcp47a1`` output component allows to use `6bit external DAC <https://www.microchip.com/en-us/product/MCP47A1>`__
|
||||
in order to have analog output(s) on any board by using I²C. Devices default address is ``0x2E``
|
||||
and configurable alternative is ``0x3E``.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
|
||||
# Set a global I²C connection
|
||||
i2c:
|
||||
sda: 21
|
||||
scl: 22
|
||||
scan: true
|
||||
|
||||
# Set the output with default (address: 0x2E / global I²C)
|
||||
output:
|
||||
- platform: mcp47a1
|
||||
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 I²C address of
|
||||
the DAC. Defaults to ``0x2E``.
|
||||
- All other options from :ref:`Output <config-output>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/output/mcp4725`
|
||||
- :doc:`/components/output/esp32_dac`
|
||||
- :doc:`/components/output/esp8266_pwm`
|
||||
- :ghedit:`Edit`
|
@ -28,9 +28,10 @@ Configuration variables:
|
||||
- **register_count**: (*Optional*): only required for uncommon response encodings
|
||||
The number of registers this data point spans. Default is 1
|
||||
- **write_lambda** (*Optional*, :ref:`lambda <config-lambda>`):
|
||||
Lambda is evaluated before the modbus write command is created. The value is passed in as ``float x`` and an empty vector is passed in as ``std::vector<uint16_t>&payload``
|
||||
Lambda is evaluated before the modbus write command is created. The value is passed in as ``float x`` and an empty vector is passed in as ``std::vector<uint16_t>&payload``.
|
||||
You can directly define the payload by adding data to payload then the return value is ignored and the content of payload is used.
|
||||
- **multiply** (*Optional*, float): multiply the new value with this factor before sending the requests. Ignored if lambda is defined.
|
||||
- **register_type** (*Optional*): ``coil`` to create a binary outout or ``holding`` to create a float output.
|
||||
- **multiply** (*Optional*, float): multiply the new value with this factor before sending the requests. Ignored if lambda is defined. Only valid for ``register_type: holding``.
|
||||
- **offset**: (*Optional*, int): only required for uncommon response encodings
|
||||
offset from start address in bytes. If more than one register is read a modbus read registers command this value is used to find the start of this datapoint relative to start address. The component calculates the size of the range based on offset and size of the value type
|
||||
- **use_write_multiple**: (*Optional*, boolean): By default the modbus command ``Preset Single Registers`` (function code 6) is used for setting the holding register if only 1 register is set. If your device only supports ``Preset Multiple Registers`` (function code 16) set this option to true.
|
||||
@ -40,15 +41,20 @@ All other options from :ref:`Output <config-output>`.
|
||||
|
||||
**Parameters passed into the lambda**
|
||||
|
||||
- **x** (float): The float value to be sent to the modbus device
|
||||
- **x** (float): The float value to be sent to the modbus device for ``register_type: holding``
|
||||
- **x** (bool): The boolean value to be sent to the modbus device for ``register_type: coil``
|
||||
|
||||
- **payload** (`std::vector<uint16_t>&payload`):
|
||||
|
||||
- for ``register_type: holding``: empty vector for the payload. The lamdba can add 16 bit raw modbus register words.
|
||||
- for ``register_type: coil``: empty vector for the payload. If payload is set in the lambda it is sent as a custom command and must include all required bytes for a modbus request
|
||||
note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor.
|
||||
|
||||
- **payload** (`std::vector<uint16_t>&payload`): empty vector for the payload. The lamdba can add 16 bit raw modbus register words.
|
||||
note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor.
|
||||
- **item** (const pointer to a SensorItem derived object): The sensor object itself.
|
||||
|
||||
Possible return values for the lambda:
|
||||
|
||||
- ``return <FLOATING_POINT_NUMBER>;`` the new value for the sensor.
|
||||
- ``return <FLOATING_POINT_NUMBER / BOOL>;`` the new value for the sensor.
|
||||
- ``return <anything>; and fill payload with data`` if the payload is added from the lambda then these 16 bit words will be sent
|
||||
- ``return {};`` if you don't want write the command to the device (or do it from the lambda).
|
||||
|
||||
|
@ -30,12 +30,41 @@ heating element through a relay where a fast PWM update cycle would not be appro
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin to pulse.
|
||||
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
|
||||
- **period** (**Required**, :ref:`config-time`): The duration of each cycle. (i.e. a 10s
|
||||
period at 50% duty would result in the pin being turned on for 5s, then off for 5s)
|
||||
- **pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): The pin to pulse.
|
||||
- **state_change_action** (*Optional*, :ref:`Automation <automation>`): An automation to perform when the load is switched. If a lambda is used the boolean ``state`` parameter holds the new status.
|
||||
- **turn_on_action** (*Optional*, :ref:`Automation <automation>`): An automation to perform when the load is turned on. Can be used to control for example a switch or output component.
|
||||
- **turn_off_action** (*Optional*, :ref:`Automation <automation>`): An automation to perform when the load is turned off. ``turn_on_action`` and ``turn_off_action`` must be configured together.
|
||||
|
||||
- All other options from :ref:`Output <config-output>`.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
- If ``pin`` is defined the GPIO pin state is writen before any action is executed.
|
||||
- ``state_change_action`` and ``turn_on_action``/``turn_off_action`` can be used togther. ``state_change_action`` is called before ``turn_on_action``/``turn_off_action``. It's recommended to use either ``state_change_action`` or ``turn_on_action``/``turn_off_action`` to change the state of an output. Using both automations together is only recommended for monitoring.
|
||||
|
||||
|
||||
Example:
|
||||
--------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
||||
output:
|
||||
- platform: slow_pwm
|
||||
id: my_slow_pwm
|
||||
period: 15s
|
||||
turn_on_action:
|
||||
- lambda: |-
|
||||
auto *out1 = id(output1);
|
||||
out1->turn_on();
|
||||
turn_off_action:
|
||||
- output.turn_off: output1
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
|
@ -30,19 +30,22 @@ Configuration variables:
|
||||
- **dump** (*Optional*, list): Decode and dump these remote codes in the logs (at log.level=DEBUG).
|
||||
Set to ``all`` to dump all available codecs:
|
||||
|
||||
- **coolix**: Decode and dump Coolix infrared codes.
|
||||
- **dish**: Decode and dump Dish infrared codes.
|
||||
- **jvc**: Decode and dump JVC infrared codes.
|
||||
- **lg**: Decode and dump LG infrared codes.
|
||||
- **midea**: Decode and dump Midea infrared codes.
|
||||
- **nec**: Decode and dump NEC infrared codes.
|
||||
- **nexa**: Decode and dump Nexa (RF) codes.
|
||||
- **panasonic**: Decode and dump Panasonic infrared codes.
|
||||
- **pioneer**: Decode and dump Pioneer infrared codes.
|
||||
- **jvc**: Decode and dump JVC infrared codes.
|
||||
- **raw**: Print all remote codes in their raw form. Useful for using arbitrary protocols.
|
||||
- **rc5**: Decode and dump RC5 IR codes.
|
||||
- **rc_switch**: Decode and dump RCSwitch RF codes.
|
||||
- **samsung**: Decode and dump Samsung infrared codes.
|
||||
- **samsung36**: Decode and dump Samsung36 infrared codes.
|
||||
- **sony**: Decode and dump Sony infrared codes.
|
||||
- **toshiba_ac**: Decode and dump Toshiba AC infrared codes.
|
||||
- **rc_switch**: Decode and dump RCSwitch RF codes.
|
||||
- **rc5**: Decode and dump RC5 IR codes.
|
||||
- **raw**: Print all remote codes in their raw form. Useful for using arbitrary protocols.
|
||||
|
||||
- **tolerance** (*Optional*, int): The percentage that the remote signal lengths can deviate in the
|
||||
decoding process. Defaults to ``25%``.
|
||||
@ -59,6 +62,13 @@ Configuration variables:
|
||||
|
||||
Automations:
|
||||
|
||||
- **on_coolix** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Coolix remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::CoolixData`
|
||||
is passed to the automation for use in lambdas.
|
||||
- **on_dish** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
dish network remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DishData`
|
||||
is passed to the automation for use in lambdas.
|
||||
Beware that Dish remotes use a different carrier frequency (57.6kHz) that many receiver hardware don't decode.
|
||||
- **on_jvc** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
JVC remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::JVCData`
|
||||
is passed to the automation for use in lambdas.
|
||||
@ -78,11 +88,14 @@ Automations:
|
||||
Therefore, if the the configuration file has come from an earlier version of ESPhome, it is necessary to reverse the order of the address and command bits when moving to 2021.12 or above.
|
||||
For example, address: 0x84ED, command: 0x13EC becomes 0xB721 and 0x37C8 respectively.
|
||||
|
||||
- **on_sony** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Sony remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::SonyData`
|
||||
- **on_nexa** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Nexa RF code has been decoded. A variable ``x`` of type :apiclass:`remote_base::NexaData`
|
||||
is passed to the automation for use in lambdas.
|
||||
- **on_toshiba_ac** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Toshiba AC remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::ToshibaAcData`
|
||||
- **on_panasonic** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Panasonic remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::PanasonicData`
|
||||
is passed to the automation for use in lambdas.
|
||||
- **on_pioneer** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
pioneer remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::PioneerData`
|
||||
is passed to the automation for use in lambdas.
|
||||
- **on_raw** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
raw remote code has been decoded. A variable ``x`` of type ``std::vector<int>``
|
||||
@ -99,16 +112,12 @@ Automations:
|
||||
- **on_samsung36** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Samsung36 remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::Samsung36Data`
|
||||
is passed to the automation for use in lambdas.
|
||||
- **on_panasonic** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Panasonic remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::PanasonicData`
|
||||
- **on_sony** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Sony remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::SonyData`
|
||||
is passed to the automation for use in lambdas.
|
||||
- **on_pioneer** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
pioneer remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::PioneerData`
|
||||
- **on_toshiba_ac** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
Toshiba AC remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::ToshibaAcData`
|
||||
is passed to the automation for use in lambdas.
|
||||
- **on_dish** (*Optional*, :ref:`Automation <automation>`): An automation to perform when a
|
||||
dish network remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DishData`
|
||||
is passed to the automation for use in lambdas.
|
||||
Beware that Dish remotes use a different carrier frequency (57.6kHz) that many receiver hardware don't decode.
|
||||
|
||||
.. _remote-receiver-binary-sensor:
|
||||
|
||||
@ -143,6 +152,16 @@ Configuration variables:
|
||||
|
||||
Remote code selection (exactly one of these has to be included):
|
||||
|
||||
- **coolix**: Trigger on a decoded Coolix remote code with the given data.
|
||||
|
||||
- **data** (**Required**, int): The 24-bit Coolix code to trigger on, see dumper output for more info.
|
||||
|
||||
- **dish**: Trigger on a decoded Dish Network remote code with the given data.
|
||||
Beware that Dish remotes use a different carrier frequency (57.6kHz) that many receiver hardware don't decode.
|
||||
|
||||
- **address** (*Optional*, int): The number of the receiver to target, between 1 and 16 inclusive. Defaults to ``1``.
|
||||
- **command** (**Required**, int): The Dish command to listen for, between 0 and 63 inclusive.
|
||||
|
||||
- **jvc**: Trigger on a decoded JVC remote code with the given data.
|
||||
|
||||
- **data** (**Required**, int): The JVC code to trigger on, see dumper output for more info.
|
||||
@ -168,35 +187,13 @@ Remote code selection (exactly one of these has to be included):
|
||||
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
|
||||
- **command** (**Required**, int): The NEC command to listen for.
|
||||
|
||||
- **sony**: Trigger on a decoded Sony remote code with the given data.
|
||||
- **nexa**: Trigger on a decoded Nexa RF code with the given data.
|
||||
|
||||
- **data** (**Required**, int): The Sony code to trigger on, see dumper output for more info.
|
||||
- **nbits** (*Optional*, int): The number of bits of the remote code. Defaults to ``12``.
|
||||
|
||||
- **toshiba_ac**: Trigger on a decoded Toshiba AC remote code with the given data.
|
||||
|
||||
- **rc_code_1** (**Required**, int): The remote control code to trigger on, see dumper output for more details.
|
||||
- **rc_code_2** (*Optional*, int): The second part of the remote control code to trigger on, see dumper output for more details.
|
||||
|
||||
- **raw**: Trigger on a raw remote code with the given code.
|
||||
|
||||
- **code** (**Required**, list): The code to listen for, see :ref:`remote_transmitter-transmit_raw`
|
||||
for more info. Usually you only need to copy this directly from the dumper output.
|
||||
|
||||
- **rc5**: Trigger on a decoded RC5 remote code with the given data.
|
||||
|
||||
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
|
||||
- **command** (**Required**, int): The RC5 command to listen for.
|
||||
|
||||
- **samsung**: Trigger on a decoded Samsung remote code with the given data.
|
||||
|
||||
- **data** (**Required**, int): The data to trigger on, see dumper output for more info.
|
||||
- **nbits** (*Optional*, int): The number of bits of the remote code. Defaults to ``32``.
|
||||
|
||||
- **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.
|
||||
- **device** (**Required**, int): The Nexa device code to trigger on, see dumper output for more info.
|
||||
- **group** (**Required**, int): The Nexa group code to trigger on, see dumper output for more info.
|
||||
- **state** (**Required**, int): The Nexa state code to trigger on, see dumper output for more info.
|
||||
- **channel** (**Required**, int): The Nexa channel code to trigger on, see dumper output for more info.
|
||||
- **level** (**Required**, int): The Nexa level code to trigger on, see dumper output for more info.
|
||||
|
||||
- **panasonic**: Trigger on a decoded Panasonic remote code with the given data.
|
||||
|
||||
@ -207,11 +204,15 @@ Remote code selection (exactly one of these has to be included):
|
||||
|
||||
- **rc_code_1** (**Required**, int): The remote control code to trigger on, see dumper output for more details.
|
||||
|
||||
- **dish**: Trigger on a decoded Dish Network remote code with the given data.
|
||||
Beware that Dish remotes use a different carrier frequency (57.6kHz) that many receiver hardware don't decode.
|
||||
- **raw**: Trigger on a raw remote code with the given code.
|
||||
|
||||
- **address** (*Optional*, int): The number of the receiver to target, between 1 and 16 inclusive. Defaults to ``1``.
|
||||
- **command** (**Required**, int): The Dish command to listen for, between 0 and 63 inclusive.
|
||||
- **code** (**Required**, list): The code to listen for, see :ref:`remote_transmitter-transmit_raw`
|
||||
for more info. Usually you only need to copy this directly from the dumper output.
|
||||
|
||||
- **rc5**: Trigger on a decoded RC5 remote code with the given data.
|
||||
|
||||
- **address** (**Required**, int): The address to trigger on, see dumper output for more info.
|
||||
- **command** (**Required**, int): The RC5 command to listen for.
|
||||
|
||||
- **rc_switch_raw**: Trigger on a decoded RC Switch raw remote code with the given data.
|
||||
|
||||
@ -248,6 +249,26 @@ Remote code selection (exactly one of these has to be included):
|
||||
- **state** (**Required**, boolean): The on/off state to trigger on.
|
||||
- **protocol** (*Optional*): The RC Switch protocol to use, see :ref:`remote_transmitter-rc_switch-protocol` for more info.
|
||||
|
||||
- **samsung**: Trigger on a decoded Samsung remote code with the given data.
|
||||
|
||||
- **data** (**Required**, int): The data to trigger on, see dumper output for more info.
|
||||
- **nbits** (*Optional*, int): The number of bits of the remote code. Defaults to ``32``.
|
||||
|
||||
- **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.
|
||||
|
||||
- **sony**: Trigger on a decoded Sony remote code with the given data.
|
||||
|
||||
- **data** (**Required**, int): The Sony code to trigger on, see dumper output for more info.
|
||||
- **nbits** (*Optional*, int): The number of bits of the remote code. Defaults to ``12``.
|
||||
|
||||
- **toshiba_ac**: Trigger on a decoded Toshiba AC remote code with the given data.
|
||||
|
||||
- **rc_code_1** (**Required**, int): The remote control code to trigger on, see dumper output for more details.
|
||||
- **rc_code_2** (*Optional*, int): The second part of the remote control code to trigger on, see dumper output for more details.
|
||||
|
||||
.. note::
|
||||
|
||||
For the Sonoff RF Bridge you can use `this hack <https://github.com/xoseperez/espurna/wiki/Hardware-Itead-Sonoff-RF-Bridge---Direct-Hack>`__
|
||||
|
@ -74,58 +74,50 @@ Configuration variables:
|
||||
|
||||
- **transmitter_id** (*Optional*, :ref:`config-id`): The remote transmitter to send the
|
||||
remote code with. Defaults to the first one defined in the configuration.
|
||||
|
||||
|
||||
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_coolix:
|
||||
|
||||
``remote_transmitter.transmit_raw`` Action
|
||||
******************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a raw code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_raw:
|
||||
code: [4088, -1542, 1019, -510, 513, -1019, 510, -509, 511, -510, 1020,
|
||||
-1020, 1022, -1019, 510, -509, 511, -510, 511, -509, 511, -510,
|
||||
1020, -1019, 510, -511, 1020, -510, 512, -508, 510, -1020, 1022,
|
||||
-1021, 1019, -1019, 511, -510, 510, -510, 1022, -1020, 1019,
|
||||
-1020, 511, -511, 1018, -1022, 1020, -1019, 1021, -1019, 1020,
|
||||
-511, 510, -1019, 1023, -1019, 1019, -510, 512, -508, 510, -511,
|
||||
512, -1019, 510, -509]
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **code** (**Required**, list): The raw code to send as a list of integers.
|
||||
Positive numbers represent a digital high signal and negative numbers a digital low signal.
|
||||
The number itself encodes how long the signal should last (in microseconds).
|
||||
- **carrier_frequency** (*Optional*, float): Optionally set a frequency to send the signal
|
||||
with for infrared signals. Defaults to ``0Hz``.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_pronto:
|
||||
|
||||
``remote_transmitter.transmit_pronto`` Action
|
||||
``remote_transmitter.transmit_coolix`` Action
|
||||
*********************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a raw code to a remote transmitter specified in Pronto format.
|
||||
This :ref:`action <config-action>` sends a 24-bit Coolix infrared remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_pronto:
|
||||
data: "0000 006D 0010 0000 0008 0020 0008 0046 000A 0020 0008 0020 0008 001E 000A 001E 000A 0046 000A 001E 0008 0020 0008 0020 0008 0046 000A 0046 000A 0046 000A 001E 000A 001E 0008 06C3"
|
||||
- remote_transmitter.transmit_coolix:
|
||||
data: 0xB23FE4
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **data** (**Required**, string): The raw code to send specified as a string.
|
||||
A lot of remote control Pronto codes can be found on http://remotecentral.com
|
||||
- **data** (**Required**, int): The Coolix code to send, see dumper output for more info.
|
||||
|
||||
.. _remote_transmitter-transmit_dish:
|
||||
|
||||
``remote_transmitter.transmit_dish`` Action
|
||||
*******************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a Dish Network infrared remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_dish:
|
||||
address: 1
|
||||
command: 16
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **address** (*Optional*, int): The number of the receiver to target, between 1 and 16 inclusive. Defaults to ``1``.
|
||||
- **command** (**Required**, int): The command to send, between 0 and 63 inclusive.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
You can find a list of commands in the `LIRC project <https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/dishnet/Dish_Network.lircd.conf>`__.
|
||||
|
||||
.. _remote_transmitter-transmit_jvc:
|
||||
|
||||
``remote_transmitter.transmit_jvc`` Action
|
||||
******************************************
|
||||
@ -142,6 +134,8 @@ Configuration variables:
|
||||
|
||||
- **data** (**Required**, int): The JVC code to send, see dumper output for more info.
|
||||
|
||||
.. _remote_transmitter-transmit_lg:
|
||||
|
||||
``remote_transmitter.transmit_lg`` Action
|
||||
*****************************************
|
||||
|
||||
@ -202,82 +196,31 @@ Configuration variables:
|
||||
- **command** (**Required**, int): The NEC command to send.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
``remote_transmitter.transmit_sony`` Action
|
||||
``remote_transmitter.transmit_nexa`` Action
|
||||
*******************************************
|
||||
|
||||
This :ref:`action <config-action>` a Sony infrared remote code to a remote transmitter.
|
||||
This :ref:`action <config-action>` a Nexa RF remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_sony:
|
||||
data: 0x123
|
||||
nbits: 12
|
||||
- remote_transmitter.nexa:
|
||||
device: 0x38DDB4A
|
||||
state: 1
|
||||
group: 0
|
||||
channel: 15
|
||||
level: 0
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **data** (**Required**, int): The Sony code to send, see dumper output for more info.
|
||||
- **nbits** (*Optional*, int): The number of bits to send. Defaults to ``12``.
|
||||
- **device** (**Required**, int): The Nexa device code to send, see dumper output for more info.
|
||||
- **state** (**Required**, int): The Nexa state code to send (0-OFF, 1-ON, 2-DIMMER LEVEL), see dumper output for more info.
|
||||
- **group** (**Required**, int): The Nexa group code to send, see dumper output for more info.
|
||||
- **channel** (**Required**, int): The Nexa channel code to send, see dumper output for more info.
|
||||
- **level** (**Required**, int): The Nexa level code to send, see dumper output for more info.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
``remote_transmitter.transmit_rc5`` Action
|
||||
******************************************
|
||||
|
||||
This :ref:`action <config-action>` sends an RC5 infrared remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_rc5:
|
||||
address: 0x1F
|
||||
command: 0x3F
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **address** (**Required**, int): The address to send, see dumper output for more details.
|
||||
- **command** (**Required**, int): The RC5 command to send.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
``remote_transmitter.transmit_samsung`` Action
|
||||
**********************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a Samsung infrared remote code to a remote transmitter.
|
||||
It transmits codes up to 64 bits in length in a single packet.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_samsung:
|
||||
data: 0x1FEF05E4
|
||||
# additional example for 48-bit codes:
|
||||
- remote_transmitter.transmit_samsung:
|
||||
data: 0xB946F50A09F6
|
||||
nbits: 48
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **data** (**Required**, int): The data to send, see dumper output for more details.
|
||||
- **nbits** (*Optional*, int): The number of bits to send. Defaults to ``32``.
|
||||
- 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.
|
||||
It transmits the ``address`` and ``command`` in two packets separated by a "space".
|
||||
|
||||
.. 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:
|
||||
|
||||
``remote_transmitter.transmit_panasonic`` Action
|
||||
************************************************
|
||||
@ -297,26 +240,7 @@ Configuration variables:
|
||||
- **command** (**Required**, int): The command to send.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
``remote_transmitter.transmit_dish`` Action
|
||||
************************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a Dish Network infrared remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_dish:
|
||||
address: 1
|
||||
command: 16
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **address** (*Optional*, int): The number of the receiver to target, between 1 and 16 inclusive. Defaults to ``1``.
|
||||
- **command** (**Required**, int): The command to send, between 0 and 63 inclusive.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
You can find a list of commands in the `LIRC project <https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/dishnet/Dish_Network.lircd.conf>`__.
|
||||
|
||||
.. _remote_transmitter-transmit_pioneer:
|
||||
|
||||
``remote_transmitter.transmit_pioneer`` Action
|
||||
**********************************************
|
||||
@ -347,26 +271,75 @@ At the time this action was created, Pioneer maintained listings of IR codes use
|
||||
If unable to find your specific device in the documentation, find a device in the same class; the codes
|
||||
are largely shared among devices within a given class.
|
||||
|
||||
``remote_transmitter.transmit_toshiba_ac`` Action
|
||||
*************************************************
|
||||
.. _remote_transmitter-transmit_pronto:
|
||||
|
||||
This :ref:`action <config-action>` sends a Toshiba AC infrared remote code to a remote transmitter.
|
||||
``remote_transmitter.transmit_pronto`` Action
|
||||
*********************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a raw code to a remote transmitter specified in Pronto format.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_toshiba_ac:
|
||||
rc_code_1: 0xB24DBF4040BF
|
||||
rc_code_2: 0xD5660001003C
|
||||
- remote_transmitter.transmit_pronto:
|
||||
data: "0000 006D 0010 0000 0008 0020 0008 0046 000A 0020 0008 0020 0008 001E 000A 001E 000A 0046 000A 001E 0008 0020 0008 0020 0008 0046 000A 0046 000A 0046 000A 001E 000A 001E 0008 06C3"
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **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
|
||||
two parts.
|
||||
- **Note:** this action transmits codes using the new(er) Toshiba AC protocol and likely will not work with older units.
|
||||
- **data** (**Required**, string): The raw code to send specified as a string.
|
||||
A lot of remote control Pronto codes can be found on http://remotecentral.com
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_raw:
|
||||
|
||||
``remote_transmitter.transmit_raw`` Action
|
||||
******************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a raw code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_raw:
|
||||
code: [4088, -1542, 1019, -510, 513, -1019, 510, -509, 511, -510, 1020,
|
||||
-1020, 1022, -1019, 510, -509, 511, -510, 511, -509, 511, -510,
|
||||
1020, -1019, 510, -511, 1020, -510, 512, -508, 510, -1020, 1022,
|
||||
-1021, 1019, -1019, 511, -510, 510, -510, 1022, -1020, 1019,
|
||||
-1020, 511, -511, 1018, -1022, 1020, -1019, 1021, -1019, 1020,
|
||||
-511, 510, -1019, 1023, -1019, 1019, -510, 512, -508, 510, -511,
|
||||
512, -1019, 510, -509]
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **code** (**Required**, list): The raw code to send as a list of integers.
|
||||
Positive numbers represent a digital high signal and negative numbers a digital low signal.
|
||||
The number itself encodes how long the signal should last (in microseconds).
|
||||
- **carrier_frequency** (*Optional*, float): Optionally set a frequency to send the signal
|
||||
with for infrared signals. Defaults to ``0Hz``.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_rc5:
|
||||
|
||||
``remote_transmitter.transmit_rc5`` Action
|
||||
******************************************
|
||||
|
||||
This :ref:`action <config-action>` sends an RC5 infrared remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_rc5:
|
||||
address: 0x1F
|
||||
command: 0x3F
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **address** (**Required**, int): The address to send, see dumper output for more details.
|
||||
- **command** (**Required**, int): The RC5 command to send.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_rc_switch_raw:
|
||||
|
||||
``remote_transmitter.transmit_rc_switch_raw`` Action
|
||||
****************************************************
|
||||
|
||||
@ -405,6 +378,8 @@ All RC Switch ``protocol`` settings have these settings:
|
||||
- **one** (*Optional*): The number of high/low pulses for a one bit, defaults to ``[3, 1]``
|
||||
- **inverted** (*Optional*, boolean): If this protocol is inverted. Defaults to ``false``.
|
||||
|
||||
.. _remote_transmitter-transmit_rc_switch_type_a:
|
||||
|
||||
``remote_transmitter.transmit_rc_switch_type_a`` Action
|
||||
*******************************************************
|
||||
|
||||
@ -429,6 +404,8 @@ Configuration variables:
|
||||
for more information.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_rc_switch_type_b:
|
||||
|
||||
``remote_transmitter.transmit_rc_switch_type_b`` Action
|
||||
*******************************************************
|
||||
|
||||
@ -453,6 +430,8 @@ Configuration variables:
|
||||
for more information.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_rc_switch_type_c:
|
||||
|
||||
``remote_transmitter.transmit_rc_switch_type_c`` Action
|
||||
*******************************************************
|
||||
|
||||
@ -479,6 +458,8 @@ Configuration variables:
|
||||
for more information.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_rc_switch_type_d:
|
||||
|
||||
``remote_transmitter.transmit_rc_switch_type_d`` Action
|
||||
*******************************************************
|
||||
|
||||
@ -503,8 +484,95 @@ Configuration variables:
|
||||
for more information.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_samsung:
|
||||
|
||||
lambda calls
|
||||
``remote_transmitter.transmit_samsung`` Action
|
||||
**********************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a Samsung infrared remote code to a remote transmitter.
|
||||
It transmits codes up to 64 bits in length in a single packet.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_samsung:
|
||||
data: 0x1FEF05E4
|
||||
# additional example for 48-bit codes:
|
||||
- remote_transmitter.transmit_samsung:
|
||||
data: 0xB946F50A09F6
|
||||
nbits: 48
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **data** (**Required**, int): The data to send, see dumper output for more details.
|
||||
- **nbits** (*Optional*, int): The number of bits to send. Defaults to ``32``.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_samsung36:
|
||||
|
||||
``remote_transmitter.transmit_samsung36`` Action
|
||||
************************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a Samsung36 infrared remote code to a remote transmitter.
|
||||
It transmits the ``address`` and ``command`` in two packets separated by a "space".
|
||||
|
||||
.. 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_sony:
|
||||
|
||||
``remote_transmitter.transmit_sony`` Action
|
||||
*******************************************
|
||||
|
||||
This :ref:`action <config-action>` a Sony infrared remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_sony:
|
||||
data: 0x123
|
||||
nbits: 12
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **data** (**Required**, int): The Sony code to send, see dumper output for more info.
|
||||
- **nbits** (*Optional*, int): The number of bits to send. Defaults to ``12``.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
.. _remote_transmitter-transmit_toshiba_ac:
|
||||
|
||||
``remote_transmitter.transmit_toshiba_ac`` Action
|
||||
*************************************************
|
||||
|
||||
This :ref:`action <config-action>` sends a Toshiba AC infrared remote code to a remote transmitter.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
- remote_transmitter.transmit_toshiba_ac:
|
||||
rc_code_1: 0xB24DBF4040BF
|
||||
rc_code_2: 0xD5660001003C
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **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
|
||||
two parts.
|
||||
- **Note:** this action transmits codes using the new(er) Toshiba AC protocol and likely will not work with older units.
|
||||
- All other options from :ref:`remote_transmitter-transmit_action`.
|
||||
|
||||
|
||||
Lambda calls
|
||||
************
|
||||
|
||||
Actions may also be called from :ref:`lambdas <config-lambda>`. The ``.transmit()`` call can be populated with
|
||||
|
75
components/sensor/bl0940.rst
Normal file
@ -0,0 +1,75 @@
|
||||
Belling BL0940 Energy Monitor
|
||||
==================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up BL0940 power monitors.
|
||||
:image: bl0940.png
|
||||
:keywords: BL0940
|
||||
|
||||
.. note::
|
||||
|
||||
This page is incomplete and could some work. If you want to contribute, please read the
|
||||
:doc:`contributing guide </guides/contributing>`. This page is missing:
|
||||
|
||||
- Images/screenshots/example configs of this device being used in action.
|
||||
|
||||
The ``bl0940`` sensor platform allows you to use BL0940 energy monitors sensors with
|
||||
ESPHome. These are used in some Tuya-devices (e.g. the power metering BW-SHP10)
|
||||
|
||||
The communication with this integration is done over a :ref:`UART bus <uart>`.
|
||||
You must therefore have a ``uart:`` entry in your configuration with both the TX and RX pins set
|
||||
to some pins on your board and the baud rate set to 4800 with 1 stop bit.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
uart:
|
||||
id: uart_bus
|
||||
tx_pin: TX
|
||||
rx_pin: RX
|
||||
baud_rate: 4800
|
||||
stop_bits: 1
|
||||
|
||||
sensor:
|
||||
- platform: bl0940
|
||||
uart_id: uart_bus
|
||||
voltage:
|
||||
name: 'BL0940 Voltage'
|
||||
current:
|
||||
name: 'BL0940 Current'
|
||||
power:
|
||||
name: 'BL0940 Power'
|
||||
energy:
|
||||
name: 'BL0940 Energy'
|
||||
temperature:
|
||||
name: 'BL0940 Internal temperature'
|
||||
target_temperature:
|
||||
name: 'BL0940 External temperature'
|
||||
update_interval: 60s
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **voltage** (*Optional*): The voltage value of the sensor in Volts.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **current** (*Optional*): The current value of the sensor in Amperes. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **power** (*Optional*): The (active) power value of the sensor in Watts. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **energy** (*Optional*): Use the voltage value of the sensor in kWh.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **temperature** (*Optional*): The internal temperature value of the sensor in °C.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **target_temperature** (*Optional*): The external value of the sensor in °C. Often not connected and gives garbage data.
|
||||
All 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.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`bl0940/bl0940.h`
|
||||
- :ghedit:`Edit`
|
86
components/sensor/bmp3xx.rst
Normal file
@ -0,0 +1,86 @@
|
||||
BMP388 / BMP390 Temperature+Pressure Sensor
|
||||
===========================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up BMP388 or BMP390 temperature and pressure sensors with ESPHome
|
||||
:image: bmp388.jpg
|
||||
:keywords: BMP388 BMP390
|
||||
|
||||
The ``bmp3xx`` sensor platform allows you to use your BMP388 or BMP390
|
||||
(`datasheet <https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp390-ds002.pdf>`__, `BMP390 product page <https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/bmp390/>`__) temperature and pressure sensors with ESPHome. The :ref:`I²C <i2c>` bus is
|
||||
required to be set up in your configuration for this sensor to work.
|
||||
|
||||
.. figure:: images/bmp388.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
BMP388/BMP390 Temperature and Pressure Sensor.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: bmp3xx
|
||||
temperature:
|
||||
name: "Outside Temperature"
|
||||
oversampling: 16x
|
||||
pressure:
|
||||
name: "Outside Pressure"
|
||||
address: 0x77
|
||||
update_interval: 60s
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **temperature** (*Optional*): The information for the temperature sensor.
|
||||
|
||||
- **name** (**Required**, string): The name for the temperature
|
||||
sensor.
|
||||
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
|
||||
See :ref:`Oversampling Options <bmp3xx-oversampling>`.
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **pressure** (*Optional*): The information for the pressure sensor.
|
||||
|
||||
- **name** (**Required**, string): The name for the pressure sensor.
|
||||
- **oversampling** (*Optional*): The oversampling parameter for the temperature sensor.
|
||||
See :ref:`Oversampling Options <bmp3xx-oversampling>`.
|
||||
- **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 ``0x77``. Another address can be ``0x76``.
|
||||
- **iir_filter** (*Optional*): Set up an Infinite Impulse Response filter to increase accuracy. One of
|
||||
``OFF``, ``2x``, ``4x``, ``16x``, ``32``, ``64x``, ``128x``. Defaults to ``OFF``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the
|
||||
sensor. Defaults to ``60s``.
|
||||
|
||||
|
||||
.. _bmp3xx-oversampling:
|
||||
|
||||
Oversampling Options
|
||||
--------------------
|
||||
|
||||
By default, the BMP3xx sensor measures pressure 16 times and temperature 2 times when requesting a new value. You can, however,
|
||||
configure this amount. Possible oversampling values:
|
||||
|
||||
- ``NONE`` (value is skipped)
|
||||
- ``2x``
|
||||
- ``4x``
|
||||
- ``8x``
|
||||
- ``16x`` (default)
|
||||
- ``32x``
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :doc:`bme280`
|
||||
- :doc:`bmp280`
|
||||
- :doc:`bme680`
|
||||
- :doc:`bmp085`
|
||||
- :apiref:`bmp3xx/bmp3xx.h`
|
||||
- `BMP3 sensor API <https://github.com/BoschSensortec/BMP3-Sensor-API>`__
|
||||
- `BMP388/BMP390 Library <https://github.com/MartinL1/BMP388_DEV>`__ by Martin Lindupp
|
||||
- :ghedit:`Edit`
|
After Width: | Height: | Size: 3.1 KiB |
118
components/sensor/cd74hc4067.rst
Normal file
@ -0,0 +1,118 @@
|
||||
cd74hc4067 Analog Multiplexer
|
||||
=============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up cd74hc4067 Analog Multiplexer and sensors.
|
||||
:image: cd74hc4067.jpg
|
||||
|
||||
|
||||
The ``cd74hc4067`` Analog Multiplexer component allows you to attach up to 16 analog input sensors to a single ADC pin.
|
||||
The component is used to activate the right multiplexer pin for each of the defined cd74hc4067 sensors.
|
||||
|
||||
For further information about the cd74hc4067 chip see the `spec sheet <https://www.ti.com/lit/ds/symlink/cd74hc4067.pdf>`__
|
||||
and there are also some guides around like the one from `Adam Meyer <http://adam-meyer.com/arduino/CD74HC4067>`__.
|
||||
|
||||
Actually, the chip is bidirectional and could also be used as output, but this is not supported by the component yet.
|
||||
|
||||
First, you need to configure the component with the digital pins that control the multiplexer.
|
||||
Then you need to set up a voltage sensor source (e.g. :doc:`ADC sensor <adc>`) and pass it to the cd74hc4067 sensors with the ``sensor`` option.
|
||||
Each cd74hc4067 sensor is configured for one of the 16 input pins of the multiplexer.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
cd74hc4067:
|
||||
pin_s0: D0
|
||||
pin_s1: D1
|
||||
pin_s2: D2
|
||||
pin_s3: D3
|
||||
|
||||
sensor:
|
||||
- platform: adc
|
||||
id: adc_sensor
|
||||
pin: A0
|
||||
- platform: cd74hc4067
|
||||
id: adc_0
|
||||
number: 0
|
||||
sensor: adc_sensor
|
||||
- platform: cd74hc4067
|
||||
id: adc_1
|
||||
number: 1
|
||||
sensor: adc_sensor
|
||||
|
||||
Component/Hub
|
||||
-------------
|
||||
|
||||
Configuration Variables:
|
||||
************************
|
||||
|
||||
- **pin_s0** to **pin_s3** (**Required**, :ref:`config-pin`): The I/O pins connected to the S0 to S3 channel selection pins
|
||||
- **delay** (*Optional*, :ref:`config-time`): A small delay duration needed for the chip to switch inputs, defaults to 2ms.
|
||||
|
||||
Sensor
|
||||
------
|
||||
|
||||
Configuration Variables:
|
||||
************************
|
||||
|
||||
- **sensor** (**Required**, :ref:`config-id`): The source sensor to measure voltage values from, e.g. :doc:`ADC sensor <adc>`.
|
||||
- **number** (*Required*, int): The number of the cd74hc4067 input pin (0-15)
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
Application Example
|
||||
-------------------
|
||||
|
||||
In this example, the component is used to measure the AC power output of two solar inverters to integrate them
|
||||
as energy sources in `Home Assistant <https://www.home-assistant.io/docs/energy/solar-panels/>`__.
|
||||
|
||||
For this purpose, :doc:`CT clamp sensors <ct_clamp>` are attached on each of the sensors.
|
||||
Filters are needed to calibrate the output and cut off the noise of near-zero values.
|
||||
The ``adc`` and ``cd74hc4067`` sensors updates are triggered by the ``ct_clamp`` sensors and have a very high internal update frequency.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
cd74hc4067:
|
||||
pin_s0: D0
|
||||
pin_s1: D1
|
||||
pin_s2: D2
|
||||
pin_s3: D3
|
||||
|
||||
sensor:
|
||||
- platform: adc
|
||||
id: adc_sensor
|
||||
pin: A0
|
||||
update_interval: 3600s
|
||||
- platform: cd74hc4067
|
||||
id: solar_1_raw
|
||||
number: 0
|
||||
sensor: adc_sensor
|
||||
update_interval: 3600s
|
||||
- platform: cd74hc4067
|
||||
id: solar_2_raw
|
||||
number: 1
|
||||
sensor: adc_sensor
|
||||
update_interval: 3600s
|
||||
- platform: ct_clamp
|
||||
name: "SolarPower1"
|
||||
sensor: solar_1_raw
|
||||
update_interval: 5s
|
||||
unit_of_measurement: "W"
|
||||
device_class: "power"
|
||||
filters:
|
||||
- lambda: "return x > 0.001 ? x * 56221 : 0;"
|
||||
- platform: ct_clamp
|
||||
name: "SolarPower2"
|
||||
sensor: solar_2_raw
|
||||
update_interval: 5s
|
||||
unit_of_measurement: "W"
|
||||
device_class: "power"
|
||||
filters:
|
||||
- lambda: "return x > 0.001 ? x * 57519 : 0;"
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`adc`
|
||||
- :doc:`ads1115`
|
||||
- :doc:`ct_clamp`
|
||||
- :ghedit:`Edit`
|
154
components/sensor/growatt_solar.rst
Normal file
@ -0,0 +1,154 @@
|
||||
Growatt Solar
|
||||
=============
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up a Growatt inverter reading on modbus.
|
||||
:image: growatt.jpg
|
||||
:keywords: Growatt, Ginverter
|
||||
|
||||
The ``Growatt Inverter`` sensor platform allows you to use growatt inverter data reading on modbus with ESPHome.
|
||||
|
||||
.. figure:: images/growatt.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
Growatt Logo
|
||||
|
||||
The communication with this integration is done over a :ref:`UART bus <uart>` using :ref:`Modbus <modbus>`.
|
||||
You must therefore have a ``uart:`` entry in your configuration with both the TX and RX pins set
|
||||
to some pins on your board and the baud rate set to 9600.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
uart:
|
||||
- id: uart1
|
||||
baud_rate: 9600
|
||||
tx_pin: GPIO1
|
||||
rx_pin: GPIO3
|
||||
|
||||
modbus:
|
||||
uart_id: uart1
|
||||
flow_control_pin: GPIO4
|
||||
|
||||
sensor:
|
||||
- platform: growatt_solar
|
||||
update_interval: 10s
|
||||
|
||||
inverter_status:
|
||||
name: "Growatt Status Code"
|
||||
|
||||
phase_a:
|
||||
voltage:
|
||||
name: "Growatt Voltage Phase A"
|
||||
current:
|
||||
name: "Growatt Current Phase A"
|
||||
active_power:
|
||||
name: "Growatt Power Phase A"
|
||||
phase_b:
|
||||
voltage:
|
||||
name: "Growatt Voltage Phase B"
|
||||
current:
|
||||
name: "Growatt Current Phase B"
|
||||
active_power:
|
||||
name: "Growatt Power Phase B"
|
||||
phase_c:
|
||||
voltage:
|
||||
name: "Growatt Voltage Phase C"
|
||||
current:
|
||||
name: "Growatt Current Phase C"
|
||||
active_power:
|
||||
name: "Growatt Power Phase C"
|
||||
|
||||
pv1:
|
||||
voltage:
|
||||
name: "Growatt PV1 Voltage"
|
||||
current:
|
||||
name: "Growatt PV1 Current"
|
||||
active_power:
|
||||
name: "Growatt PV1 Active Power"
|
||||
|
||||
pv2:
|
||||
voltage:
|
||||
name: "Growatt PV2 Voltage"
|
||||
current:
|
||||
name: "Growatt PV2 Current"
|
||||
active_power:
|
||||
name: "Growatt PV2 Active Power"
|
||||
|
||||
active_power:
|
||||
name: "Growatt Grid Active Power"
|
||||
|
||||
pv_active_power:
|
||||
name: "Growatt PV Active Power"
|
||||
|
||||
frequency:
|
||||
name: "Growatt Frequency"
|
||||
|
||||
energy_production_day:
|
||||
name: "Growatt Today's Generation"
|
||||
|
||||
total_energy_production:
|
||||
name: "Growatt Total Energy Production"
|
||||
|
||||
inverter_module_temp:
|
||||
name: "Growatt Inverter Module Temp"
|
||||
|
||||
|
||||
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **inverter_status** (*Optional*): Status code of the inverter (0: waiting, 1: normal, 3:fault)
|
||||
|
||||
- **phase_a** (*Optional*): The group of exposed sensors for Phase A/1.
|
||||
|
||||
- **current** (*Optional*): Use the current value of the sensor in amperes. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **voltage** (*Optional*): Use the voltage value of the sensor in volts.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **active_power** (*Optional*): Use the (active) power value of the sensor in watts. All options
|
||||
from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **phase_b** (*Optional*): The group of exposed sensors for Phase B/2 on applicable inverters.
|
||||
|
||||
- All options from **phase_a**
|
||||
|
||||
- **phase_c** (*Optional*): The group of exposed sensors for Phase C/3 on applicable inverters.
|
||||
|
||||
- All options from **phase_a**
|
||||
|
||||
- **pv1** (*Optional*): The group of exposed sensors for Photo Voltaic 1.
|
||||
|
||||
- **current** (*Optional*): Use the current value of the sensor in amperes. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **voltage** (*Optional*): Use the voltage value of the sensor in volts.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **active_power** (*Optional*): Use the (active) power value of the sensor in watts. All options
|
||||
from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **pv2** (*Optional*): The group of exposed sensors for Photo Voltaic 2.
|
||||
|
||||
- All options from **pv1**
|
||||
|
||||
- **active_power** (*Optional*): Use the (active) power value for the Grid in watts. All options
|
||||
from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **pv_active_power** (*Optional*): Use the (active) power value of PVs in total in watts. All options
|
||||
from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
- **frequency** (*Optional*): Use the frequency value of the sensor in hertz.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **energy_production_day** (*Optional*): Use the export active energy value for same day of the
|
||||
sensor in kilo watt hours. All options from :ref:`Sensor <config-sensor>`.
|
||||
- **total_energy_production** (*Optional*): Use the total exported energy value of the sensor in
|
||||
kilo watt hours. All options from :ref:`Sensor <config-sensor>`.
|
||||
- **inverter_module_temp** (*Optional*): Use the inverter module temperature value of the sensor in
|
||||
degree celsius. All options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :ghedit:`Edit`
|
BIN
components/sensor/images/bmp388.jpg
Normal file
After Width: | Height: | Size: 289 KiB |
BIN
components/sensor/images/growatt.jpg
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
components/sensor/images/ina260-full.png
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
components/sensor/images/mcp3204.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
59
components/sensor/ina260.rst
Normal file
@ -0,0 +1,59 @@
|
||||
INA260 DC Current and Power sensor
|
||||
==================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up INA260 DC current and power sensors
|
||||
:image: ina260.jpg
|
||||
:keywords: ina260
|
||||
|
||||
The ``ina260`` sensor platform allows you to use your INA260 DC Current and Power Sensor
|
||||
(`datasheet <https://www.ti.com/lit/ds/symlink/ina260.pdf>`__,
|
||||
`Adafruit`_) sensors with ESPHome. The :ref:`I²C Bus <i2c>` is
|
||||
required to be set up in your configuration for this sensor to work.
|
||||
|
||||
|
||||
.. figure:: images/ina260-full.png
|
||||
:align: center
|
||||
:width: 65.0%
|
||||
|
||||
INA260 DC Current and Power Sensor.
|
||||
|
||||
.. _Adafruit: https://www.adafruit.com/product/4226
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: ina260
|
||||
address: 0x40
|
||||
current:
|
||||
name: "INA260 Current"
|
||||
power:
|
||||
name: "INA260 Power"
|
||||
bus_voltage:
|
||||
name: "INA260 Bus Voltage"
|
||||
update_interval: 60s
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x40``.
|
||||
Defaults to ``0.002ohm``.
|
||||
- **current** (*Optional*): Use the current value of the sensor in amperes. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **power** (*Optional*): Use the power value of the sensor in watts. All options from
|
||||
:ref:`Sensor <config-sensor>`.
|
||||
- **bus_voltage** (*Optional*): Use the bus voltage (voltage of the high side contact) value of the sensor in V. All options from :ref:`Sensor <config-sensor>`.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :doc:`ina219`
|
||||
- :doc:`ina226`
|
||||
- :doc:`ina3221`
|
||||
- :apiref:`ina260/ina260.h`
|
||||
- `INA260 Arduino Library <https://github.com/adafruit/Adafruit_INA260>`__
|
||||
- :ghedit:`Edit`
|
@ -129,6 +129,11 @@ Filters are processed in the order they are defined in your configuration.
|
||||
window_size: 5
|
||||
send_every: 5
|
||||
send_first_at: 1
|
||||
- quantile:
|
||||
window_size: 5
|
||||
send_every: 5
|
||||
send_first_at: 1
|
||||
quantile: .9
|
||||
- sliding_window_moving_average:
|
||||
window_size: 15
|
||||
send_every: 15
|
||||
@ -232,6 +237,41 @@ degree with a least squares solver.
|
||||
filters:
|
||||
- filter_out: 85.0
|
||||
|
||||
``quantile``
|
||||
************
|
||||
|
||||
A `simple moving quantile <https://en.wikipedia.org/wiki/Quantile>`__
|
||||
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
|
||||
|
||||
# Example configuration entry
|
||||
- platform: wifi_signal
|
||||
# ...
|
||||
filters:
|
||||
- quantile:
|
||||
window_size: 7
|
||||
send_every: 4
|
||||
send_first_at: 3
|
||||
quantile: .9
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **window_size** (*Optional*, int): The number of values over which to calculate the quantile
|
||||
when pushing out a value.
|
||||
Defaults to ``5``.
|
||||
- **send_every** (*Optional*, int): How often a sensor value should be pushed out. For
|
||||
example, in above configuration the quantile is calculated after every 4th
|
||||
received sensor value, over the last 7 received values.
|
||||
Defaults to ``5``.
|
||||
- **send_first_at** (*Optional*, int): 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``.
|
||||
- **quantile** (*Optional*, float): value from 0 to 1 to determine which quantile to pick.
|
||||
Defaults to ``.9``.
|
||||
|
||||
``median``
|
||||
**********
|
||||
|
||||
@ -344,6 +384,8 @@ Configuration variables:
|
||||
published. With this parameter you can specify when the very first value is to be sent.
|
||||
Defaults to ``1``.
|
||||
|
||||
.. _sensor-filter-exponential_moving_average:
|
||||
|
||||
``exponential_moving_average``
|
||||
******************************
|
||||
|
||||
|
61
components/sensor/kalman_combinator.rst
Normal file
@ -0,0 +1,61 @@
|
||||
Kalman filter-based sensor fusion
|
||||
=================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up a kalman_combinator sensor
|
||||
|
||||
The ``kalman_combinator`` sensor platform allows you to filter one or several
|
||||
sensors into one with a reduced error. If using a single sensor as data source,
|
||||
it acts like a :ref:`sensor-filter-exponential_moving_average` filter. With
|
||||
multiple sensors, it combines their values based on their respective standard
|
||||
deviation.
|
||||
|
||||
The ``unit_of_measurement``, ``device_class``, ``entity_category``, ``icon``, and
|
||||
``accuracy_decimals`` properties are by default inherited from the first sensor.
|
||||
``state_class`` is explicitly not inherited, because ``total_increasing`` states
|
||||
could still decrease when multiple sensors are used.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: kalman_combinator
|
||||
name: "Temperature"
|
||||
unit_of_measurement: °C
|
||||
process_std_dev: 0.001
|
||||
sources:
|
||||
- source: temperature_sensor_1
|
||||
error: 1.0
|
||||
- source: temperature_sensor_2
|
||||
error: !lambda |-
|
||||
return 0.5 + std::abs(x - 25) * 0.023
|
||||
|
||||
Configuration variables:
|
||||
------------------------
|
||||
|
||||
- **process_std_dev** (**Required**, float): The standard deviation of the
|
||||
measurement's change per second (e.g. ``1/3600 = 0.000277`` if the
|
||||
temperature usually changes at most by one Kelvin per hour). A low value here
|
||||
will place high importance on the current state and be slow to respond to
|
||||
changes in the measured samples. A high value will update faster, but also be
|
||||
more noisy.
|
||||
- **std_dev** (*Optional*, :ref:`Sensor <config-sensor>`): A sensor
|
||||
that publishes the current standard deviation of the state with each update.
|
||||
- **sources** (**Required**, list): A list of sensors to use as source. Each
|
||||
source must have either **error** or **error_function** set. These work like
|
||||
the **process_std_dev** parameter, with low values marking accurate data.
|
||||
|
||||
- **sensor** (**Required**, :ref:`config-id` of a :doc:`/components/sensor/index`): The
|
||||
sensor that is used as sample source
|
||||
- **error** (**Required**, float, :ref:`templatable <config-templatable>`): The standard deviation of the
|
||||
sensor's measurements. If implemented as a template, the measurement is in
|
||||
parameter ``x``.
|
||||
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`sensor-filters`
|
||||
- :apiref:`kalman_combinator/kalman_combinator.h`
|
||||
- :ghedit:`Edit`
|
81
components/sensor/mcp3204.rst
Normal file
@ -0,0 +1,81 @@
|
||||
MCP3204 4-Channel 12-Bit A/D Converter
|
||||
======================================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up MCP3204 12-Bit Analog to Digital Converter in ESPHome.
|
||||
:keywords: MCP3204
|
||||
:image: mcp3204.jpg
|
||||
|
||||
The Microchip Technology Inc. MCP3204
|
||||
devices are successive approximation 12-bit Analog-to-Digital (A/D) converters with on-board sample and
|
||||
hold circuitry.
|
||||
|
||||
.. figure:: images/mcp3204.jpg
|
||||
:align: center
|
||||
:width: 50.0%
|
||||
|
||||
.. _mcp3204-component:
|
||||
|
||||
Component/Hub
|
||||
-------------
|
||||
|
||||
The MCP3204 component allows you to use MCP3204 4-Channel 12-Bit A/D Converter
|
||||
(`datasheet <https://ww1.microchip.com/downloads/en/DeviceDoc/21298e.pdf>`__) in ESPHome.
|
||||
It uses the :ref:`SPI Bus <spi>` for communication.
|
||||
|
||||
Once configured, you can use any of the 4 pins as
|
||||
sensors for your projects.
|
||||
|
||||
Each pin will respond with a voltage calculated off of the ``reference_voltage`` (default is 3.3V).
|
||||
It calculates the voltage by multiplying the ``reference_voltage * value`` on the pin (basically the percentage of VREF)
|
||||
|
||||
Most configurations will set the ``reference_voltage`` = VREF (pin 13 on the chip)
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
mcp3204:
|
||||
cs_pin: GPIO15
|
||||
reference_voltage: 3.3V
|
||||
|
||||
# Example config of sensors.
|
||||
# This is a small 1.5v solar panel power rail attached to pin 0
|
||||
# of the MCP3204
|
||||
sensor:
|
||||
- platform: mcp3204 # Attached to pin 0 of the MCP3204.
|
||||
update_interval: 1s
|
||||
id: solar_voltage
|
||||
number: 0 # MCP3204 pin number
|
||||
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP3204 component.
|
||||
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The SPI cable select pin to use.
|
||||
- **reference_voltage** (*Optional*, float): The reference voltage. Defaults to ``3.3V``.
|
||||
|
||||
|
||||
Sensor
|
||||
------
|
||||
|
||||
The ``mcp3204`` sensor allows you to use your MCP3204 12-Bit A/D Converter sensors with ESPHome.
|
||||
First, setup a :ref:`MCP3204 Hub <mcp3204-component>` for your MCP3204 sensor and then use this
|
||||
sensor platform to create individual sensors that will report the voltage to Home Assistant.
|
||||
|
||||
Configuration variables:
|
||||
************************
|
||||
|
||||
- **mcp3204_id** (**Required**, :ref:`config-id`): The id of the parent MCP3204 component.
|
||||
- **name** (**Required**, string): The name of the voltage sensor.
|
||||
- **number** (**Required**, int): The pin number of the MCP3204
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :ref:`spi`
|
||||
- :apiref:`mcp3204/mcp3204.h`
|
||||
- :ghedit:`Edit`
|
@ -43,7 +43,7 @@ to some pins on your board and the baud rate set to 9600.
|
||||
rx_pin: D1
|
||||
tx_pin: D2
|
||||
baud_rate: 9600
|
||||
|
||||
|
||||
modbus:
|
||||
|
||||
sensor:
|
||||
@ -83,6 +83,18 @@ Configuration variables:
|
||||
the same UART bus. You will need to set the address of each device manually. Defaults to ``1``.
|
||||
- **modbus_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the Modbus hub.
|
||||
|
||||
.. _pzemac-reset_energy_action:
|
||||
|
||||
``pzemac.reset_energy`` Action
|
||||
******************************
|
||||
|
||||
This action resets the total energy value of the pzemac device with the given ID when executed.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
on_...:
|
||||
then:
|
||||
- pzemac.reset_energy: pzemac_1
|
||||
|
||||
Changing the address of a PZEM-004T:
|
||||
------------------------------------
|
||||
@ -93,7 +105,7 @@ You must set the ``address`` of the ``modbus_controller`` to the current address
|
||||
.. warning::
|
||||
|
||||
This should be used only once! After changing the address, this code should be removed from the ESP before using the actual sensor code.
|
||||
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
esphome:
|
||||
|
@ -49,6 +49,8 @@ to some pins on your board and the baud rate set to 9600.
|
||||
name: "SDM220M Phase Angle"
|
||||
frequency:
|
||||
name: "SDM220M Frequency"
|
||||
total_power:
|
||||
name: "SDM220M Total Power"
|
||||
import_active_energy:
|
||||
name: "SDM220M Import Active Energy"
|
||||
export_active_energy:
|
||||
@ -90,6 +92,8 @@ Configuration variables:
|
||||
|
||||
- **frequency** (*Optional*): Use the frequency value of the sensor in hertz.
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **total_power** (*Optional*): Use the total power value of the sensor in watts (W).
|
||||
All options from :ref:`Sensor <config-sensor>`.
|
||||
- **import_active_energy** (*Optional*): Use the import active energy value of the sensor in kilowatt
|
||||
hours (kWh). All options from :ref:`Sensor <config-sensor>`.
|
||||
- **export_active_energy** (*Optional*): Use the export active energy value of the sensor in kilowatt
|
||||
|
@ -218,6 +218,8 @@ Configuration example for ATC MiThermometer firmware set to "Custom" advertiseme
|
||||
name: "ATC Battery-Level"
|
||||
battery_voltage:
|
||||
name: "ATC Battery-Voltage"
|
||||
signal_strength:
|
||||
name: "ATC Signal"
|
||||
|
||||
Configuration example for PVVX MiThermometer firmware set to "Custom" advertisement:
|
||||
|
||||
|
@ -29,6 +29,17 @@ Configuration variables:
|
||||
- **output** (**Required**, :ref:`config-id`): The ID of the output component to use.
|
||||
- **name** (**Required**, string): The name for the switch.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **restore_mode** (*Optional*): Control how the switch attempts to restore state on bootup.
|
||||
For restoring on ESP8266s, also see ``esp8266_restore_from_flash`` in the
|
||||
:doc:`esphome section </components/esphome>`.
|
||||
|
||||
- ``RESTORE_DEFAULT_OFF`` (Default) - Attempt to restore state and default to OFF if not possible to restore.
|
||||
- ``RESTORE_DEFAULT_ON`` - Attempt to restore state and default to ON.
|
||||
- ``RESTORE_INVERTED_DEFAULT_OFF`` - Attempt to restore state inverted from the previous state and default to OFF.
|
||||
- ``RESTORE_INVERTED_DEFAULT_ON`` - Attempt to restore state inverted from the previous state and default to ON.
|
||||
- ``ALWAYS_OFF`` - Always initialize the pin as OFF on bootup.
|
||||
- ``ALWAYS_ON`` - Always initialize the pin as ON on bootup.
|
||||
|
||||
- All other options from :ref:`Switch <config-switch>`.
|
||||
|
||||
See Also
|
||||
|
4
conf.py
@ -67,9 +67,9 @@ author = "Otto Winter"
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = "2021.12"
|
||||
version = "2022.1"
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = "2021.12.3"
|
||||
release = "2022.1.0"
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -381,6 +381,7 @@ All Actions
|
||||
- :ref:`rf_bridge.learn <rf_bridge-learn_action>`
|
||||
- :ref:`ds1307.read_time <ds1307-read_time_action>` / :ref:`ds1307.write_time <ds1307-write_time_action>`
|
||||
- :ref:`cs5460a.restart <cs5460a-restart_action>`
|
||||
- :ref:`pzemac.reset_energy <pzemac-reset_energy_action>`
|
||||
- :ref:`number.set <number-set_action>`
|
||||
|
||||
.. _config-condition:
|
||||
|
@ -40,6 +40,7 @@ Contributors
|
||||
- `Anders (@ahd71) <https://github.com/ahd71>`__
|
||||
- `Alexander Pohl (@ahpohl) <https://github.com/ahpohl>`__
|
||||
- `Airy André (@airy10) <https://github.com/airy10>`__
|
||||
- `Andrej Friesen (@ajfriesen) <https://github.com/ajfriesen>`__
|
||||
- `akoivist (@akoivist) <https://github.com/akoivist>`__
|
||||
- `Andrej Komelj (@akomelj) <https://github.com/akomelj>`__
|
||||
- `Alex Konradi (@akonradi) <https://github.com/akonradi>`__
|
||||
@ -69,10 +70,13 @@ Contributors
|
||||
- `Nikolay Vasilchuk (@Anonym-tsk) <https://github.com/Anonym-tsk>`__
|
||||
- `Adriaan Peeters (@apeeters) <https://github.com/apeeters>`__
|
||||
- `Darius Ratkevičius (@aphex008) <https://github.com/aphex008>`__
|
||||
- `aquaticus (@aquaticus) <https://github.com/aquaticus>`__
|
||||
- `Andy Allsopp (@arallsopp) <https://github.com/arallsopp>`__
|
||||
- `arantius (@arantius) <https://github.com/arantius>`__
|
||||
- `arunderwood (@arunderwood) <https://github.com/arunderwood>`__
|
||||
- `Ash McKenzie (@ashmckenzie) <https://github.com/ashmckenzie>`__
|
||||
- `Pavel Pletenev (@ASMfreaK) <https://github.com/ASMfreaK>`__
|
||||
- `Andreas Soehlke (@asoehlke) <https://github.com/asoehlke>`__
|
||||
- `Mike Dunston (@atanisoft) <https://github.com/atanisoft>`__
|
||||
- `Arsène von Wyss (@avonwyss) <https://github.com/avonwyss>`__
|
||||
- `Achilleas Pipinellis (@axilleas) <https://github.com/axilleas>`__
|
||||
@ -118,6 +122,7 @@ Contributors
|
||||
- `Carlos Garcia Saura (@CarlosGS) <https://github.com/CarlosGS>`__
|
||||
- `Carlos Ruiz (@CarlosRDomin) <https://github.com/CarlosRDomin>`__
|
||||
- `carstenschroeder (@carstenschroeder) <https://github.com/carstenschroeder>`__
|
||||
- `Valentin Ochs (@Cat-Ion) <https://github.com/Cat-Ion>`__
|
||||
- `cbialobos (@cbialobos) <https://github.com/cbialobos>`__
|
||||
- `Ciprian Constantinescu (@cciprian5) <https://github.com/cciprian5>`__
|
||||
- `Marco (@cdrfun) <https://github.com/cdrfun>`__
|
||||
@ -134,9 +139,11 @@ Contributors
|
||||
- `Conclusio (@Conclusio) <https://github.com/Conclusio>`__
|
||||
- `John Coggeshall (@coogle) <https://github.com/coogle>`__
|
||||
- `James Crook (@cooljimy84) <https://github.com/cooljimy84>`__
|
||||
- `Cooper Dale (@Cooper-Dale) <https://github.com/Cooper-Dale>`__
|
||||
- `copercini (@copercini) <https://github.com/copercini>`__
|
||||
- `Corban Mailloux (@corbanmailloux) <https://github.com/corbanmailloux>`__
|
||||
- `Dmitry Berezovsky (@corvis) <https://github.com/corvis>`__
|
||||
- `Cougar (@Cougar) <https://github.com/Cougar>`__
|
||||
- `Connor Prussin (@cprussin) <https://github.com/cprussin>`__
|
||||
- `cretep (@cretep) <https://github.com/cretep>`__
|
||||
- `cryptelli (@cryptelli) <https://github.com/cryptelli>`__
|
||||
@ -145,6 +152,7 @@ Contributors
|
||||
- `Alex Solomaha (@CyanoFresh) <https://github.com/CyanoFresh>`__
|
||||
- `Luar Roji (@cyberplant) <https://github.com/cyberplant>`__
|
||||
- `d-two (@d-two) <https://github.com/d-two>`__
|
||||
- `d3wy (@d3wy) <https://github.com/d3wy>`__
|
||||
- `Dale Higgs (@dale3h) <https://github.com/dale3h>`__
|
||||
- `damanti-me (@damanti-me) <https://github.com/damanti-me>`__
|
||||
- `Daniel Bjørnbakk (@danibjor) <https://github.com/danibjor>`__
|
||||
@ -162,6 +170,8 @@ Contributors
|
||||
- `David Beitey (@davidjb) <https://github.com/davidjb>`__
|
||||
- `davidmonro (@davidmonro) <https://github.com/davidmonro>`__
|
||||
- `David Zovko (@davidzovko) <https://github.com/davidzovko>`__
|
||||
- `Darren Tucker (@daztucker) <https://github.com/daztucker>`__
|
||||
- `David Buezas (@dbuezas) <https://github.com/dbuezas>`__
|
||||
- `dckiller51 (@dckiller51) <https://github.com/dckiller51>`__
|
||||
- `Debashish Sahu (@debsahu) <https://github.com/debsahu>`__
|
||||
- `declanshanaghy (@declanshanaghy) <https://github.com/declanshanaghy>`__
|
||||
@ -204,7 +214,6 @@ Contributors
|
||||
- `Duncan Findlay (@duncf) <https://github.com/duncf>`__
|
||||
- `dyarkovoy (@dyarkovoy) <https://github.com/dyarkovoy>`__
|
||||
- `Dimitris Zervas (@dzervas) <https://github.com/dzervas>`__
|
||||
- `dziobson (@dziobson) <https://github.com/dziobson>`__
|
||||
- `Dan Jackson (@e28eta) <https://github.com/e28eta>`__
|
||||
- `Ermanno Baschiera (@ebaschiera) <https://github.com/ebaschiera>`__
|
||||
- `Robert Resch (@edenhaus) <https://github.com/edenhaus>`__
|
||||
@ -214,7 +223,6 @@ Contributors
|
||||
- `Erwin Kooi (@egeltje) <https://github.com/egeltje>`__
|
||||
- `Eike (@ei-ke) <https://github.com/ei-ke>`__
|
||||
- `Elazar Leibovich (@elazarl) <https://github.com/elazarl>`__
|
||||
- `electrofun-smart (@electrofun-smart) <https://github.com/electrofun-smart>`__
|
||||
- `Elkropac (@Elkropac) <https://github.com/Elkropac>`__
|
||||
- `elyorkhakimov (@elyorkhakimov) <https://github.com/elyorkhakimov>`__
|
||||
- `EmbeddedDevver (@EmbeddedDevver) <https://github.com/EmbeddedDevver>`__
|
||||
@ -226,7 +234,7 @@ Contributors
|
||||
- `Nico Weichbrodt (@envy) <https://github.com/envy>`__
|
||||
- `Evan Petousis (@epetousis) <https://github.com/epetousis>`__
|
||||
- `Wilhelm Erasmus (@erasmuswill) <https://github.com/erasmuswill>`__
|
||||
- `erazor666 (@erazor666) <https://github.com/erazor666>`__
|
||||
- `Eric Coffman (@ericbrian) <https://github.com/ericbrian>`__
|
||||
- `Eric Hiller (@erichiller) <https://github.com/erichiller>`__
|
||||
- `Ernst Klamer (@Ernst79) <https://github.com/Ernst79>`__
|
||||
- `escoand (@escoand) <https://github.com/escoand>`__
|
||||
@ -242,6 +250,7 @@ Contributors
|
||||
- `fkirill (@fkirill) <https://github.com/fkirill>`__
|
||||
- `Sean Vig (@flacjacket) <https://github.com/flacjacket>`__
|
||||
- `Diego Elio Pettenò (@Flameeyes) <https://github.com/Flameeyes>`__
|
||||
- `Flaviu Tamas (@flaviut) <https://github.com/flaviut>`__
|
||||
- `foxsam21 (@foxsam21) <https://github.com/foxsam21>`__
|
||||
- `Fractal147 (@Fractal147) <https://github.com/Fractal147>`__
|
||||
- `Francis-labo (@Francis-labo) <https://github.com/Francis-labo>`__
|
||||
@ -256,12 +265,10 @@ Contributors
|
||||
- `frippe75 (@frippe75) <https://github.com/frippe75>`__
|
||||
- `Fritz Mueller (@fritzm) <https://github.com/fritzm>`__
|
||||
- `Marc Egli (@frog32) <https://github.com/frog32>`__
|
||||
- `frspp (@frspp) <https://github.com/frspp>`__
|
||||
- `mr G1K (@G1K) <https://github.com/G1K>`__
|
||||
- `Aljaž Srebrnič (@g5pw) <https://github.com/g5pw>`__
|
||||
- `Gabe Cook (@gabe565) <https://github.com/gabe565>`__
|
||||
- `Gareth Cooper (@gaco79) <https://github.com/gaco79>`__
|
||||
- `galagaking (@galagaking) <https://github.com/galagaking>`__
|
||||
- `GeekVisit (@GeekVisit) <https://github.com/GeekVisit>`__
|
||||
- `R Huish (@genestealer) <https://github.com/genestealer>`__
|
||||
- `Geoff Davis (@geoffdavis) <https://github.com/geoffdavis>`__
|
||||
@ -278,15 +285,15 @@ Contributors
|
||||
- `Germán Martín (@gmag11) <https://github.com/gmag11>`__
|
||||
- `Germain Masse (@gmasse) <https://github.com/gmasse>`__
|
||||
- `Jelle Raaijmakers (@GMTA) <https://github.com/GMTA>`__
|
||||
- `Gonzalo Paniagua Javier (@gonzalop) <https://github.com/gonzalop>`__
|
||||
- `gordon-zhao (@gordon-zhao) <https://github.com/gordon-zhao>`__
|
||||
- `Gustavo Ambrozio (@gpambrozio) <https://github.com/gpambrozio>`__
|
||||
- `Antoine GRÉA (@grea09) <https://github.com/grea09>`__
|
||||
- `George (@grob6000) <https://github.com/grob6000>`__
|
||||
- `Stefan Grufman (@GruffyPuffy) <https://github.com/GruffyPuffy>`__
|
||||
- `Andrea (@Guglio95) <https://github.com/Guglio95>`__
|
||||
- `Guillaume DELVIT (@guiguid) <https://github.com/guiguid>`__
|
||||
- `guptamp (@guptamp) <https://github.com/guptamp>`__
|
||||
- `Guyohms (@Guyohms) <https://github.com/Guyohms>`__
|
||||
- `h0-- (@h0--) <https://github.com/h0-->`__
|
||||
- `haade (@haade-administrator) <https://github.com/haade-administrator>`__
|
||||
- `Peter van Dijk (@Habbie) <https://github.com/Habbie>`__
|
||||
- `Hagai Shatz (@hagai-shatz) <https://github.com/hagai-shatz>`__
|
||||
@ -301,6 +308,7 @@ Contributors
|
||||
- `Hermann Kraus (@herm) <https://github.com/herm>`__
|
||||
- `Tom Cassady (@heytcass) <https://github.com/heytcass>`__
|
||||
- `Hamish Moffatt (@hmoffatt) <https://github.com/hmoffatt>`__
|
||||
- `Sebastian Raff (@hobbyquaker) <https://github.com/hobbyquaker>`__
|
||||
- `MoA (@honomoa) <https://github.com/honomoa>`__
|
||||
- `Hopperpop (@Hopperpop) <https://github.com/Hopperpop>`__
|
||||
- `Yang Hau (@HowJMay) <https://github.com/HowJMay>`__
|
||||
@ -311,7 +319,6 @@ Contributors
|
||||
- `Arjan Filius (@iafilius) <https://github.com/iafilius>`__
|
||||
- `Adrián Panella (@ianchi) <https://github.com/ianchi>`__
|
||||
- `Ian Leeder (@ianleeder) <https://github.com/ianleeder>`__
|
||||
- `icarome (@icarome) <https://github.com/icarome>`__
|
||||
- `igg (@igg) <https://github.com/igg>`__
|
||||
- `Petko Bordjukov (@ignisf) <https://github.com/ignisf>`__
|
||||
- `ikatkov (@ikatkov) <https://github.com/ikatkov>`__
|
||||
@ -328,16 +335,15 @@ Contributors
|
||||
- `James Gao (@jamesgao) <https://github.com/jamesgao>`__
|
||||
- `János Rusiczki (@janosrusiczki) <https://github.com/janosrusiczki>`__
|
||||
- `Jan Pieper (@janpieper) <https://github.com/janpieper>`__
|
||||
- `Jason-nz (@Jason-nz) <https://github.com/Jason-nz>`__
|
||||
- `Jason2866 (@Jason2866) <https://github.com/Jason2866>`__
|
||||
- `Jason Hines (@jasonehines) <https://github.com/jasonehines>`__
|
||||
- `Jas Strong (@jasstrong) <https://github.com/jasstrong>`__
|
||||
- `JbLb (@jblb) <https://github.com/jblb>`__
|
||||
- `James Callaghan (@jcallaghan) <https://github.com/jcallaghan>`__
|
||||
- `Josh Willox (@jcwillox) <https://github.com/jcwillox>`__
|
||||
- `Joshua Dadswell (@jdads1) <https://github.com/jdads1>`__
|
||||
- `jddonovan (@jddonovan) <https://github.com/jddonovan>`__
|
||||
- `jeff-h (@jeff-h) <https://github.com/jeff-h>`__
|
||||
- `Jeffrey Borg (@jeffborg) <https://github.com/jeffborg>`__
|
||||
- `Jeff Rescignano (@JeffResc) <https://github.com/JeffResc>`__
|
||||
- `Jej (@jej) <https://github.com/jej>`__
|
||||
- `Jérôme Laban (@jeromelaban) <https://github.com/jeromelaban>`__
|
||||
@ -359,6 +365,7 @@ Contributors
|
||||
- `Jonathan Treffler (@JonathanTreffler) <https://github.com/JonathanTreffler>`__
|
||||
- `JonnyaiR (@jonnyair) <https://github.com/jonnyair>`__
|
||||
- `Joppy (@JoppyFurr) <https://github.com/JoppyFurr>`__
|
||||
- `Joshua Spence (@joshuaspence) <https://github.com/joshuaspence>`__
|
||||
- `Joscha Wagner (@jowgn) <https://github.com/jowgn>`__
|
||||
- `jsuanet (@jsuanet) <https://github.com/jsuanet>`__
|
||||
- `junnikokuki (@junnikokuki) <https://github.com/junnikokuki>`__
|
||||
@ -373,21 +380,18 @@ Contributors
|
||||
- `Kris (@K-r-i-s-t-i-a-n) <https://github.com/K-r-i-s-t-i-a-n>`__
|
||||
- `Harald Nagel (@k7hpn) <https://github.com/k7hpn>`__
|
||||
- `kaegi (@kaegi) <https://github.com/kaegi>`__
|
||||
- `kalebzettl (@kalebzettl) <https://github.com/kalebzettl>`__
|
||||
- `Karol Zlot (@karolzlot) <https://github.com/karolzlot>`__
|
||||
- `Krasimir Nedelchev (@kaykayehnn) <https://github.com/kaykayehnn>`__
|
||||
- `Krzysztof Białek (@kbialek) <https://github.com/kbialek>`__
|
||||
- `kbouchard111 (@kbouchard111) <https://github.com/kbouchard111>`__
|
||||
- `Keilin Bickar (@kbickar) <https://github.com/kbickar>`__
|
||||
- `Keith Burzinski (@kbx81) <https://github.com/kbx81>`__
|
||||
- `Robert Kiss (@kepten) <https://github.com/kepten>`__
|
||||
- `Kevin O'Rourke (@kevinior) <https://github.com/kevinior>`__
|
||||
- `kimonm (@kimonm) <https://github.com/kimonm>`__
|
||||
- `Ed (@kixtarter) <https://github.com/kixtarter>`__
|
||||
- `Kurt Kellner (@kkellner) <https://github.com/kkellner>`__
|
||||
- `Klaas Schoute (@klaasnicolaas) <https://github.com/klaasnicolaas>`__
|
||||
- `Klarstein (@Klarstein) <https://github.com/Klarstein>`__
|
||||
- `Marcus Klein (@kleini) <https://github.com/kleini>`__
|
||||
- `klenaers (@klenaers) <https://github.com/klenaers>`__
|
||||
- `Kevin Lewis (@kll) <https://github.com/kll>`__
|
||||
- `Koen Vervloesem (@koenvervloesem) <https://github.com/koenvervloesem>`__
|
||||
- `Petr Vraník (@konikvranik) <https://github.com/konikvranik>`__
|
||||
@ -415,12 +419,15 @@ Contributors
|
||||
- `Lerosen (@Lerosen) <https://github.com/Lerosen>`__
|
||||
- `Leon Loopik (@Lewn) <https://github.com/Lewn>`__
|
||||
- `Luca Gugelmann (@lgugelmann) <https://github.com/lgugelmann>`__
|
||||
- `Lubos Horacek (@lhoracek) <https://github.com/lhoracek>`__
|
||||
- `Juraj Liso (@LiJu09) <https://github.com/LiJu09>`__
|
||||
- `Lazar Obradovic (@lobradov) <https://github.com/lobradov>`__
|
||||
- `Barry Loong (@loongyh) <https://github.com/loongyh>`__
|
||||
- `Joakim Sørensen (@ludeeus) <https://github.com/ludeeus>`__
|
||||
- `ludrao (@ludrao) <https://github.com/ludrao>`__
|
||||
- `Lukas Klass (@LukasK13) <https://github.com/LukasK13>`__
|
||||
- `Lumpusz (@Lumpusz) <https://github.com/Lumpusz>`__
|
||||
- `Ohad Lutzky (@lutzky) <https://github.com/lutzky>`__
|
||||
- `Luke Fitzgerald (@lwfitzgerald) <https://github.com/lwfitzgerald>`__
|
||||
- `Lewis Juggins (@lwis) <https://github.com/lwis>`__
|
||||
- `Alex Peters (@Lx) <https://github.com/Lx>`__
|
||||
@ -449,6 +456,7 @@ Contributors
|
||||
- `Martin Hjelmare (@MartinHjelmare) <https://github.com/MartinHjelmare>`__
|
||||
- `MartinWelsch (@MartinWelsch) <https://github.com/MartinWelsch>`__
|
||||
- `MasterTim17 (@MasterTim17) <https://github.com/MasterTim17>`__
|
||||
- `Christopher Masto (@masto) <https://github.com/masto>`__
|
||||
- `matikij (@matikij) <https://github.com/matikij>`__
|
||||
- `Michel Marti (@matoxp) <https://github.com/matoxp>`__
|
||||
- `matt123p (@matt123p) <https://github.com/matt123p>`__
|
||||
@ -472,6 +480,7 @@ Contributors
|
||||
- `Michaël Arnauts (@michaelarnauts) <https://github.com/michaelarnauts>`__
|
||||
- `Pauline Middelink (@middelink) <https://github.com/middelink>`__
|
||||
- `Mikko Tervala (@MikkoTervala) <https://github.com/MikkoTervala>`__
|
||||
- `MiKuBB (@MiKuBB) <https://github.com/MiKuBB>`__
|
||||
- `Minideezel (@minideezel) <https://github.com/minideezel>`__
|
||||
- `André Klitzing (@misery) <https://github.com/misery>`__
|
||||
- `Matthew Edwards (@mje-nz) <https://github.com/mje-nz>`__
|
||||
@ -486,6 +495,7 @@ Contributors
|
||||
- `Moritz Glöckl (@moritzgloeckl) <https://github.com/moritzgloeckl>`__
|
||||
- `Matthew Pettitt (@mpettitt) <https://github.com/mpettitt>`__
|
||||
- `Sam Hughes (@MrEditor97) <https://github.com/MrEditor97>`__
|
||||
- `Simon Sasburg (@MrHacky) <https://github.com/MrHacky>`__
|
||||
- `Mariusz Kryński (@mrk-its) <https://github.com/mrk-its>`__
|
||||
- `Ryan Matthews (@mrrsm) <https://github.com/mrrsm>`__
|
||||
- `MrZetor (@MrZetor) <https://github.com/MrZetor>`__
|
||||
@ -494,6 +504,7 @@ Contributors
|
||||
- `Michiel van Turnhout (@mvturnho) <https://github.com/mvturnho>`__
|
||||
- `Martin Weinelt (@mweinelt) <https://github.com/mweinelt>`__
|
||||
- `myhomeiot (@myhomeiot) <https://github.com/myhomeiot>`__
|
||||
- `Igor Scheller (@MyIgel) <https://github.com/MyIgel>`__
|
||||
- `Mynasru (@Mynasru) <https://github.com/Mynasru>`__
|
||||
- `Niels Ulrik Andersen (@myplacedk) <https://github.com/myplacedk>`__
|
||||
- `Kevin Uhlir (@n0bel) <https://github.com/n0bel>`__
|
||||
@ -584,6 +595,7 @@ Contributors
|
||||
- `Richard Kuhnt (@r15ch13) <https://github.com/r15ch13>`__
|
||||
- `Richard Miles (@r89m) <https://github.com/r89m>`__
|
||||
- `Pär Stålberg (@rabbadab) <https://github.com/rabbadab>`__
|
||||
- `Aaron Zhang (@rabbit-aaron) <https://github.com/rabbit-aaron>`__
|
||||
- `Radim Karniš (@radimkarnis) <https://github.com/radimkarnis>`__
|
||||
- `Florian Ragwitz (@rafl) <https://github.com/rafl>`__
|
||||
- `razorback16 (@razorback16) <https://github.com/razorback16>`__
|
||||
@ -662,6 +674,7 @@ Contributors
|
||||
- `Samuel Sieb (@ssieb) <https://github.com/ssieb>`__
|
||||
- `St4n (@St4n) <https://github.com/St4n>`__
|
||||
- `Stefan (@stefanroelofs) <https://github.com/stefanroelofs>`__
|
||||
- `stegm (@stegm) <https://github.com/stegm>`__
|
||||
- `Steve Baxter (@stevebaxter) <https://github.com/stevebaxter>`__
|
||||
- `sticilface (@sticilface) <https://github.com/sticilface>`__
|
||||
- `StijnVdd (@StijnVdd) <https://github.com/StijnVdd>`__
|
||||
@ -670,11 +683,13 @@ Contributors
|
||||
- `stubs12 (@stubs12) <https://github.com/stubs12>`__
|
||||
- `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__
|
||||
- `sveip (@sveip) <https://github.com/sveip>`__
|
||||
- `Sympatron GmbH (@Sympatron) <https://github.com/Sympatron>`__
|
||||
- `synco (@synco) <https://github.com/synco>`__
|
||||
- `Marcel Feix (@Syndlex) <https://github.com/Syndlex>`__
|
||||
- `Teemu Mikkonen (@T3m3z) <https://github.com/T3m3z>`__
|
||||
- `Taigar2015 (@Taigar2015) <https://github.com/Taigar2015>`__
|
||||
- `Levente Tamas (@tamisoft) <https://github.com/tamisoft>`__
|
||||
- `Aleksandr Oleinikov (@tannisroot) <https://github.com/tannisroot>`__
|
||||
- `tantive (@tantive) <https://github.com/tantive>`__
|
||||
- `TBobsin (@TBobsin) <https://github.com/TBobsin>`__
|
||||
- `Team Super Panda (@teamsuperpanda) <https://github.com/teamsuperpanda>`__
|
||||
@ -698,12 +713,14 @@ Contributors
|
||||
- `Thomas Klingbeil (@thomasklingbeil) <https://github.com/thomasklingbeil>`__
|
||||
- `Thomas Dietrich (@ThomDietrich) <https://github.com/ThomDietrich>`__
|
||||
- `Andrew Thompson (@thompsa) <https://github.com/thompsa>`__
|
||||
- `John (@thorrak) <https://github.com/thorrak>`__
|
||||
- `Tijs-B (@Tijs-B) <https://github.com/Tijs-B>`__
|
||||
- `Aidan Timson (@timmo001) <https://github.com/timmo001>`__
|
||||
- `Tim Niemueller (@timn) <https://github.com/timn>`__
|
||||
- `Tim P (@timpur) <https://github.com/timpur>`__
|
||||
- `Tim Savage (@timsavage) <https://github.com/timsavage>`__
|
||||
- `Max Efremov (@Tmin10) <https://github.com/Tmin10>`__
|
||||
- `Snōwball (@tobias-) <https://github.com/tobias->`__
|
||||
- `Philipp Tölke (@toelke) <https://github.com/toelke>`__
|
||||
- `Tom Brien (@TomBrien) <https://github.com/TomBrien>`__
|
||||
- `TomFahey (@TomFahey) <https://github.com/TomFahey>`__
|
||||
@ -717,6 +734,7 @@ Contributors
|
||||
- `Felix Eckhofer (@tribut) <https://github.com/tribut>`__
|
||||
- `Tobias (@tripplet) <https://github.com/tripplet>`__
|
||||
- `Troon (@Troon) <https://github.com/Troon>`__
|
||||
- `Olli Salonen (@trsqr) <https://github.com/trsqr>`__
|
||||
- `Trevor North (@trvrnrth) <https://github.com/trvrnrth>`__
|
||||
- `Trygve Laugstøl (@trygvis) <https://github.com/trygvis>`__
|
||||
- `Gediminas Šaltenis (@trylika) <https://github.com/trylika>`__
|
||||
@ -762,10 +780,11 @@ Contributors
|
||||
- `Yuval Aboulafia (@yuvalabou) <https://github.com/yuvalabou>`__
|
||||
- `ZabojnikM (@ZabojnikM) <https://github.com/ZabojnikM>`__
|
||||
- `zaluthar (@zaluthar) <https://github.com/zaluthar>`__
|
||||
- `david reid (@zathras777) <https://github.com/zathras777>`__
|
||||
- `ZJY (@zhangjingye03) <https://github.com/zhangjingye03>`__
|
||||
- `San (@zhujunsan) <https://github.com/zhujunsan>`__
|
||||
- `Zoltant7 (@Zoltant7) <https://github.com/Zoltant7>`__
|
||||
- `ZTX18 (@ZTX18) <https://github.com/ZTX18>`__
|
||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
||||
|
||||
*This page was last updated December 30, 2021.*
|
||||
*This page was last updated January 19, 2022.*
|
||||
|
BIN
images/bl0940.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
images/bmp388.jpg
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
images/cd74hc4067.jpg
Normal file
After Width: | Height: | Size: 119 KiB |
BIN
images/growatt.jpg
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
images/ina260.jpg
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
images/mcp3204.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
47
images/mcp47a1.svg
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="117.92471mm"
|
||||
height="26.178963mm"
|
||||
viewBox="0 0 117.92471 26.178963"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.133497;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect833"
|
||||
width="117.92471"
|
||||
height="26.178963"
|
||||
x="0"
|
||||
y="0"
|
||||
ry="6.2711163"
|
||||
d="M 6.2711163,0 H 111.6536 c 3.4742,0 6.27111,2.7969179 6.27111,6.2711163 V 19.907846 c 0,3.474199 -2.79691,6.271117 -6.27111,6.271117 H 6.2711163 C 2.7969179,26.178963 0,23.382045 0,19.907846 V 6.2711163 C 0,2.7969179 2.7969179,0 6.2711163,0 Z" />
|
||||
<g
|
||||
aria-label="MCP47A1"
|
||||
id="text837"
|
||||
style="font-size:10.5833px;line-height:1.25;letter-spacing:1.08479px;fill:#fffffc;stroke-width:0.264583">
|
||||
<path
|
||||
id="path17814"
|
||||
style="font-weight:bold;font-size:22.5778px;font-family:Montserrat;-inkscape-font-specification:'Montserrat, Bold'"
|
||||
d="m 33.033203,3.9355469 c -4.651027,0 -7.541015,3.3181235 -7.541015,8.6464841 0,5.305783 2.867878,8.603516 7.451171,8.603516 4.10916,0 6.818284,-2.372085 7.021485,-6.142578 h -3.296875 c -0.225778,2.099736 -1.535031,3.296875 -3.634766,3.296875 -2.619025,0 -4.154297,-2.121068 -4.154297,-5.710938 0,-3.635026 1.603397,-5.8027341 4.267578,-5.8027341 1.964268,0 3.069929,0.9476069 3.521485,2.9570312 h 3.228515 C 39.783595,8.3608016 39.490928,7.4569398 38.791016,6.53125 37.526659,4.8604927 35.494183,3.9355469 33.033203,3.9355469 Z M 6.0957031,4.2070312 V 20.666016 H 9.4824219 V 7.8417969 L 12.441406,20.666016 h 3.386719 L 18.740234,7.8417969 V 20.666016 h 3.386719 V 4.2070312 H 17.023438 L 14.134766,17.300781 11.154297,4.2070312 Z m 37.5039059,0 V 20.666016 h 3.386719 v -5.871094 h 4.222656 c 3.025425,0 4.966797,-2.144814 4.966797,-5.4863282 0,-3.2963589 -1.872861,-5.1015626 -5.304687,-5.1015626 z m 48.140625,0 -5.847656,16.4589848 h 3.453125 l 1.107422,-3.31836 h 6.164063 l 1.082031,3.31836 h 3.478511 L 95.488281,4.2070312 Z M 64.417969,4.6582031 58.570312,14.457031 v 2.664063 h 6.41211 v 3.544922 h 3.162109 v -3.544922 h 1.669922 V 14.501953 H 68.144531 V 4.6582031 Z m 7.904297,0 v 2.8222657 h 7.96875 c -0.970845,1.0385787 -2.889306,3.9517382 -3.521485,5.3515622 -1.106312,2.325513 -1.670631,4.424737 -2.099609,7.833985 h 3.183594 c 0.293511,-5.057428 1.941304,-8.940144 5.734375,-13.5234379 v -2.484375 z m 36.802734,0 c -0.49671,1.8965353 -2.14395,2.8671875 -4.89844,2.8671875 V 9.625 h 3.83789 v 11.041016 h 3.16016 V 4.6582031 Z M 46.986328,7.0292969 h 3.16211 c 1.806224,0 2.640625,0.7901802 2.640624,2.4609375 0,1.6933346 -0.834401,2.4824216 -2.640624,2.4824216 h -3.16211 z m 17.996094,0.6308593 v 6.8417968 h -4.175781 z m 28.5625,0.4296876 2.146484,6.4355472 h -4.291015 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
15
index.rst
@ -205,7 +205,9 @@ Analogue
|
||||
|
||||
ADC, components/sensor/adc, flash.svg, ESP internal
|
||||
ADS1115, components/sensor/ads1115, ads1115.jpg, 4-channel ADC
|
||||
CD74HC4067, components/sensor/cd74hc4067, cd74hc4067.jpg, 16-channel analog multiplexer
|
||||
MCP3008, components/sensor/mcp3008, mcp3008.jpg, 8-channel ADC
|
||||
MCP3204, components/sensor/mcp3204, mcp3204.jpg, 4-channel ADC
|
||||
Resistance, components/sensor/resistance, omega.svg
|
||||
|
||||
|
||||
@ -247,6 +249,7 @@ Electricity
|
||||
|
||||
ADE7953, components/sensor/ade7953, ade7953.svg, Power
|
||||
ATM90E32, components/sensor/atm90e32, atm90e32.jpg, Voltage & Current & Power
|
||||
BL0940, components/sensor/bl0940, bl0940.png, Voltage & Current & Power
|
||||
CS5460A, components/sensor/cs5460a, cs5460a.png, Voltage & Current & Power
|
||||
CSE7761, components/sensor/cse7761, cse7761.svg, Voltage & Current & Power
|
||||
CSE7766, components/sensor/cse7766, cse7766.svg, Voltage & Current & Power
|
||||
@ -254,8 +257,9 @@ Electricity
|
||||
Daly BMS, components/sensor/daly_bms, daly_bms.png, Voltage & Current & Power
|
||||
DSMR, components/sensor/dsmr, dsmr.svg, Electrical counter
|
||||
HLW8012, components/sensor/hlw8012, hlw8012.svg, Voltage & Current & Power
|
||||
INA219, components/sensor/ina219, ina219.jpg, DC current
|
||||
INA226, components/sensor/ina226, ina226.jpg, DC current & Power
|
||||
INA219, components/sensor/ina219, ina219.jpg, DC Current
|
||||
INA226, components/sensor/ina226, ina226.jpg, DC Current & Power
|
||||
INA260, components/sensor/ina260, ina260.jpg, DC Current & Power
|
||||
INA3221, components/sensor/ina3221, ina3221.jpg, 3-Ch DC current
|
||||
PZEM AC, components/sensor/pzemac, pzem-ac.png, Voltage & Current & Power
|
||||
PZEM DC, components/sensor/pzemdc, pzem-dc.png, Voltage & Current & Power
|
||||
@ -279,6 +283,7 @@ Environmental
|
||||
BME680 via BSEC, components/sensor/bme680_bsec, bme680.jpg, Temperature & Humidity & Pressure & Gas
|
||||
BMP085, components/sensor/bmp085, bmp180.jpg, Temperature & Pressure
|
||||
BMP280, components/sensor/bmp280, bmp280.jpg, Temperature & Pressure
|
||||
BMP388 and BMP390, components/sensor/bmp3xx, bmp388.jpg, Temperature & Pressure
|
||||
b-parasite, components/sensor/b_parasite, b_parasite.jpg, Moisture & Temperature & Humidity & Light
|
||||
Dallas DS18B20, components/sensor/dallas, dallas.jpg, Temperature
|
||||
DHT, components/sensor/dht, dht.jpg, Temperature & Humidity
|
||||
@ -333,6 +338,8 @@ Miscellaneous
|
||||
b-parasite, components/sensor/b_parasite, b_parasite.jpg, Moisture & Temperature & Humidity & Light
|
||||
EZO sensor circuits, components/sensor/ezo, ezo-ph-circuit.png, (pH)
|
||||
Havells Solar, components/sensor/havells_solar, havellsgti5000d_s.jpg, Solar rooftop
|
||||
Growatt Solar, components/sensor/growatt_solar, growatt.jpg, Solar rooftop
|
||||
Kalman Combinator, components/sensor/kalman_combinator, function.svg
|
||||
Modbus Sensor, components/sensor/modbus_controller, modbus.png
|
||||
Nextion, components/sensor/nextion, nextion.jpg, Sensors from display
|
||||
Rotary Encoder, components/sensor/rotary_encoder, rotary_encoder.jpg
|
||||
@ -415,6 +422,7 @@ Output Components
|
||||
SM16716, components/output/sm16716, sm16716.svg
|
||||
SM2135, components/output/sm2135, sm2135.svg
|
||||
MCP4725, components/output/mcp4725, mcp4725.jpg
|
||||
MCP47A1, components/output/mcp47a1, mcp47a1.svg
|
||||
BLE Binary Output, components/output/ble_client, bluetooth.svg
|
||||
Modbus Output, components/output/modbus_controller, modbus.png
|
||||
Custom Output, components/output/custom, language-cpp.svg
|
||||
@ -511,7 +519,7 @@ Display Components
|
||||
ST7920, components/display/st7920, st7920.jpg
|
||||
ILI9341, components/display/ili9341, ili9341.jpg
|
||||
Waveshare E-Paper, components/display/waveshare_epaper, waveshare_epaper.jpg
|
||||
Inkplate 6, components/display/inkplate6, inkplate6.jpg
|
||||
Inkplate, components/display/inkplate6, inkplate6.jpg
|
||||
PCD8544 (Nokia 5110/ 3310), components/display/pcd8544, pcd8544.jpg
|
||||
|
||||
Cover Components
|
||||
@ -568,6 +576,7 @@ Number Components
|
||||
Number Core, components/number/index, folder-open.svg
|
||||
Modbus Number, components/number/modbus_controller, modbus.png
|
||||
Template Number, components/number/template, description.svg
|
||||
Tuya Number, components/number/tuya, tuya.png
|
||||
|
||||
Select Components
|
||||
-----------------
|
||||
|
@ -275,3 +275,25 @@ Button
|
||||
******
|
||||
|
||||
A button can be ``pressed`` from the REST API by sending a POST request to ``button/do_something/press``.
|
||||
|
||||
Number
|
||||
******
|
||||
|
||||
Numbers can be set to a value within their minimum and maximum range and will return their current value. For example sending
|
||||
a GET request to ``/number/desired_delay`` could yield this payload:
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"id": "number-desired_delay",
|
||||
"state": "20.0000",
|
||||
"value": 20
|
||||
}
|
||||
|
||||
POST requests on the other hand allow setting the number, the available
|
||||
method is ``set``. The following parameter can be used:
|
||||
|
||||
- **value**: The value you want to set the number to. The value must be within the
|
||||
minimum and maximum range of the number otherwise it will be ignored.
|
||||
|
||||
For example POST ``/number/desired_delay/set?value=24`` will set the number to 24.
|
||||
|