Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Darstellung einer Pulsoximetriekurve

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Darstellung einer Pulsoximetriekurve

    This topic has been deleted. Only users with topic management privileges can see it.
    • AlexAxel
      AlexAxel @Homoran last edited by

      @homoran ja BT müssen beide schon haben. Also der ESP und das Pulsoximeter. 😀

      Ich habe gerade über den Hersteller meineS BT Geräts, das auf den der Arduino Code abgestimmt ist, diese günstige Variante für 20 Euro gefunden:

      https://amzn.eu/d/dexSJNY

      Die verwenden die gleiche App, wie bei meinem Gerät.
      Ich gehe davon aus, dass Ihr damit sicher genauso an die Werte kommt.

      Ralla66 1 Reply Last reply Reply Quote 1
      • Ralla66
        Ralla66 Most Active @AlexAxel last edited by

        @alexaxel

        bestellt ist nun, lade bitte mal den Arduino Code hier ein oder verlinke den mal.
        Mqtt, Wlan usw ist ja per ESP kein Problem, BLE ist neu für mich.
        Muß mich das erst einarbeiten. NRF sollte ja ein spezielles BLE Protokoll sein.

        AlexAxel 2 Replies Last reply Reply Quote 0
        • AlexAxel
          AlexAxel @Ralla66 last edited by

          @ralla66 hatte ich schon. Schau mal, der Code ist weiter oben schon gepostet.

          Ralla66 1 Reply Last reply Reply Quote 0
          • AlexAxel
            AlexAxel @Ralla66 last edited by

            @ralla66 nRF Connect ist eine Testapp von Nordic, das sind die Lizenzgeber und Patentbesitzer von Bluetoith.

            1 Reply Last reply Reply Quote 0
            • Ralla66
              Ralla66 Most Active @AlexAxel last edited by

              @alexaxel

              wäre halt die Quelle vom BLE Code interessant gewesen.
              Nordic nRF ist mir nicht ganz unbekannt vom Hoymiles Projekt.
              Ein Freund ist da gerade mit Developer Kit unterwegs, so richtig tief mit Assembler dran.
              Dann warte ich mal aufs Paket und belese mich zu ESP BLE Stoff.

              AlexAxel 1 Reply Last reply Reply Quote 0
              • AlexAxel
                AlexAxel @Ralla66 last edited by

                @ralla66 Also alles zusammen kommt von mir. Aber basierend auf Beispielcodes die in der arduino IDE sind, wenn man das passende Board auswählt. Wenn man die ESP32 Bibliothek auswählt, hat man automatisch themensortierte Beispiele auf den Rechner.

                Ralla66 1 Reply Last reply Reply Quote 0
                • Ralla66
                  Ralla66 Most Active @AlexAxel last edited by

                  @alexaxel

                  Gerät sollte ja Freitag da sein, dann schau ich mal was so geht.
                  Eingerichtet ist alles soweit an Tools, ESP ist mal mit Tasmota BLE geflasht,
                  mal sehen was da geht. Werde mal einen BLE nRF Sniffer besorgen das soll ja mit
                  Wireshark Plugin gehen.
                  Rund um den Key wären Infos gut, hast du da Bilder der IDE da ?

                  AlexAxel 1 Reply Last reply Reply Quote 0
                  • AlexAxel
                    AlexAxel last edited by

                    Wäre geil, wenn jemand auch noch nen Tipp für mein eigentliches Thema hätte. 😁
                    Ich glaube, dass die geladenen Seiten in Vis keine Timeouts zulassen. So dass man eine Animation einbauen kann und das livechart eben mit den vielen Werten in sekundenintervallen nicht zurechtkommt.

                    Ralla66 1 Reply Last reply Reply Quote 0
                    • AlexAxel
                      AlexAxel @Ralla66 last edited by

                      @ralla66 Die App die ich meine ist kein Sniffer, es ist eine Client-Anwendung, die einfach sich als Bluetooth-Client mit dem BT-Gerät (Server) verbindet. Es handelt sich also um eine ganz normale Client-Server Verbindung. Daher kann man auch Daten zum Device hochladen.

                      1 Reply Last reply Reply Quote 0
                      • Ralla66
                        Ralla66 Most Active @AlexAxel last edited by Ralla66

                        @alexaxel sagte in Darstellung einer Pulsoximetriekurve:

                        Wäre geil, wenn jemand auch noch nen Tipp für mein eigentliches Thema hätte

                        vielleicht die Frage mal anders stellen. Mal zum Kern der Sache.
                        Du brauchst Livedata oder es reicht mit Verzögerung von Max 5 Sec auch.
                        Einige Devices haben ja auch gespeicherte Datensätze, diese werden von dir
                        noch nicht betrachtet ?

                        Gegeben sind 8 x 1 Byte die Werte Darstellen, zB Puls usw.
                        Diese sollen in einer View ( Kurven ) dargestellt werden.

                        Ansatz 1:

                        Du stellst die Daten in einem View mit einem html Widget da.
                        Das scheint wohl nicht zu klappen wie du oben schriebst, richtig ?
                        Dann welches Widget geht nicht, eventuell ist der html Code nicht ok.
                        Bei html wird wohl kaum einer helfen können da sehr anspruchsvoll.
                        Eher der schwierige Weg.

                        Ansatz 2:

                        Du parkst die Daten in einer Datenbank zwischen, entweder einzeln oder als Array.
                        Die Daten in einen Datenpunkt zu schreiben sollte möglich sein.
                        Ich als Beginner von Kurven würde mit History und Flot beginnen.
                        Die Experten hier können dir da aber viel besser helfen.

                        @homoran

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

                        Homoran AlexAxel 2 Replies Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Ralla66 last edited by

                          @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 1 1 Reply Last reply Reply Quote 0
                          • AlexAxel
                            AlexAxel @Ralla66 last edited by

                            @ralla66 Ich bring es mal knapper auf den Punkt. Folgender HTML-Code / JS Code stellt einfach nur ein bewegendes Quadrat von links nach rechts dar.
                            Kopiert den Code als HTML-Webseite mal auf Deinen Rechner und lass ihn im Browser laufen. Kopiere den gleichen Code in ein HTML-Widget. Du wirst sehen es läuft nicht. Ich glaube, dass solche Schleifen oder Timeouts innerhalb von VIS nicht möglich sind.
                            Wenn das Problem gelöst ist, kann ich eine Kurve darstellen und es mit HTML basteln - das wäre nicht das Problem.

                            History-Daten helfen leider nicht. Auch nicht in einer Datenbank schreiben und dann auslesen. Das ist ein schneller Datenstrom. Ihr kennt bestimmt die Patientenmonitore, wo immer die Kurve in Echtzeit dargestellt wird. Manche Pulsoximeter stellen auch so eine Kurve dar.

                            Hier der einfache Code von ChatGPT erstellt.

                            
                            
                              <canvas id="myCanvas" width="400" height="200"></canvas>
                            
                              <script>
                                // JavaScript-Funktion, um ein blaues Quadrat zu zeichnen und zu animieren
                                function animateSquare() {
                                  // Canvas-Element und 2D-Kontext erhalten
                                  var canvas = document.getElementById('myCanvas');
                                  var ctx = canvas.getContext('2d');
                            
                                  // Quadrat-Parameter
                                  var squareSize = 50;
                                  var x = 0; // Startposition auf der x-Achse
                                  var y = canvas.height / 2 - squareSize / 2; // Zentriert auf der y-Achse
                                  var speed = 2; // Bewegungsgeschwindigkeit
                            
                                  function drawSquare() {
                                    // Hintergrund zeichnen, um den vorherigen Frame zu löschen
                                    ctx.clearRect(0, 0, canvas.width, canvas.height);
                            
                                    // Quadrat zeichnen
                                    ctx.fillStyle = 'blue';
                                    ctx.fillRect(x, y, squareSize, squareSize);
                                  }
                            
                                  function updatePosition() {
                                    // Neue Position berechnen
                                    x += speed;
                            
                                    // Wenn das Quadrat das Ende des Canvas erreicht hat, zurücksetzen
                                    if (x > canvas.width) {
                                      x = -squareSize;
                                    }
                                  }
                            
                                  function animate() {
                                    // Quadrat zeichnen und Position aktualisieren
                                    drawSquare();
                                    updatePosition();
                            
                                    // Die animate-Funktion in einer Schleife aufrufen, um die Animation fortzusetzen
                                    requestAnimationFrame(animate);
                                  }
                            
                                  // Animation starten
                                  animate();
                                }
                            
                                // Die Funktion aufrufen, wenn die Seite geladen ist
                                window.onload = animateSquare;
                              </script>
                            
                            
                            Ralla66 2 Replies Last reply Reply Quote 0
                            • Ralla66
                              Ralla66 Most Active @AlexAxel last edited by Ralla66

                              @alexaxel

                              ok, html ist nicht mein Fachgebiet und fällt für mich weg.
                              Werde den Weg über Daten schaufeln probieren.
                              Hier sind ja Ansätze dazu.
                              Das werde ich mal mit Tasmota Scripting oder als Routine im ESP testen.
                              Also senden von 48 Byte Pulshöhe aus dem ESP pro Minute als 1 Datenpaket.
                              Darstellung werde ich mal mit Flot testen. Dann 240 Byte, 5 x Puls, Breite 1 min / Puls.

                              Ähm was, wer, also Bilder :

                              Puls 1.jpg

                              Puls 3.jpg

                              Rohdata, 1 Puls für Flot, Breite Flot 1 min, Höhe nach Wert

                              0	3	6	9	12	15	18	21	24	27	30	33	36	39	42	45	48	51	54	57	60	63	66	69	72	69	66	63	60	57	54	51	48	45	42	39	36	33	30	27	24	21	18	15	12	9	6	3	0
                              

                              Aufgabe, erstellen einer Datei die Flot aufrufen kann. ( Ähnlich wie im History Adapter )

                              Ralla66 AlexAxel 2 Replies Last reply Reply Quote 0
                              • Ralla66
                                Ralla66 Most Active @Ralla66 last edited by Ralla66

                                @ralla66

                                erster Test, ESP Wert per Mqtt in Datenpunkt geschrieben und History.
                                Darstellung per Flott Adapter.

                                Puls ESP.jpg

                                Scripting Tasmota zur Datenübertragung:

                                >D
                                
                                WTP=0
                                HZR=1
                                
                                >S
                                
                                if HZR>0
                                then
                                WTP=WTP+2
                                endif
                                
                                if WTP>60
                                then
                                HZR=0
                                endif
                                
                                if HZR<1
                                then
                                WTP=WTP-2
                                endif
                                
                                if WTP<2
                                then
                                HZR=1
                                endif
                                
                                +>publish Pulswert/Wert  %WTP%
                                
                                print Pulswert %0WTP% 
                                
                                >W
                                
                                Pulswert {m} %0WTP% 
                                
                                
                                Ralla66 1 Reply Last reply Reply Quote 0
                                • Ralla66
                                  Ralla66 Most Active @Ralla66 last edited by Ralla66

                                  @ralla66

                                  update;

                                  Puls Visu 2.jpg

                                  P Mqtt.jpg

                                  >D
                                  
                                  ;Pulsfrequenz ist PFR 
                                  ;Blutsauerstoff ist  SP02
                                  ;Perfusionsindex ist PIX 
                                  ;Hochzähler ist HZR
                                  ;Umschalter ist USR
                                  
                                  PFR=0
                                  SP02=94
                                  PIX=20
                                  HZR=1
                                  
                                  >S
                                  
                                  if HZR>0
                                  then
                                  PFR=PFR+2
                                  endif
                                  
                                  if PFR>60
                                  then
                                  HZR=0
                                  endif
                                  
                                  ;----------------------------
                                  
                                  if HZR<1
                                  then
                                  PFR=PFR-2
                                  endif
                                  
                                  if PFR<2
                                  then
                                  HZR=1
                                  endif
                                  
                                  +>publish Pulsoximeter/Pulsfrequenz/Puls  %PFR%
                                  +>publish Pulsoximeter/Blutsauerstoff/SP02  %SP02%
                                  +>publish Pulsoximeter/Perfusionsindex/PI  %PIX%
                                  
                                  
                                  print Pulsfrequenz %0PFR% 
                                  print Blutsauerstoff %0SP02% 
                                  print Perfusionsindex %0PIX% 
                                  
                                  
                                  >W
                                  
                                  Pulsfrequenz {m} %0PFR% 
                                  Blutsauerstoff{m} %0SP02% 
                                  Perfusionsindex {m} %0PIX% 
                                  
                                  #
                                  
                                  

                                  Tasmota.jpg
                                  warten aufs Device -------------------------------------------------------------->

                                  1 Reply Last reply Reply Quote 0
                                  • Ralla66
                                    Ralla66 Most Active @AlexAxel last edited by Ralla66

                                    @alexaxel

                                    kannst du bitte mal schauen was im Arduino Code nicht passt.
                                    Bekomme den Code nicht kompiliert,

                                    E:\Arduino IDE\BLE_Alex1\BLE_Alex1.ino:231:14: note: suggested alternative: 'char'
                                         sTemp += sChar + ",";
                                                  ^~~~~
                                                  char
                                    
                                    exit status 1
                                    
                                    Compilation error: 'LED_BUILTIN' was not declared in this scope
                                    

                                    Habe mal LED_BUILTIN auskommentiert und den Teil mit sChar gelöscht, dann im Monitor

                                    17:45:37.922 -> Verbinde ...
                                    17:45:38.035 -> Juhu Verbunden...
                                    17:45:38.066 -> Hab folgenden service gefunden: 0xffe0 ...
                                    17:45:38.415 -> Service entdeckt
                                    17:45:38.447 -> Subscribing to simple key characteristic ...
                                    17:45:38.484 -> Subscribed
                                    
                                    Ralla66 AlexAxel 2 Replies Last reply Reply Quote 0
                                    • Ralla66
                                      Ralla66 Most Active @Ralla66 last edited by Ralla66

                                      @ralla66

                                      Testobjekt:

                                      Viatom.jpg

                                      Data:
                                      ViaTom
                                      Wellue BMP02
                                      PC60FW
                                      Mac : 00 00 00 00 00 99
                                      ID: OxySmart 0153
                                      Android APP: ViHealth, läuft nach Anmeldung

                                      Preis: 25 Ocken

                                      Data vom Nordic nRF Logger

                                      
                                      nRF Connect, 2023-12-29
                                      OxySmart 0153 (00:00:00:00:00:99)
                                      I	18:53:18.086	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-20-1C-19-16-13-07
                                      A	18:53:18.086	" U   " received
                                      I	18:53:18.087	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-F0-03-03-03-F6
                                      A	18:53:18.087	" U  " received
                                      I	18:53:18.163	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-11-0E-0D-0E-15-E2
                                      A	18:53:18.163	" U 
                                       " received
                                      I	18:53:18.267	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-21-30-40-4E-57-7B
                                      A	18:53:18.267	" U !0@NW{" received
                                      I	18:53:18.356	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-5B-5A-57-52-CB-03
                                      A	18:53:18.356	" U [ZWR " received
                                      I	18:53:18.461	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-43-3D-37-34-31-08
                                      A	18:53:18.461	" U C=741" received
                                      I	18:53:18.477	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-06-21-02-00-00-00-45
                                      A	18:53:18.477	" U!   E" received
                                      I	18:53:18.568	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-2E-2C-29-26-23-A0
                                      A	18:53:18.568	" U .,)&# " received
                                      I	18:53:18.672	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-1F-1B-18-15-12-CA
                                      A	18:53:18.672	" U  " received
                                      I	18:53:18.777	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-0F-0E-0F-16-21-36
                                      A	18:53:18.777	" U !6" received
                                      I	18:53:18.866	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-31-42-52-5D-63-CB
                                      A	18:53:18.866	" U 1BR]c " received
                                      I	18:53:18.881	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-08-01-60-6C-00-31-00-C0-10
                                      A	18:53:18.881	" U`l 1  " received
                                      I	18:53:18.972	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-64-62-5D-57-CF-48
                                      A	18:53:18.972	" U db]W H" received
                                      I	18:53:19.061	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-0F-07-02-48-41-3C-38-34-71
                                      A	18:53:19.061	" U HA<84q" received
                                      I	18:53:19.077	Notification received from 6e400003-b5a3-f393-e0a9-e50e24dcca9e, value: (0x) AA-55-F0-03-03-03-F6
                                      A	18:53:19.077	" U  " received
                                      

                                      Testobjekt Nr.2 :

                                      Holfenry.jpg

                                      Data:

                                      Holfenry
                                      JKS 50 CL
                                      MAC: CB 31 33 32 45 55
                                      ID: Oximeter

                                      Preis: 20 Ocken

                                      Data vom Nordic nRF Logger

                                      nRF Connect, 2023-12-29
                                      OXIMETER (CB:31:33:32:45:55)
                                      V	19:42:45.119	Connecting to CB:31:33:32:45:55...
                                      D	19:42:45.119	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
                                      D	19:42:46.098	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
                                      I	19:42:46.098	Connected to CB:31:33:32:45:55
                                      D	19:42:46.098	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
                                      V	19:42:46.101	Discovering services...
                                      D	19:42:46.102	gatt.discoverServices()
                                      I	19:42:46.546	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
                                      D	19:42:46.862	[Callback] Services discovered with status: 0
                                      I	19:42:46.862	Services discovered
                                      V	19:42:46.867	Generic Access (0x1800)
                                      - Device Name [R W] (0x2A00)
                                      - Appearance [R W] (0x2A01)
                                      - Peripheral Preferred Connection Parameters [R] (0x2A04)
                                      - Resolvable Private Address Only [R] (0x2AC9)
                                      Generic Attribute (0x1801)
                                      - Service Changed [I R] (0x2A05)
                                         Client Characteristic Configuration (0x2902)
                                      Unknown Service (0000ffe0-0000-1000-8000-00805f9b34fb)
                                      - Unknown Characteristic [N R W WNR] (0000ffe1-0000-1000-8000-00805f9b34fb)
                                         Client Characteristic Configuration (0x2902)
                                         Characteristic User Description (0x2901)
                                      - Unknown Characteristic [N R W WNR] (0000ffe2-0000-1000-8000-00805f9b34fb)
                                         Client Characteristic Configuration (0x2902)
                                         Characteristic User Description (0x2901)
                                      D	19:42:46.867	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
                                      D	19:42:46.869	gatt.setCharacteristicNotification(0000ffe1-0000-1000-8000-00805f9b34fb, true)
                                      D	19:42:46.871	gatt.setCharacteristicNotification(0000ffe2-0000-1000-8000-00805f9b34fb, true)
                                      I	19:42:46.950	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
                                      I	19:42:47.495	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00
                                      A	19:42:47.495	"(0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00" received
                                      I	19:42:47.495	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                      A	19:42:47.495	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                      I	19:42:47.672	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-0E-07-07-07-15-2A-46-54-54-54-4D-46-3F-38-38-31-31-2A-23
                                      A	19:42:47.672	"(0x) 7F-0E-07-07-07-15-2A-46-54-54-54-4D-46-3F-38-38-31-31-2A-23" received
                                      I	19:42:47.717	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 1C-15-0E-0E-07-00-00-0E-11
                                      A	19:42:47.717	"(0x) 1C-15-0E-0E-07-00-00-0E-11" received
                                      I	19:42:47.718	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00
                                      A	19:42:47.718	"(0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00" received
                                      I	19:42:47.719	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                      A	19:42:47.719	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                      I	19:42:47.720	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-0E-07-07-07-15-2A-46-54-54-54-4D-46-3F-38-38-31-31-2A-23
                                      A	19:42:47.720	"(0x) 7F-0E-07-07-07-15-2A-46-54-54-54-4D-46-3F-38-38-31-31-2A-23" received
                                      I	19:42:47.720	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 1C-15-0E-0E-07-00-00-00-03
                                      A	19:42:47.720	"(0x) 1C-15-0E-0E-07-00-00-00-03" received
                                      I	19:42:48.167	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00
                                      A	19:42:48.167	"(0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00" received
                                      I	19:42:48.167	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                      A	19:42:48.167	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                      I	19:42:48.212	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-0E-31-4D-5B-5B-5B-54-4D-46-3F-38-38-31-2A-23-1C-15-0E-07
                                      A	19:42:48.212	"(0x) 7F-0E-31-4D-5B-5B-5B-54-4D-46-3F-38-38-31-2A-23-1C-15-0E-07" received
                                      I	19:42:48.212	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-0E-23-46-5B-00-E3
                                      A	19:42:48.212	"(0x) 00-00-00-0E-23-46-5B-00-E3" received
                                      I	19:42:48.257	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00
                                      A	19:42:48.257	"(0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00" received
                                      I	19:42:48.257	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                      A	19:42:48.257	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                      I	19:42:48.392	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-0E-31-4D-5B-5B-5B-54-4D-46-3F-38-38-31-2A-23-1C-15-0E-07
                                      A	19:42:48.392	"(0x) 7F-0E-31-4D-5B-5B-5B-54-4D-46-3F-38-38-31-2A-23-1C-15-0E-07" received
                                      I	19:42:48.392	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-0E-23-46-5B-62-45
                                      A	19:42:48.392	"(0x) 00-00-00-0E-23-46-5B-62-45" received
                                      I	19:42:48.932	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00
                                      A	19:42:48.932	"(0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00" received
                                      I	19:42:48.934	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                      A	19:42:48.934	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                      I	19:42:48.934	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-62-62-5B-4D-3F-3F-3F-38-31-2A-23-1C-15-0E-07-00-00-00-07
                                      A	19:42:48.934	"(0x) 7F-62-62-5B-4D-3F-3F-3F-38-31-2A-23-1C-15-0E-07-00-00-00-07" received
                                      I	19:42:48.934	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 23-3F-4D-4D-4D-46-3F-62-76, "#?MMMF?bv"
                                      A	19:42:48.934	"(0x) 23-3F-4D-4D-4D-46-3F-62-76, "#?MMMF?bv"" received
                                      I	19:42:48.936	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00
                                      A	19:42:48.936	"(0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00" received
                                      I	19:42:48.937	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                      A	19:42:48.937	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                      I	19:42:48.937	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-62-62-5B-4D-3F-3F-3F-38-31-2A-23-1C-15-0E-07-00-00-00-07
                                      A	19:42:48.937	"(0x) 7F-62-62-5B-4D-3F-3F-3F-38-31-2A-23-1C-15-0E-07-00-00-00-07" received
                                      I	19:42:48.937	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 23-3F-4D-4D-4D-46-3F-38-4C, "#?MMMF?8L"
                                      A	19:42:48.937	"(0x) 23-3F-4D-4D-4D-46-3F-38-4C, "#?MMMF?8L"" received
                                      I	19:42:49.607	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00
                                      A	19:42:49.607	"(0x) FF-44-01-00-60-63-7C-02-17-00-00-00-00-00-00-00-00-00-00-00" received
                                      
                                      Ralla66 1 Reply Last reply Reply Quote 0
                                      • Ralla66
                                        Ralla66 Most Active @Ralla66 last edited by Ralla66

                                        @ralla66

                                        Datenanalyse Holfenry JKS 50 CL:

                                        Per ffe1 werden 68 Byte gesendet, für die Pulswertekurve fortlaufend nicht statisch.
                                        ( Byte 41 bis 67 )
                                        Rot und Blau markiert absteigende / aufsteigende Pulskurve
                                        Pakete a
                                        ( 20 Byte / 20 Byte/ 20 Byte / 8 Byte )
                                        SPo2 sollte Byte 5 sein, PI evtl. Byte 6 und 7

                                        Holfenry JKS 50 CL.jpg

                                        FF-44-01-00-5E-62-4E-04-17-00-00-00-00-00-00-00-00-00-00-00
                                        00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                        7F-15-0E-15-23-46-62-69-70-70-69-62-5B-54-4D-4D-4D-46-46-3F
                                        38-31-2A-2A-23-23-23-2A-B3
                                        
                                        FF-44-01-00-5E-62-4E-04-17-00-00-00-00-00-00-00-00-00-00-00
                                        00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                        7F-15-0E-15-23-46-62-69-70-70-69-62-5B-54-4D-4D-4D-46-46-3F
                                        38-31-2A-2A-23-23-23-15-9E
                                        ----------------------------------------------------------------------------------
                                        FF-44-01-00-5E-62-4E-04-17-00-00-00-00-00-00-00-00-00-00-00  Spo2 ( 5A – 64 hex ) 90 -100 dec
                                               Fest        94                   Fest                                                         PI 0 – 14 hex ( 20  dec )
                                        00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                        
                                        7F-15-0E-15-23-46-62-69-70-70-69-62-5B-54-4D-4D-4D-46-46-3F     8 Byte / 11 Byte
                                        
                                        38-31-2A-2A-23-23-23-2A-B3   8 Byte                                                   
                                                                                                                                                   
                                        ----------------------------------------------------------------------------------
                                        
                                        Paket 1
                                        I	19:44:26.496	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-5E-62-4E-04-17-00-00-00-00-00-00-00-00-00-00-00
                                        A	19:44:26.496	"(0x) FF-44-01-00-5E-62-4E-04-17-00-00-00-00-00-00-00-00-00-00-00" received
                                        I	19:44:26.496	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                        A	19:44:26.496	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                        I	19:44:26.541	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-15-0E-15-23-46-62-69-70-70-69-62-5B-54-4D-4D-4D-46-46-3F
                                        A	19:44:26.541	"(0x) 7F-15-0E-15-23-46-62-69-70-70-69-62-5B-54-4D-4D-4D-46-46-3F" received
                                        I	19:44:26.542	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 38-31-2A-2A-23-23-23-15-9E
                                        A	19:44:26.542	"(0x) 38-31-2A-2A-23-23-23-15-9E" received
                                        Paket 2
                                        I	19:44:26.585	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) FF-44-01-00-5E-62-4E-04-17-00-00-00-00-00-00-00-00-00-00-00
                                        A	19:44:26.585	"(0x) FF-44-01-00-5E-62-4E-04-17-00-00-00-00-00-00-00-00-00-00-00" received
                                        I	19:44:26.586	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F
                                        A	19:44:26.586	"(0x) 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-7F-7F" received
                                        I	19:44:26.586	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 7F-15-0E-15-23-46-62-69-70-70-69-62-5B-54-4D-4D-4D-46-46-3F
                                        A	19:44:26.586	"(0x) 7F-15-0E-15-23-46-62-69-70-70-69-62-5B-54-4D-4D-4D-46-46-3F" received
                                        I	19:44:26.586	Notification received from 0000ffe1-0000-1000-8000-00805f9b34fb, value: (0x) 38-31-2A-2A-23-23-23-2A-B3
                                        A	19:44:26.586	"(0x) 38-31-2A-2A-23-23-23-2A-B3" received
                                        
                                        AlexAxel 1 Reply Last reply Reply Quote 0
                                        • AlexAxel
                                          AlexAxel @Ralla66 last edited by

                                          @ralla66 Sorry, war ein paar Tage offline. Das sieht doch richtig gut aus! Dann kannst Du auch mehrere Daten gleich nutzen, Puls, SPO2 und Pulskurve 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • AlexAxel
                                            AlexAxel @Ralla66 last edited by AlexAxel

                                            @ralla66 Ich habe es mittlerweile hinbekommen. Ich nutze doch den History Adapter und ein kleines JS Script, das im Hintergrund bei aktualisierung des Arrays, kommend vom MQTT Client, das Array Byte für Byte durch gelesen wird und der Inhalt immer auf einem DP Typ Nummer aktualisiert wird. Das Das Script zu schnell läuft habe ich eine Pausen-Variable eingebaut. Die Funktion Settimeout funktioniert in den Script-Adapter. (leider nicht im HTML-Widget, aber egal). So mit dem DP habe ich quasi einen Wert der so in ca. 20ms immer aktualisiert wird. Auf diesen DP schaut das History-Chart. Weil der JS-Adapter das nicht so mag, wenn 1000 mal pro Minute ein DP aktualisiert wird, habe ich den Warnwert einfach im Adapter gefunden und auf 2000 hochgestellt.. hehehe läuft alles stabil. (Pi4). Du kannst mit dem History-Widget auch schön die Kurve stauchen und strecken, so dass es wie im Original aussieht.
                                            Das weiße kleine Ding da oben ist die Echtzeit-Pulskurve und wird schnell gezeichnet. So 2 Wellen pro Sekunde ungefähr. Die beiden großen Charts hab ich mich Echarts gemacht. Die Daten schreibe ich historisch auch auf einem separaten SQL-Server mit dem SQL Adapter. Letztens war der Arzt da und will auch so'n kranken Scheiß 😄

                                            Bildschirmfoto vom 2023-12-30 19-33-24.png

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            776
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            61
                                            3846
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo