-
-
Whoa, that was fast, @Gordon! Thank you!
There is definitely some improvement after updating the apps (Messages 0.58 , Message Widget 0.03, Message UI 0.62). Now I get an icon whenever a new message arrives. However, the Bangle.js still does not vibrate, despite being configured to do so in the settings. So I guess it is the ssame as with @m-p{3}?I was able to get notifications fully working by replacing "Message UI 0.62" with "Messages Light 1.3". Switching to "Message List 0.01" has the same behavior as with "Message UI 0.62", so that might be a clue to what these two have in common and differ from "Messages Light".
-
So, earlier today I updated my Bangle.js1 to the latest firmware version (2v16).
Strangely enough, all my apps were deleted from the watch except 'settings'.
I simply did a 'erase all apps' followed by 'install favourite apps'. All was well again. At least apparently.
After some minutes I realized I was getting notifications on my phone, but my bangle.js did not vibrate. I checked the settings, and vibration was set to ":".
I went to gadgetbridge debug, and here is the deal. If I send a test notification, the widget area blinks, but I get no notification. Going to the 'messages' app, the notifications are there! I can delete them and interact with them as I normally would.
I also noticed that the message icon does appear when I enter the settings menu.
I have tried to erase all apps again, and reinstall them, but the issue persists.
Could this be a firmware update issue?
I think I have all message related apps installed on my bangle.js:- Android integration
- Messages
- Messages UI
- Message widget
Any help is appreciated! Thanks.
- Android integration
-
-
-
Ahh - you're pasting into the right-hand side and clicking 'upload', which resets the Bangle and writes just that code.
Sorry! Newbie mistake. Anyway, here are the results:
IssuingGB({"t":"call","cmd":"incoming","name":"John","number":"+491234"})
successfully shows an incoming call notification (I had never seen this notification before, so - progress!)So I tried to "intercept" Gadgetbridge's commands using the suggested snippet. Again, success:
{"t":"notify","id":1633013163,"subject":"Test","body":"Test","sender":"Test","tel":"Test"} {"t":"call","cmd":"","name":"Test","number":"Test"}
The first list element is for Gadgetbridge's debug test gmail notification. All looks good.
The second list element is for Gadgetbridge's debug test incoming call. Here things don't look so good. Gadgetbridge does not seem to be sending the expectedincoming
value for thecmd:
key.It seems to me like a problem in Gadgetbridge phone app rather than on the watch's end. Any ideas on why this might be happening? Or should I open an issue on Gadgetbridge's issue tracker?
or even showing a phone icon
Woha. Cool! Thanks @dapgo.
-
Yes, it was fixed after the 2v10 release: https://github.com/espruino/Espruino/blob/c23289e6c18f9a88df812b855d2a54a000f54d61/ChangeLog#L14 - so a daily build will have it sorted or it'll be fixed in 2v11
Confirming the fix with firmware v2.8.83. Thank you! =-)
So GB({"t":"call","cmd":"accept","name":"name","number":"+491234"}) for example.
Ok, so this is proving harder to do.
Opening the IDE, connecting via Web Blutooth I can do. Sending simple commands such asprint("hello espruino")
is working fine (the watch leaves the watch-face app and displays the Bangle.js logo, firmware version, etc and "hello espruino" is printed to the webIDE console).However, any commands starting with
GB()
are throwing errors:Uncaught ReferenceError: "GB" is not defined at line 1 col 1 GB({"t":"call","cmd":"accept","name":"name","number":"+49123... ^
It's like the
GB
function (which from reading http://www.espruino.com/Gadgetbridge I assume stands for "GadgetBridge") has not been declared? I am quite certain Gadgetbridge is installed on the watch, since I can connect to it using my phone, so I'm not sure what is happening here. -
So I'm thinking of adding a health event once per minute, that updates with health stats (eg steps, movement) over that minute (and the ability to query health stats for what has happened during the minute). That way apps can hook onto that event and nothing is treading on anything else's toes.
Won't this drain a lot of battery?
Could the firmware not manage the reset at midnight as per current locale setting ?
Apps would be much simpler if we could just do Bangle.getSteps() rather than have to manage a >listenner.This seems like a complex problem. And this is my first time thinking about it, but maybe this could work:
From my understanding the midnight reset becomes an issue only when some app is counting steps during a reset. What if apps that rely on step counting had a way to tell the firmware they are still counting? Specifically, if an app is counting steps, it would have to write "1" (or a timestamp, or even just the equivalent of GNU
touch
) to a.keepalive
file. At midnight, the firmware only resets steps if the.keepalive
file was modified more than 1 minute ago, otherwise, delay the reset for 5 minutes. Unless there is a better way to determine whether any app is accessing the step count?Another alternative would be to have the firmware write the step count to 2 files/variables at the same time. These files/vars would be named with the date (
ddmmyyyy
or similar, just something that changes every day in a predictable manner), and steps always get added to both "today" and "yesterday". Apps that read steps define on startup from which variable they are reading the step counts. Firmware step reset only deletes the file/variable "2 days ago".I would think both these approaches are less resource intensive than polling every minute (which will not only make apps more complicated, but also report the step information with a 1min delay).
I have never done embedded development before, so these ideas might just be dumb/naive, but I thought they could maybe be helpful. Don't be afraid to tell me how dumb they are, if that is the case. =-)
-
Which firmware version do you have? I know there was an issue with this recently but cutting edge firmwares have it fixed.
I'm on v2.10. Guess it will be fixed in v2.11? Or should I try using a daily build to make sure? Even after the latest update to "Notifications (Default)" v0.11 doing a BT3 long press does not dismiss the notification.
You mean they are not working?
They aren't. When my phone rings I don't get any notification on my watch (not even of a missed call, as @HughB mentioned). I kind of expected it to vibrate/piezo-ring while the phone rings. Is there anyway I can test this from the IDE (or even better, intercept whatever gadgetbridge is sending whenever I get an incoming call)?
-
-
I still seem to be able to dismiss the non-fullscreen notification by tapping the screen, but for some reason it's not displaying them properly.
I can't always dismiss notifications when they are garbled like this. They don't disappear after a long press BT3 (as I think is expected), but if I just let the watch sit for a while and then try again it usually works. I haven't found a reliable way to reproduce, though.
Ok, fixed now!
Woha, thank you for the lighting fast fix! I just confirmed that notifications are no longer garbled.
-
Are you using Bangle 1 or Bangle 2 ?
Sorry, forgot to mention! This is on the Bangle 1.
On a B1 Full Screen notifcations work BUT the default notfications ends up with a corrupt part of the screen.
Yes, mine looks a lot like that. But in fact, in your case it looks even more broken than in mine. So I guess it's not just a thing with some configuration issue I might have had. Thank you for trying to reproduce!
When I make a test call - I only get a missed call notification - was expecting I would get a buzz while the phone was ringing.
Exactly what I'm getting too. However I'm not really sure this has ever worked as we both expected.
-
Not for me.
a) BTN3 is a reset and only largely used as many Apps dont provide a proper way to return to the >launcher. Thats my interpretation.Fair enough!
b) a long press also means longer navigation to get out of the App. Instead of selecting Back using >BTN1 all the way out of a deep sub menu and finally exit you would now have to go BT1, BT1, BT1, >long press BT3, which is just as awkward as having to navigate to the last back menu item on the >current settings app.
In this case, instead of navigating all those buttons I already simply do a long press BT3. But your point on menu consistency stands.
-
So a few days ago I noticed that every time I got a notification from Gadgetbridge, the text on the Bangle.js was always the same: "Alarm Clock" on the upper line (with the grey background), and some text I can't seem to read on the bottom line, since only the top half of that line is visible.
After a few notifications recieved in this way, The text changes to another one with the subject of a long read email, overlapped with the alarm one (when this happen I can only see the top "grey" lines of each notification). Dismissing the notifications from the watch will dismiss the notification on the phone that triggered the notification event (Eg. an email notification). Call notifications stopped working altogether.
I have tried several thing to solve the issue, to no avail:- Rebooting the watch
- Rebooting the phone
- Uninstalling the "Notifications (default)" app and re-installing it
- Unpairing the watch from Gadgetbridge and performing the pairing again
- Uninstalling Gadgetbridge from the phone and re-installing it
- Uninstalling Gadgetbridge from the watch and re-installing it
Uninstalling the "Notifications (default)" app and installing "Fullscreen Notifications" allows me to receive and dismiss the correct notifications. Uninstalling "Fullscreen Notifications" and reinstalling "Notifications (default)" causes the problem again.
I have run out of ideas on how to solve the issue on my own. Can anyone help me debug this?
Thank you very much in advance!
- Rebooting the watch
-
-
-
-
-
I have 17 apps installed:
Settings (v0.27) Default alarm (v0.11) Vertical Watch face (v0.09) Torch (v0.02) Planetarium (v0.03) Notifications (v0.08) Heart Rate Monitor (v0.04) Heart Rate Recorder (v0.05) Gadgetbridge (v0.22) Gadgetbridge Music Controls (v0.05) BangleRun (v0.10) Active Pedometer (v0.09) GPS Recorder (v0.22) Kitchen Combo (v0.12) Launcher (Default) (v0.06) RPG dice (v0.02) Bootloader (v0.28)
Maybe one of these takes up further memory?
-
Unfortunately I can't seem to find a way to reliably reproduce the issue. But indeed, the one time it did happen, it was as @Sander mentioned. The memory errors were triggered, and boom - storage was broken. Unfortunately, I have reset the apps on the Bangle.js and cannot run any further debug code.
But if you leave your suggestions here I can run them on the IDE next time this eventually happens. Unless the files I left on the other thread were sufficient. -
Confirming that changing settings and going back to the clock face no longer causes a redraw after updating to bootloader v0.28!
Thank you, @Gordon !I could however be wrong - so if you can reproduce some big memory usage issues please let me know how to reproduce with as minimal steps as possible and I can look into fixing it.
Using Gadgetbride + active pedometer + kitchen combo still triggers a low memory error when cycling through the multiple faces (when changing from e-calib to the clock face, specifically).
Hope this further helps.
-
Well, it seems I got the same issue as reported by @Sander. I'm 100% positive I did not touch the Web IDE. See here for the full details.
In this state, using the Bangle.js app loader reports 0 installed apps, which is very wired.
Using the Web IDE to try to figure out what is going on, I tried to look at the device storage, and things got even stranger. My apps seem to effectively be gone, and all I have left are some active pedometer files and some files with strange names (I have attached a screenshot, and a zip file with the contents).
I don't think further information can be taken from here, so I will now reinstall all apps so I can continue using my Bangle.js.
I hope this helps find a solution! -
-
I think it's possible that Kitchen Combo is pushing the limits of free memory. I wonder if @HughB (the developer) has the Gadgetbridge widget as I guess he may have designed Kitchen Combo to run without it.
Ok, so maybe we can work together with @HughB to try and optimize memory usage? For instance, "Multi Clock" which has a very similar font to "Kitchen Combo" also used to give me low memory problems. Maybe there is room for optimization there?
In the meantime, just today something else happened (which might be related to this issues). My Bangle.js stopped receiving notifications from gadgetbridge - not completely stopped, it would vibrate, but no notification message would appear. I tried to reboot the phone by accessing "Settings", but a longpress on BTN2 resulted in the dreaded red "Memory" message in the bottom. So I tried a long BTN3 press, to reset the watch face, but instead of resetting the watch face I just got a black screen. After a few seconds, the red "Low Memory" message appeared again. Since the Bangle.js was completely unresponsive, I did the longpress on BTN1+BTN2 to reboot it, which it did. But something went wrong, and now the watch is stuck on the "splash" screen (attached).
Rebooting it using the same method, doesn't seem to help.
While the Bangle.js is stuck in this screen, is there anything I can do to debug?
I suppose reinstalling all apps should solve the issue, but maybe we can learn something else from this state?Thanks!
Confirming that updating to
messageui
v0.63 did solve the issue.Thanks!