Sun Position Card
This is a custom Lovelace card used to visualize the current position of the sun with various configuration options, as well as the current moon phase and the display of additional relevant solar times. The Card is translated into English and German. (github page).
You need the sun.sun entity provided by Home Assistant when your Home location is configured. The moon.phase entity is optional and only required to display the current moon phase.
To get the Moon sensor, go to Settings → Devices & Services → Add Integration and search for Moon. This is Home Assistant’s built-in Moon integration.
If you like the Card, I would appreciate a Star rating on my github
. ![]()
Features
Sun Position – Classic Display
Sun Position – Calculated Display
Sun Position – Calculated Arc
Moon Phases – Visual Display (8 Phases)
Animated Sun Position
Customizable Times
Weather Status - NEW
Flexible Layout
Adjustable Thresholds
UI Configuration
Have a look at the animated card

Installation
HACS (Recommended)
- Add this repository to HACS. To do so, use the following link.
- The “Sun Position Card” should now be available in HACS. Click “INSTALL”.
- The resource will be added to your Lovelace configuration automatically.
Manual Installation via Hacs
- Open HACS in Home Assistant.
- Go to “Frontend” and click the three dots in the top right corner.
- Select “Custom repositories”.
- Add the URL to your GitHub repository and select “Lovelace” as the category.
- Click “ADD”.
- The “Sun Position Card” should now be available in HACS. Click “INSTALL”.
- The resource will be added to your Lovelace configuration automatically.
Manual Installation in HA
Manual Installation
- Download the
sun-position-card.js,sun-position-card-editor.jsand theimagesfolder from the repo in github. - Place the
sun-position-card.jsandsun-position-card-editor.jsfiles and theimagesfolder inconfig/www/community/Sun-Position-Card/. You will have to create thecommunityandSun-Position-Cardfolders. - Add the resource to your Lovelace configuration through the Home Assistant UI:
a. Go to “Settings” → “Dashboards”.
b. Click on the three dots in the top right corner and select “Resources”.
c. Click on “+ ADD RESOURCE”.
d. Enter/local/community/Sun-Position-Card/sun-position-card.jsas the URL and select “JavaScript Module” as the Resource type.
e. Click “CREATE”. - Restart Home Assistant.
Configuration

Although the UI configuration is recommended, the card can also be configured manually using the YAML editor:
Options
| name | typ | required | description | standard |
|---|---|---|---|---|
type |
string |
Yes | custom:sun-position-card |
|
entity |
string |
Yes | Die Entität Sonne, normalerweise sun.sun. |
|
moon_entity |
string |
No | Die Entität Mond, normalerweise sensor.moon_phase. |
|
moon_phase_position |
string |
No | Position Text Mondphase im Verhältnis zum Bild. | above, in_list |
times_to_show |
list |
No | Eine Liste von Zeiten, die angezeigt werden sollen. | daylight_duration, next_rising, next_setting, next_dawn, next_dusk, next_noon, next_midnight |
time_position |
string |
No | Position der Zeitangaben im Verhältnis zum Bild. | above, below, right |
time_list_format |
string |
No | Format der Zeitangaben Blocksatz oder Zentriert | block, centered |
state_position |
string |
No | Position des aktuellen Status (über dem Bild, in der Time-Liste). | above, in_list |
show_degrees |
boolean |
No | Zeige Gradzahlen für Azimuth und Elevation. | true, false |
show_degrees_in_list |
boolean |
No | Zeige Gradzahlen in der Timeliste. | true, false |
show_dividers |
boolean |
No | Zeige Trennlinien zwischen den Zeiten. | true, false |
animate_images |
boolean |
No | Animiere die Sonnenstandsbilder. | true, false |
view_mode |
string |
No | Ansichtsoption klassich mit Bildern oder berechneter Sonnenstand. | classic, calculated, arc |
morning_azimuth |
number |
No | Azimut-Grenzwert für den Morgen. | 150 |
noon_azimuth |
number |
No | Azimut-Grenzwert für den Mittag. | 200 |
afternoon_azimuth |
number |
No | Azimut-Grenzwert für den Nachmittag. | 255 |
dusk_elevation |
number |
No | Höhen-Grenzwert für die Dämmerung. | 10 |
simple example:
type: custom:sun-position-card
entity: sun.sun
times_to_show:
- next_rising
- next_setting
time_position: right
show_image: false
advanced example:
type: custom:sun-position-card
entity: sun.sun
moon_entity: sensor.moon_phase
moon_phase_position: above
state_position: above
show_dividers: true
show_degrees: true
show_degrees_in_list: false
times_to_show:
- next_rising
- next_setting
- daylight_duration
- moon_phase
time_position: right
show_image: true
morning_azimuth: 155
dusk_elevation: 5
noon_azimuth: 200
afternoon_azimuth: 255
animate_images: false
time_list_format: block
view_mode: arc





