nathanfaber / meaterble

Meater BLE reverse engineering
71 stars 15 forks source link

Decode temperature #1

Closed b0naf1de closed 4 years ago

b0naf1de commented 4 years ago

Added Class to decode and hold temperature readings

nathanfaber commented 4 years ago

Welcome! Nice work on the temps.

b0naf1de commented 4 years ago

Thanks ... cool project.

I've got bluez, bluepy python libraries and your app running on my rpi Heatermeter with a Pluggable USB Bluetooth 4 dongle. I haven't tried it with a rpi zero yet, but that's next. If you want the image, source, or any of the ipkg files, let me know and I'll get them posted.

Also, did you see the google drive link that I attempted to send you? https://docs.google.com/spreadsheets/d/1X02vBDPoKoNOY96GQP-TXCMzQkQ6j4V3TDTH_NAMoR8/edit?usp=sharing

On Sun, Mar 8, 2020 at 1:24 AM nathanfaber notifications@github.com wrote:

Welcome! Nice work on the temps.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nathanfaber/meaterble/pull/1?email_source=notifications&email_token=AIAHPPWWSGVWSNNNJ2DTIWTRGNI4VA5CNFSM4LDVVAR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOEOT5I#issuecomment-596175349, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIAHPPUXRHYFMSAKNSCYIWTRGNI4VANCNFSM4LDVVARQ .

nathanfaber commented 4 years ago

Hey,

I am using it with an RPI 3+ and a RPI Zero (built in bluetooth). I didn't see that spreadsheet but that sure does help. :) I guess the battery (and everything) has been located and decoded. Looks like we are all on our way to pumping this into whatever system we want. Brilliant! May I ask where this came from? Is this decompiled from the Android app or something?

b0naf1de commented 4 years ago

Yes, I decompiled the Android source. It's very readable. So, no reason we can't get this working.

There is some cook setup stuff that I have not looked at yet that may impact reporting frequency or events. We may want to get Captnbry to weigh in on the best way to tie this into his Lua and Arduino code. Not sure if he wants to pull in Python or if a Lua solution woukd be feasible.

On Sun, Mar 8, 2020, 8:27 PM nathanfaber notifications@github.com wrote:

Hey,

I am using it with an RPI 3+ and a RPI Zero (built in bluetooth). I didn't see that spreadsheet but that sure does help. :) I guess the battery (and everything) has been located and decoded. Looks like we are all on our way to pumping this into whatever system we want. Brilliant! May I ask where this came from? Is this decompiled from the Android app or something?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nathanfaber/meaterble/pull/1?email_source=notifications&email_token=AIAHPPQA2562JMT3H6WBPLTRGRH2JA5CNFSM4LDVVAR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOFIJRA#issuecomment-596280516, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIAHPPQHGQYLHGTSBHVUHE3RGRH2JANCNFSM4LDVVARQ .

b0naf1de commented 4 years ago

I used jadx to decompile the .xapk I found online.. Unzip the .xapk to get the .apk then run jadx on it. Interesting bits are in com/apptionlabs/meater_app tree.

On Sun, Mar 8, 2020 at 8:41 PM Eric Thomas eric@thomasfam.com wrote:

Yes, I decompiled the Android source. It's very readable. So, no reason we can't get this working.

There is some cook setup stuff that I have not looked at yet that may impact reporting frequency or events. We may want to get Captnbry to weigh in on the best way to tie this into his Lua and Arduino code. Not sure if he wants to pull in Python or if a Lua solution woukd be feasible.

On Sun, Mar 8, 2020, 8:27 PM nathanfaber notifications@github.com wrote:

Hey,

I am using it with an RPI 3+ and a RPI Zero (built in bluetooth). I didn't see that spreadsheet but that sure does help. :) I guess the battery (and everything) has been located and decoded. Looks like we are all on our way to pumping this into whatever system we want. Brilliant! May I ask where this came from? Is this decompiled from the Android app or something?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nathanfaber/meaterble/pull/1?email_source=notifications&email_token=AIAHPPQA2562JMT3H6WBPLTRGRH2JA5CNFSM4LDVVAR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOFIJRA#issuecomment-596280516, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIAHPPQHGQYLHGTSBHVUHE3RGRH2JANCNFSM4LDVVARQ .

nathanfaber commented 4 years ago

I see no reason to keep this in python other than for a prototype, it was really just a proof of concept to try to hack at it. Decompiling the Android apk was an awesome approach, sometimes I forget that Android is Java based and generally trivial to decompile if not significantly obfuscated.

When I got frustrated with the block a few weeks ago, I just started trying to probe it and reverse engineer it but your approach is much more fruitful.

I'm not sure if I want to end up with PiZero or an ESP to handle my publishing to MQTT in the end.

Now that you have uncovered all of the interesting details, I'm going to extend the basic python prototype a bit to dump all of the interesting bits.

I'm not sure if github notified you, but I added you as a contributor to this project, so feel free to make direct changes/updates if you want to.

PS: My apologies, I just saw your post on tvwbb when I went to go check on the thread, I wish I had seen it when it you posted it.

b0naf1de commented 4 years ago

Sounds good. Just let me know how you want to continue.

eric@thomasfam.com

On Sun, Mar 8, 2020, 8:51 PM nathanfaber notifications@github.com wrote:

I see no reason to keep this in python other than for a prototype, it was really just a proof of concept to try to hack at it. Decompiling the Android apk was an awesome approach, sometimes I forget that Android is Java based and generally trivial to decompile if not significantly obfuscated.

When I got frustrated with the block a few weeks ago, I just started trying to probe it and reverse engineer it but your approach is much more fruitful.

I'm not sure if I want to end up with PiZero or an ESP to handle my publishing to MQTT in the end.

Now that you have uncovered all of the interesting details, I'm going to extend the basic python prototype a bit to dump all of the interesting bits.

I'm not sure if github notified you, but I added you as a contributor to this project, so feel free to make direct changes/updates if you want to.

PS: My apologies, I just saw your post on tvwbb when I went to go check on the thread, I wish I had seen it when it you posted it.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nathanfaber/meaterble/pull/1?email_source=notifications&email_token=AIAHPPS3NQSTIHR46X6BBI3RGRKT5A5CNFSM4LDVVAR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOFMNCI#issuecomment-596297353, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIAHPPSWDYGKB2GE4YQ5VHDRGRKT5ANCNFSM4LDVVARQ .