Add example for human readable uptime sensor (#923)

* Add example for human readable uptime sensor

* Fix lint

* simpler return
This commit is contained in:
Fredrik Erlandsson 2021-01-11 15:50:29 +01:00 committed by GitHub
parent a5a040334a
commit 9208561275
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,6 +23,45 @@ Configuration variables:
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas.
- All other options from :ref:`Sensor <config-sensor>`.
Human readable sensor
---------------------
The sensor reports uptime in seconds which is good for automations
but is hard to read for humans, this example creates a text sensor
with human readable output.
.. code-block:: yaml
# Example configuration entry
text_sensor:
- platform: template
name: Uptime Human Readable
id: uptime_human
icon: mdi:clock-start
sensor:
- platform: uptime
name: Uptime Sensor
id: uptime
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? String(days) + "d " : "") +
(hours ? String(hours) + "h " : "") +
(minutes ? String(minutes + "m " : "") +
(String(seconds) + "s")
).c_str();
See Also
--------