TrueNAS CORE statistics and messages in Home Assistant

Disclosure: This post contains affiliate links. If you click through and make a purchase, I’ll earn a commission, at no additional cost to you. Read my full disclosure here.
Three Dell EMC storage servers, on which the TrueNAS CORE operating system is running. The operating system, in turn, is controlled by Home Assistant.

Following on from the previous guide on how to enable remote starting and shutting down of a TrueNAS CORE, I will be showing you how to view your TrueNAS CORE statistics and messages in Home Assistant.

For this guide, I’m once again going to be using the TrueNAS CORE API. The TrueNAS CORE dashboard has evolved into a nice little visual hub for viewing important data. However, as I have the Home Assistant Dashboard open on my desktop a lot more often than the TrueNAS CORE web interface, I wanted to import and display that data in my UI. The sensor I’ll be setting up in this guide will give me a report of the following:

  • The name of my volume
  • The current status of my volume
  • The used percentage of my volume
  • Whether the volume is decrypted

Once you’ve understood the basics, you will be able to add any of the values available through the TrueNAS CORE API. Based on these values, you can also set up notifications such as a push notification if your volume were to become unhealthy.

Table of Contents

Setting up the TrueNAS CORE sensor in Home Assistant

As I’m not executing any commands, such as shutting the system down, this setup will be using sensors and not rest_command. Any of the following variables can be enabled in using the RESTful integration (just add or remove them under the json_attributes):

  • status: The current status of the Volume
  • vol_guid: The volume’s Globally Unique Identifier
  • name: The volume’s name
  • used_pct: The percentage of used storage
  • used_si: The amount of storage currently used
  • is_decrypted: Whether the volume is decrypted or not
  • avail_si: Available storage
  • total_si: The volume’s total storage

To get this API call to work, I’ve once again referenced the username and password in my secrets.yaml file. For more on that topic, you can check out my previous guide here.

 sensor:
  - platform: rest
    name: freenas_report_full
    json_attributes:
      - name
      - status
      - used_pct
      - is_decrypted
    resource: http://IP -OF-YOUR-FREENAS/api/v1.0/storage/volume/VOLUME-NAME/?format=json
    value_template: '{{ value_json.status }}'
    username: !secret freenas_user
    password: !secret freenas_password
    authentication: basic
    headers:
      Content-Type: application/json

This code will create a new entity with the desired attributes. But, as you might find out, this isn’t very practical. With this entity, you won’t be able to embed individual information in your Lovelace UI and you can’t easily use the values in automations. What I did was create a template sensor for each individual value.

Template sensors

Percent used

 sensor:
  - platform: template
    sensors:
      freenas_percent_used:
        friendly_name: Percent used
        value_template: '{{ states.sensor.freenas_report_full.attributes["used_pct"].title() }}'
        entity_id: sensor.freenas_report_full

Volume status

 sensor:
  - platform: template
    sensors:
      freenas_status:
        friendly_name: Status
        value_template: '{{ states.sensor.freenas_report_full.attributes["status"].title() }}'
        entity_id: sensor.freenas_report_full

TrueNAS CORE version (full)

 sensor:
  - platform: rest
    name: fn_version_full
    scan_interval: 3600
    json_attributes: 
      - fullversion
      - name
      - version
    resource: http://192.168.1.10/api/v1.0/system/version/?format=json
    value_template: '{{ value_json.fullversion }}'
    username: !secret fn_user
    password: !secret fn_password
    authentication: basic
    headers:
      Content-Type: application/json

TrueNAS CORE version (just version number)

 sensor:
  - platform: template
    sensors:
      fn_version:
        friendly_name: Version
        value_template: '{{ states.sensor.fn_version_full.state.split(" ")[0] }}'
        entity_id: sensor.fn_version_full

Final steps

An example of how you can display TrueNAS CORE information in Home Assistant

And there we have. Our TrueNAS CORE statistics and information on the system can now be displayed inside Home Assistant and used for automations, scripts, and notification.

2 thoughts on “TrueNAS CORE statistics and messages in Home Assistant”

  1. Heads up, seems you have a typo in the volume status template. Missing the sensor in “states.sensor.freenas…..”. Great blog though, love it!

    Reply

Leave a comment