Wpis z mikrobloga

#hatips #homeassistant

Karta Markdown
Zigbee , Sensor z najstarszym odczytem. Karta przeszuka HA i wyświetli (foto)
( ͡° ͜ʖ ͡°)

type: markdown
title: 🕒 Zigbee
content: |
{% set sensors = states.sensor
| selectattr('entity_id', 'match', 'sensor\..*_last_seen')
| rejectattr('state', 'in', ['unknown', 'unavailable'])
| list %}
{% if sensors | length == 0 %}
⚠️ Brak danych
{% else %}
{% set sorted_sensors = sensors | sort(attribute='state') %}
{% set sensor = sorted_sensors[0] %}
{% set last_seen_ts = as_timestamp(sensor.state) %}
{% set now_ts = as_timestamp(now()) %}
{% set diff_seconds = now_ts - last_seen_ts %}
{% set diff_hours = (diff_seconds / 3600) | round(1) %}
{% set diff_minutes = (diff_seconds / 60) | int %}
🔍 Sensor z najstarszym odczytem: <b>{{ sensor.entity_id.split('.')[1] | replace('_last_seen', '') | replace('_', ' ') | capitalize }}</b>
📅 Ostatnio widziany o: <b>{{ last_seen_ts | timestamp_custom(" %H:%M:%S") }}</b>
⏰ Czas od ostatniego odczytu: <b>{% if diff_hours >= 1 %}{{ diff_hours }} godzin temu{% else %}{{ diff_minutes }} minut temu{% endif %}</b>
{% endif %}

Takim samym sposobem

type: markdown
title: 🌡️ Temperatura - najwyższa i najniższa
content: |
{% set temps = states.sensor
| selectattr('entity_id', 'match', 'sensor\..*temperature.*')
| rejectattr('state', 'in', ['unknown', 'unavailable'])
| selectattr('state', 'match', '^[0-9.]+$')
| list %}
{% if temps | length == 0 %}
⚠️ Brak danych o temperaturze
{% else %}
{% set sorted_temps = temps | sort(attribute='state') %}
{% set lowest = sorted_temps[0] %}
{% set highest = sorted_temps[-1] %}
{% set low_temp = lowest.state | float %}
{% set high_temp = highest.state | float %}
🔥 Najwyższa temperatura: <b><span style="color:#ff4500;">{{ high_temp }}°C</span>
📍 Sensor: {{ highest.entity_id.split('.')[1] | replace('_', ' ') | replace(' temperature', '') | capitalize }}</b>

❄️ Najniższa temperatura: <b><span style="color:#1e90ff;">{{ low_temp }}°C</span>
📍 Sensor: {{ lowest.entity_id.split('.')[1] | replace('_', ' ') | replace(' temperature', '') | capitalize }}</b>
{% endif %}

Lub

type: markdown
title: 🔋 Bateria - najwyższy i najniższy poziom
content: |
{% set batteries = states.sensor
| selectattr('entity_id', 'match', 'sensor\..*battery.*')
| rejectattr('state', 'in', ['unknown', 'unavailable'])
| selectattr('state', 'match', '^[0-9.]+$')
| list %}
{% if batteries | length == 0 %}
⚠️ Brak danych o baterii
{% else %}
{% set sorted_batt = batteries | sort(attribute='state') %}
{% set lowest = sorted_batt[0] %}
{% set highest = sorted_batt[-1] %}
{% set low_batt = lowest.state | float %}
{% set high_batt = highest.state | float %}
🔋 Najwyższy poziom baterii: <b><span style="color:green;">{{ high_batt }}%</span>
📍 Sensor: {{ highest.entity_id.split('.')[1] | replace('_', ' ') | replace(' battery', '') | capitalize }}</b>

⚠️ Najniższy poziom baterii: <b><span style="color:red;">{{ low_batt }}%</span>
📍 Sensor: {{ lowest.entity_id.split('.')[1] | replace('_', ' ') | replace(' battery', '') | capitalize }}</b>
{% endif %}
WykoZakop - #hatips #homeassistant

Karta Markdown
Zigbee , Sensor z najstarszym odcz...

źródło: ScreenShot_20250622154644

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach