What is the difference between data.level and data[1].level?
I used the former one, but after the update it doesn't change anymore. Second one works though.
SensorBinary version 2 introduces sensor types, so a single device can detect several values (for example, smoke detection, glass break, tamper etc.). So a separate "level" is created for each supported sensor type, just like in SensorMultilevel.
In order to keep uniform data structure, sensor type is also present for SensorBinary v1, and it is always a hard-coded value 1 (general purpose sensor).
data.level is a "dead" value previously saved in config by the older version, and it is not valid anymore. If you force re-interview your device, it will be gone.