tomvanswam / compass-card

A Lovelace card that shows a directional indicator on a compass for Home Assistant
MIT License
174 stars 19 forks source link

Rotate North. Keep arrow up. Optional secondary arrow. #155

Open alnavasa opened 3 years ago

alnavasa commented 3 years ago

Is your feature request related to a problem? Please describe. Used as a compass for a car, boat, or any moving vehicle.

Describe the solution you'd like I would like to have a arrow pointing up, instead of the north, a north rotating, and if possible a second arrow pointing to the wind

Describe alternatives you've considered I have tried to mess with the offset option, but couldn't make it work. Offset only allows values, not sensors, and I am neither sure if this would fix it.

Additional context I have a wind direction sensor, a boat course, and a boat speed sensor, three sensors. I would like to have it behave (Not look) like the two following:

Captura de pantalla 2021-03-09 a las 21 01 55 Captura de pantalla 2021-03-09 a las 21 02 20

Or if possible like this (arrow up, wind arrow, north rotating):

Captura de pantalla 2021-03-09 a las 21 02 35
tomvanswam commented 3 years ago

What an excellent idea! Thanks for taking the time to help make this card even better.

You're right, the N indicator can not be made dynamic with a sensor. I'll add this, and add E, S and W indicators as well.

Multiple arrows are already possible. I'll whip up an example and post it here.

tomvanswam commented 3 years ago

A kind of similar thing you ask for is possible, see the bottom right compass-card: image The top right compass card shows the raw wind and heading angles. Only thing that is not possible like this is to show the N as north indicator, that's why I configured it as outward arrow.

To get this you need 2 template sensors, which calculate the north and wind direction angle in relation to your heading.

sensor:
  - platform: template
      calculated_north:
        friendly_name: "Calculated North"
        unit_of_measurement: "°"
        icon_template: "mdi:compass-outline"
        value_template: "{{ 360 - (states('input_number.heading') | float) }}"
      calculated_wind_direction:
        friendly_name: "Calculated Wind Direction"
        unit_of_measurement: "°"
        icon_template: "mdi:compass-outline"
        value_template: "{{ (states('input_number.wind_direction') | float) - (states('input_number.heading') | float) }}"

Use these sensors to populate the compass-card as such:

type: 'custom:compass-card'
indicator_sensors:
  - sensor: sensor.calculated_north
    state_abbreviation:
      show: false
  - sensor: sensor.calculated_wind_direction
    indicator:
      type: inward
  - sensor: input_number.heading
    state_abbreviation:
      show: true
    state_value:
      show: true
    state_units:
      show: true
    indicator:
      show: false

Hope this will do until I get the N indicator also dynamic.

alnavasa commented 3 years ago

TOM! Thanks for considering the feature, I am not in a hurry, so I'll wait until v1.2 Thanks a lot!

tomvanswam commented 3 years ago

In v1.2.0 the background and e/s/w indicators are added. The dynamic N (and the other new ones ofc) will have to wait till v1.3.0

alnavasa commented 3 years ago

Don't worry tom! I'll try it, but looking forward for 1.3.0, I am a fan of your work! Thanks

Psytoshgen commented 2 years ago

Hi! Can I take a little of your time? To not make new thread. Can you make offset option more friendly with direction? Now it's looks like picture (my windows facing to south) 12345676

Psytoshgen commented 2 years ago

Is your feature request related to a problem? Please describe. Used as a compass for a car, boat, or any moving vehicle.

Describe the solution you'd like I would like to have a arrow pointing up, instead of the north, a north rotating, and if possible a second arrow pointing to the wind

Describe alternatives you've considered I have tried to mess with the offset option, but couldn't make it work. Offset only allows values, not sensors, and I am neither sure if this would fix it.

Additional context I have a wind direction sensor, a boat course, and a boat speed sensor, three sensors. I would like to have it behave (Not look) like the two following:

Captura de pantalla 2021-03-09 a las 21 01 55 Captura de pantalla 2021-03-09 a las 21 02 20

Or if possible like this (arrow up, wind arrow, north rotating):

Captura de pantalla 2021-03-09 a las 21 02 35

ah yes, maybe it's easy-to-use flexible horseshoe card integration to make last compas?

tomvanswam commented 2 years ago

Hi! Can I take a little of your time? To not make new thread. Can you make offset option more friendly with direction? Now it's looks like picture (my windows facing to south)

Good point! Looks like a lazy implementation from my side ;-)

lensherm commented 2 years ago

@tomvanswam, firstly thanks for great work.

Just so I don't go down a rabbit hole someone's been to already, does using a template for a calculated offset to dynamically smoothly rotate the entire circle currently work?

tomvanswam commented 2 years ago

Unfortunately not het, thanks for asking and reminding me ;-)

tomerddd commented 1 year ago

Heya! Wonder if you ever got to dynamic rotation (for boat heading)

Thanks for your efforts - love your work!

tomvanswam commented 1 year ago

I'm halfway there, but time is slipping through my fingers lately.

Next9999 commented 1 year ago

i also look forward to have that nice feature :-)

1

Rust-Shch commented 1 year ago

Hello! Sorry for may be stupid question, but how to include second stnsor into the compass? I want wind direction (arrow inward) and sun (when above horizon), with values of wind speed and azimuth, and house outline behind. So far I managed only wind and wind speed. Thank you in advance and for the awesome instrument!

tomvanswam commented 1 year ago

Hello! Sorry for may be stupid question, but how to include second stnsor into the compass? I want wind direction (arrow inward) and sun (when above horizon), with values of wind speed and azimuth, and house outline behind. So far I managed only wind and wind speed. Thank you in advance and for the awesome instrument!

With a config something like this

type: 'custom:compass-card'
indicator_sensors:
  - sensor: sensor.wind_direction
    indicator:
      type: inward
  - sensor: sensor.sun_angle
    indicator:
      type: circle
value_sensors:
  - sensor: sensor.wind_speed
  - sensor: sensor.wind_sazimuth
compass:
  circle:
    background_image: /local/compass-card/house.png
    background_opacity: 0.5

See example in the readme