YASE II+ protocol

AxleGreaser

The [YASE II+ protocol] is defined by the current implementation [YASDLIB].
It will change as often as is expedient to prevent dangerous incompatibilities with SMA Data II+. While that is less than desirable it is the best option.

Attempts have been made to write documentation, but it becomes so clogged down in caveats about what is not known at this time, that the source code seems both more definitive and more understandable.

In broad terms and subject to change in the code without this page tracking the change!

YASE II+ is a protocol that is designed to be transported over blue tooth.

It is broken into two levels.
Level 1 deals with all things Bluetooth related such as signal strength and BDAddr which are commonly represented by a 6 byte hex string "{12:34:56:78:9A:BC}"
Level 1 packets have a header and a payload.

There are minimal level one packet types, and after connection setup only one with two subtypes are important

Level one packets contain fragments of level two packets. Some packets are just ordinary fragments, other are terminal fragments. Fragments from two different level two packets from one source are and can never be intermingled.
level 1 packets probably have an MTU of 0x70 bytes.

Level 2 Level 2 packets are reassembled out of Level 1 packet containing fragments. Level two packet have some of their bytes 7D escaped to eliminate the hex values 7E 7D 11 12 13 from the payload. Note 7Ds in the BDAddr which are not in the Level2 packet but the encapsulating Level 1 packet are NOT escaped.

Level 2 packets form a sequential conversation between the the client and the Inverter. There exist at least one occasion this model is violated. Client Query packet are numbered and the L2 response packets are returned with matching number.

Large responses especially from large archive queries can be sent in multiple level 2 packets. <B>Very</B> large requests can be made but YASE will at this time do the requests day by day.


Related

Home: Home
Home: YASDLIB
Home: YASE II+ protocol