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 @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
                      • AlexAxel
                        AlexAxel @Ralla66 last edited by AlexAxel

                        @ralla66 Bei meiner ESP Lolin32 Library scheint die Konstante schon deklariert zu sein. Steht halt für die Nummer 1. Kannst einfach mit 1 ersetzen. Aber du kannst auch den ganzen Mist mit der LED an und aus-Sache löschen. Ich hab es ja schön kommentiert, wo die LEDs eingeschaltet und ausgeschaltet werden. Ich guck da heute auch nicht mehr drauf. Ansonsten wenn Du sie haben möchtest, probiere es mal mit der 1 oder lass mal ein BeispielCode namens "Blink" auf dem Teil laufen, dann kannst du den Code rauskopieren, wenn das dort funktioniert.

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

                          @alexaxel

                          coole Pulskurven die du da hast 🙂

                          Läuft doch .........................................

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

                            @ralla66 läuft Deiner jetzt auch ? Ich hätte noch gerne den weißen Hintergrund geändert. Aber leider geht das wohl nicht. Hintergrund beim History-Chart ist eine andere Fläche drumherrum.

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

                              @alexaxel sagte in Darstellung einer Pulsoximetriekurve:

                              Hintergrund beim History-Chart

                              was ist das?

                              Hintergrund geht immer
                              Screenshot_20231230-224446_Firefox.jpg

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

                                @alexaxel

                                Arduino Code behersche ich nicht.
                                Eigentlich benötigen wir für die Pulskurve nur Byte 41 bis 67.
                                Led ausklammern klappt ja, meckert aber bei sChar und iWert.
                                Daran haperts halt.
                                Sonst soweit ok. Mqtt klappt, Datenpunkte werden angelegt.

                                AlexMqtt.jpg

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

                                  @ralla66 Du ich hab da noch einen Mix aus 2 Versionen im Code, ist mir gar nicht aufgefallen.

                                  Du kannst diesen ganzen Teil auch löschen, weil ich darüber schon das ganze Array auf einmal via mqtt gesendet habe.

                                  String sTemp;
                                    int iWert;
                                  
                                    for (int i = 0; i < length; i++) {
                                      //dbSerialPrint((char)message[i]);
                                      iWert = int(data[i],DEC);
                                      sTemp += sChar + ",";
                                    }
                                    mqttClient.print(sTemp);
                                  
                                  
                                  Ralla66 1 Reply Last reply Reply Quote 0
                                  • D
                                    Dragon last edited by

                                    Ein sehr geiles Thema! Gefällt mir, scheinen noch mehr Menschen so verrückt zu sein wie ich.... 😉

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

                                      @dragon du kennst noch nicht mein IOBrokerprojekt, das RC Cars-Rennen im Garten misst, über Alexa moderiert und mit Spotify und den coolen Gauge-Meter eine tolle Spielgrafik darstellt. Monitor steht quasi im Garten auf der mobilen Rennstrecke. Ein paar ESPs messen, die IR Codes der eingebaute ESP im Auto von innen an der Ziellinie senden. Der Empfänger ESP schickt die Messdaten via MQTt an den Broker. Mit den lustigen Alexa Emotion-Tags moderiert sie richtig emotional. "Mark, Du lahme Ente. Das geht noch besser, du bist auf dem letzten Platz und hast nur eine Durchschnittsgeschwindogkeit von bla bla. " 🙂
                                      Beim Start, Ende und während des Rennens werden coole Sounds und Rennmusik abgespielt. Ace of spades kommt da richtig gut. Hehehe

                                      D 1 Reply Last reply Reply Quote 1
                                      • D
                                        Dragon @AlexAxel last edited by

                                        @alexaxel
                                        Du machst mich seeeehr neugierig. Ich glaube du solltest das mal vorstellen....

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

                                          @alexaxel

                                          ok, zur Darstellung benötige ich ja nur ca 48 Punkte / Bytes pro min für die Pulskurve in Vis.
                                          Dann alle 1,25 sec 1Byte. Der ESP sollte die Bytes langsamer senden, so der Ansatz.
                                          Array hat ja den Nachteil das ich dieses für die Visu wieder zerlegen muß.
                                          Halt der Ansatz das Problem direkt im ESP zu lösen.

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

                                            @dragon ja nächstes Jahr 😄

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            561
                                            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