mirror of
https://github.com/esphome/esphome-docs.git
synced 2025-02-19 02:11:24 +01:00
Merge branch 'current' into next
This commit is contained in:
commit
d48af09642
@ -88,6 +88,15 @@ Release 2022.6.1 - June 18
|
||||
- Bugfix for ExternalRAMAllocator copy constructor :esphomepr:`3571` by :ghuser:`bnw`
|
||||
- Media Player: added triggers :esphomepr:`3576` by :ghuser:`dudanov`
|
||||
|
||||
Release 2022.6.2 - June 23
|
||||
--------------------------
|
||||
|
||||
- Move gas mbus config option being a define to being a build flag :esphomepr:`3575` by :ghuser:`lkomurcu`
|
||||
- Fix: Make MQTT over TLS actually work :esphomepr:`3580` by :ghuser:`ShellAddicted`
|
||||
- Fix wrong type for voc_state*_ in sgp4x component :esphomepr:`3581` by :ghuser:`kahrendt`
|
||||
- Media Player: added play_media action :esphomepr:`3579` by :ghuser:`dudanov`
|
||||
- Fix 2 small issues in BLEClient :esphomepr:`3544` by :ghuser:`jhansche`
|
||||
|
||||
Breaking Changes
|
||||
----------------
|
||||
|
||||
|
@ -174,6 +174,8 @@ advanced stuff.
|
||||
id(my_climate).fan_mode
|
||||
// Swing mode, type: SwingMode (enum)
|
||||
id(my_climate).swing_mode
|
||||
// Current action (currentl on idle, cooling, heating, etc.), ClimateAction (enum)
|
||||
id(my_climate).action
|
||||
|
||||
- ``.make_call``: Control the climate device
|
||||
|
||||
|
@ -20,7 +20,7 @@ The ``midea`` component creates a Midea air conditioner climate device.
|
||||
- `Senville <https://senville.com/>`_
|
||||
- and maybe others
|
||||
|
||||
Control is possible with a custom dongle. Example of hardware implementation is `IoT Uni Dongle <https://github.com/dudanov/iot-uni-dongle>`_.
|
||||
Control is possible with a custom dongle. Example of hardware implementation is `IoT Uni Dongle <https://github.com/dudanov/iot-uni-dongle>`_ or `Midea SLWF-01pro <https://www.ebay.com/itm/164956459539>`_ (`store <https://smartlight.me/smart-home-devices/wifi-devices/wifi-dongle-air-conditioners-midea-idea-electrolux-for-home-assistant>`_, `Tindie <https://www.tindie.com/products/smartlightme/wifi-dongle-for-air-conditioners-midea-electrolux>`_).
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
@ -280,11 +280,20 @@ Wi-Fi, API, and OTA configuration.
|
||||
Inkplate 6 Plus Touchscreen
|
||||
***************************
|
||||
|
||||
The Inkplate 6 Plus has a built in touchscreen supported by ESPHome.
|
||||
Below is a config example:
|
||||
The Inkplate 6 Plus has a built in touchscreen supported by ESPHome. Note you need to enable pin 12 on the mcp23017 to enable the touchscreen
|
||||
Below is a config example with touchscreen power swtich:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
switch:
|
||||
- platform: gpio
|
||||
name: 'Inkplate Touchscreen Enabled'
|
||||
restore_mode: ALWAYS_ON
|
||||
pin:
|
||||
mcp23xxx: mcp23017_hub
|
||||
number: 12
|
||||
inverted: true
|
||||
|
||||
touchscreen:
|
||||
- platform: ektf2232
|
||||
interrupt_pin: GPIO36
|
||||
@ -293,13 +302,37 @@ Below is a config example:
|
||||
number: 10
|
||||
on_touch:
|
||||
- logger.log:
|
||||
format: "Touch: {x}, {y}"
|
||||
args:
|
||||
- touch.x
|
||||
- touch.y
|
||||
format: "touch x=%d, y=%d"
|
||||
args: ['touch.x', 'touch.y']
|
||||
|
||||
Inkplate 6 Plus Backlight
|
||||
***************************
|
||||
|
||||
The Inkplate 6 Plus has a built in backlight supported by ESPHome.
|
||||
Below is a config example:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
power_supply:
|
||||
- id: backlight_power
|
||||
keep_on_time: 0.2s
|
||||
enable_time: 0s
|
||||
pin:
|
||||
mcp23xxx: mcp23017_hub
|
||||
number: 11
|
||||
|
||||
output:
|
||||
- platform: mcp47a1
|
||||
id: backlight_brightness_output
|
||||
power_supply: backlight_power
|
||||
|
||||
light:
|
||||
- platform: monochromatic
|
||||
output: backlight_brightness_output
|
||||
id: backlight
|
||||
default_transition_length: 0.2s
|
||||
name: '${friendly_name} Backlight'
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
|
@ -24,7 +24,7 @@ If your SSD1306/SSD1305 or SH1106 is connected via the 4-Wire :ref:`SPI bus <spi
|
||||
|
||||
SSD1306 OLED Display
|
||||
|
||||
Connect D0 to the SCL pin you chose for the :ref:`I²C Bus <i2c>`, and connect D1 to the SDA pin. For power, connect
|
||||
Connect D2 to the SCL pin you chose for the :ref:`I²C Bus <i2c>`, and connect D1 to the SDA pin. For power, connect
|
||||
VCC to 3.3V and GND to GND. Optionally you can also connect the ``RESET`` pin to a pin on the ESP which may
|
||||
improve reliability.
|
||||
|
||||
|
@ -71,18 +71,6 @@ Configuration variables:
|
||||
probably to fail as the ethernet interface uses a high frequency clock signal. For more
|
||||
information and wiring details refer to the link in the *See also* section.
|
||||
|
||||
Configuration for wESP32 board
|
||||
------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ethernet:
|
||||
type: LAN8720
|
||||
mdc_pin: GPIO16
|
||||
mdio_pin: GPIO17
|
||||
clk_mode: GPIO0_IN
|
||||
phy_addr: 0
|
||||
|
||||
Configuration for Olimex ESP32-POE
|
||||
----------------------------------
|
||||
|
||||
@ -108,6 +96,18 @@ Configuration for Olimex ESP32-EVB
|
||||
clk_mode: GPIO0_IN
|
||||
phy_addr: 0
|
||||
|
||||
Configuration for Olimex ESP32-GATEWAY
|
||||
--------------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ethernet:
|
||||
type: LAN8720
|
||||
mdc_pin: GPIO23
|
||||
mdio_pin: GPIO18
|
||||
clk_mode: GPIO17_OUT
|
||||
phy_addr: 0
|
||||
|
||||
Configuration for LILYGO TTGO T-Internet-POE ESP32-WROOM LAN8270A Chip
|
||||
----------------------------------------------------------------------
|
||||
|
||||
@ -120,20 +120,6 @@ Configuration for LILYGO TTGO T-Internet-POE ESP32-WROOM LAN8270A Chip
|
||||
clk_mode: GPIO17_OUT
|
||||
phy_addr: 0
|
||||
|
||||
Configuration for OpenHacks LAN8720
|
||||
-----------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ethernet:
|
||||
type: LAN8720
|
||||
mdc_pin: GPIO23
|
||||
mdio_pin: GPIO18
|
||||
phy_addr: 1
|
||||
|
||||
Note: This board has an issue that might cause the ESP32 to boot in program mode. When testing, make sure you are monitoring the
|
||||
serial output and reboot the device several times to see if it boots into the program properly.
|
||||
|
||||
Configuration for Wireless Tag WT32-ETH01
|
||||
-----------------------------------------
|
||||
|
||||
@ -147,6 +133,40 @@ Configuration for Wireless Tag WT32-ETH01
|
||||
phy_addr: 1
|
||||
power_pin: GPIO16
|
||||
|
||||
Configuration for OpenHacks LAN8720
|
||||
-----------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ethernet:
|
||||
type: LAN8720
|
||||
mdc_pin: GPIO23
|
||||
mdio_pin: GPIO18
|
||||
phy_addr: 1
|
||||
|
||||
.. note::
|
||||
|
||||
This board has an issue that might cause the ESP32 to boot in program mode. When testing, make sure
|
||||
you are monitoring the serial output and reboot the device several times to see if it boots into the
|
||||
program properly.
|
||||
|
||||
Configuration for wESP32 board (up to rev.6)
|
||||
-------------------------------------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ethernet:
|
||||
type: LAN8720
|
||||
mdc_pin: GPIO16
|
||||
mdio_pin: GPIO17
|
||||
clk_mode: GPIO0_IN
|
||||
phy_addr: 0
|
||||
|
||||
.. note::
|
||||
|
||||
Revision 7 and upwards of the wESP32 board does not have a LAN8720 chip. Until support for the
|
||||
replacement RTL8201 is included in ESPHome, the wESP board rev.7 will not work with the above configuration.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
|
@ -41,7 +41,7 @@ Configuration variables:
|
||||
|
||||
.. note::
|
||||
|
||||
If the device can support multiple I²C buses (ESP32 has 2) these buses need to be defined as below and sensors need to be setup specifying the correct bus:
|
||||
If the device can support multiple I²C buses (ESP32 has 2, ESP8266 does not support more than one) these buses need to be defined as below and sensors need to be setup specifying the correct bus:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
@ -8,6 +8,10 @@ Shelly Dimmer
|
||||
The ``shelly_dimmer`` component adds support for the dimming and power-metering functionality that can be found the `Shelly Dimmer 2 <https://shelly.cloud/knowledge-base/devices/shelly-dimmer-2/>`_. The interaction with mains is done via an STM32 microcontroller that is flashed with an `open source firmware <https://github.com/jamesturton/shelly-dimmer-stm32>`_.
|
||||
A detailed analysis of the Shelly Dimmer 2 hardware is given `here <https://github.com/arendst/Tasmota/issues/6914>`_.
|
||||
|
||||
Warning!!! At the time of writing there seems to be no way to revert back to the "stock firmware", because there seems to be no way to revert to firmware of the STM32 co-processor.
|
||||
|
||||
The
|
||||
|
||||
.. figure:: ../../images/shellydimmer2.jpg
|
||||
:align: center
|
||||
:width: 40.0%
|
||||
|
@ -25,7 +25,7 @@ Configuration variables:
|
||||
|
||||
- **dac_type** (**Required**, enum)
|
||||
|
||||
- ``external``: Use an external DAC, for example the NS4168.
|
||||
- ``external``: Use an external DAC, for example the NS4168, or UDA1334A.
|
||||
- ``internal``: Use the internal DAC
|
||||
|
||||
- All other options from :ref:`Media Player <config-media_player>`
|
||||
@ -33,11 +33,13 @@ Configuration variables:
|
||||
External DAC
|
||||
************
|
||||
|
||||
- **i2s_lrclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I2S LRCLK signal.
|
||||
- **i2s_dout_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I2S DOUT signal.
|
||||
- **i2s_bclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I2S BCLK signal.
|
||||
- **i2s_lrclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I2S LRCLK (Word Select or Left/Right Clock) signal.
|
||||
- **i2s_dout_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I2S DOUT (Data Out) signal.
|
||||
- **i2s_bclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The GPIO pin to use for the I2S BCLK (Bit Clock) signal.
|
||||
- **mode** (*Optional*, string): The mode of the I2S bus. Can be ``mono`` or ``stereo``. Defaults to ``mono``.
|
||||
|
||||
For best results, keep the wires as short as possible.
|
||||
|
||||
Internal DAC
|
||||
************
|
||||
|
||||
|
@ -375,7 +375,7 @@ The response is mapped to the sensor based on register_count and offset in bytes
|
||||
Note
|
||||
----
|
||||
|
||||
Write support is only implemented for switches.
|
||||
Write support is only implemented for switches and selects.
|
||||
However the C++ code provides the required API to write to a modbus device.
|
||||
|
||||
These methods can be called from a lambda.
|
||||
|
@ -4,10 +4,12 @@ AHT10 Temperature+Humidity Sensor
|
||||
.. seo::
|
||||
:description: Instructions for setting up AHT10 temperature and humidity sensors
|
||||
:image: aht10.jpg
|
||||
:keywords: aht10
|
||||
:keywords: aht10 aht20 aht21 dht20
|
||||
|
||||
The ``aht10`` Temperature+Humidity sensor allows you to use your aht10
|
||||
(`datasheet <http://www.aosong.com/userfiles/files/media/aht10%E8%A7%84%E6%A0%BC%E4%B9%A6v1_1%EF%BC%8820191015%EF%BC%89.pdf>`__) i2c-based sensor with ESPHome.
|
||||
The ``aht10`` Temperature+Humidity sensor allows you to use your AHT10
|
||||
(`datasheet <http://www.aosong.com/userfiles/files/media/aht10%E8%A7%84%E6%A0%BC%E4%B9%A6v1_1%EF%BC%8820191015%EF%BC%89.pdf>`__), AHT20 (`datasheet <https://cdn-learn.adafruit.com/assets/assets/000/091/676/original/AHT20-datasheet-2020-4-16.pdf?1591047915>`__), AHT21 (`datasheet <https://asairsensors.com/wp-content/uploads/2021/09/Data-Sheet-AHT21-Humidity-and-Temperature-Sensor-ASAIR-V1.0.03.pdf>`__) :ref:`I²C <i2c>`-based sensor with ESPHome.
|
||||
|
||||
The DHT20 (`datasheet <https://cdn.sparkfun.com/assets/8/a/1/5/0/DHT20.pdf>`__) sensor has the packaging of the :doc:`dht` series, but has the AHT20 inside and is speaking :ref:`I²C <i2c>` as well.
|
||||
|
||||
.. figure:: images/aht10-full.jpg
|
||||
:align: center
|
||||
|
@ -4,13 +4,13 @@ DHT Temperature+Humidity Sensor
|
||||
.. seo::
|
||||
:description: Instructions for setting up DHT11 and DHT22 temperature and humidity sensors.
|
||||
:image: dht.jpg
|
||||
:keywords: DHT11, DHT22, AM2302, RHT03, SI7021
|
||||
:keywords: DHT11, DHT21, DHT22, AMS2301, AM2302, RHT03, SI7021
|
||||
|
||||
The DHT Temperature+Humidity sensor allows you to use your DHT11
|
||||
(`datasheet <https://akizukidenshi.com/download/ds/aosong/DHT11.pdf>`__,
|
||||
`Adafruit <https://www.adafruit.com/product/386>`__), DHT22
|
||||
`Adafruit <https://www.adafruit.com/product/386>`__), DHT21/DHT22
|
||||
(`datasheet <https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf>`__,
|
||||
`Adafruit <https://www.adafruit.com/product/385>`__), AM2302
|
||||
`Adafruit <https://www.adafruit.com/product/385>`__), AMS2301/AM2302
|
||||
(`datasheet <https://cdn-shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+AM2302.pdf>`__,
|
||||
`Adafruit <https://www.adafruit.com/product/393>`__), RHT03
|
||||
(`datasheet <https://cdn.sparkfun.com/datasheets/Sensors/Weather/RHT03.pdf>`__,
|
||||
|
@ -42,7 +42,7 @@ the measurement range and ``unit_of_measurement`` to the appropriate unit for yo
|
||||
- **pressure** (*Optional*): The information for the pressure sensor.
|
||||
|
||||
- **name** (**Required**, string): The name for the pressure sensor.
|
||||
- **min_pressure** (**Required**, int or float): Minumim pressure for the pressure sensor, default unit ``psi``.
|
||||
- **min_pressure** (**Required**, int or float): Minimum pressure for the pressure sensor, default unit ``psi``.
|
||||
- **max_pressure** (**Required**, int or float): Maximum pressure for the pressure sensor, default unit ``psi``.
|
||||
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
@ -50,7 +50,7 @@ Configuration variables:
|
||||
sensor. See https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes
|
||||
for a list of available options. Set to ``""`` to remove the default state class of a sensor.
|
||||
- **icon** (*Optional*, icon): Manually set the icon to use for the sensor in the frontend.
|
||||
- **accuracy_decimals** (*Optional*, int): Manually set the accuracy of decimals to use when reporting values.
|
||||
- **accuracy_decimals** (*Optional*, int): Manually set the number of decimals to use when reporting values. This does not impact the actual value reported to Home Assistant, it just sets the number of decimals to use when displaying it.
|
||||
- **filters** (*Optional*): Specify filters to use for some basic
|
||||
transforming of values. See :ref:`Sensor Filters <sensor-filters>` for more information.
|
||||
- **internal** (*Optional*, boolean): Mark this component as internal. Internal components will
|
||||
@ -558,10 +558,16 @@ So for example ``above: 5`` with no below would mean the range from 5 to positiv
|
||||
- platform: dallas
|
||||
# ...
|
||||
on_value_range:
|
||||
above: 5
|
||||
below: 10
|
||||
then:
|
||||
- switch.turn_on: relay_1
|
||||
- below: 5.0
|
||||
then:
|
||||
- switch.turn_on: relay_1
|
||||
- above: 5.0
|
||||
below: 10.0
|
||||
then:
|
||||
- switch.turn_on: relay_2
|
||||
- above: 10.0
|
||||
then:
|
||||
- switch.turn_on: relay_3
|
||||
|
||||
Configuration variables:
|
||||
|
||||
|
@ -40,6 +40,7 @@ If you want just the scaled value you can use the read_data function
|
||||
# Example configuration entry
|
||||
mcp3008:
|
||||
cs_pin: D8
|
||||
id: my_mcp
|
||||
|
||||
# Example config of sensors.
|
||||
# This is a NTCB3950 10K thermocoupler attached to pin 0
|
||||
@ -49,6 +50,7 @@ If you want just the scaled value you can use the read_data function
|
||||
- platform: mcp3008 # Attached to pin 0 of the MCP3008.
|
||||
reference_voltage: 3.19
|
||||
update_interval: 1s
|
||||
mcp3008_id: my_mcp
|
||||
id: freezer_temp_source
|
||||
number: 0 # MCP3008 pin number
|
||||
- platform: resistance
|
||||
@ -79,7 +81,7 @@ sensor platform to create individual sensors that will report the voltage to Hom
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **id** (**Required**, :ref:`config-id`): The id of the parent MCP3008 component.
|
||||
- **mcp3008_id** (**Required**, :ref:`config-id`): The id of the parent MCP3008 component.
|
||||
- **number** (**Required**, int): The pin number of the MCP3008
|
||||
- **reference_voltage** (*Optional*, float): The reference voltage. Defaults to ``3.3V``.
|
||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``1s``.
|
||||
|
@ -134,7 +134,8 @@ This example logs the value as parsed and the raw modbus bytes received for this
|
||||
ESP_LOGI("","Sensor properties: adress = 0x%X, offset = 0x%X value type=%d",item->start_address,item->offset,item->sensor_value_type);
|
||||
int i=0 ;
|
||||
for (auto val : data) {
|
||||
ESP_LOGI("","data[%d]=0x%02X (%d)",i++ ,data[i],data[i]);
|
||||
ESP_LOGI("","data[%d]=0x%02X (%d)",i,data[i],data[i]);
|
||||
i++;
|
||||
}
|
||||
return x ;
|
||||
|
||||
|
@ -30,13 +30,12 @@ See :doc:`/components/display/nextion` for setting up the display
|
||||
- platform: nextion
|
||||
name: "Current Humidity"
|
||||
component_name: humidity # pageX.humidity for a global
|
||||
nextion_precision: 1
|
||||
precision: 1
|
||||
update_interval: 4s
|
||||
- platform: nextion
|
||||
nextion_id: nextion1
|
||||
name: "Current Temperature"
|
||||
variable_name: temperature
|
||||
hass_component_name: sensor.temperature
|
||||
- platform: nextion
|
||||
id: s01
|
||||
component_id: 2
|
||||
|
@ -102,8 +102,8 @@ As of April 2022 the average fresh air Co² concentration is 419 ppm.
|
||||
on_...:
|
||||
then:
|
||||
- scd4x.perform_forced_calibration:
|
||||
value: 419 # outside average April 2022
|
||||
id: my_scd41
|
||||
value: 419 # outside average April 2022
|
||||
id: my_scd41
|
||||
|
||||
value can be a template
|
||||
|
||||
@ -112,8 +112,8 @@ value can be a template
|
||||
on_...:
|
||||
then:
|
||||
- scd4x._perform_forced_calibration_action:
|
||||
value: !lambda "{ return 419 };"
|
||||
id: my_scd41
|
||||
value: !lambda "{ return 419 };"
|
||||
id: my_scd41
|
||||
|
||||
|
||||
.. _factory_reset_action:
|
||||
|
@ -181,8 +181,8 @@ Hygro thermometer, small square body, segment LCD, encrypted, broadcasts tempera
|
||||
There are the following possibilities to operate this sensor:
|
||||
|
||||
1. Xiaomi stock firmware (requires a bindkey in order to decrypt the received data, see :ref:`obtaining_the_bindkey`)
|
||||
2. Device flashed with `ATC MiThermometer <https://github.com/atc1441/ATC_MiThermometer>`__ custom firmware
|
||||
3. Device flashed with `PVVX MiThermometer <https://github.com/pvvx/ATC_MiThermometer>`__ custom firmware
|
||||
2. Device flashed with `PVVX MiThermometer <https://github.com/pvvx/ATC_MiThermometer>`__ custom firmware
|
||||
3. Device flashed with `ATC MiThermometer <https://github.com/atc1441/ATC_MiThermometer>`__ custom firmware
|
||||
|
||||
- "Mi Like" advertisement (dummy bindkey required)
|
||||
- "Custom" advertisement (no bindkey required)
|
||||
@ -203,6 +203,24 @@ Configuration example for Xiaomi stock firmware or ATC MiThermometer firmware se
|
||||
battery_level:
|
||||
name: "LYWSD03MMC Battery Level"
|
||||
|
||||
Configuration example for PVVX MiThermometer firmware set to "Custom" advertisement:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: pvvx_mithermometer
|
||||
mac_address: "A4:C1:38:B1:CD:7F"
|
||||
temperature:
|
||||
name: "PVVX Temperature"
|
||||
humidity:
|
||||
name: "PVVX Humidity"
|
||||
battery_level:
|
||||
name: "PVVX Battery-Level"
|
||||
battery_voltage:
|
||||
name: "PVVX Battery-Voltage"
|
||||
signal_strength:
|
||||
name: "PVVX Signal"
|
||||
|
||||
Configuration example for ATC MiThermometer firmware set to "Custom" advertisement:
|
||||
|
||||
.. code-block:: yaml
|
||||
@ -221,23 +239,6 @@ Configuration example for ATC MiThermometer firmware set to "Custom" advertiseme
|
||||
signal_strength:
|
||||
name: "ATC Signal"
|
||||
|
||||
Configuration example for PVVX MiThermometer firmware set to "Custom" advertisement:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sensor:
|
||||
- platform: pvvx_mithermometer
|
||||
mac_address: "A4:C1:38:B1:CD:7F"
|
||||
temperature:
|
||||
name: "PVVX Temperature"
|
||||
humidity:
|
||||
name: "PVVX Humidity"
|
||||
battery_level:
|
||||
name: "PVVX Battery-Level"
|
||||
battery_voltage:
|
||||
name: "PVVX Battery-Voltage"
|
||||
signal_strength:
|
||||
name: "PVVX Signal"
|
||||
|
||||
MHO-C303
|
||||
********
|
||||
@ -593,8 +594,8 @@ For this, you load the `application <https://zaluthar.github.io/TelinkFlasher.ht
|
||||
Other encrypted devices
|
||||
***********************
|
||||
1.
|
||||
The easiest method (confirmed to work for LYWSD03MMC) is to use the `Telink flasher method <https://github.com/atc1441/ATC_MiThermometer>`__. The accompanying `video
|
||||
<https://www.youtube.com/watch?v=NXKzFG61lNs>`_ shows how to wirelessly flash a LYWSD03MMC, or how to obtain the bind key of the stock firmware (watch till around 13:10). The custom firmware allows you to change several settings of the device, including the smiley and the advertising interval. Keep in mind that when flashing the custom firmware, you need to enable the 'Advertising Type' to be 'Mi Like' and to give ESPHome a dummy bind key, as it still expects one even though the custom firmware does not encrypt the data.
|
||||
The easiest method (confirmed to work for LYWSD03MMC) is to use the `Telink flasher method <https://github.com/pvvx/ATC_MiThermometer>`__. The accompanying `video
|
||||
<https://www.youtube.com/watch?v=NXKzFG61lNs>`_ shows how to wirelessly flash a LYWSD03MMC, or how to obtain the bind key of the stock firmware (watch till around 13:10). The custom firmware allows you to change several settings of the device, including the smiley and the advertising interval. Follow the instructions on the site using Telink Flasher - best results with a Bluetooth-enabled Android phone. Note that with ``pvvx`` default settings advertisment is set to ``Custom`` with no encryption. No need for ``bind_key`` in this case, you can just add the sensors to your ESPHome config as described above.
|
||||
|
||||
2.
|
||||
The other option is to use the original Mi Home app to add the sensor once. While adding the device, a new key is generated and uploaded into the Xiaomi cloud and to the device itself. Currently a chinese server needs to be selected as the rest of the world doesn't support most of these devices yet. Once generated, the key will not change again until the device is removed and re-added in the Xiaomi app.
|
||||
@ -614,18 +615,44 @@ Another option is to use a SSL packet sniffer. It can be setup on either an Andr
|
||||
The ``bind_key`` is the 32 digits "value" item in the above output which needs to be inserted into the config file.
|
||||
|
||||
|
||||
Improving reception performance
|
||||
-------------------------------
|
||||
|
||||
Use a board with an Ethernet connection to the network, to offload ESP32's radio module from WiFi traffic, this gains performance on Bluetooth side.
|
||||
To maximize the chances of catching advertisements of the sensors, you can set ``interval`` equal to ``window`` in :doc:`/components/esp32_ble_tracker` scan parameter settings:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
esp32_ble_tracker:
|
||||
scan_parameters:
|
||||
interval: 5s # try with 300ms if you don't have LAN module
|
||||
window: 5s # try with 300ms if you don't have LAN module
|
||||
active: false
|
||||
|
||||
Avoid placing the ESP node in racks, close to routers/switches or other network equipment as EMI interference will degrade Bluetooth signal reception. For best results put as far away as possible, at least 3 meters distance from any other such equipment.
|
||||
|
||||
|
||||
Security considerations
|
||||
-----------------------
|
||||
|
||||
You should at least protect your sensors with a custom pairing PIN code.
|
||||
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`/components/esp32_ble_tracker`
|
||||
- :doc:`/components/sensor/index`
|
||||
- :apiref:`xiaomi_lywsd03mmc/xiaomi_ble.h`
|
||||
- :doc:`/components/ethernet`
|
||||
- Passive BLE monitor integration for Home Assistant (ble_monitor custom component) `<https://github.com/custom-components/ble_monitor>`__
|
||||
by `@Magalex2x14 <https://github.com/Magalex2x14>`__ and `@Ernst79 <https://github.com/Ernst79>`__
|
||||
- Xiaomi LYWSD03MMC passive sensor readout `<https://github.com/ahpohl/xiaomi_lywsd03mmc>`__ by `@ahpohl <https://github.com/ahpohl>`__
|
||||
- Custom firmware for the Xiaomi Thermometer LYWSD03MMC `<https://github.com/atc1441/ATC_MiThermometer>`__
|
||||
- TeLink flasher application `<https://atc1441.github.io/TelinkFlasher.html>`__
|
||||
- Custom firmware (PVVX) for the Xiaomi Thermometer LYWSD03MMC `<https://github.com/pvvx/ATC_MiThermometer>`__
|
||||
- TeLink flasher application (PVVX) `<https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html>`__
|
||||
- Custom firmware (ATC) for the Xiaomi Thermometer LYWSD03MMC `<https://github.com/atc1441/ATC_MiThermometer>`__
|
||||
- TeLink flasher application (ATC) `<https://atc1441.github.io/TelinkFlasher.html>`__
|
||||
- TeLink flasher application modified for CGDK2 `<https://zaluthar.github.io/TelinkFlasher.html>`__
|
||||
- Xiaomi LYWSD03MMC passive sensor readout `<https://github.com/ahpohl/xiaomi_lywsd03mmc>`__ by `@ahpohl <https://github.com/ahpohl>`__
|
||||
- Cloud Tokens Extractor: `<https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor>`__
|
||||
|
||||
- :ghedit:`Edit`
|
||||
|
@ -4,7 +4,7 @@ Modbus Controller Switch
|
||||
.. seo::
|
||||
:description: Instructions for setting up a modbus_controller device sensor.
|
||||
|
||||
The ``modbus_controller`` sensor platform creates a sensor from a modbus_controller component
|
||||
The ``modbus_controller`` switch platform creates a switch from a modbus_controller component
|
||||
and requires :doc:`/components/modbus_controller` to be configured.
|
||||
|
||||
|
||||
|
@ -59,6 +59,7 @@ Configuration variables:
|
||||
web interface. Defaults to ``false``.
|
||||
- **ota** (*Optional*, boolean): Turn on or off the OTA feature inside webserver. Strongly not suggested without enabled authentication settings. Defaults to ``true``.
|
||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||
- **local** (*Optional*, boolean): Include supporting javascript locally allowing it to work without internet access. Defaults to ``false``.
|
||||
- **version** (*Optional*, string): ``1`` or ``2``. Version 1 displays as a table. Version 2 uses web components and has more functionality. Defaults to ``2``.
|
||||
|
||||
.. note::
|
||||
|
@ -281,6 +281,22 @@ Some steps that can help with the issue:
|
||||
although it may also increase power (and possibly battery) usage of other devices also using power
|
||||
save mode.
|
||||
|
||||
Component states not restored after reboot
|
||||
------------------------------------------
|
||||
|
||||
If you notice that some components, like ``climate`` or some switches are randomly not restoring their
|
||||
state after a reboot, or you get periodic ``ESP_ERR_NVS_NOT_ENOUGH_SPACE`` errors in your debug log,
|
||||
it could be that the NVS portion of the flash memory is full due to repeatedly testing multiple
|
||||
configurations (usually large) in the same ESP32 board. Try wiping NVS with the following commands:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
dd if=/dev/zero of=nvs_zero bs=1 count=20480
|
||||
esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash 0x009000 nvs_zero
|
||||
|
||||
Change ``/dev/ttyUSB0`` above to your serial port. If you have changed the partition layout, please adjust the
|
||||
above offsets and sizes accordingly.
|
||||
|
||||
Docker Reference
|
||||
----------------
|
||||
|
||||
|
@ -89,7 +89,6 @@ Contributors
|
||||
- `balk77 (@balk77) <https://github.com/balk77>`__
|
||||
- `Paulus Schoutsen (@balloob) <https://github.com/balloob>`__
|
||||
- `Andrew Zaborowski (@balrog-kun) <https://github.com/balrog-kun>`__
|
||||
- `Rutger Nijhuis (@BananaPukeh) <https://github.com/BananaPukeh>`__
|
||||
- `BarryMar (@BarryMar) <https://github.com/BarryMar>`__
|
||||
- `bazuchan (@bazuchan) <https://github.com/bazuchan>`__
|
||||
- `Viktr (@BbIKTOP) <https://github.com/BbIKTOP>`__
|
||||
@ -136,9 +135,11 @@ Contributors
|
||||
- `Cellie (@CelliesProjects) <https://github.com/CelliesProjects>`__
|
||||
- `Kostas Chatzikokolakis (@chatziko) <https://github.com/chatziko>`__
|
||||
- `chris-jennings (@chris-jennings) <https://github.com/chris-jennings>`__
|
||||
- `Chris (@chrismaki) <https://github.com/chrismaki>`__
|
||||
- `Christian Taedcke (@chrta) <https://github.com/chrta>`__
|
||||
- `Pavel Skuratovich (@Chupaka) <https://github.com/Chupaka>`__
|
||||
- `Chris Johnson (@ciband) <https://github.com/ciband>`__
|
||||
- `Zimmermann Zsolt (@cinadr) <https://github.com/cinadr>`__
|
||||
- `John (@CircuitSetup) <https://github.com/CircuitSetup>`__
|
||||
- `Colby Rome (@cisasteelersfan) <https://github.com/cisasteelersfan>`__
|
||||
- `Chris Debenham (@cjd) <https://github.com/cjd>`__
|
||||
@ -422,6 +423,7 @@ 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>`__
|
||||
- `kahrendt (@kahrendt) <https://github.com/kahrendt>`__
|
||||
- `Karol Zlot (@karolzlot) <https://github.com/karolzlot>`__
|
||||
- `Krasimir Nedelchev (@kaykayehnn) <https://github.com/kaykayehnn>`__
|
||||
- `Krzysztof Białek (@kbialek) <https://github.com/kbialek>`__
|
||||
@ -463,6 +465,7 @@ Contributors
|
||||
- `Lubos Horacek (@lhoracek) <https://github.com/lhoracek>`__
|
||||
- `Juraj Liso (@LiJu09) <https://github.com/LiJu09>`__
|
||||
- `lingex (@lingex) <https://github.com/lingex>`__
|
||||
- `lkomurcu (@lkomurcu) <https://github.com/lkomurcu>`__
|
||||
- `Lazar Obradovic (@lobradov) <https://github.com/lobradov>`__
|
||||
- `Barry Loong (@loongyh) <https://github.com/loongyh>`__
|
||||
- `LuBeDa (@lubeda) <https://github.com/lubeda>`__
|
||||
@ -501,6 +504,7 @@ Contributors
|
||||
- `MartinWelsch (@MartinWelsch) <https://github.com/MartinWelsch>`__
|
||||
- `MasterTim17 (@MasterTim17) <https://github.com/MasterTim17>`__
|
||||
- `Christopher Masto (@masto) <https://github.com/masto>`__
|
||||
- `Mateus Demboski (@mateusdemboski) <https://github.com/mateusdemboski>`__
|
||||
- `matikij (@matikij) <https://github.com/matikij>`__
|
||||
- `Michel Marti (@matoxp) <https://github.com/matoxp>`__
|
||||
- `matt123p (@matt123p) <https://github.com/matt123p>`__
|
||||
@ -574,6 +578,7 @@ Contributors
|
||||
- `NeoAcheron (@NeoAcheron) <https://github.com/NeoAcheron>`__
|
||||
- `nepozs (@nepozs) <https://github.com/nepozs>`__
|
||||
- `Mike Meessen (@netmikey) <https://github.com/netmikey>`__
|
||||
- `Nick B. (@NickB1) <https://github.com/NickB1>`__
|
||||
- `nickrout (@nickrout) <https://github.com/nickrout>`__
|
||||
- `Nick Whyte (@nickw444) <https://github.com/nickw444>`__
|
||||
- `nicuh (@nicuh) <https://github.com/nicuh>`__
|
||||
@ -719,7 +724,7 @@ Contributors
|
||||
- `Emanuele Tessore (@setola) <https://github.com/setola>`__
|
||||
- `Abdelkader Boudih (@seuros) <https://github.com/seuros>`__
|
||||
- `SharkSharp (@SharkSharp) <https://github.com/SharkSharp>`__
|
||||
- `shbatm (@shbatm) <https://github.com/shbatm>`__
|
||||
- `ShellAddicted (@ShellAddicted) <https://github.com/ShellAddicted>`__
|
||||
- `sherbang (@sherbang) <https://github.com/sherbang>`__
|
||||
- `Shish (@shish) <https://github.com/shish>`__
|
||||
- `SiliconAvatar (@SiliconAvatar) <https://github.com/SiliconAvatar>`__
|
||||
@ -732,13 +737,9 @@ Contributors
|
||||
- `Sourabh Jaiswal (@sourabhjaiswal) <https://github.com/sourabhjaiswal>`__
|
||||
- `Philip Allgaier (@spacegaier) <https://github.com/spacegaier>`__
|
||||
- `spacemanspiff2007 (@spacemanspiff2007) <https://github.com/spacemanspiff2007>`__
|
||||
- `spattinson (@spattinson) <https://github.com/spattinson>`__
|
||||
- `Sean Brogan (@spbrogan) <https://github.com/spbrogan>`__
|
||||
- `Stephan Peijnik-Steinwender (@speijnik) <https://github.com/speijnik>`__
|
||||
- `spilin (@spilin) <https://github.com/spilin>`__
|
||||
- `square99 (@square99) <https://github.com/square99>`__
|
||||
- `Paul Krischer (@SqyD) <https://github.com/SqyD>`__
|
||||
- `sredfern (@sredfern) <https://github.com/sredfern>`__
|
||||
- `Samuel Sieb (@ssieb) <https://github.com/ssieb>`__
|
||||
- `St4n (@St4n) <https://github.com/St4n>`__
|
||||
- `stegm (@stegm) <https://github.com/stegm>`__
|
||||
@ -748,7 +749,6 @@ Contributors
|
||||
- `Stijn Tintel (@stintel) <https://github.com/stintel>`__
|
||||
- `stubs12 (@stubs12) <https://github.com/stubs12>`__
|
||||
- `Jordan Vohwinkel (@sublime93) <https://github.com/sublime93>`__
|
||||
- `sveip (@sveip) <https://github.com/sveip>`__
|
||||
- `swifty99 (@swifty99) <https://github.com/swifty99>`__
|
||||
- `Sympatron GmbH (@Sympatron) <https://github.com/Sympatron>`__
|
||||
- `synco (@synco) <https://github.com/synco>`__
|
||||
@ -791,7 +791,6 @@ Contributors
|
||||
- `Tom Matheussen (@Tommatheussen) <https://github.com/Tommatheussen>`__
|
||||
- `tomle (@tomole444) <https://github.com/tomole444>`__
|
||||
- `Tom Price (@tomtom5152) <https://github.com/tomtom5152>`__
|
||||
- `tony (@tony-fav) <https://github.com/tony-fav>`__
|
||||
- `David Kiliani (@torfbolt) <https://github.com/torfbolt>`__
|
||||
- `Felix Eckhofer (@tribut) <https://github.com/tribut>`__
|
||||
- `Trick van Staveren (@trickv) <https://github.com/trickv>`__
|
||||
@ -810,6 +809,7 @@ Contributors
|
||||
- `Thorsten von Eicken (@tve) <https://github.com/tve>`__
|
||||
- `Tyler Menezes (@tylermenezes) <https://github.com/tylermenezes>`__
|
||||
- `Unai (@unaiur) <https://github.com/unaiur>`__
|
||||
- `user897943 (@user897943) <https://github.com/user897943>`__
|
||||
- `UT2UH (@UT2UH) <https://github.com/UT2UH>`__
|
||||
- `Vc (@Valcob) <https://github.com/Valcob>`__
|
||||
- `Nad (@valordk) <https://github.com/valordk>`__
|
||||
@ -835,9 +835,11 @@ Contributors
|
||||
- `Artur 'Wodor' Wielogorski (@wodor) <https://github.com/wodor>`__
|
||||
- `Rick van Hattem (@WoLpH) <https://github.com/WoLpH>`__
|
||||
- `workingmanrob (@workingmanrob) <https://github.com/workingmanrob>`__
|
||||
- `Sven Serlier (@wrt54g) <https://github.com/wrt54g>`__
|
||||
- `Wojtek Strzalka (@wstrzalka) <https://github.com/wstrzalka>`__
|
||||
- `Wolfgang Tremmel (@wtremmel) <https://github.com/wtremmel>`__
|
||||
- `Wumpf (@Wumpf) <https://github.com/Wumpf>`__
|
||||
- `wysiwyng (@wysiwyng) <https://github.com/wysiwyng>`__
|
||||
- `Mike (@xsnoopy) <https://github.com/xsnoopy>`__
|
||||
- `Yaroslav (@Yarikx) <https://github.com/Yarikx>`__
|
||||
- `Marcin Jaworski (@yawor) <https://github.com/yawor>`__
|
||||
@ -853,4 +855,4 @@ Contributors
|
||||
- `Michael Labuschke (@zigman79) <https://github.com/zigman79>`__
|
||||
- `Christian Zufferey (@zuzu59) <https://github.com/zuzu59>`__
|
||||
|
||||
*This page was last updated June 18, 2022.*
|
||||
*This page was last updated June 23, 2022.*
|
||||
|
@ -281,7 +281,7 @@ Environmental
|
||||
|
||||
.. imgtable::
|
||||
|
||||
AHT10, components/sensor/aht10, aht10.jpg, Temperature & Humidity
|
||||
AHT10 / AHT20 / AHT21 / DHT20, components/sensor/aht10, aht10.jpg, Temperature & Humidity
|
||||
AirThings BLE, components/sensor/airthings_ble, airthings_logo.png, Temperature & Humidity & Pressure
|
||||
AM2320, components/sensor/am2320, am2320.jpg, Temperature & Humidity
|
||||
BME280, components/sensor/bme280, bme280.jpg, Temperature & Humidity & Pressure
|
||||
|
Loading…
Reference in New Issue
Block a user