Netgear ReadyNAS 104 sensors setup

Just wanted to share my sensors config for Netgear ReadyNAS 104. Hopefully someone will find it useful.

SNMP MIB:
READYNASOS.MIB

PARSED DATA:
readynas.csv

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.2.1.25.1.1.0
  name: NAS uptime
    
- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.2.1.1.5.0
  name: NAS name
  
- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.9.1
  name: NAS disk 1 online
  value_template: >-
    {{ value == 'ONLINE' }}

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.9.2
  name: NAS disk 2 online
  value_template: >-
    {{ value == 'ONLINE' }}

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.9.3
  name: NAS disk 3 online
  value_template: >-
    {{ value == 'ONLINE' }}

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.9.4
  name: NAS disk 4 online
  value_template: >-
    {{ value == 'ONLINE' }}

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.10.1
  name: NAS disk 1 temperature
  unit_of_measurement: °C
  
- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.10.2
  name: NAS disk 2 temperature
  unit_of_measurement: °C

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.10.3
  name: NAS disk 3 temperature
  unit_of_measurement: °C

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.10.4
  name: NAS disk 4 temperature
  unit_of_measurement: °C

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.7.1
  name: NAS disk 1 capacity
  value_template: >-
    {{ ((value | int) / 1099511627776) | round(2) }}
  unit_of_measurement: TB
  
- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.7.2
  name: NAS disk 2 capacity
  value_template: >-
    {{ ((value | int) / 1099511627776) | round(2) }}
  unit_of_measurement: TB

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.7.3
  name: NAS disk 3 capacity
  value_template: >-
    {{ ((value | int) / 1099511627776) | round(2) }}
  unit_of_measurement: TB

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.3.1.7.4
  name: NAS disk 4 capacity
  value_template: >-
    {{ ((value | int) / 1099511627776) | round(2) }}
  unit_of_measurement: TB

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.4.1.2.1
  name: NAS fan speed
  unit_of_measurement: RPM

- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.5.1.2.1
  name: NAS CPU temperature
  unit_of_measurement: °C
  
- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.7.1.5.1
  name: NAS volume total size
  value_template: >-
    {{ ((value | int) / 1048576) | round(2) }}
  unit_of_measurement: TB
  
- platform: snmp
  host: namuserveris
  baseoid: 1.3.6.1.4.1.4526.22.7.1.6.1
  name: NAS volume free size
  value_template: >-
    {{ ((value | int) / 1048576) | round(2) }}
  unit_of_measurement: TB

Few issues:

  1. Volume sizes are different in HASS and ReadyNAS admin:

  2. Uptime is not converted to human readable relative time

You might have to add | as_timestamp after the uptime value
There might be a local version of this conversion too, but I have no access to HA here, so I can not be sure.

Regarding volume sizes, then it is probably the traditional issue with computer scientist versus engineers.
A computer scientist use 1024 for kilo, mega, giga, tera, peta and so on, while a engineer use 1000 for the same prefixes.
1 TB in computer science notation is equal to
1024 GB in engineering notation or
1024x1024 = 1048576 MB in engineering notation or
1024x1024x1024 = 1073741824 KB in engineering notation or
1024x1024x1024x1024 = 1099511627776 B in engineering notation

You need more?
This is the one i’m using, it is for 6 disks, so not sure you can use all…
but the rest should be working, all ReadyNAS’s use the same SNMP :wink:

# ReadyNAS
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.2.1.25.1.1.0
    name: 'NAS Uptime'
    value_template: >-
      {% set time = (value | int) | int %}
      {% set minutes = ((time % 360000) / 6000) | int%}
      {% set hours = ((time % 8640000) / 360000) | int %}
      {% set days = (time / 8640000) | int %}
        {%- if time < 60 -%}
          Less then 1 min
          {%- else -%}
          {%- if days > 0 -%}
            {{ days }}d
          {%- endif -%}
          {%- if hours > 0 -%}
            {%- if days > 0 -%}
              {{ ' ' }}
            {%- endif -%}
            {{ hours }}hr
          {%- endif -%}
          {%- if minutes > 0 -%}
            {%- if days > 0 or hours > 0 -%}
              {{ ' ' }}
            {%- endif -%}
            {{ minutes }}min
          {%- endif -%}
        {%- endif -%}
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.2.1.1.5.0
    name: 'NAS Name'
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.3.1.9.1
    name: 'NAS Disk1 State'
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.3.1.9.2
    name: 'NAS Disk2 State'
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.3.1.9.3
    name: 'NAS Disk3 State'
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.3.1.9.4
    name: 'NAS Disk4 State'
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.3.1.9.5
    name: 'NAS Disk5 State'
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.3.1.9.6
    name: 'NAS Disk6 State'
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.4.1.2.1
    name: 'NAS CPU Fan RPM'
    unit_of_measurement: "Rpm"
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.4.1.2.2
    name: 'NAS System fan RPM'
    unit_of_measurement: "Rpm"
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.5.1.2.1
    name: 'NAS CPU temp'
    unit_of_measurement: "°C"
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.5.1.2.2
    name: 'NAS System temp'
    unit_of_measurement: "°C"
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.7.1.5.1
    name: 'NAS Volume Size'
    unit_of_measurement: "Bytes"
  - platform: snmp
    host: !secret ip_address_readynas
    baseoid: 1.3.6.1.4.1.4526.22.7.1.6.1
    name: 'NAS Volume Free'
    unit_of_measurement: "Bytes"

Looks like the size was correct after all :slight_smile: I’ve used 1024 as multiplier and it was correct one :wink: in any case, thanks! :slight_smile:

Good job :slight_smile:

It’s possible to get shared directories and directories sizes?

I don’t think so, but you can check the database of your NAS on what is available yourself:

How I can do that?

Do what is said in the link :thinking:

SNMP MIB for ReadyNAS OS 6 devices can be downloaded directly from the management interface by going to System > Settings > SNMP and clicking on the “Download MIB” button in the SNMP settings pop-up.