Database structure for a large amount of data with different types
You didn't mention whether your parameters are dynamic and variable.  If not then the correct logical design is:

(id,ts,speed,temp,pressure,status)


And the correct physical design is a clustered columnstore with a non-clustered primary key on (id,ts).  Possibly partitioned by id or ts into ranges.

If your parameters are variable, you should consider using JSON over using a Key-value-pair across multiple rows.

(id,ts,telemetry_json)


or

(id,ts,telemetry_json_gzip)


With the telemetry data stored in JSON key-value pairs, and/or JSON arrays.  Not only is this model efficient and handy, you can use a Value Conversion in EF Core to have a complex .NET type serialized to/from JSON for storage in the database.

You can use

(id,ts,attribute,value)


but this pattern is generally not the most efficient, or convenient, and is widely frowned-upon.  There many discussions on this site and others regarding the Entity-Attribute-Value model.