Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Mi Body Scale 2 in IoBroker

    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

    Mi Body Scale 2 in IoBroker

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @Thomas Jansen last edited by

      @thomas-jansen sage dir auf jeden fall bescheid, wenn ich weitermache

      du kannst dir mal den BLE Scanner für android laden und nachsehen, was für daten da kommen - könnte verschlüsselt sein aber testen geht immer 🙂

      mit wireshark könnte man das auch auf dem pc machen - aber wireshark ist mir zu kompliziert

      1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @Thomas Jansen last edited by

        @thomas-jansen also das mit dem gewicht klappt schon mal - mußte noch eine zeile ins yaml einfügen und esphome updaten

        der andere wert (impedance) kommt jedoch nicht

        bisher habe ich aber keine weiteren werte finden können, die man aufzeichnen könnte

        werd morgen nochmal etwas suchen - mit esphome auf dem richtigen esp32 braucht man also keinen weiteren server - wobei ich deine lösung nicht schlecht machen möchte, da man nicht unbedingt mit einem esp32 rumspielen möchte 🙂

        habe diesen linkgefunden - https://github.com/dckiller51/bodymiscale - irgendwie verstehe ich nicht,was da genau steht - ganz zum schluss steht wieder nur: sensor for weight and optional impedance

        1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @Thomas Jansen last edited by

          @thomas-jansen

          hab mich geirrt - beide werte sind da auch da

          Image 116.png

          und die dp in mqtt:

          Image 117.png

          Thomas Jansen 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @Thomas Jansen last edited by liv-in-sky

            @thomas-jansen

            ich glaube langsam, dass die werte berechnet werden - man könnte es also mit einem iob script machen - der bmi kann definitiv berechnet werden

            BMI = Körpergewicht : (Körpergröße)² oder mit alter aus einer tabelle

            oder hier wird das alles berechnet
            https://github.com/dckiller51/bodymiscale/blob/main/custom_components/bodymiscale/metrics/impedance.py

            1 Reply Last reply Reply Quote 0
            • Thomas Jansen
              Thomas Jansen @liv-in-sky last edited by

              @liv-in-sky Hey, hm die beiden Werte habe ich auch in meinem Testsystem unter esp32 Adapter.
              Ich habe mal testweise einfach mal bmi und Körperfett eingetragen. Jedoch kommen hier keine Werte an. Ich verstehe nicht wie das Homeassistant Plugin die Werte ermittelt....

              liv-in-sky 2 Replies Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @Thomas Jansen last edited by

                @thomas-jansen

                irgendwo muss z.b. deine größe konfiguriert werden - aber mit homeassis. habe ich halt 0 ahnung

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @Thomas Jansen last edited by

                  @thomas-jansen

                  wie sieht es eigntlich mit deinen programmier-kenntnissen aus - willst/kannst du ein script schreiben

                  Thomas Jansen 1 Reply Last reply Reply Quote 0
                  • Thomas Jansen
                    Thomas Jansen @liv-in-sky last edited by

                    @liv-in-sky hey, leider bin ich nicht so der Programmierer, ich hole mir halt viel aus Google und probiere halt aus.... 😞

                    liv-in-sky 2 Replies Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @Thomas Jansen last edited by

                      @thomas-jansen

                      wie erwähnt - wie das einbindender werte in Homeassistant weiß ich nicht - hier https://github.com/dckiller51/bodymiscale - ganz unten kann man das wohl über einen link machen - kannste mal probieren - das script frägt dann nach deiner homeassistent adresse

                      habe nicht so viel zeit im moment um das selbst zu programmieren - aber in diesem link sieht man,wie das berechnet wird - zeile 12 enthält die formel für LBM

                      https://github.com/dckiller51/bodymiscale/blob/main/custom_components/bodymiscale/metrics/impedance.py

                      oder eine andere formel: https://jumk.de/bmi/lbm.php

                      damit kann man dann die werte z.b. mit blockly errechnen lassen, wenn neue daten ankommen

                      1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Thomas Jansen last edited by liv-in-sky

                        @thomas-jansen

                        habe mich etwas gespielt - bmi anzeige mit grafik

                        script-vis1.gif

                        [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"5500","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"\n<canvas id=\"myCanvas\" width=\"300\" height=\"208\"> </canvas>\n\n\n<script type=\"text/javascript\">\nvar c=document.getElementById(\"myCanvas\");\nvar ctx=c.getContext(\"2d\");\nvar img=new Image();\nimg.onload = function(){\nctx.drawImage(img,0,0);\n};\nimg.src=\"/vis.0/armin/img/bmi2.png\";\n\n  </script>\n\n<script>  \n\nsetTimeout( () => {  Self=this;\n  Self.servConn.getStates(['0_userdata.0.CONTROL-OWN.WAAGE.Groesse','0_userdata.0.CONTROL-OWN.WAAGE.test'], (error, states) => { \nvar groesse=states['0_userdata.0.CONTROL-OWN.WAAGE.Groesse'].val ;\nvar gewicht=states['0_userdata.0.CONTROL-OWN.WAAGE.test'].val   \n    // Get a reference to the element.\nvar elem = document.getElementById('myCanvas');\n\n// Always check for properties and methods, to make sure your code doesn't break\n// in other browsers.\nif (elem && elem.getContext) {\n\t// Get the 2d context.\n\t// Remember: you can only initialize one context per element.\n\tvar context = elem.getContext('2d');\n\tif (context) {\n\t\t// You are done! Now you can draw your first rectangle.\n\t\t// You only need to provide the (x,y) coordinates, followed by the width and\n\t\t// height dimensions.\n\t/*\tcontext.fillRect(16,188, 10, 10); */\n\t/*\tcontext.fillRect(16,1, 10, 10);   */\n\t/*\tcontext.fillRect(287,188, 10, 10);*/\n\t\tcontext.fillRect(Math.round(16+((groesse-150)*(5.4))),Math.round(-(1-188+(gewicht-40)*2.1)), 10, 10); /* 278/50*/  /* 188/90*/\n\t\t/*console.log(  Math.round( -(1-188+((gewicht-40)*188/90)) )  ); */\n\t\tcontext.font = \"bold 16px Arial\";\n        context.fillText(Math.round(gewicht/Math.pow((groesse/100),2)), Math.round(16+((groesse-150)*(5.4)))+15, Math.round(-(1-188+(gewicht-40)*2.1))+15);\n\t}\n}\n/*alert(Math.round(16+((groesse-150)*287/50)));*/ }, 1000);\n} );    \n</script>\n\n"},"style":{"left":"532px","top":"748px","width":"300px","height":"208px","transform":"scale(1)"},"widgetSet":"basic"}]
                        

                        die id für die größe im im html teil angegeben werden - also der dp dafür, den du anlegen musst - genauso der dp für das gewicht (dieser kommt von xiaomi)

                        Image 148.png


                        bmi2.png

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        520
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        2
                        23
                        1690
                        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