Добавим сенсоры состояния NAS NetGear ReadyNAS Pro 2 в Home Assistant.
Сначала обновляем древний НетГир NAS до новой операционной системы ReadyNAS OS 6 (стояла старая ОС RAIDator 4.2).
Инструкция После этого нужно включить SNMP на сетевом накопителе через Web-интерфейс:
Далее в Home Assistant в
sensors.yaml добавим нужные нам сенсоры:
####################################################
# SNMP ReadyNAS Pro2 #
####################################################
- platform: snmp
host: ip-nas
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: ip-nas
baseoid: 1.3.6.1.2.1.1.5.0
name: 'NAS Name'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.3.1.9.1
name: 'NAS Disk1 State'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.3.1.9.2
name: 'NAS Disk2 State'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.3.1.10.1
name: 'NAS Disk1 Temp'
unit_of_measurement: '°C'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.3.1.10.2
name: 'NAS Disk2 Temp'
unit_of_measurement: '°C'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.3.1.7.1
name: 'NAS Disk1 Capacity'
unit_of_measurement: 'b'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.3.1.7.2
name: 'NAS Disk2 Capacity'
unit_of_measurement: 'b'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.4.1.2.1
name: 'NAS Fan RPM'
unit_of_measurement: 'RPM'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.5.1.2.1
name: 'NAS CPU Temp Value'
unit_of_measurement: '°C'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.7.1.5.1
name: 'NAS Volume Size'
- platform: snmp
host: ip-nas
baseoid: 1.3.6.1.4.1.4526.22.7.1.6.1
name: 'NAS Volume Free'
# NAS пересчитаные Template сенсоры
- platform: template
sensors:
nas_volume_size_gb:
friendly_name: "NAS Volume Size Gb"
unit_of_measurement: 'Gb'
icon_template: mdi:harddisk
value_template: "{{ (states('sensor.nas_volume_size')|float / 1048576) | round(2) }}"
- platform: template
sensors:
nas_volume_free_gb:
friendly_name: "NAS Volume Free Gb"
unit_of_measurement: 'Gb'
icon_template: mdi:harddisk
value_template: "{{ (states('sensor.nas_volume_free')|float / 1048576) | round(2) }}"
ip-nas - адрес сетевого накопителя в локальной сети, можно посмотреть на роутере.
У меня NAS с двумя дисками, если у Вам больше, то можно добавить больше сенсоров.
Два последних сенсора template предназначены для пересчета kb в Gb.
К сожалению я не мог понять как конвертировать MIB-ы READYNASOS в нормальные Object Identifier -ы.
Не помогла даже библиотека
OIDView.
Значения baseoid взял из коммунити Home Assistant, там один из пользователей умудрился их соснифить и сопоставить с физическим значением.
Netgear ReadyNAS Integration (snmp)Теперь немного причешим сенсоры для красоты. Сделаем это в файле
customize.yaml:
####################################################
# SNMP ReadyNAS Pro2 #
####################################################
sensor.nas_uptime:
icon: mdi:timeline-clock-outline
sensor.nas_name:
icon: mdi:nas
sensor.nas_disk1_state:
icon: mdi:harddisk-remove
sensor.nas_disk2_state:
icon: mdi:harddisk-remove
sensor.nas_disk1_capacity:
icon: mdi:harddisk
sensor.nas_disk2_capacity:
icon: mdi:harddisk
sensor.nas_fan_rpm:
icon: mdi:fan
Потом добавляем в LoveLace карточку (тип Обьекты) для сетевого накопителя:
type: entities
entities:
- sensor.nas_name
- sensor.nas_uptime
- sensor.nas_fan_rpm
- sensor.nas_cpu_temp_value
- type: divider
- sensor.nas_volume_size_gb
- sensor.nas_volume_free_gb
- type: divider
- sensor.nas_disk1_state
- sensor.nas_disk2_state
- sensor.nas_disk1_temp
- sensor.nas_disk2_temp
- sensor.nas_disk1_capacity
- sensor.nas_disk2_capacity
title: ReadyNAS Pro2
show_header_toggle: false
Результат выглядит вот так: