NightscoutFoundation / xDrip

Nightscout version of xDrip+
https://jamorham.github.io/#xdrip-plus
GNU General Public License v3.0
1.4k stars 1.15k forks source link

Feature Request: Smart Band integration for Xiaomi Mi Band 3 #751

Closed Liknus closed 3 years ago

Liknus commented 5 years ago

Good morning, I'm writing this to ask if it is possible to integrate some sort of notification into the smart band Xiaomi Mi Band 3.. For notification I mean not only when there's a value which fires the high/low alert.. But a 'continuous notification' (every 5 minutes for example, or every other 10 min if there's this interval between freestyle/dexcom surveys) which would then display the latest glucose level and the trend (this one with a simple arrow)..

The communication protocols should be pretty described thanks to Gadgetbridge (or the other apps that support this band).

Unfortunately I'm not a programmer so I can't help out on that side.. But I could give away one or two bands (I need to buy them myself, so not too many :P ) if that's needed!

Thanks a lot and cheers <3 P.S.: Hooping this to be the right place to request it

Liknus commented 5 years ago

Somebody did try (Mi Band 2), in a different way, to add notifications (even if from a different app which I don't wanna use).. But that's not really what I was aiming to! See it here! (It's in german.. Sorry for that!)

Have you got any suggestion of how this coul be implemented?

Liknus commented 5 years ago

:sleepy: Anybody?

xannasavin commented 5 years ago

I tried to get an integration running between xDrip <> Tasker <> MiBandTools but no success so far since tasker seems not to know the Blood Glucose Level nor the alarms... However, if you have a MiBand you should really think about purchasing this MiBandTools app - it's really a great app which offers a lot of more advanced options for the notifications on the MiBand (such as e.g. settings a time a day you want to get notified for normal calls (8-22pm) and high prio contacts that can also call in the nigh, giving Messenger notifications only for a certain contact and so on).

xannasavin commented 5 years ago

Thanks for your link btw, looks promissing

Klaus3d3 commented 5 years ago

I tried to get an integration running between xDrip <> Tasker <> MiBandTools but no success so far since tasker seems not to know the Blood Glucose Level nor the alarms... However, if you have a MiBand you should really think about purchasing this MiBandTools app - it's really a great app which offers a lot of more advanced options for the notifications on the MiBand (such as e.g. settings a time a day you want to get notified for normal calls (8-22pm) and high prio contacts that can also call in the nigh, giving Messenger notifications only for a certain contact and so on).

You can grab xdrips persistent notification with tasker and get the value from the notification text.

xannasavin commented 5 years ago

already doing this via the MiBandTools but the extraction of the glucose level via regex is not super reliable... That's why I was hoping there could be a direct post of the level from xDrip to Tasker since Tasker allows for Notifications via MiBandTools through a direct integration - which would result in the same but (hopefully) more reliable :)

Liknus commented 5 years ago

@xannasavin What's missing, as of today, in order to do so?

xannasavin commented 5 years ago

Taskers integration of xDrip only allows for Snoozing or so. Someone also recommended to use xDrips local webserver to get the last values via javascriplet - but to be honest my skills are not that high and I couldn't figure out how to do it >< So a direct "channel" to get the blood glucose values from xDrip in Tasker would be great, so I can write them directly into a Tasker variable and process them.

Liknus commented 5 years ago

There's actually a sort of integration for what's defined as a LeFun Smartband.. But I haven't been able to find any videos or photos of it running xdrip+ follower ...

It also seems that there's no an hardware band brand such as LeFun.. But only an app called LeFun Health which seems to be working on a generic 'M3 smart bracelet'.. Unfortunately the reviews on this app aren't that great.. But if there's already an integration in xdrip+ for a smartband it shouldn't be that difficult to implement it with the Xiaomi Smart Band 3!

kabachello commented 5 years ago

I send notifications to a Mi Band 4 via Mi Band Tools and it works great. I can even see the trend arow, etc. I did not need to use any regular expressions. Detailed instructions can be found here. It should work with MI Band 2 and 3 too.

I could even configure a swipe gesture on the band to show the last notification (last BG). The only issue is that the band vibrates with every new reading (every 5 minutes in my case). Could not solve that till now. And, of course, the swipe-gesture shows the last notification regardless of it's type, so it only works as "show BG" if you don't have many other notifications.

But all-in-all that's a really cool addition to xDrip and far less expensive, that a smart watch.

bigdigital commented 4 years ago

Hi guys, i've recently made a miband integration into the xdrip. If anyone interested to test it, you can follow instructions by the following link https://bigdigital.home.blog/2019/11/21/xdrip-miband/ (will try to complete it on this week)

Skyiriz commented 4 years ago

Hi guys, i've recently made a miband integration into the xdrip. If anyone interested to test it, you can follow instructions by the following link https://bigdigital.home.blog/2019/11/21/xdrip-miband/ (will try to complete it on this week)

Hi, your integration is amazing! Except that I use another unit of measurement for glucose mg/dl (you use mmol/l) could you create an integration in mg/dl?

bigdigital commented 4 years ago

I guess it possible to implement mg/dl glucose units, but with limitation. Due to the date limitation, which is used to interpreter the glucose value on the band, the maximum possible mg/dl value would be 319 mg/dl . Everything that would be greater than this value would be displayed as 319. But i think this glucose value would be enough to understand that you should take attention to your glucose value and check the actual glucose value on the phone.

Skyiriz commented 4 years ago

Of course, how can I change the unit of measurement?

bigdigital commented 4 years ago

For now, there no such option, it is required to rebuild watchface structure and implement required date conversions in the xdrip code. If i have enough free time on these holidays, i will add mg/dl into my xdip fork .

Skyiriz commented 4 years ago

OK thank you very much

steve8x8 commented 4 years ago

Did you submit a MR? I'd like to see this merged into master...

BTW, would this also work with a MiBand 2? I somehow skipped the 3, and cannot sacrifice the 4 I gave to my SO...

bigdigital commented 4 years ago

Unlike MiBand 4, the MiBand 2 and 3 should work fine. They do not require any additional actions and will work fine with MiFit if use "bg reading as notifications "option. As for the merge request, i haven't submitted a merge request yet. Want to test it better.

steve8x8 commented 4 years ago

Now if I only could find a way that doesn't require MiFit (or MiBandTools) - as I'm using Gadgetbridge instead... Any suggestions how to achieve that?

steve8x8 commented 4 years ago

@bigdigital now that there's #1189 for the MiBand4, any estimate for the MR? Edit: Just found that there's a planned rewrite - and I'm afraid that one would ignore the pre-4 bands :/

bigdigital commented 4 years ago

Today i've released a new version https://bigdigital.home.blog/2020/01/23/future-of-the-xdrip-miband-project/ which should work better for mibandv4 . The v2 and v3 would work as before . If this version would be stable, i’ll create a pull request for the Xdrip master record. So i would be grateful if someone can help to test it on different miband versions.

Liknus commented 4 years ago

Today i've released a new version https://bigdigital.home.blog/2020/01/23/future-of-the-xdrip-miband-project/ which should work better for mibandv4 . The v2 and v3 would work as before . If this version would be stable, i’ll create a pull request for the Xdrip master record. So i would be grateful if someone can help to test it on different miband versions.

First of all thanks for the work! I have the v3 and, so far, it seems to be working well: notification are sent to the Mi Band 3 with glucose level and trend arrow.. I'm not using any other companion app for the band as off now (I just wanted to test glucose notifications).. but it would be nice to have the chance to either set how many minutes between one notification and another (like sending a notification every 7 or 8 minutes, this will help saving battery), and night time (so that I don't have notification during the night/when I'm sleeping.. again for battery saving purposes).

Thanks again and cheers!

steve8x8 commented 4 years ago

Isn't the update interval defined by the xDrip core?

Liknus commented 4 years ago

If it's a setting of Xdrip+ I haven't been able to find it out where it is!

One thing that I've noticed is that the band is asking more times per day to get associated with xdrip (simply by touching the band button).. so the connection is not that stable I think.. do somebody else noticed the sake behaviour? ( OnePlus 6 and Mi band 3 here) I'm looking forward to get the Mi band 4 to test all the features! ;)

EDIT Plus.. even if there is the option to send call notification (in xdrip-settings-smart watch-mi band option) to the band.. no call is notified to the band for me (I don't have, as of now, any other app installed).

Navid200 commented 3 years ago

@Liknus Would you please close this issue if the original issue has been resolved? Thanks

Navid200 commented 3 years ago

Closing due to inactivity