Apr 152022
 

Some of my favorite configurations items in HA:

Monitoring your internet connection using ping

binary_sensor:
  - platform: ping
    host: 8.8.8.8
    name: "google ping"
    count: 2
    scan_interval: 30

A more detailed version would be

sensor:
  - platform: template
    sensors:
      ping:
        friendly_name: "ping"
        unit_of_measurement: 'ms'
        value_template: "{{ state_attr('binary_sensor.google_ping', 'round_trip_time_avg') }}"

CPU temperature and load:

sensor:
  - platform: command_line
    name: CPU Temperature
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    # If errors occur, make sure configuration file is encoded as UTF-8
    unit_of_measurement: "°C"
    value_template: '{{ value | multiply(0.001) | round(1) }}'

    # CPU Load
  - platform: command_line
    name: CPU Load
    #command: "mpstat | tail -n 1 | awk '{print $4+$5+$6+$7+$8+$9+$10}'"
    command: 'cat /proc/loadavg | cut -d" " -f1'
    # If errors occur, make sure configuration file is encoded as UTF-8
    unit_of_measurement: "%"

The fear and greed index for stocks by CNN (or anything you can curl and grep):

sensor:
  - platform: command_line
    name: Fear n Greed
    command: 'curl "https://money.cnn.com/data/fear-and-greed/?iid=EL" -s | grep "Greed Now:" | cut -d">" -f5 | cut -d"<" -f1 | cut -d" " -f5
'
    unit_of_measurement: "%"

Ethereum price and volume:

sensor:
  - platform: rest
    name: "ETH price"
    scan_interval: 600
    resource: "https://api.ethereumdb.com/v1/timeseries?pair=ETH-USD&range=10mi&type=line"
    verify_ssl: False
    json_attributes: True
    value_template: '{{ value_json[0]["price"] }}'
    unit_of_measurement: USD
  - platform: rest
    name: "ETH volume 24h"
    scan_interval: 600
    resource: "https://api.ethereumdb.com/v1/timeseries?pair=ETH-USD&range=10mi&type=line"
    verify_ssl: False
    json_attributes: True
    value_template: '{{ value_json[0]["quoteVolume24h"] }}'
    unit_of_measurement: USD

Live traffic data / travel time from A to B

sensor:
  - platform: waze_travel_time
    name: "Traveltime from A to B"
    origin: 52.033029,8.549767
    destination: 48.1911322,16.3281881
    region: 'EU'
    scan_interval: 600