Blutdruck messen und übersicht produzieren

ist jetzt kein Loesungsansatz per se, aber als Idee:

  • die App “Blutdruckdaten” macht genau das alles, was Du hier schreibst.

Die Daten werden per Bluetooth von allen moeglichen Blutdruckmessgeraeten uebernommen und gespeichert (in einer bezahlten Cloud).
Deine Blutdruckdaten kannst Du dann dem Arzt entweder in der App zeigen, per PDF erhalten oder per GDT (Geraete Daten Transfer) zukommen lassen.

Hier mal ein Datenbeispiel: GDT | BlutdruckDaten

Ich weiss noch, dass der Entwickler bei manchen Geraeten mit dem Bluetooth Format Schwierigkeiten hatte (speziell Omron), aber: es geht. :hugs:
Vielleicht als Anregung, ich glaub in der Geraetekompatibilitaetsliste auf der Webseite steht auch mehr zum Bluetooth Datenformat.

Och, die arme Frau… :crazy_face:

:rofl: jetzt ist mein Blutdruck durch die Decke :chart_with_upwards_trend: gegangen.

Danke … das schaut gut aus … hab mir jetzt ein Withings BPM Connect bestellt und versuch das dann nachzubilden … ich berichte

Da mein OMRON nur Mist gemessen hat (ich habe sehr schmale Handgelenke), ist es eben in die Packstation gewandert. Das Withings kommt morgen. Werde schon mal alles “vorbereiten”, bin gespannt…

Moin,

man mag ja zu Withins und Cloud stehen wie man will, aber die Geräte sind schon klasse, meine Waage und auch das Blutdruckmessgerät liefer verlässliche Werte, aktuell denke ich darüber nach mir und Frauchen, die Hybrid-Uhr zu kaufen, um auch noch EKG usw. zu bekommen, noch ist ja ein Rabatttag :slight_smile:

VG
Bernd

gib doch bitte info wo Du welche Preise gefunden hast. Danke

Moin,

war das an mich gerichtet?

Einfach mal beim Großen A nachschauen, kommt ja darauf an, welche Du haben möchtest :wink:

VG
Bernd

P.S.: hier direkt bei Withings
Black Friday@Withings

2024-12-02 10-53-38

Läuft!! Danke an alle die sich hier eingebracht haben. :+1:t4:

Mal gucken, ich werde eventuell noch die Chart pimpen, oder hat schon jemand eine andere Lösung und mag teilen?

Moin,

ich vermute, dass das erst einigermaßen aussieht, wenn auch genügend Werte vorhanden sind.
Aber wenn Du gute Ideen hast, dann immer her damit :slight_smile:

VG
Bernd

2024-12-02 13-42-58

Hi Bernd,

hast Du eine Ahnung warum das erst richtig anzeigt und dann irgendwann auf 0 geht?

2024-12-02 13-44-24

Der Verlauf sieht gut aus…

Ich habe mal " fill: zero" rausgeworfen und es geht. Was war da die Idee dahinter?

Moin,

ist nicht mein Code, hatte damals @Damrak2023 nur geholfen es zum Laufen zu bringen, wenn ich da jetzt so hineinschaue, ist es dort falsch, und müsste last sein, dann nimmt er immer den letzten Wert, der nicht Null, oder 0 war.

Aus der Beschreibung zu Apexchart

fill string last v1.0.0
If func is not raw only. If there is any missing value in the buckets of history data (grouped by duration), last will replace them with the last non-empty state, zero will fill missing values with 0, ‘null’ will fill missing values with null

VG
Bernd

Hi,

Wenn Du statt Excel die Einträge in einer Google Tabelle speichern möchtest ist das relativ einfach.
Integration Google Sheets → Aktion google_sheets.append_sheet

Ich hatte das eine Zeitlang benutzt um meinen Stromverbrauch zu tracken und regelm. die Daten in eine Tabelle geschrieben…

Damit sind die Daten nicht im HA dargestellt, aber eine Google-Tabelle kann man wunderbar “mitnehmen” um die Daten seinem Arzt zu zeigen (… um auf die ursprpüngliche Frage von @RobFre zurückzukommen)

Gruß

Das “Original” war mir zu unübersichtlich, obwohl Bernd dp20eic sich so viel Mühe gemacht hat. Meine Variante zeigt die Werte übersichtlicher (für mich!) an. Ich glaube, ich lasse es erstmal so…

Dank an Bernd für die “Inspiration”!

Moin,

der Dank, geht an @Damrak2023, das ist seine Schöpfung, ich habe da nur Kleinigkeiten zu beigetragen und Ihr macht es perfekt :slight_smile:

Als Anregung kann ich noch, in den Raum schmeißen, sich vielleicht auch noch einmal die plotly-graph-card anzuschauen.

type: custom:plotly-graph
title: Gesundheitsdaten
entities:
   - entity: sensor.health_herzschlag
     name: Puls
   - entity: sensor.health_systolischer_blutdruck
     name: Systole
   - entity: sensor.health_diastolischer_blutdruck
     name: Diastole
hours_to_show: 72
refresh_interval: auto
layout:
  xaxis:
    rangeselector:
      # see examples: https://plotly.com/javascript/range-slider/
      # see API: https://plotly.com/javascript/reference/layout/xaxis/#layout-xaxis-rangeselector
      "y": 1.2
      buttons:
        - count: 1
          step: hour
        - count: 12
          step: hour
        - count: 1
          step: day
        - count: 3
          step: day
        - count: 7
          step: day

grafik

VG
Bernd

Für mich ist das zu unübersichtlich. Stand heute mit 6 HELPER:

Die Linie ist jetzt entsprend der Tabelle von OMRON eingefärbt.
Außerdem werden jetzt bei den Mittelwerten farbige Ränder angezeigt je nach Wert!

Code weiter unten angepasst…

Moin,

sehr schön. :+1:

Jetzt, musst Du uns nur noch an Deiner Lösung teilhaben lassen, die Fragen nach dem/den yaml Code(s) kommt sowieso irgendwann :wink:

VG
Bernd

Gerne (Wie die PRINZEN schon sangen: Alles nur geklaut)…

type: custom:apexcharts-card
experimental:
  color_threshold: true
graph_span: 7d
span:
  end: day
chart_type: line
header:
  show: true
  title: ""
  show_states: true
  colorize_states: true
series:
  - entity: sensor.withings_systolischer_blutdruck
    color_threshold:
      - value: 120
        color: "#6AA84F"
      - value: 129
        color: "#38761D"
      - value: 139
        color: "#1F3F0F"
      - value: 159
        color: orange
      - value: 179
        color: "#990000"
      - value: 180
        color: darkred
    name: Systole
    stroke_width: 4
  - entity: sensor.withings_diastolischer_blutdruck
    name: Diastole
    color: "#3D85C6"
    color_threshold:
      - value: 80
        color: "#6AA84F"
      - value: 84
        color: "#38761D"
      - value: 89
        color: "#1F3F0F"
      - value: 99
        color: orange
      - value: 109
        color: "#990000"
      - value: 110
        color: darkred
    stroke_width: 4
  - entity: sensor.withings_herzschlag
    name: Puls
    color: magenta
    color_threshold:
      - value: 66
        color: "#6AA84F"
      - value: 70
        color: "#38761D"
      - value: 74
        color: "#1F3F0F"
      - value: 82
        color: darkred
    stroke_width: 4
now:
  show: true
  color: blue
  label: Jetzt

Die drei HELPER sind unter “STATISTIKEN” und dann “LINEARER MITTELWERT” zu finden. Ganz einfach. Stichprobengröße ist bei mir 7 (ACHTUNG: Denkfehler? Habe auf 100 erhöht!), wie auch in der Übersicht (graph_span: 7d).

Auswertung noch sehr mager, habe den WITHINGS erst ein paar Tage…

2024-12-06 13-03-23
Habe es darauf geändert, scheint besser zu sein…

Karte mit entsprechendem farbigen Rand.

type: custom:mushroom-entity-card
entity: sensor.average_systole
primary_info: state
secondary_info: name
name: Systole
icon: mdi:chart-timeline-variant
grid_options:
  rows: 2
  columns: 4
layout: vertical
card_mod:
  style: |
    {% set systole_value = states('sensor.average_systole') | int | round(0) %}

    ha-card {

    {% if systole_value < 120 %} 
         --ha-card-border-radius: 10px;
         --ha-card-border-color: #6AA84F;
         --ha-card-border-width: 2px;
         --card-mod-icon-color: white;

    {% elif systole_value < 129 %} 
         --ha-card-border-radius: 10px;
         --ha-card-border-color: #38761D;
         --ha-card-border-width: 2px;
         --card-mod-icon-color: white;

    {% elif systole_value < 139 %} 
         --ha-card-border-radius: 10px;
         --ha-card-border-color: #1F3F0F;
         --ha-card-border-width: 2px;
         --card-mod-icon-color: white;

    {% elif systole_value < 159 %} 
         --ha-card-border-radius: 10px;
         --ha-card-border-color: orange;
         --ha-card-border-width: 2px;
         --card-mod-icon-color: white;   

    {% elif systole_value < 179 %} 
         --ha-card-border-radius: 10px;
         --ha-card-border-color: #990000;
         --ha-card-border-width: 2px;
         --card-mod-icon-color: white;           
         
    {% elif systole_value > 180 %} 
         --ha-card-border-radius: 10px;
         --ha-card-border-color: darkred;
         --ha-card-border-width: 2px;
         --card-mod-icon-color: white;
         
    {% endif %}

           }           

Ich habe von HACS noch den “Average Sensor” gezogen und die Ansicht ein wenig gepimpt…

type: custom:mushroom-template-card
entity: sensor.roberts_handy_geocoded_location
primary: "- Herzschlag -"
secondary: >-
  Durchschnitt: {{ states('sensor.average_14d_puls') }} bpm

  Minimalwert: {{ '{:.0f}'.format( state_attr('sensor.average_14d_puls',
  'min_value')) }} bpm

  Maximalwert: {{ '{:.0f}'.format( state_attr('sensor.average_14d_puls',
  'max_value')) }} bpm

  Trend: {{ '{:.2f}'.format( state_attr('sensor.average_14d_puls',
  'trending_towards')) }} bpm


  Aus {{'{:.0f}'.format( state_attr('sensor.average_14d_puls', 'count')) }}
  Messungen
icon: mdi:heart-pulse
multiline_secondary: true
layout: vertical
icon_color: |-
  {% set systole_value = states('sensor.average_14d_puls') | int %}

  {% if systole_value <= 66 %} 
    #6AA84F
  {% elif systole_value <= 70 %} 
    #38761D
  {% elif systole_value <= 74 %} 
    #1F3F0F
  {% elif systole_value >= 82 %} 
    darkred
  {% endif %}
tap_action:
  action: none
grid_options:
  columns: 4
  rows: auto

Das gefällt mir sehr gut. Wie bekommt man die Beschriftungen für die min/max Werte an die Kurven? Sind hierfür Deine Helfer?

image