Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024.11.0 #4455

Merged
merged 71 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
ff2e27e
Add tca9555 to index (#4320)
jesserockz Oct 9, 2024
04c20ac
even parity is required for CSE7766 (#4308)
ssieb Oct 6, 2024
7fa3325
Bump version to 2024.11.0-dev
jesserockz Oct 9, 2024
a56cabc
Merge branch 'current' into next
jesserockz Oct 9, 2024
93ed66f
Merge branch 'beta' into next
jesserockz Oct 9, 2024
660df0f
Document `pillow` requirements change (#4317)
hostcc Oct 10, 2024
842e830
[web_server] event component grouping (#4332)
RFDarter Oct 13, 2024
4cf6af6
Merge branch 'current' into next
jesserockz Oct 13, 2024
ea7169b
Merge branch 'beta' into next
jesserockz Oct 13, 2024
dc7d4a4
Merge branch 'current' into next
jesserockz Oct 16, 2024
6f46ea5
Merge branch 'current' into next
jesserockz Oct 16, 2024
a4b9872
Document new conditions shortcuts (#4316)
clydebarrow Oct 16, 2024
ef3e3d4
Add documentation for TC74 (#4255)
sethgirvan Oct 16, 2024
f844d67
Added ring and gauge basic shapes (#4235)
artemyevav Oct 16, 2024
2c1437d
[lvgl] Document draw_rounding (#4336)
clydebarrow Oct 16, 2024
8371c05
[qspi_dbi] Rename from qspi_amoled (#4335)
clydebarrow Oct 16, 2024
ab9da0a
Documentation for Analog Devices MAX17043 battery fuel gauge (#4299)
blacknell Oct 16, 2024
5bf9939
[light] Add ``initial_state`` documentation (#4331)
kbx81 Oct 16, 2024
ddfff8d
Document Speaker volume set action (#4343)
kahrendt Oct 16, 2024
21da187
[axs15231] Add AXS15231 touchscreen (#4334)
clydebarrow Oct 17, 2024
0da104b
[lvgl] Document selection by text for roller and dropdown (#4344)
clydebarrow Oct 17, 2024
8a6a7bb
Update documentation for custom MAC support on Arduino (#4358)
kbx81 Oct 21, 2024
5353164
Fix typo in esp32.rst (#4364)
kbx81 Oct 21, 2024
65d6dc6
Merge branch 'current' into next
jesserockz Oct 21, 2024
5df5a61
Merge branch 'current' into next
jesserockz Oct 22, 2024
b66531a
feat(MQTT): Add subscribe QoS to discovery (#4363)
Rapsssito Oct 22, 2024
c489053
I2c device docs (#4371)
jesserockz Oct 23, 2024
a718d90
Merge branch 'current' into next
jesserockz Oct 23, 2024
8e03ff0
Merge branch 'current' into next
jesserockz Oct 23, 2024
febc428
[speaker] Document mute actions and audio dac support (#4378)
kahrendt Oct 23, 2024
0b486c8
Update HA getting started to use ESPHome Device Compiler name (#4390)
balloob Oct 24, 2024
e4101c8
[media_player] Document paused and announcing conditions (#4387)
kahrendt Oct 24, 2024
9eee18e
[media_player] add new conditions to all conditions list (#4396)
kahrendt Oct 28, 2024
c841607
add `qrcode` lvgl widget (#4347)
nagyrobi Oct 28, 2024
cbb2ba8
[http_request] Add status_code note (#4397)
clydebarrow Oct 29, 2024
3c17756
Add polling_interval and its usage to ethernet.rst (#4389)
slakichi Oct 29, 2024
eebdac1
Update Mopeka docs to include new optional sensors and configuration …
spbrogan Oct 29, 2024
07b0453
[http_request] Document on_error trigger (#4401)
clydebarrow Oct 30, 2024
a10eadd
[es8311]] Document new ES8311 component (#4400)
kahrendt Oct 30, 2024
4f3a859
Document touchscreen changes (#4403)
clydebarrow Oct 31, 2024
593f745
[font] Add documentation for glyphsets (#4245)
paravoid Oct 31, 2024
0194102
[spi_device] Rename mode to spi_mode (#4414)
clydebarrow Nov 6, 2024
b2cad90
feat(MQTT): Add `enable`, `disable` and `enable_on_boot` (#4408)
Rapsssito Nov 6, 2024
2472e25
[lvgl] Document multiple instance configs (#4413)
clydebarrow Nov 7, 2024
5441be1
Merge branch 'current' into next
jesserockz Nov 8, 2024
9853544
Merge branch 'current' into next
jesserockz Nov 8, 2024
edb9e10
Document filter changes (#4418)
clydebarrow Nov 11, 2024
29f917d
[http_request] Fix indentation (#4423)
jesserockz Nov 11, 2024
2e6381a
Documentation for new OpenTherm component (#3800)
olegtarasov Nov 12, 2024
23b8833
[i2s_audio] Document I2S speaker disable timeout option (#4426)
kahrendt Nov 12, 2024
283be72
[Modbus Controller] Document new automations `on_online` and `on_offl…
0x3333 Nov 12, 2024
50f877c
Merge branch 'current' into next
jesserockz Nov 13, 2024
aa7aaac
Bump version to 2024.11.0b1
jesserockz Nov 13, 2024
70c3fa1
Update changelog for 2024.11.0b1
jesserockz Nov 13, 2024
e0f33eb
Update supporters for 2024.11.0b1
jesserockz Nov 13, 2024
6011874
Merge pull request #4433 from esphome/bump-2024.11.0b1
jesserockz Nov 13, 2024
cbdc9e8
Bump version to 2024.11.0b2
jesserockz Nov 14, 2024
8862306
Update changelog for 2024.11.0b2
jesserockz Nov 14, 2024
2ca041e
Update supporters for 2024.11.0b2
jesserockz Nov 14, 2024
b0ad622
Merge pull request #4438 from esphome/bump-2024.11.0b2
jesserockz Nov 14, 2024
8e6c5c6
Merge branch 'current' into beta
jesserockz Nov 18, 2024
4fca003
Bump version to 2024.11.0b3
jesserockz Nov 18, 2024
cd6fd23
Update changelog for 2024.11.0b3
jesserockz Nov 18, 2024
ed4e7ab
Update supporters for 2024.11.0b3
jesserockz Nov 18, 2024
cf716c2
Merge pull request #4450 from esphome/bump-2024.11.0b3
jesserockz Nov 19, 2024
6afaf46
Bump version to 2024.11.0b4
jesserockz Nov 20, 2024
57bf47b
Update changelog for 2024.11.0b4
jesserockz Nov 20, 2024
03fbccd
Update supporters for 2024.11.0b4
jesserockz Nov 20, 2024
8e4f5a4
Merge pull request #4454 from esphome/bump-2024.11.0b4
jesserockz Nov 20, 2024
06f8ac8
Bump version to 2024.11.0
jesserockz Nov 20, 2024
87ec2d2
Update changelog for 2024.11.0
jesserockz Nov 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Documentation for Analog Devices MAX17043 battery fuel gauge (#4299)
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
  • Loading branch information
blacknell and kbx81 authored Oct 16, 2024
commit ab9da0a1d8027a4db292a5119633936f94842e8e
Binary file added components/sensor/images/max17043.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
106 changes: 106 additions & 0 deletions components/sensor/max17043.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
Analog Devices MAX17043 battery fuel gauge
==========================================

.. seo::
:description: Instructions for setting up Analog Devices MAX17043 battery fuel gauge in ESPHome.
:image: max17043.jpg

The MAX17043 platform allows you to use a MAX17043 to more accurately monitor the remaining capacity
of a LIPO battery (`datasheet <https://www.analog.com/en/products/max17043.html#documentation>`__,
`DFRobot`_) in ESPHome. It uses the :ref:`I²C Bus <i2c>` for communication (the address is fixed at 0x36).

Once configured, it uses a sophisticated Li+ battery-modeling scheme, called ModelGauge™ to track the
battery's relative state-of-charge continuously over a widely varying charge/discharge profile.
Unlike traditional fuel gauges, the ModelGauge algorithm eliminates the need for battery relearn cycles
and an external current-sense resistor.

In low power applications, it's very important to report battery levels accurately. By utilising ESPHome's ``deep_sleep``
component together with a MAX17043, projects can run for extended periods and the user can be confident of the amount of battery remaining.
This overcomes the reality that measured battery voltage does not correlate well at all with remaining battery charge.

.. note::

See hardware design discussion below - it's important to leave the MAX17043 powered on during deep sleep.

.. figure:: images/max17043.jpg
:align: center
:width: 60.0%

DFRobot DFR0563 Gravity I2C 3.7V Li battery fuel gauge.

.. _DFRobot: https://www.dfrobot.com/product-1734.html

Configuration
*************

.. code-block:: yaml

# Example configuration entry
sensor:
- platform: max17043
id: max17043_id
i2c_id: i2c_max17043
battery_voltage:
name: "Battery Voltage"
battery_level:
name: "Battery"

Sensors
*******

- **battery_voltage** (*Optional*, float): The voltage measured at the LIPO battery.

- All other options from :ref:`Sensor <config-sensor>`.
- **battery_level** (*Optional*, float): The percentage of battery remaining using the ModelGauge™ battery-modelling scheme.

- All other options from :ref:`Sensor <config-sensor>`.

Hardware design considerations
******************************

It's important to realise that the relationship between battery voltage and remaining battery level
is poorly correlated as well as being non-linear.

The MAX17043 works by continually monitoring charge and discharge to assess how much battery capacity remains.
When first powered on, it makes an assumption that the measured voltage has been in a relaxed state for
30 minutes. This best first guess does not have a lasting impact because it monitors relative state-of-charge
over time.

Deep sleep cycles are most often designed so the device wakes up for short
periods to do its business and then sleeps for a much longer period. It's critical to allow the MAX17043 to maintain
state during the sleep phase.

If power is removed from the MAX17043 then each time the ESP comes out of deep sleep the MAX17043 will
have to start again from a new best guess.
It will not be able to use past charge and discharge behaviour to work its magic -
significantly diminishing the point of using a MAX17043.

Current consumption during device sleep mode is extremely low (maximum of 3µA compared to up to 75µA maximum when active).
The driver enables the user to put the device to sleep just before deep sleep commences using the `sleep_mode` action.
When the ESP comes out of deep sleep the driver clears the MAX17043 sleep bit.

For example:

.. code-block:: yaml

on_...:
then:
- max17043.sleep_mode: max17043_id
- deep_sleep.enter:
id: deep_sleep_1
sleep_duration: 20min

.. note::

Once you have called the ``sleep_mode()`` action, the MAX17043 will stop recalculating the voltage and battery level.
Hence, if you leave the ESP running it will continue to publish the sensor values with the *last* measurements.
The only way to come of sleep mode is to restart the device (either as intended via deep sleep wake; or less ideally with a power cycle).

So, only call ``sleep_mode()`` when you intend to send the ESP into deep sleep.

See Also
--------

- :ref:`i2c`
- :doc:`/components/deep_sleep`
- :ghedit:`Edit`
Binary file added images/max17043.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -559,12 +559,14 @@ Miscellaneous
Duty Time, components/sensor/duty_time, timer-play-outline.svg, dark-invert
EZO sensor circuits, components/sensor/ezo, ezo-ph-circuit.png, (pH)
FS3000, components/sensor/fs3000, fs3000.jpg, Air velocity
GDK101, components/sensor/gdk101, gdk101.jpg, Radiation
Growatt Solar, components/sensor/growatt_solar, growatt.jpg, Solar rooftop
Havells Solar, components/sensor/havells_solar, havellsgti5000d_s.jpg, Solar rooftop
Integration, components/sensor/integration, sigma.svg, dark-invert
Kuntze pool sensor, components/sensor/kuntze, kuntze.jpg
LVGL widget, components/sensor/lvgl, lvgl_c_num.png
M5Stack Unit 8 Angle, components/sensor/m5stack_8angle, m5stack_8angle.png
MAX17043, components/sensor/max17043, max17043.jpg, Battery
MicroNova pellet stove, components/micronova, micronova.svg
Modbus Sensor, components/sensor/modbus_controller, modbus.png
Nextion, components/sensor/nextion, nextion.jpg, Sensors from display
Expand All @@ -577,7 +579,6 @@ Miscellaneous
uFire EC sensor, components/sensor/ufire_ec, ufire_ec.png, EC & Temperature
uFire ISE sensor, components/sensor/ufire_ise, ufire_ise.png, pH & Temperature
WireGuard, components/wireguard, wireguard_custom_logo.svg, dark-invert
GDK101, components/sensor/gdk101, gdk101.jpg, Radiation

Motion
******
Expand Down