Monit serwera NAS firmy Qnap
Czasem lubię spojrzeć na kondycje mojego nasa na którym trzymam wszystkie moje multimedia, zdjęcia, filmy itd. ale logowanie się przez stronę jest niezbyt wygodne a gdy jestem poza domem to i ta opcja jest niemożliwa. Oczywiście możemy zrobić prostą integrację z systemem Home Assistant, dzięki której najważniejsze parametry wyświetlą się w aplikacji
Na początek mała porada. Aby nie mieszać w Configuration.yaml i pozostawić go czytelnym, zrobiłem osobny plik o nazwie sensor.yaml i umieściłem odniesienie do niego w Configuration.yaml
Poniżej fragment tego pliku z odniesieniem
Plik ten tworzymy w folderze gdzie znajduje się baza danycyh home-assistant_v2
• Jeśli korzystamy z dodatku Samba share, ścieżka do pliku będzie wyglądać następująco: \\Config\sensor.yaml
• W przypadku gdy korzystamy z terminala ścieżka będzie wyglać tak: /usr/share/hassio/homeassistant/sensor.yaml
Jest to adres ścieżki w czystym systemie Debian, na którym zainstalowany jest Docker a w nim Home Assistant.
1. Mamy już utworzony plik senor.yaml w którym będziemy dodawać nasze czujniki. Otwieramy go za pomocą edytora i wklejamy następującą zawartość
- platform: qnap
host: 192.168.1.101
port: 8580
username: LOGIN
password: PASSWORD
monitored_conditions:
- system_temp
- cpu_usage
- memory_percent_used
- volume_percentage_used
W tym przypadku monitoruje cztery parametry serwera:
- Temperatura systemu
- Zużycie procesora
- Zużycie pamięci RAM
- Zajęte miejsce na dyskach
4. Na koniec zapisujemy i restartujemy serwer HA. Oczywiście parametrów jakie możemy podglądać jest więcej, są one dokładnie opisane TUTAJ, niestety nie wszystkie działają, musicie przetestować je indywidualnie
- Konfiguracja karty interfejsu Poniżej konfiguracja karty z najważnieszymi odczytami. Do prawidłowego działania wymagana jest karta "button card"
type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.qnap_cpu_temp
icon: hass:nas
aspect_ratio: 1/1
name: Qnap NAS
styles:
card:
- padding: 5%
- font-size: 13px
- text-transform: capitalize
- background-color: null
- color: '--primary-text-color'
grid:
- grid-template-areas: >-
"i temp" "n n" "sensor_label_1 sensor_1" "sensor_label_2 sensor_2"
"sensor_label_3 sensor_3" "sensor_label_4 sensor_4" "sensor_label_5
sensor_5"
- grid-template-columns: 1fr 1fr
- grid-template-rows: 1fr min-content min-content min-content min-content
name:
- font-weight: normall
- font-size: 20px
- color: '--primary-text-color'
- align-self: middle
- justify-self: start
- padding-bottom: 20px
img_cell:
- justify-content: start
- align-items: start
- margin: none
icon:
- color: |
[[[
if (entity.state < 50) return 'green';
if (entity.state >= 50 && entity.state < 70) return 'orange';
else return 'red';
]]]
- width: 50%
- margin-top: '-10%'
custom_fields:
temp:
- align-self: start
- justify-self: end
sensor_label_1:
- justify-self: start
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_1:
- justify-self: end
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_label_2:
- justify-self: start
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_2:
- justify-self: end
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_label_3:
- justify-self: start
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_3:
- justify-self: end
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_label_4:
- justify-self: start
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_4:
- justify-self: end
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_label_5:
- justify-self: start
- font-size: 13px
- padding: 1px 0px 0px 0px
sensor_5:
- justify-self: end
- font-size: 13px
- padding: 1px 0px 0px 0px
custom_fields:
temp: |
[[[
return `
${entity.state}°C`
]]]
sensor_label_1: >
[[[ return ` CPU:` ]]]
sensor_1: |
[[[
return `
${states['sensor.qnap_cpu_usage'].state} %`
]]]
sensor_label_2: >
[[[ return ` RAM:` ]]]
sensor_2: |
[[[
return `
${states['sensor.qnap_memory_usage'].state} %`
]]]
sensor_label_3: >
[[[ return ` SSD:` ]]]
sensor_3: |
[[[
return `
${states['sensor.qnap_volume_1_used'].state} %`
]]]
sensor_label_4: >
[[[ return ` SSD:` ]]]
sensor_4: |
[[[
return `
${states['sensor.qnap_volume_2_used'].state} %`
]]]