docs: def parse(self, data):
          """Parse a 17 bytes packet in the Wind format and return a
          dictionary containing the data extracted. An example of a return value
          would be:
  
          .. code-block:: python
  
              {
                  'id': "0x2EB2",
                  'packet_length': 16,
                  'packet_type': 86,
                  'packet_type_name': 'Wind sensors',
                  'sequence_number': 0,
                  'packet_subtype': 4,
                  'packet_subtype_name': "TFA",
                  'temperature': 17.3,
                  'direction': 120,
                  'wind_gust': 11,
                  'av_speed': 12,
                  'wind_chill': 10,
                  'signal_level': 9,
                  'battery_level': 6,
              }
  
          :param data: bytearray to be parsed
          :type data: bytearray
  
          :return: Data dictionary containing the parsed values
          :rtype: dict
          """
  
          self.validate_packet(data)
  
          results = self.parse_header_part(data)
          sub_type = results['packet_subtype']
  
          id_ = self.dump_hex(data[4:6])
  
          direction = data[6] * 256 + data[7]
          if sub_type != 0x05:
              av_speed = (data[8] * 256 + data[9]) * 0.1
          else:
              av_speed = '--??--'
          gust = (data[10] * 256 + data[11]) * 0.1
          if sub_type == 0x04:
              temperature = ((data[12] & 0x7f) * 256 + data[13]) / 10
              signbit = data[12] & 0x80
              if signbit != 0:
                  temperature = -temperature
          else:
              temperature = '--??--'
          if sub_type == 0x04:
              wind_chill = ((data[14] & 0x7f) * 256 + data[15]) / 10
              signbit = data[14] & 0x80
              if signbit != 0:
                  wind_chill = -wind_chill
          else:
              wind_chill = '--??--'
  
          sensor_specific = {
              'id': id_,
              'direction': direction,
              'wind_gust': gust
          }
          if av_speed != '--??--':
              sensor_specific['av_speed'] = av_speed
          if temperature != '--??--':
              sensor_specific['temperature'] = temperature
          if wind_chill != '--??--':
              sensor_specific['wind_chill'] = wind_chill
  
          results.update(RfxPacketUtils.parse_signal_and_battery(data[16]))
          results.update(sensor_specific)
  
          return results