############################################################################### # @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 - platform: qnap host: !secret qnap_hostname2 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_family data: message: "NAS Status changed to: {{ trigger.to_state.state| upper }}" notify_options: - telegram - tv - 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_family data: message: "NAS Drive state changed to: {{ trigger.to_state.state| upper }} from '{{ trigger.from_state.state| upper }}'" notify_options: - telegram - tv - 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_family data: message: "NAS CPU temperature is going crazy hot, needs your attention!!! Current cpu temp is: {{ trigger.to_state.state }}" notify_options: - telegram - tv - 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_family data: message: "Attention! NAS disk usage is above 80 percent. Time to clean up?" notify_options: - telegram - tv - 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_family data: message: "FYI - NAS Memory is above 80 percent for more than 5 minutes." notify_options: - telegram - tv - 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_family data: message: "FYI - NAS CPU is above 80 percent for more than 5 minutes." notify_options: - telegram - tv