Zum Inhalt springen
  • Dunkel
  • Hell
  • System

Heart-Rate Stats (Min/Max/Avg)

!hrstats

Fortgeschritten

Live-Abfrage von Min/Max/Avg via Chat-Command. Plus drei System-Actions für Reset/Tracker/Summary.

Steps
7
Cooldown
0s/User
Cooldown
0sglobal
Zugriff
Public

Drei System-Actions im Zusammenspiel. Reset beim Stream-Start, Tracker bei jedem Pulse, Summary beim Stream-Ende. Plus ein optionaler !hrstats Chat-Command für Live-Abfrage. Globals halten Globale Variable %hrMin% Tiefster Puls: startet bei 999, wird beim ersten Pulse echte Min. Variablen-Doku , Globale Variable %hrMax% Höchster Puls: startet bei 0. Variablen-Doku , Globale Variable %hrSum% Summe aller Pulse für Avg-Berechnung. Variablen-Doku und Globale Variable %hrCount% Anzahl Messungen. Avg = hrSum / hrCount. Variablen-Doku .

Trigger: Twitch > Channel > Stream Online

  1. 1 Global Set: hrMin = 999 (Persisted, hoch starten damit erstes Min greift)
  2. 2 Global Set: hrMax = 0 (Persisted)
  3. 3 Global Set: hrSum = 0 (Persisted)
  4. 4 Global Set: hrCount = 0 (Persisted)

Trigger: Heart Rate Pulse mit Min 30, Max leer (filter HR-Drops auf 0).

Global Get: hrMin

Core Globals Global (Get)
Global Name hrMin
Variable Name currentMin
Persisted aktiv

If/Else: Neuer Min?

Core Logic If/Else
Input %heartRate%
Operation Less Than
Value %currentMin%
Then

Global Set: hrMin aktualisieren

Core Globals Global (Set)
Global Name hrMin
Value %heartRate%
Persisted aktiv

Global Get: hrMax

Core Globals Global (Get)
Global Name hrMax
Variable Name currentMax
Persisted aktiv

If/Else: Neuer Max?

Core Logic If/Else
Input %heartRate%
Operation Greater Than
Value %currentMax%
Then

Global Set: hrMax aktualisieren

Core Globals Global (Set)
Global Name hrMax
Value %heartRate%
Persisted aktiv

Global Set: hrSum (Increment)

Core Globals Global (Set)

Mode Increment, addiert den aktuellen %heartRate% auf hrSum.

Global Name hrSum
Mode Increment
Amount %heartRate%
Persisted aktiv

Global Set: hrCount (Increment by 1)

Core Globals Global (Set)
Global Name hrCount
Mode Increment
Amount 1
Persisted aktiv

Trigger: Twitch > Channel > Stream Offline

  1. 1 Global Get: hrMin → finalMin
  2. 2 Global Get: hrMax → finalMax
  3. 3 Global Get: hrSum → finalSum
  4. 4 Global Get: hrCount → finalCount
  5. 5 If/Else: %finalCount% Less Than 1
    1. Then 5a Break (keine Daten: kein Summary)
  6. 6 Set Argument: avg = $div(%finalSum%, %finalCount%)$
  7. 7 Send Message: "📊 HR-Stats: Min %finalMin% · Max %finalMax% · Avg %avg% BPM (%finalCount% Messungen)"

Live-Abfrage des aktuellen Stands.

  1. 1 Global Get: hrMin → currentMin
  2. 2 Global Get: hrMax → currentMax
  3. 3 Global Get: hrSum → currentSum
  4. 4 Global Get: hrCount → currentCount
  5. 5 If/Else: %currentCount% Less Than 1
    1. Then 5a Send Message: "@%user% Noch keine HR-Daten heute."
    2. Then 5b Break
  6. 6 Set Argument: avg = $div(%currentSum%, %currentCount%)$
  7. 7 Send Message: "📊 HR heute: Min %currentMin% · Max %currentMax% · Avg %avg% BPM"
SituationResultat
!hrstats nach 30 min Stream📊 HR heute: Min 68 · Max 142 · Avg 95 BPM
!hrstats vor erstem Pulse@%user% Noch keine HR-Daten heute.
Stream-Offline nach 4 hBot postet automatisches Summary mit ~14400 Messungen
  • hrMin startet zu niedrig: wenn mit 0 initialisiert, bleibt Min für immer 0. Hoher Start-Wert (999) ist Pflicht.
  • Division durch 0: bei Stream-End ohne Messungen schlägt $div$ fehl. If/Else %finalCount% Less Than 1 → Break davor.
  • HR-Disconnect = 0 BPM: Min würde fälschlich auf 0 sinken. Trigger-Filter Min = 30 schützt davor.
  • Persistierte Werte zwischen Streams: ohne Reset akkumuliert hrSum/hrCount ewig. Stream-Online-Reset ist Pflicht.
  • Discord-Stats-Embed: am Ende des Summary einen Discord-Webhook mit Embed-Format posten für Stream-Postmortem.
  • CSV-Log: Core > File I/O > Write To File im Append-Mode bei jedem Stream-Ende, für Langzeit-Vergleich in Excel.
  • Top-3-Spikes: separate Action die alle Pulse > 170 in eine Liste loggt, beim Summary die drei höchsten zeigen.