Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Darstellung einer Pulsoximetriekurve

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    354

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Darstellung einer Pulsoximetriekurve

Geplant Angeheftet Gesperrt Verschoben Off Topic
61 Beiträge 5 Kommentatoren 7.9k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AlexAxelA AlexAxel

    @ralla66 said in Darstellung einer Pulsoximetriekurve:

    BlazePod

    Musste erstmal googlen, was ein BlazePod ist :-)
    klappt es denn initial und ihr konntet die Bytes identifizieren, die für das Ding bzw. Euch wichtig sind ?
    Wenn ja, glaube ich nicht daran, dass die Entwickler die Verbindung im nachhinein kappt, weil ein Key fehlt.

    Wenn die Werte noch nicht kommen und Ihr wollt herausfinden, was die Original-App und das Teil so austauschen,
    lasst es auf einem Android handy im Debug-Modus (muss man am Handy aktivieren) laufen und schließt es mit einem USB-Datenkabel(!) nicht Ladekabel am
    PC an. Dort lasst Ihr die Android IDE Entwicklungsumgebung laufen. Man kann da schön sehen, was da so hin und her geht. Ihr könnt auch ein Android virtuel auf dem PC laufen lassen und dort die Andorid App im virtuellen Handy laufen lassen und gleiches sehen.
    Wenn Ihr wissst was die App so sendet, damit es die Daten empfängt, die Ihr sucht, wisst Ihr was Ihr per BLE Code auf dem ESP vorab senden müsst, um gleichen Daten zu empfangen.

    Ralla66R Offline
    Ralla66R Offline
    Ralla66
    Most Active
    schrieb am zuletzt editiert von
    #48

    @alexaxel

    BlazePod sind Neumodische Trainingsblinkis mit Pushbutton.
    Daten sind alle da und Sichtbar, aufgeschraubt und Kabel angelötet auch.
    Speicherauslesen und beschreiben geht :-)

    1 Antwort Letzte Antwort
    0
    • Ralla66R Ralla66

      @alexaxel

      könntest du bitte ein Codeschnipsel hier einstellen damit ich in den Datenpunkt Wave
      die Bytes 41 - 67 schreiben kann.

      mqttClient.beginMessage(Topic_Wave);
      ?
      mqttClient.endMessage();

      Dann hätten wir das sauber.

      Danke

      AlexAxelA Offline
      AlexAxelA Offline
      AlexAxel
      schrieb am zuletzt editiert von
      #49

      @ralla66 said in Darstellung einer Pulsoximetriekurve:

      Hier mal so ein Schnippsel ungetestet geschrieben:

        mqttClient.beginMessage(Topic_DataArray); // Hier den Topic nehmen, den Du vorher auch deklariert hast. Wenn das auch bei Dir oben not DataArray heißt, kann das so bleiben.
        //eben einen String zusammenbasteln, damit nur ein Datenpunkt verwendet wird. Geht sicherlich auch noch eleganter...
        String sTemp;
        int iWert;
      
        //Hier die Schleife
        for (int i = 41; i < 68; i++) {
          iWert = int(data[i],DEC); // nun an der Position das Byte rausziehen. Dieser Code muss ja in der Subroutine stehen, wo auch eine Variable namens Data mit dem gesammten Array übergeben wird.
          sTemp += iWert; 
        }
        mqttClient.print(sTemp); // Daten senden
        mqttClient.endMessage(); // MQTT Klasse mitteilen, dass nun Ende ist.
      
      Ralla66R 1 Antwort Letzte Antwort
      0
      • AlexAxelA AlexAxel

        @ralla66 said in Darstellung einer Pulsoximetriekurve:

        Hier mal so ein Schnippsel ungetestet geschrieben:

          mqttClient.beginMessage(Topic_DataArray); // Hier den Topic nehmen, den Du vorher auch deklariert hast. Wenn das auch bei Dir oben not DataArray heißt, kann das so bleiben.
          //eben einen String zusammenbasteln, damit nur ein Datenpunkt verwendet wird. Geht sicherlich auch noch eleganter...
          String sTemp;
          int iWert;
        
          //Hier die Schleife
          for (int i = 41; i < 68; i++) {
            iWert = int(data[i],DEC); // nun an der Position das Byte rausziehen. Dieser Code muss ja in der Subroutine stehen, wo auch eine Variable namens Data mit dem gesammten Array übergeben wird.
            sTemp += iWert; 
          }
          mqttClient.print(sTemp); // Daten senden
          mqttClient.endMessage(); // MQTT Klasse mitteilen, dass nun Ende ist.
        
        Ralla66R Offline
        Ralla66R Offline
        Ralla66
        Most Active
        schrieb am zuletzt editiert von Ralla66
        #50

        @alexaxel

        Danke,
        wird klappen, wenn nicht frage ich mal meinen BlazePod Progger.
        Meine Fachabteilung im Freundesteam ist eher für Decoding zuständig :-)
        Diese ganzen Tves Chip ( ähnlich ESP ) haben ja auch so ne Verkasperung
        wo du aus fernen Ländern einen Zugangskey per Mail bekommst anhand der Mac.

        1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @alexaxel sagte in Darstellung einer Pulsoximetriekurve:

          Hintergrund beim History-Chart

          was ist das?

          Hintergrund geht immer
          Screenshot_20231230-224446_Firefox.jpg

          AlexAxelA Offline
          AlexAxelA Offline
          AlexAxel
          schrieb am zuletzt editiert von
          #51

          @homoran wie hast du das hinbekommen. Mir reicht ja transparent oder schwarz. Wenn ich background setze, sieht das so aus:

          7273a00b-a1a5-4de6-aae6-8d03ec000d59-grafik.png

          62f0599d-a778-45fe-8e34-0029aadab5b8-grafik.png

          HomoranH 1 Antwort Letzte Antwort
          0
          • AlexAxelA AlexAxel

            @homoran wie hast du das hinbekommen. Mir reicht ja transparent oder schwarz. Wenn ich background setze, sieht das so aus:

            7273a00b-a1a5-4de6-aae6-8d03ec000d59-grafik.png

            62f0599d-a778-45fe-8e34-0029aadab5b8-grafik.png

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #52

            @alexaxel sagte in Darstellung einer Pulsoximetriekurve:

            Mir reicht ja transparent

            dann schreib das dahin :grin:
            oder clear

            EDIT:
            Blödsinn, nicht im iFrame widget, sondern im Flot
            Screenshot_20231231-135913_Firefox.jpg

            deswegen fragte ich ja was das "history Widget" sein soll

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            AlexAxelA 1 Antwort Letzte Antwort
            0
            • AlexAxelA AlexAxel

              Hallo Leute, ich brauche mal Euer Wissen / Eure Hilfe bei einem Problemchen:

              Ich habe ein fertiges Pulsoximeter via ESP32/Bluetooth/Wifi und MQTT Protokoll angezapft und somit eine "Brücke" gebastelt,um die Werte als Datenpunkte darzustellen. Das klappt soweit auch sehr gut:

              Bildschirmfoto vom 2023-12-24 11-18-46.png

              Nun arbeite ich daran, die Blutdruckkurve, die das Gerät darstellt und als CustomCaracteristics bereit stellt. Naja kurz gesagt ich habe ein Array von ca. 30 bytes, die eine kleine Kurve mit einem Wertebereich von 0-255 darstellen. Also die Daten habe ich auch.

              Meine Defizite liegen eher woanders. Ich finde einfach keine Lösung die Daten schön darzustellen. Habe schon 2 Anätze, die nicht funktionieren:

              1. Schleife in JS bauen, die jedes Byte nacheinander in ein Datenpunkt schreibt und das Livechart schaut auf diesen. Leider sagt der Scripteditor, dass ich den Datenpunkt zu häufig aktualisiere. (ca 1000 mal pro Minute). Das Array wird ca. in 0,5 Sekunden intervall über MQTT geupdated.

              2. Ich erzeuge keine unnötige Umrechnung mit neuen Datenpunkten, sondern nehme gleich das Array und zeichne mit dem HTML objekt und JS die Kurve mit senkrechten Linien selber und rotiere dann die aktuellen Werte. Ich habe angefangen Linien mal zeitlich einzeln darzustellen. ChatGTP hat mir dabei geholfen:

              <!DOCTYPE html>
              <html lang="en">
              <head>
                  <meta charset="UTF-8">
                  <meta name="viewport" content="width=device-width, initial-scale=1.0">
                  <title>Vertical Lines Animation</title>
              </head>
              <body>
                  <canvas id="myCanvas" width="200" height="200"></canvas>
              
                  <script>
                      // JavaScript-Funktion zum Zeichnen von 10 roten senkrechten Linien im Abstand von 10 Pixeln
                      function drawVerticalLines() {
                          // Canvas-Element und 2D-Kontext abrufen
                          var canvas = document.getElementById("myCanvas");
                          var ctx = canvas.getContext("2d");
              
                          // Anzahl der Linien und der Abstand zwischen den Linien
                          var numLines = 10;
                          var lineSpacing = 10;
              
                          // Funktion zum Zeichnen einer Linie
                          function drawLine(x) {
                              ctx.beginPath();
                              ctx.moveTo(x, 0);
                              ctx.lineTo(x, canvas.height);
                              ctx.strokeStyle = "red";
                              ctx.stroke();
                          }
              
                          // Funktion zum animierten Zeichnen der Linien
                          function drawLinesSequentially(index) {
                              if (index < numLines) {
                                  var x = index * (lineSpacing + 1); // 1 Pixel Lücke zwischen den Linien
                                  drawLine(x);
                                  setTimeout(function () {
                                      drawLinesSequentially(index + 1);
                                  }, 1000); // Eine Sekunde Verzögerung zwischen den Linien
                              }
                          }
              
                          // Starte die Animation
                          drawLinesSequentially(0);
                      }
              
                      // Die Funktion aufrufen, wenn die Seite geladen ist
                      window.onload = drawVerticalLines;
                  </script>
              </body>
              </html>
              
              

              Leider werden die Striche nicht zeitlich dargestellt.
              Das unglaubliche: Lade ich den gleichen Code auf eine offline HTML Seite vom Desktop, funktioniert es. Ich habe das Gefühl, dass Animationen in HTML mit SetTimeout im IO Broker nicht funktionieren.

              Habt Ihr eine Lösung ? Gerne auch ganz andere Alternativen. Letztendlich soll die View so eine Kurve darstellen, wie ungefähr hier:
              Bildschirmfoto vom 2023-12-24 11-31-23.png

              (Hinweis, ich baue kein Medizinprodukt. Es ist einfach hilfreich im Haushalt, wenn überall Tablets an der Wand hängen und Alexa, ein paar Meldungen macht, wenn der Fingersensor ab und ein paar Werte zu hoch oder niedrig sind. Das Gerät selber hat auch eigene Warnfunktionen).

              Vielen Dank Euch allen !!!

              VG
              Alex

              AlexAxelA Offline
              AlexAxelA Offline
              AlexAxel
              schrieb am zuletzt editiert von
              #53

              :warning: Ich möchte alle Mitlesenden und Begeisternden IOBler noch einmal deutlich daraufhinweisen, dass dies nur für private Zwecke eingesetzt werden darf.

              Ein Produkt, dass für professionelle medizinische Zwecke bestimmt ist, muss dem Medizinprodukte-Gesetzt entsprechen! Die Anforderungen an eine MPG-konforme Lösung ist weit mehr als das bisschen basteln und coden. Also unsere Basteleien bitte nicht im professionellen Bereich, wie in der Pflege und oder in Einrichtungen verwenden! ... und für den privaten Gebrauch immer einen Plan B haben. So alarmiert bei mir immer noch das MPG-Konforme Pulsoximeter mit seinem eigenen Alarmlautsprecher.

              So... das lag mir noch am Herzen... Ich wünsche allen ein Frohen Neues 2024 !! Alex:-)

              1 Antwort Letzte Antwort
              2
              • HomoranH Homoran

                @alexaxel sagte in Darstellung einer Pulsoximetriekurve:

                Mir reicht ja transparent

                dann schreib das dahin :grin:
                oder clear

                EDIT:
                Blödsinn, nicht im iFrame widget, sondern im Flot
                Screenshot_20231231-135913_Firefox.jpg

                deswegen fragte ich ja was das "history Widget" sein soll

                AlexAxelA Offline
                AlexAxelA Offline
                AlexAxel
                schrieb am zuletzt editiert von
                #54

                @homoran Achso du nimmst ein ganz anderes Objekt. Ich hab das hier genommen. Live History Chart:
                c3dd86cf-5640-49f4-960b-4314a18e494d-grafik.png

                Kann Flot auch in Echtzeit die Kurve so schnell zeichnen, dass 2 Kurven pro sekunde gezeichnet werden und diese nach links scrollen ?

                HomoranH 1 Antwort Letzte Antwort
                0
                • AlexAxelA AlexAxel

                  @homoran Achso du nimmst ein ganz anderes Objekt. Ich hab das hier genommen. Live History Chart:
                  c3dd86cf-5640-49f4-960b-4314a18e494d-grafik.png

                  Kann Flot auch in Echtzeit die Kurve so schnell zeichnen, dass 2 Kurven pro sekunde gezeichnet werden und diese nach links scrollen ?

                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von Homoran
                  #55

                  @alexaxel sagte in Darstellung einer Pulsoximetriekurve:

                  Kann Flot auch in Echtzeit die Kurve so schnell zeichnen, dass 2 Kurven pro sekunde gezeichnet werden und diese nach links scrollen ?

                  hab ich noch nie probiert.
                  So schnell steigt der Rheinpegel nicht

                  allerdings wird bei der Datenrate die History DB sehr schnell sehr groß

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  Ralla66R 1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @alexaxel sagte in Darstellung einer Pulsoximetriekurve:

                    Kann Flot auch in Echtzeit die Kurve so schnell zeichnen, dass 2 Kurven pro sekunde gezeichnet werden und diese nach links scrollen ?

                    hab ich noch nie probiert.
                    So schnell steigt der Rheinpegel nicht

                    allerdings wird bei der Datenrate die History DB sehr schnell sehr groß

                    Ralla66R Offline
                    Ralla66R Offline
                    Ralla66
                    Most Active
                    schrieb am zuletzt editiert von Ralla66
                    #56

                    @homoran sagte in Darstellung einer Pulsoximetriekurve:

                    allerdings wird bei der Datenrate die History DB sehr schnell sehr groß

                    so war auch mein Gedanke und viel Traffic erzeugt der eigentlich nicht notwendig ist.
                    Da wir ja nicht im medizinischen Bereich sind sollten weniger Byte in der Datenübertragung
                    reichen.

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • Ralla66R Ralla66

                      @homoran sagte in Darstellung einer Pulsoximetriekurve:

                      allerdings wird bei der Datenrate die History DB sehr schnell sehr groß

                      so war auch mein Gedanke und viel Traffic erzeugt der eigentlich nicht notwendig ist.
                      Da wir ja nicht im medizinischen Bereich sind sollten weniger Byte in der Datenübertragung
                      reichen.

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #57

                      @ralla66 bleibt außerdem die Frage, ob eine lange Vorhaltezeit notwendig ist.
                      Wenn ich nur eine Nacht monitoren will, reicht ein Tag.
                      Das ist dann auch nicht wirklich kritisch.

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      AlexAxelA Ralla66R 2 Antworten Letzte Antwort
                      0
                      • HomoranH Homoran

                        @ralla66 bleibt außerdem die Frage, ob eine lange Vorhaltezeit notwendig ist.
                        Wenn ich nur eine Nacht monitoren will, reicht ein Tag.
                        Das ist dann auch nicht wirklich kritisch.

                        AlexAxelA Offline
                        AlexAxelA Offline
                        AlexAxel
                        schrieb am zuletzt editiert von
                        #58

                        @homoran Ich schreibe nur die Frequenz und den O2 Wert in einer externen SQL DB. Das History Chart schaut aber nur auf einem anderen DP, der gar nicht historisch weggeschrieben wird. Das sind also flüchtige Kurvendaten. Quasi immer der Punkt der gemalten Live-Kurve der 4 Takte des Herzens.

                        1 Antwort Letzte Antwort
                        0
                        • HomoranH Homoran

                          @ralla66 bleibt außerdem die Frage, ob eine lange Vorhaltezeit notwendig ist.
                          Wenn ich nur eine Nacht monitoren will, reicht ein Tag.
                          Das ist dann auch nicht wirklich kritisch.

                          Ralla66R Offline
                          Ralla66R Offline
                          Ralla66
                          Most Active
                          schrieb am zuletzt editiert von
                          #59

                          @homoran

                          sehe ich auch so,
                          und wenn sich ein Progger gelangweilt fühlt kann dieser noch einen Code schreiben
                          wo Wifi / Mqtt und Device ID per Gui eingefügt werden kann.
                          Nicht jeder hat / kann mit der Arduino IDE umgehen.
                          So hätten viele User was davon, flashen, Daten eigeben, fertig ist die Laube.

                          Chris 1C 1 Antwort Letzte Antwort
                          1
                          • Ralla66R Ralla66

                            @homoran

                            sehe ich auch so,
                            und wenn sich ein Progger gelangweilt fühlt kann dieser noch einen Code schreiben
                            wo Wifi / Mqtt und Device ID per Gui eingefügt werden kann.
                            Nicht jeder hat / kann mit der Arduino IDE umgehen.
                            So hätten viele User was davon, flashen, Daten eigeben, fertig ist die Laube.

                            Chris 1C Offline
                            Chris 1C Offline
                            Chris 1
                            schrieb am zuletzt editiert von
                            #60

                            Schreibe hier mal 2-Zeiler, um dem Thema zu folgen.

                            Habe seit Weihnachten eine einfache SmartWatch, welche nicht-medizinische Näherungswerte zu Blutdruck, Puls, Haut-Temperatur, Blutsauerstoff etc liefert, welche ich doch gerne statt mittelmäßiger H-Band-App in ioBroker/postgreSQL einpflegen würde. EInfach zur groben Kontrolle, wenn es irgendwo scheinbar starke Abweichungen gibt.

                            Gruss von der Ostsee
                            Chris

                            bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                            1 Antwort Letzte Antwort
                            0
                            • HomoranH Homoran

                              @ralla66 sagte in Darstellung einer Pulsoximetriekurve:

                              aus einer DB eine Kurve darstellen, siehst du da Möglichkeiten ?

                              nur wenn die Daten über iob geloggt wurden.

                              Aber ich glaube dass diese Frage bereits mal behandelt wurde. Leider weiss ich nicht mit welcher DB und welchem Ergebnis

                              Chris 1C Offline
                              Chris 1C Offline
                              Chris 1
                              schrieb am zuletzt editiert von
                              #61

                              @homoran said in Darstellung einer Pulsoximetriekurve:

                              @ralla66 sagte in Darstellung einer Pulsoximetriekurve:

                              aus einer DB eine Kurve darstellen, siehst du da Möglichkeiten ?
                              nur wenn die Daten über iob geloggt wurden.
                              Aber ich glaube dass diese Frage bereits mal behandelt wurde. Leider weiss ich nicht mit welcher DB und welchem Ergebnis

                              Wäre es nicht sinnvoller die Daten extern ein zu speisen, statt via ioB, um eine korrekte Timestamp zu haben?
                              Wenn ich mich recht entsinne, dann verwendet ioB für die Datenbank (bei mir postgreSQL) den jetzt-Wert, was zu Problemen führt.
                              Ich hatte da Probleme, als ich Vorhersagen & Meßwerte vom BSH OpenData-Server einspeisen wollte.

                              bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                              1 Antwort Letzte Antwort
                              0
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              338

                              Online

                              32.5k

                              Benutzer

                              81.8k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe