Skip to content

Instantly share code, notes, and snippets.

@huizebruin
Created January 19, 2022 20:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save huizebruin/b32a97ad3cb011cf6f9fdfcc5615a285 to your computer and use it in GitHub Desktop.
Save huizebruin/b32a97ad3cb011cf6f9fdfcc5615a285 to your computer and use it in GitHub Desktop.
Systeem sensoren van je home assistant systeem
sensor:
#==================
#=== System Sensors
#==================
- platform: command_line
name: RPi CPU Temperature
command: "cat /sys/class/thermal/thermal_zone0/temp"
value_template: "{{ value | multiply(0.001) | round(2) }}"
#===========================================
#=== Latest Sonoff Tasmota firmware version
#===========================================
- platform: command_line
name: Tasmota Current Version
command: "curl -s https://github.com/arendst/Sonoff-Tasmota/releases/latest | cut -d'\"' -f2 | rev | cut -d'/' -f1 | rev"
scan_interval: 86400
#==============================
#=== Installed hass.io version
#==============================
- platform: version
name: Installed Version
source: local
#================================
#=== Latest Available HA Version
#================================
- platform: version
name: Latest Available Version
beta: false
image: raspberrypi3
source: hassio
#=======================
#=== Raspberry Pi Power
#=======================
- platform: rpi_power
text_state: True
#=============================================
#=== Last boot time, Disk, memory & CPU usage
#=============================================
- platform: systemmonitor
resources:
- type: last_boot
- type: disk_use_percent
arg: /
- type: memory_use_percent
- type: processor_use
#====================
#=== CPU Temperature
#====================
- platform: command_line
name: CPU Temp
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(0) }}'
#===================
#=== System Up Time
#===================
- platform: uptime
- platform: template
sensors:
#==========================
#=== Home Assistant uptime
#==========================
ha_uptime:
friendly_name: HA Uptime
value_template: >
{% if states('sensor.uptime') == '0.0' %}
Just restarted...
{% else %}
{% macro phrase(value, name) %}
{%- set value = value | int %}
{%- set end = 's' if value > 1 else '' %}
{{- '{} {}{}'.format(value, name, end) if value | int > 0 else '' }}
{%- endmacro %}
{% set weeks = (states('sensor.uptime') | int / 7) | int %}
{% set days = (states('sensor.uptime') | int) - (weeks * 7) %}
{% set hours = (states('sensor.uptime') | float - states('sensor.uptime') | int) * 24 %}
{% set minutes = (hours - hours | int) * 60 %}
{{ [ phrase(weeks, 'week'), phrase(days, 'day'), phrase(hours, 'hr'), phrase(minutes, 'min') ] | select('!=','') | list | join(', ') }}
{% endif %}
#=========================================
#=== Raspberry Pi last boot date and time
#=========================================
last_boot_date_time:
friendly_name: Last Boot
value_template: >
{% set date = as_timestamp(states('sensor.last_boot')) | timestamp_custom('%d') %}
{% set date = '{:01}'.format(date | int) %}
{% if date in ('1', '21', '31') %}
{% set date = date ~ 'st' %}
{% elif date in ('2', '22') %}
{% set date = date ~ 'nd' %}
{% elif date in ('3', '23') %}
{% set date = date ~ 'rd' %}
{% else %}
{% set date = date ~ 'th' %}
{% endif %}
{{ as_timestamp(states('sensor.last_boot')) | timestamp_custom('%H:%M on %a') }} {{ date }} {{ as_timestamp(states('sensor.last_boot')) | timestamp_custom('%b %Y') }}
#=========================
#=== Raspberry Pi Up Time
#=========================
rpi_uptime:
friendly_name: RPi Uptime
entity_id: sensor.time
value_template: >
{% set up_time = as_timestamp(now()) - as_timestamp(states('sensor.last_boot')) %}
{% set minutes = (up_time // 60) | int %}
{% set hours = (minutes // 60) %}
{% set days = (hours // 24) %}
{% set weeks = (days // 7) %}
{% set minutes = (minutes % 60) %}
{% set hours = (hours % 24) %}
{% set days = (days % 7) %}
{% macro phrase(value, name) %}
{%- set value = value %}
{%- set end = 's' if value > 1 else '' %}
{{- '{} {}{}'.format(value, name, end) if value | int > 0 else '' }}
{%- endmacro %}
{% set text = [ phrase(weeks, 'week'), phrase(days, 'day'), phrase(hours, 'hr'), phrase(minutes, 'min') ] | select('!=','') | list | join(', ') %}
{% set last_comma = text.rfind(',') %}
{% if last_comma != -1 %}
{% set text = text[:last_comma] + ' and' + text[last_comma + 1:] %}
{% endif %}
{{ text }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment