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} %`
            ]]]
    

Do pobrania:

Galeria: