158 lines
6.5 KiB
YAML
158 lines
6.5 KiB
YAML
# /config/packages/fitness_tracking.yaml
|
|
|
|
template:
|
|
sensor:
|
|
# 3. Personen-Erkennung (Deine Logik, leicht bereinigt)
|
|
- name: "Prasanna Weight"
|
|
unique_id: prasanna_weight_correct
|
|
unit_of_measurement: "kg"
|
|
state: >
|
|
{% set weight = states("sensor.prasanna_weight") | float(0) %}
|
|
{% set limit = states("input_number.prasanna_korpergewicht_minimum") %}
|
|
|
|
{% if weight > limit %}
|
|
{{ weight }}
|
|
{% else %}
|
|
{{ states("sensor.prasanna_weight_correct") }}
|
|
{% endif %}
|
|
|
|
- name: "Jathusha Weight Tracking"
|
|
unique_id: jathusha_weight_tracking
|
|
unit_of_measurement: "kg"
|
|
state: >
|
|
{% if states("sensor.prasanna_weight") < states("input_number.prasanna_korpergewicht_minimum") -%}
|
|
{{states("sensor.prasanna_weight")}}
|
|
{% else %}
|
|
{{this.state}}
|
|
{% endif -%}
|
|
|
|
- name: "Gewichtsentwicklung nach 7 Tagen"
|
|
unique_id: weight_weekly_difference
|
|
unit_of_measurement: "g"
|
|
state_class: measurement
|
|
state: >
|
|
{% set current_weight = states("sensor.prasanna_weight_correct") | float(0) %}
|
|
{% set last_week_weight = states("sensor.prasanna_weight_last_weekday") | float(0) %}
|
|
{% if current_weight > 0 and last_week_weight > 0 %}
|
|
{{((current_weight - last_week_weight)*1000) | round(0)}}
|
|
{% else %}
|
|
0
|
|
{% endif %}
|
|
|
|
- name: "Gewichtsentwicklung nach 7 Tagen Durchschnitt"
|
|
unique_id: weight_weekly_avg_difference
|
|
unit_of_measurement: "g"
|
|
state_class: measurement
|
|
state: >
|
|
{% set current_weight = states("sensor.prasanna_weight_correct") | float(0) %}
|
|
{% set last_week_weight = states("sensor.prasanna_weight_last_week_avg") | float(0) %}
|
|
{% if current_weight > 0 and last_week_weight > 0 %}
|
|
{{((current_weight - last_week_weight)*1000) | round(0)}}
|
|
{% else %}
|
|
0
|
|
{% endif %}
|
|
|
|
- name: "Prasanna: Gewichtstrend Status (Smart)"
|
|
unique_id: prasanna_smart_trend
|
|
icon: mdi:scale-balance
|
|
state: >
|
|
{# Wir holen den geglätteten 7-Tage Durchschnitt #}
|
|
{% set avg_now = states('sensor.prasanna_gewicht_7_tage_durchschnitt') | float(0) %}
|
|
|
|
{# Wir simulieren den Vergleichswert (hier vereinfacht: aktueller Durchschnitt vs. Wert vor 7 Tagen #}
|
|
{# Für eine echte Trendlinie bräuchtest du einen SQL Sensor oder 'utility_meter' mit cycle weekly #}
|
|
{# Workaround: Wir nutzen den Unterschied zwischen 'jetzt' und dem Wochen-Schnitt #}
|
|
|
|
{% set current = states('sensor.prasanna_weight_correct') | float(0) %}
|
|
{# Delta: Ist der heutige Tag über oder unter meinem Wochendurchschnitt? #}
|
|
{% set delta = (current - avg_now) * 1000 %}
|
|
|
|
{# HIER IST DIE MAGIE: Wir bewerten den Trend, nicht den Tag #}
|
|
{# Angenommenes Ziel: Leichter Muskelaufbau (Lean Bulk) #}
|
|
|
|
{% if delta > 500 %}
|
|
Achtung: Schnelle Zunahme (Wasser/Fett?)
|
|
{% elif delta > 100 %}
|
|
Optimaler Aufbau-Trend (+{{ delta | round(0) }}g)
|
|
{% elif delta >= -200 and delta <= 200 %}
|
|
Gewicht stabil (Erhalt)
|
|
{% elif delta < -500 %}
|
|
Achtung: Zu schnelle Abnahme
|
|
{% else %}
|
|
Leichte Abnahme
|
|
{% endif %}
|
|
attributes:
|
|
delta_gramm: >
|
|
{{ ((states('sensor.prasanna_weight_correct') | float(0) - states('sensor.prasanna_gewicht_7_tage_durchschnitt') | float(0)) * 1000) | round(0) }}
|
|
- name: "Jathusha: Gewichtstrend Status (Smart)"
|
|
unique_id: jathusha_smart_trend
|
|
icon: mdi:scale-balance
|
|
state: >
|
|
{# Wir holen den geglätteten 7-Tage Durchschnitt #}
|
|
{% set avg_now = states('sensor.jathusha_gewicht_7_tage_durchschnitt') | float(0) %}
|
|
|
|
{# Wir simulieren den Vergleichswert (hier vereinfacht: aktueller Durchschnitt vs. Wert vor 7 Tagen #}
|
|
{# Für eine echte Trendlinie bräuchtest du einen SQL Sensor oder 'utility_meter' mit cycle weekly #}
|
|
{# Workaround: Wir nutzen den Unterschied zwischen 'jetzt' und dem Wochen-Schnitt #}
|
|
|
|
{% set current = states('sensor.jathusha_weight_tracking') | float(0) %}
|
|
{# Delta: Ist der heutige Tag über oder unter meinem Wochendurchschnitt? #}
|
|
{% set delta = (current - avg_now) * 1000 %}
|
|
|
|
{# HIER IST DIE MAGIE: Wir bewerten den Trend, nicht den Tag #}
|
|
{# Angenommenes Ziel: Leichter Muskelaufbau (Lean Bulk) #}
|
|
|
|
{% if delta > 500 %}
|
|
Achtung: Schnelle Zunahme (Wasser/Fett?)
|
|
{% elif delta > 100 %}
|
|
Optimaler Aufbau-Trend (+{{ delta | round(0) }}g)
|
|
{% elif delta >= -200 and delta <= 200 %}
|
|
Gewicht stabil (Erhalt)
|
|
{% elif delta < -500 %}
|
|
Achtung: Zu schnelle Abnahme
|
|
{% else %}
|
|
Leichte Abnahme
|
|
{% endif %}
|
|
attributes:
|
|
delta_gramm: >
|
|
{{ ((states('sensor.jathusha_weight_tracking') | float(0) - states('sensor.jathusha_gewicht_7_tage_durchschnitt') | float(0)) * 1000) | round(0) }}
|
|
sensor:
|
|
- platform: statistics
|
|
name: "Prasanna Gewicht 7-Tage Durchschnitt"
|
|
unique_id: prasanna_gewicht_7_tage_durchschnitt
|
|
entity_id: sensor.prasanna_weight_correct
|
|
state_characteristic: mean
|
|
max_age:
|
|
days: 7
|
|
sampling_size: 20
|
|
precision: 1
|
|
- platform: statistics
|
|
name: "Jathusha Gewicht 7-Tage Durchschnitt"
|
|
unique_id: jathusha_gewicht_7_tage_durchschnitt
|
|
entity_id: sensor.jathusha_weight_tracking
|
|
state_characteristic: mean
|
|
max_age:
|
|
days: 7
|
|
sampling_size: 20
|
|
precision: 1
|
|
# 1. Statistik-Sensor (Glättet dein Gewicht über 7 Tage)
|
|
# Das eliminiert Wasser-Schwankungen. Das ist deine "echte" Masse.
|
|
- platform: statistics
|
|
name: "Prasanna Gewicht Durchschnitt"
|
|
unique_id: prasanna_weight_avg_stats
|
|
entity_id: sensor.prasanna_weight_correct
|
|
state_characteristic: mean
|
|
max_age:
|
|
days: 7
|
|
sampling_size: 50
|
|
precision: 2
|
|
# 2. Derivative Sensor (Die Magie für den Muskelaufbau)
|
|
# Berechnet, wie schnell dein Durchschnittsgewicht steigt oder fällt.
|
|
# Einheit wird umgerechnet auf "Veränderung pro Woche".
|
|
- platform: derivative
|
|
name: "Prasanna Zunahme pro Woche"
|
|
unique_id: prasanna_weight_gain_weekly
|
|
source_sensor: sensor.prasanna_gewicht_durchschnitt
|
|
unit_time: d # Berechne pro Tag
|
|
time_window: "3d" # Schaut sich den Trend der letzten 3 Tage an
|
|
unit: "kg" |