Skip to content

Solarbank 2 E1600 Pro wrong values #1

Closed

Description

@heeplr

Connect and propterty change notification works but values are wrong.

Here's the output of example.py.

I also captured the data of a few packets as hex:
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015ca4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa02011fab0503f8250000ac050308020000ad02015cae020100af020100b0050360670100b10503b86e0000b205036f830200b3050345670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c4050308020000c5020100c6020101c703023200c8050300000000c9050315
ff09fd0003010f84052300000000ca050300000000cb0503da0c0000cc0503a80c0000cd0503760c0000d2020100d3050308020000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503c6423868fb05030099
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015b28
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015ca4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa02011fab0503d6240000ac0503f4010000ad02015cae020100af020100b00503d45c0100b10503c06e0000b20503bc830200b3050345670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503f4010000c5020100c6020101c703023200c8050300000000c905031e
ff09fd0003010f84052300000000ca050300000000cb05031c0c0000cc0503ea0b0000cd0503d00c0000d2020100d30503f4010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503c9423868fb0503004c
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015b28
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015ca4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa02011fab050328230000ac0503ea010000ad02015cae020100af020100b005036c4c0100b10503c86e0000b2050306840200b3050346670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c90503f9
ff09fd0003010f84052300000000ca050300000000cb0503ea0b0000cc0503ae0b0000cd0503900b0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503cc423868fb050300a5
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015b28
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015ca4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa02011fab050370210000ac0503e0010000ad02015cae020100af020100b00503a03b0100b10503cf6e0000b205034d840200b3050346670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503e0010000c5020100c6020101c703023200c8050300000000c9050354
ff09fd0003010f84052300000000ca050300000000cb05034a0b0000cc0503360b0000cd0503f00a0000d2020100d30503e0010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503cf423868fb050300f5
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015ca4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa02011fab0503ac210000ac0503fe010000ad02015cae020100af020100b00503cc3c0100b10503d76e0000b2050390840200b3050346670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503fe010000c5020100c6020101c703023200c8050300000000c9050326
ff09fd0003010f84052300000000ca050300000000cb0503a40b0000cc0503360b0000cd0503d20a0000d2020100d30503fe010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503d2423868fb0503003a
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015ca4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa02011fab050366210000ac0503ea010000ad02015cae020100af020100b00503d83a0100b10503de6e0000b20503d4840200b3050347670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c90503b2
ff09fd0003010f84052300000000ca050300000000cb05035e0b0000cc0503220b0000cd0503e60a0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503d5423868fb050300f3
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015ca4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab0503fc210000ac0503ea010000ad02015cae020100af020100b00503b4400100b10503e56e0000b2050316850200b3050347670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c90503f9
ff09fd0003010f84052300000000ca050300000000cb0503040b0000cc0503b80b0000cd0503400b0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503d9423868fb05030098
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab05032e220000ac0503ea010000ad02015dae020100af020100b00503a8420100b10503ee6e0000b2050372850200b3050348670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c9050356
ff09fd0003010f84052300000000ca050300000000cb05039a0b0000cc0503860b0000cd05030e0b0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503dc423868fb05030073
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab05039c220000ac0503f4010000ad02015dae020100af020100b0050390460100b10503f66e0000b20503b6850200b3050348670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503f4010000c5020100c6020101c703023200c8050300000000c9050304
ff09fd0003010f84052300000000ca050300000000cb0503d60b0000cc05039a0b0000cd05032c0b0000d2020100d30503f4010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503df423868fb0503001c
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab050324220000ac0503e0010000ad02015dae020100af020100b00503a8420100b10503fd6e0000b20503fc850200b3050349670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503e0010000c5020100c6020101c703023200c8050300000000c90503c0
ff09fd0003010f84052300000000ca050300000000cb0503900b0000cc0503720b0000cd0503220b0000d2020100d30503e0010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503e2423868fb05030095
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab05033e210000ac0503ea010000ad02015dae020100af020100b0050348390100b10503046f0000b2050341860200b3050349670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c9050304
ff09fd0003010f84052300000000ca050300000000cb05030e0b0000cc0503dc0a0000cd0503540b0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503e5423868fb050300df
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab05030c210000ac0503f4010000ad02015dae020100af020100b00503f0360100b105030b6f0000b2050383860200b3050349670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503f4010000c5020100c6020101c703023200c8050300000000c905034c
ff09fd0003010f84052300000000ca050300000000cb0503fa0a0000cc05034a0b0000cd0503c80a0000d2020100d30503f4010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503e8423868fb05030033
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab050312250000ac0503e0010000ad02015dae020100af020100b00503f45f0100b10503136f0000b20503c6860200b305034a670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503e0010000c5020100c6020101c703023200c8050300000000c9050365
ff09fd0003010f84052300000000ca050300000000cb05032c0b0000cc0503340d0000cd0503b20c0000d2020100d30503e0010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503eb423868fb050300f7
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab0503ba220000ac0503ea010000ad02015dae020100af020100b0050320480100b10503226f0000b205035c870200b305034b670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c90503a2
ff09fd0003010f84052300000000ca050300000000cb0503ae0b0000cc0503900b0000cd05037c0b0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503f1423868fb0503000e
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab050304240000ac0503ea010000ad02015dae020100af020100b0050304550100b105032a6f0000b20503a1870200b305034b670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c90503d6
ff09fd0003010f84052300000000ca050300000000cb05034a0b0000cc0503940c0000cd0503260c0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503f4423868fb050300b1
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab0503a2260000ac0503f4010000ad02015dae020100af020100b00503cc6e0100b10503316f0000b20503ea870200b305034b670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503f4010000c5020100c6020101c703023200c8050300000000c90503d1
ff09fd0003010f84052300000000ca050300000000cb0503f80c0000cc0503f80c0000cd0503b20c0000d2020100d30503f4010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503f8423868fb050300ee
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab0503bc250000ac0503ea010000ad02015dae020100af020100b0050334660100b105033a6f0000b2050338880200b305034c670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503ea010000c5020100c6020101c703023200c8050300000000c90503ed
ff09fd0003010f84052300000000ca050300000000cb05038a0c0000cc0503620c0000cd0503d00c0000d2020100d30503ea010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503fb423868fb05030079
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f
ff09fd0003010f840513a10131a2110041504347513830463038363030333530a302015da4020102a503020000a6050301000524a705030000061fa8050300030208a9020100aa020120ab050330200000ac0503f4010000ad02015dae020100af020100b00503582e0100b10503446f0000b205039e880200b305034c670000b402010ab5020105b602010ab7050300000000b8020101b9020100ba050328000000bb020100bc050300000000bd050300000000be050300000000bf050300000000c0110000000000000000000000000000000000c1020100c203022003c40503f4010000c5020100c6020101c703023200c8050300000000c9050398
ff09fd0003010f84052300000000ca050300000000cb0503ec090000cc0503ce090000cd0503760c0000d2020100d30503f4010000d4110000000000000000000000000000000000d503020000d6110000000000000000000000000000000000d703020000d8110000000000000000000000000000000000d903020000da110000000000000000000000000000000000db03020000dc110000000000000000000000000000000000dd03020000de110000000000000000000000000000000000df03020000e0020103e1020100e2020100e3020100e4020100e5020100e6020100e7020100e8020100e9020100ea020101fe0503fe423868fb0503000e
ff09260003010f840533000000fc160401010101000101010101000000000000000000000080
ff09150003010f0409a10131a2020100a302015c2f

If I can provide more info, I'd be happy to help. Awesome project!

Activity

  1. heeplr commented on May 30, 2025

    @heeplr
    Author

    I briefly looked at the data and found battery charge percent (byte offset 35) and battery temperature (73).
    I will try to find the remaining values in the next days.

    If you are interested, I'd prepare a PR to support the differing message structure.

    Is it obvious from the dump, how we could differ the different protocol versions/device models other than the name string?

  2. heeplr commented on May 31, 2025

    @heeplr
    Author

    I've roughly adapted my fork to work with Solarbank Pro 2 devices (maybe other Solarbanks, too).
    It's in rough state but works-for-me (tm).

    Leaving this up for folks from search engines. Please feel free to close.

    EDIT: link fork

  3. sd8rdb commented on Jul 20, 2025

    @sd8rdb

    I've roughly adapted my fork to work with Solarbank Pro 2 devices (maybe other Solarbanks, too). It's in rough state but works-for-me (tm).

    Leaving this up for folks from search engines. Please feel free to close.

    EDIT: link fork

    thanks for this fork. Would you say it works good? Any changes so far? I want to try and integrate into Homeassistant.

    P.s.: Unknown1 should be the Light Led on/off from the solix?

  4. heeplr commented on Jul 20, 2025

    @heeplr
    Author

    thanks for this fork. Would you say it works good? Any changes so far? I want to try and integrate into Homeassistant.

    yes, it works reliably to monitor but there's room for a lot more reverse engineering.

    P.s.: Unknown1 should be the Light Led on/off from the solix?

    I'm not sure. I didn't touch the LED setting and "unknown1" goes from 0 to 1 and 2 during the day. If I had to guess i'd say it's

    • "battery discharging" = 1 (battery_power < 0)
    • "battery unused" = 0 (battery_power == 0) and
    • "battery charging" = 2 (battery_power > 0)

    (but I'm not sure)

    If you find out, it'd be awesome if you could share your findings here or over there (just enabled issues there).

  5. LeagueRaINi commented on Jul 22, 2025

    @LeagueRaINi

    is there any discord thats putting an effort into reversing this? the structure of the messages seems simple but i'd need more logs of different devices or dump the firmware to continue in any meaningful way

    here is how the messages seem to be structured:

    FF 09    | message prefix
    XX XX    | message length (including prefix)
    XX XX XX | same across all messages i receive (`03 01 0f`)
    XX XX    | `84 05` on my telemetry packets and `04 09` on the other i haven't figured out yet
    XX       | seems to increment on my telemetry ones 13, 23, 33, it's just a1 on said other message ^
    

    then we get to the data

    XX     | data type (A1, A2, A3 ...)
    XX     | data length
    XX ... | data
      - first byte in the data (if the data length is above 2) seems to indicate what value type the data is
    
    Image

    here are some examples

    A2 | SolarBank Serial
    11 | Data length
    00 | Unk // 00 = string?
    XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX | Serial string
    
    A3 | Solarbank Battery Percentage
    02 | Data length
    01 | Unk // 01 = u8?
    64 | Percentage
    
    AA | Solarbank Temperature
    02 | Data length
    01 | Unk // 01 = u8?
    1d | Temperature
    
    C0 | Smart Meter Serial
    11 | Length
    00 | Unk // 00 = string?
    XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX | Serial string
    

    in my case the telemetry is so big its send over 3 messages and is over 500 bytes long, there is A LOT of data in there, going to try and get more types figured out when the sun is out and i'm actually producing something

    // hope what i info dumped here makes at least a bit of sense its quite late here ^^

  6. mboisson commented on Jul 24, 2025

    @mboisson

    @LeagueRaINi I don't know if any of it is helpful, but I posted things I got with an F3800 Plus in #2

  7. LeagueRaINi commented on Jul 27, 2025

    @LeagueRaINi

    @LeagueRaINi I don't know if any of it is helpful, but I posted things I got with an F3800 Plus in #2

    i mostly figured out how the telemetry packets work but my its semi useless to me cause connecting to my solarbank via bluetooth messes up the connection to ankers services and breaks the app till i manually reconnect it so for me there is no point in spending more time on this but i shouldve posted more than enough info for anyone with a bit of experience to work with and write a proper framework

  8. thomluther commented on Jul 27, 2025

    @thomluther

    i mostly figured out how the telemetry packets work but my its semi useless to me cause connecting to my solarbank via bluetooth messes up the connection to ankers services and breaks the app till i manually reconnect it

    So you are saying that the BT interface cannot be used in parallel from a BT client and the App?
    Then it probably does not make much sense to invest too much time into it unless there is no other interface for the device.
    The difficulties I see in the BT interface:

    • Connection Range
    • Each device type need to be reverse engineered by an owner who has local BT access to the device
    • No parallel usage with the App as you mentioned
  9. sd8rdb commented on Jul 28, 2025

    @sd8rdb

    i mostly figured out how the telemetry packets work but my its semi useless to me cause connecting to my solarbank via bluetooth messes up the connection to ankers services and breaks the app till i manually reconnect it

    So you are saying that the BT interface cannot be used in parallel from a BT client and the App? Then it probably does not make much sense to invest too much time into it unless there is no other interface for the device. The difficulties I see in the BT interface:

    • Connection Range
    • Each device type need to be reverse engineered by an owner who has local BT access to the device
    • No parallel usage with the App as you mentioned

    I recognized the same. WiFi disconnects when Bluetooth is enabled. Afterwards, the app shows the Solarbank as offline. I think this can be solved once the command for properly disconnecting is reverse engineered as the app usage doesn’t react like this. E.g. if you are going out of range with the anker app via Bluetooth connected, then the anker is not showing as offline and messing up the connection.

    Maybe there is a command to set the solix also in parallel mode?

  10. mboisson commented on Jul 28, 2025

    @mboisson

    I mean, if we can get all of the information and commands through BT directly into HA, then who cares about the Anker app ? I would much rather have the information in HA than in Anker. It is still worth it in my opinion, and I can contribute and test, but I know very little about BT protocol and the code base.

  11. sd8rdb commented on Jul 28, 2025

    @sd8rdb

    Well. Looking to the data which comes via Bluetooth, it much less which is in the cloud. As an example, there is no info about what is coming from PV1 to PV4.

  12. LeagueRaINi commented on Jul 28, 2025

    @LeagueRaINi

    Well. Looking to the data which comes via Bluetooth, it much less which is in the cloud. As an example, there is no info about what is coming from PV1 to PV4.

    That's all in there this project and the forks just don't collect the complete blob

  13. thomluther commented on Jul 28, 2025

    @thomluther

    Well. Looking to the data which comes via Bluetooth, it much less which is in the cloud. As an example, there is no info about what is coming from PV1 to PV4.

    That's all in there this project and the forks just don't collect the complete blob

    And that is the big pain with the BT interface. You need very detailed reverse engineering by experts willing to debug hex data and compare them with their device values in parallel to get an idea of what they mean. This is just for monitoring...
    And for each device type or new device generations that add new features, the process must be redone by experts owning such a device...
    This is not trivial, since it is already complicated through the cloud Rest Api, which may deliver just state codes for various conditions that just Anker knows how they have to be interpreted...
    Decoding such state codes from hex values will not give you any clue what the byte stands for, or if it is just a significant part of a larger value.

  14. LeagueRaINi commented on Jul 28, 2025

    @LeagueRaINi

    Well. Looking to the data which comes via Bluetooth, it much less which is in the cloud. As an example, there is no info about what is coming from PV1 to PV4.

    That's all in there this project and the forks just don't collect the complete blob

    And that is the big pain with the BT interface. You need very detailed reverse engineering by experts willing to debug hex data and compare them with their device values in parallel to get an idea of what they mean. This is just for monitoring...
    And for each device type or new device generations that add new features, the process must be redone by experts owning such a device...

    figuring out correlations between data isn't rly something that requires expert knowledge of reverse engineering and if parsed properly this should work on almost every anker device but that's not what this project does hence why it's only working for a small subset of devices and may break with new firmware update

  15. heeplr commented on Jul 28, 2025

    @heeplr
    Author

    And that is the big pain with the BT interface. You need very detailed reverse engineering by experts willing to debug hex data [...]

    That's pretty much the case for monitoring aswell (and I guess also for WIFI?)
    It can be done by

    And for each device type or new device generations that add new features, the process must be redone by experts owning such a device...

    Owners could just dump data + screenshot the app and upload it to experts who reverse engineer it.

    This is not trivial, since it is already complicated through the cloud Rest Api,

    The downside here is (i guess the reason for this very project), that you need a working internet connection.

  16. thomluther commented on Jul 28, 2025

    @thomluther

    figuring out correlations between data isn't rly something that requires expert knowledge of reverse engineering and if parsed properly this should work on almost every anker device but that's not what this project does

    I agree, I was just trying to understand if such a BLE interface could be put on a wider base for a HA integration for various Solix devices, especially the portable power supplies, charger or power cooler which have no cloud interface. But for anything that is 'portable', it probably does not make much sense to have a BLE interface for HA when the device left the range of the BT dongle.

  17. LeagueRaINi commented on Jul 28, 2025

    @LeagueRaINi

    And that is the big pain with the BT interface. You need very detailed reverse engineering by experts willing to debug hex data [...]

    That's pretty much the case for monitoring aswell (and I guess also for WIFI?)
    It can be done by

    And for each device type or new device generations that add new features, the process must be redone by experts owning such a device...

    Owners could just dump data + screenshot the app and upload it to experts who reverse engineer it.

    This is not trivial, since it is already complicated through the cloud Rest Api,

    The downside here is (i guess the reason for this very project), that you need a working internet connection.

    main downside of using their internal api is that it rate limits the hell out of you and isn't viable for anything requiring real time data

  18. mboisson commented on Jul 28, 2025

    @mboisson

    I am fairly technical, have a background in programming and can understand hex code. I wrote a Zigbee driver for Hubitat by reverse engineering the Zigbee signal. I am happy to help with BLE too. My first issue is that it seems some sort of authentication mechanism is needed for my F3800 Plus (#2). Has anyone encountered that on other Anker devices ?

  19. thomluther commented on Sep 11, 2025

    @thomluther

    Hi there, maybe still of interest for BT connections as well.
    We made some progress to get data via MQTT cloud server and can also trigger real time data updates as triggered by the app.
    I created a monitor tool to monitor MQTT data. The interesting part is that MQTT and BT data bytes are essentially the same.
    Therefore the problem remains, that the messages must be decoded and the format being described for every model type and message type (and potentially various constellations of model, like expansion batteries for solarbanks or PPS).
    You may find following discussion helpful to decode your specific device data, now easily possible to monitor with a tool that does not need BT connection.

    I also started a generic message description in mqttmap.py module. I can add yours if you can describe the decoding accordingly. Documenting the decoding should also be done, so knowledge for specific devices can be shared in a central place. I started to describe mine here.

  20. flip-dots commented on Feb 19, 2026

    @flip-dots
    Owner

    In later firmware versions Anker requires an encrypted handshake in order for it to send telemetry, I have an experimental branch/PR (#7) which implements that. If you use that experimental version you should be able to run the device as a generic device and that should help you map out what values correspond to what and then you can either send me a nice table so I can add support or make a PR with the device added. See #8 for an example of what that looks like.

  21. flip-dots commented on Feb 27, 2026

    @flip-dots
    Owner

    @heeplr @sd8rdb @LeagueRaINi In case anyone is still interested I think I have been able to add support for the Solarbank 2 and a whole bunch of other devices using the mappings in anker-solix-api thanks to the work done by those guys. I have no idea if any of it will work, and I think my parsing implementation is still pretty suboptimal and leaves a bunch of data on the table, but it should be a good start.

  22. jul1an-s commented on Apr 22, 2026

    @jul1an-s

    Sorry for reviving this issue, I'm trying to get in touch with @heeplr

    Since you created this commit this project has made some impressive progress regarding the Solarbank product family.
    See:
    #27
    #28
    Sensors in HA
    The only thing missing for the solarbank 2 atm is the control piece. I think we need to set up a connection using the "prime style" encrypted handshake mentionend by @flip-dots to send control commands. However the frida scripts do not work properly on my phone.
    You are an SB2 owner. If you are willing to share some frida logs with me please get in touch with me.


    Edit:
    @mboisson you mentioned you'd like to contribute as well. If you can obtain frida logs from your anker app it would help me to get the control command to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions