PatrickE94 / pycalima

Python interface for Pax Calima Fan via Bluetooth LE
Apache License 2.0
43 stars 22 forks source link

Different characteristics handles in other versions #4

Closed nielsin closed 5 years ago

nielsin commented 6 years ago

Great work!, but I had to modify it to get it to work with my Calima fan: ModelNumber: 10 HardwareRevision: 01.00 FirmwareRevision: 01.02 SoftwareRevision: 01.05

It has a different set of handles: [0x18] 4cad343a-209a-40b7-b911-4d9b3df569b2 (WRITE ) [0x1a] d1ae6b70-ee12-4f6d-b166-d2063dcaffe1 (READ ) = (1) 01 [0x1c] b85fa07a-9382-4838-871c-81d045dcc2ff (READ WRITE ) = (20) 56696674652070c3a52062616465740000000000 [0x1e] 638ff62c-3823-4e0f-8179-1695c46ee8af (READ ) = (6) 582bdb0111dd [0x21] 25a824ad-3021-4de9-9f2f-60cf8d17bded (READ ) = (1) 00 [0x23] 528b80e8-c47a-4c0a-bdf1-916a7748f412 (READ ) = (12) 02006e002f00000000000000 [0x26] 63b04af9-24c0-4e5d-a69c-94eb9c5707b4 (READ ) = (1) 01 [0x28] 90cabcd1-bcda-4167-85d8-16dcd8ab6a6b (READ WRITE ) = (1) 01 [0x2a] 1488a757-35bc-4ec8-9a6b-9ecf1502778e (READ WRITE ) = (6) 68088b060000 [0x2c] e782e131-6ce1-4191-a8db-f4304d7610f1 (READ WRITE ) = (4) 01030103 [0x2e] 49c616de-02b1-4b67-b237-90f66793a6f2 (READ WRITE ) = (2) 0a0a [0x30] a22eae12-dba8-49f3-9c69-1721dcff1d96 (READ WRITE ) = (5) 19ca081400 [0x32] 118c949c-28c8-4139-b0b3-36657fd055a9 (READ WRITE ) = (5) 0000000000 [0x34] 8b850c04-dc18-44d2-9501-7662d65ba36e (READ WRITE ) = (2) 0000 [0x36] f508408a-508b-41c6-aa57-61d1fd0d5c39 (READ WRITE ) = (1) 01 [0x38] 6dec478e-ae0b-4186-9d82-13dda03c0682 (READ WRITE ) = (4) 06160c2a [0x3a] b5836b55-57bd-433e-8480-46e4993c5ac0 (READ WRITE ) = (5) 0017000600 [0x3c] faa49e09-a79c-4725-b197-bdc57c67dc32 (READ WRITE ) = (2) 0101 [0x3e] ff5f7c4f-2606-4c69-b360-15aaea58ad5f (READ WRITE ) = (1) 00

When changing some handles in the code everything works fine.

mvjt commented 6 years ago

I had similar issue, I had to change from 0x21 to 0x23 or temp/humidity. I did not test the uuid branch as it was several commits behind. One other thing that confuses me is that the reported humidity is between 14-18 which does not sound reasonable. Do you know how this should be interpreted? I have another sensor reporting almost 70%

PatrickE94 commented 6 years ago

I believe the uuid branch should work for all versions since the UUID seems to be static over version. For example the uuid which begins with 528b80e8 matches handle 0x23 for you and in the uuid branch it's read out as state. Which seems correct. I've updated the uuid branch but since I'm not near my Calima fan I can't test it out at the moment. Feel free to try it.

Regarding the humidity, the value is currently just read out an assumed to be a percentage. It's possible that it's something other. If you have another humidity sensor close by, you can try to create two or three values far apart and their matching readout from this script. That should simplify the deciphering. Take a shower and measure before and after!

PatrickE94 commented 5 years ago

Extracted characteristics from the Android app and used the UUID's instead of handles. This should eliminate problems with different versions.