Files
ha_config/template.yaml
2026-07-15 12:31:07 +02:00

67 lines
2.8 KiB
YAML

- sensor:
- name: "HPE Trunk 1 Download Rate"
unique_id: hpe_trunk_1_download_rate
unit_of_measurement: "Mbit/s"
device_class: data_rate
state: >
{% set bytes = states('sensor.hpe_switch_port_trk1_traffic_in') | float(0) %}
{% set last_bytes = state_attr('sensor.hpe_trunk_1_download_rate', 'last_bytes') | float(0) %}
{% set now_ts = as_timestamp(now()) %}
{% set last_ts = state_attr('sensor.hpe_trunk_1_download_rate', 'last_ts') | float(now_ts) %}
{% set delta_bytes = bytes - last_bytes %}
{% set delta_time = now_ts - last_ts %}
{% if delta_time > 0 and delta_bytes >= 0 and last_bytes > 0 %}
{{ ((delta_bytes * 8) / delta_time / 1000000) | round(2) }}
{% else %}
0.0
{% endif %}
attributes:
last_bytes: "{{ states('sensor.hpe_switch_port_trk1_traffic_in') }}"
last_ts: "{{ as_timestamp(now()) }}"
- sensor:
- name: "HPE Trunk 1 Upload Rate"
unique_id: hpe_trunk_1_upload_rate
unit_of_measurement: "Mbit/s"
device_class: data_rate
state: >
{% set bytes = states('sensor.hpe_switch_port_trk1_traffic_out') | float(0) %}
{% set last_bytes = state_attr('sensor.hpe_trunk_1_upload_rate', 'last_bytes') | float(0) %}
{% set now_ts = as_timestamp(now()) %}
{% set last_ts = state_attr('sensor.hpe_trunk_1_upload_rate', 'last_ts') | float(now_ts) %}
{% set delta_bytes = bytes - last_bytes %}
{% set delta_time = now_ts - last_ts %}
{% if delta_time > 0 and delta_bytes >= 0 and last_bytes > 0 %}
{{ ((delta_bytes * 8) / delta_time / 1000000) | round(2) }}
{% else %}
0.0
{% endif %}
attributes:
last_bytes: "{{ states('sensor.hpe_switch_port_trk1_traffic_out') }}"
last_ts: "{{ as_timestamp(now()) }}"
- sensor:
- name: "HPE Trunk 1 Gesamt Durchsatz"
unique_id: hpe_trunk_1_total_rate
unit_of_measurement: "Mbit/s"
device_class: data_rate
state: >
{% set download = states('sensor.hpe_trunk_1_download_rate') | float(0) %}
{% set upload = states('sensor.hpe_trunk_1_upload_rate') | float(0) %}
{{ (download + upload) | round(2) }}
- sensor:
- name: "HPE Trunk 1 Upload Rate Negativ"
unique_id: hpe_trunk_1_upload_rate_negativ
unit_of_measurement: "Mbit/s"
device_class: data_rate
state: >
{% set upload = states('sensor.hpe_trunk_1_upload_rate') %}
{% if upload in ['unknown', 'unavailable', 'none'] or not upload %}
0.0
{% else %}
{{ (upload | float(0) * -1) | round(2) }}
{% endif %}