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