Weather wind speed units issue

I have the weather component configured using Dark Sky as follows:

weather:
  - platform: darksky
    api_key: *****************
    latitude: ******
    longitude: ******
    units: uk2

I have the units are defined as uk2, since this gives the temperature is in Celsius and the wind speed in mph as this is the way I prefer it.
However, the card for this entity displays the wind speed units as km/h (the actual wind speed is in mph but the units are displayed incorrectly). Is there any way to override this?

Customising unit_of_measurement doesn’t appear to work, as there is not a separate one for temperature and wind speed and the global unit_system also appears to be all or nothing (“metric” or “imperial” and no way to mix the two).

Edit: Incidentally, I am using this in Lovelace via the weather-forecast card, but this appears to be just a wrapper around the standard weather entity card and I have the same issue in the old frontend.

In your configuration.yaml, check this. Mine displays temp in F and wind in MPH using DarkSky.

homeassistant:
  name: xxxxxxxxx
  latitude: xx.xxxxxx
  longitude: xx.xxxxx
  elevation: 110
  unit_system: imperial
  time_zone: America/Chicago
  temperature_unit: F

Imperial is Fahrenheit and MPH anyway. It doesn’t seem to be possible to configure it to have temperature in C and speed in MPH. Even doing this doesn’t work:

homeassistant:
  unit_system: imperial
  temperature_unit: C

Since it seems that temperature_unit: C is effectively the same as setting unit_system: metric and overrides the previous unit_system: imperial so it displays the wind speed in km/h instead of mph.

I am having the same issue. Here is my config:

configuration.yaml:

# metric for Metric, imperial for Imperial
unit_system: metric

sensors.yaml:

  - platform: darksky
    api_key: *****
    forecast:
      - 1
      - 2
      - 3
      - 4
      - 5
    monitored_conditions:
      - icon
      - summary
      - nearest_storm_distance
      - nearest_storm_bearing
      - humidity
      - temperature
      - temperature_high
      - temperature_low
      - apparent_temperature
      - apparent_temperature_high
      - apparent_temperature_low
      - wind_speed
      - wind_bearing
      - precip_type
      - precip_probability
      - precip_accumulation
      - precip_intensity
      - precip_intensity_max
      - uv_index
      - daily_summary
      - pressure
      - visibility
    units: uk2
    update_interval:
      minutes: 5

The temperature shows as Celsius and speed in MPH, but the unit definition on the card shows as km/h:

image

The “S 9 km/h” should be “S 9 mph” as the 9 is in miles not km.

When I change the unit_system to imperial, it shows the following:

image

As you can see it now shows correct “9 mph” but now the temperatures are all in Fahrenheit, while the “units: uk2” should keep them in Celcius. You can see in the bottom line it does keep stating Celcius.

If i change the “units” to “us” for example I can also see the bottom line change to Fahrenheit.

For me it feels like the component isn’t processing the “units” definition correctly, and relies only on the unit_system value.

Did anyone ever find a solution for this. I not the pressure unit also doesn’t change as expected

I don’t know anything about the dark sky sensor platform, but the weather platform card in the frontend can only display in fully metric or fully imperial. No mixed units.

I have a PR to fix pressure in dark sky. Looks like wind speed needs to be fixed in a similar manner.