Open sseppi opened 3 years ago
According to the documentation https://support.kontakt.io/hc/en-gb/articles/206294004-How-to-check-the-battery-level-on-your-beacons, there are two possible settings while looking at the battery status:
1) The level as percentage is shown 2) Not synchronized if it is not seen for long time (but also 2 year old entries seem to have a percentage)
Logged in with beacon-suedtirol@rolmail.net (main account for the production beacon.bz.it project)
Installed the Kontakt.io Admin APP from Play store: Kio Tag Administrator, which immediately updated all local beacon states on Kontakt.io, but not a single other beacon has been updated.
Problem: Maybe the Beacon admin app just sends it to our API, and does not sync it with kontakt.io?!
Tested this and it seems that the Beacon Admin App works correctly. I have updates on our API and on the official kontakt.io panel.
As far as I see, my beacons that I have at home are all at 100% battery status. Tested this also with the official kontakt.io android app. See above.
The strange thing thou is that my 3 beacons are the only ones that received an update since the first installation. That is a huge problem...
I need additional beacons to test this... or someone who can test their beacons.
@sseppi @bertolla Could you please install the newest Beacon Admin App v0.6.0 on your phones and test what happens with beacons on our production environment?
Should I test other Android apps regarding battery status updates?
@sseppi @bertolla @ohnewein I tested everything again and found the following problem:
We have 3 different IDs at play here: manufacturer_id that comes from the beacon bluetooth package itself and is provided by Kontakt.io, the id, that is a random alphanumeric string and primary key of our database. I have no idea why we have this here, since it would be easier to just use the manufacturer_id, but a problem could be if we would ever use another beacon as kontakt.io... and at last the "name" of the beacon... a random string, that can be changed by a logged in beacon admin user at will.
The problem is that the SDK parses that name string, which is wrong, since it is not unique and not standardized... can be anything. The second problem is that the admin app does not use the SDK and has custom calls. Which sometimes use the ID from our database and sometimes the ID of kontakt.io, which are not found in our api... all a mess :-/
During our tests we had examples, where the manufacturer_id and the id in the db were the same, and the name had a specific pattern, and therefore everything worked on our testingmachine...
What we need to do is to: a) fix the SDK, use manufacturer_ids as primary key and remove the other column "id", and then b) integrate the SDK into the android admin app, which currently uses its own custom api calls.
Estimates: a) 20 hours b) 80 hours (since I need to understand the Android App source code and learn how to develop on top of that)
A possiblity could be to backport (copy/paste) fixes from the SDK into the android admin app and postpone the SDK integration. That would cost approx. 20 hours
Not sure if I am right here, but I would like to report, that in the Beacon Admin Webapp the beacons seen by the Südtirol Guide still don't get updated data in terms of "last seen" date, signal and battery status. Please let me know if I should create a separate issue or if it's correlated. thanx
@niettadesantis We have not touched that issue, since it was decided to put it back into backlog... however, the issue is related, so please just report here...
The whole issues are related to the API + SDK + the usage of those in the native apps. So we should keep this issue as an umbrella for all these things.
Please have a look for the estimates I gave above. For a workaround and fast fix, it might be faster thou.
Just forgot to mention, we are working on it, it has the highest priority at the moment. Not the Admin app in particular but the whole project, to find the problems that also bring problems to other apps...
The battery status of the beacon in the admin dashboard is always 100%: https://admin.beacon.bz.it/ It seems that the beacon SDK and/or API isn't reading properly the data from the beacons.
Tasks: