mysmarthome/packages/qnap.yaml

176 lines
6.0 KiB
YAML

###############################################################################
# @author : Mahasri Kalavala
# @date : 07/16/2017
# @package : QNAP
# @description : QNAP NAS Package
###############################################################################
homeassistant:
customize:
sensor.kalavala_nas_cpu_usage:
friendly_name: CPU Usage
sensor.kalavala_nas_memory_usage:
friendly_name: Memory Usage
sensor.kalavala_nas_network_up_eth0:
friendly_name: Network Speed
sensor.kalavala_nas_network_up_eth1:
friendly_name: Network Speed
sensor.kalavala_nas_status:
friendly_name: NAS Status
sensor.kalavala_nas_volume_used_datavol1:
friendly_name: Percent Disk Used
sensor.kalavala_nas_system_temperature:
friendly_name: System Temperature
sensor.kalavala_nas_cpu_temperature:
friendly_name: CPU Temperature
sensor.nas_memory_usage_above_80:
friendly_name: Is Memory Above 80 Percent?
hidden: true
sensor.nas_cpu_usage_above_80:
friendly_name: Is CPU Above 80 Percent?
hidden: true
sensor.kalavala_nas_smart_status_drive_0_1:
friendly_name: Drive 1 Status
sensor.kalavala_nas_smart_status_drive_0_2:
friendly_name: Drive 2 Status
sensor.kalavala_nas_smart_status_drive_0_3:
friendly_name: Drive 3 Status
sensor.kalavala_nas_smart_status_drive_0_4:
friendly_name: Drive 4 Status
sensor.kalavala_nas_temperature_drive_0_1:
friendly_name: Drive 1 Temperature
sensor.kalavala_nas_temperature_drive_0_2:
friendly_name: Drive 2 Temperature
sensor.kalavala_nas_temperature_drive_0_3:
friendly_name: Drive 3 Temperature
sensor.kalavala_nas_temperature_drive_0_4:
friendly_name: Drive 4 Temperature
sensor:
- platform: qnap
host: !secret qnap_hostname
username: !secret qnap_username
password: !secret qnap_password
monitored_conditions:
- status
- cpu_usage
- memory_percent_used
- network_tx
- volume_percentage_used
- system_temp
- cpu_temp
- drive_smart_status
- drive_temp
# The following sensors are required, as the automations with trigger platform `numeric_state`,
# above a certain value using `above: x` AND `for: 00:05:00` combination is not supported.
#
# Apparently `for:` is ONLY supportd for trigger platform 'state'
#
# By creating the folowing sensor, we can now have an automation with trigger platform as 'state'
# with a combination of `to:` and `for:`
#
# See the automations 'Notify NAS Memory Usage' and 'Notify NAS CPU Usage' that uses these sensor values
- platform: template
sensors:
nas_memory_usage_above_80:
value_template: "{{ states('sensor.kalavala_nas_memory_usage') | int > 80 }}"
- platform: template
sensors:
nas_cpu_usage_above_80:
value_template: "{{ states('sensor.kalavala_nas_cpu_usage') | int > 80 }}"
###############################################################################
# _ _ _
# /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
#
###############################################################################
automation:
- alias: Notify NAS Status Change
initial_state: true
trigger:
platform: state
entity_id:
- sensor.kalavala_nas_status
condition:
- condition: template
value_template: "{{ trigger.from_state.state != trigger.to_state.state }}"
action:
- service: script.notify_me
data_template:
message: "NAS Status changed to: {{ trigger.to_state.state| upper }}"
- alias: Notify NAS Drive Status Change
initial_state: true
trigger:
platform: state
entity_id:
- sensor.kalavala_nas_smart_status_drive_01
- sensor.kalavala_nas_smart_status_drive_02
- sensor.kalavala_nas_smart_status_drive_03
- sensor.kalavala_nas_smart_status_drive_04
condition:
- condition: template
value_template: "{{ trigger.from_state.state != trigger.to_state.state }}"
action:
- service: script.notify_me
data_template:
message: "NAS Drive state changed to:
{{ trigger.to_state.state| upper }} from
'{{ trigger.from_state.state| upper }}'"
- alias: Notify NAS CPU Temperature
initial_state: true
trigger:
platform: numeric_state
entity_id: sensor.kalavala_nas_cpu_temperature
above: 125
action:
- service: script.notify_me
data_template:
message: "NAS CPU temperature is going crazy hot, needs your attention!!!
The current cpu temp is: {{ trigger.to_state.state }}"
- alias: Notify NAS Disk Usage
initial_state: true
trigger:
platform: numeric_state
entity_id: sensor.kalavala_nas_volume_used_datavol1
above: 80
action:
- service: script.notify_me
data_template:
message: "Attention! NAS disk usage is above 80 percent. Time to clean up?"
- alias: Notify NAS Memory Usage
initial_state: true
trigger:
platform: state
entity_id: sensor.nas_memory_usage_above_80
to: 'True'
for: '00:05:00'
action:
- service: script.notify_me
data_template:
message: "FYI - NAS Memory is above 80 percent for more than 5 minutes."
- alias: Notify NAS CPU Usage
initial_state: true
trigger:
platform: state
entity_id: sensor.nas_cpu_usage_above_80
to: 'True'
for: '00:05:00'
action:
- service: script.notify_me
data_template:
message: "FYI - NAS CPU is above 80 percent for more than 5 minutes."