FreeNAS statistics and messages in Home Assistant

Following on from the previous guide on how to enable remote starting and shutting down of a FreeNAS I’ll be showing you how to view your FreeNAS statistics and messages in Home Assistant. For this guide I’m once again going to be using the FreeNAS API. The FreeNAS dashboard has evolved into a nice little visual hub for viewing important data but as I have Home Assistant open on my desktop a lot more often than the FreeNAS 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’ll be able to add any of the values available through the FreeNAS API. Based on these values you can also set up notifications such as a push notification if you’re volume were to become unhealthy.

Setting up the FreeNAS 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 secret.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

FreeNAS 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

FreeNAS 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

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

2 thoughts on “FreeNAS 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.