Do you think a sunrise azimuth sensor and a sunset azimuth sensor would help?
“People want this. They just don’t know it yet.” - Steve Jobs
I have to check out the sunrise_obstruction configuration and see if it works well for me.
For those that would like to follow along with what I’m planning for the 3.3.0 release, please see:
Released 3.2.1b0
Released 3.2.1
Only reload config entry if it’s in a state where it can be reloaded
Depending on startup timing, it’s possible for an attempt to be made to reload a configuration entry when it’s still in the process of being initially setup (i.e., loaded.) This change avoids reloading a configuration entry when it is not in a state where it can be reloaded.
For more details, see issue #117.
Released 3.3.0b1
Add services & new sensor options
Add sun2.get_location
& sun2.update_location
services. Also add new sunrise_azimuth
& sunset_azimuth
sensor options (which result in sensors named “Rising azimuth” & “Setting azimuth”, respectively.)
Together these allow dynamically updating location parameters (latitude, longitude and time zone), and/or parameters that define what affects sunrise & sunset events.
One use case might be for vacation. Let’s say you add a config entry to get sun related info for a vacation location. You can use the services to update its location maybe once a day, or when you push a button in the UI, based on the current location indicated by a device tracker entity. (My Entity Time Zone integration can help with determining the time zone where a device tracker is located.)
Another use case might be when, e.g., sunrise is based on a mountain, but the horizontal distance to, and the relative height of, the top of that mountain changes throughout the year as the sunrise azimuth changes.
Note this also includes the fix from 3.2.1.
EDIT: Oops, forgot to provide some detail on the services, since again, I haven’t gotten around to updating the docs yet…
sun2.get_location
Can be used with any integration entry. Looks like this:
sun2.update_location
Can only be used with UI created integration entries (since it doesn’t update YAML config files.) Can specify the location paramters, or the observer elevation, or both. Looks like this:
Please try out the 3.3.0b1 release (described below.) It should have all the features you’re looking for.
It should be possible to create an automation that adjusts the distance & relative height of the mountains to the east (via the sun2.update_location
service) as the year goes by (based on the state of the “Rising azimuth” entity.)
E.g., maybe something like:
automation:
- id: sunrise_adjust
alias: Sunrise adjustment
trigger:
- platform: numeric_state
entity_id: sensor.home_sun_rising_azimuth
below: 70
variables:
dist: 10000
relh: 5000
- platform: numeric_state
entity_id: sensor.home_sun_rising_azimuth
above: 70
below: 105
variables:
dist: 9000
relh: 7000
- platform: numeric_state
entity_id: sensor.home_sun_rising_azimuth
above: 105
variables:
dist: 11000
relh: 6000
action:
- service: sun2.update_location
data:
location: Home
observer_elevation:
above_ground: 0
sunrise_obstruction:
distance: "{{ dist }}"
relative_height: "{{ relh }}"
Nice. I am very interested in photographing and have a card for showing me when golden and blue hours start and stop both in the morning and the evening.
This is now updated to use my phone location instead of being my home location. The sensors used for latitude, longitude and time_zone is from the companion app for Android.
I set a new sun2 location if my phone location has changed more than 50km.
alias: Ny posisjon til sun2
description: ""
trigger:
- platform: state
entity_id:
- device_tracker.pixel_7
condition: []
action:
- service: sun2.get_location
data:
location: phone
response_variable: location
- if:
- condition: template
value_template: >-
{{ distance(location.latitude, location.longitude,
'device_tracker.pixel_7') > 50 }}
then:
- service: sun2.update_location
metadata: {}
data:
location: phone
latitude: "{{ state_attr('device_tracker.pixel_7', 'latitude') }}"
longitude: "{{ state_attr('device_tracker.pixel_7', 'longitude') }}"
time_zone: "{{ state_attr('sensor.pixel_7_current_time_zone', 'time_zone_id') }}"
mode: single
Released 3.3.0b2
Updated documentation, services.yaml & en.json. Also, ru.json was added (but does not include all the new functionality in this beta.)
As far as I know, this is the final beta release for 3.3.0. Assuming I get no negative feedback, I’ll release 3.3.0 shortly.
Thank you! I cover alot of area each summer on vacation, so this is great!
Any chance you can chare the card?
And a big thank you to you Phil!
**Edit:**deconz_daylight
How do i get the time of golden/blue hour? I’ve tried to research but my brain is getting error. I figured it might have something to do with azimuth time/angle and maybe a making a sensor?
Edit2: I see that the deCONZ daylight sensor have a golden hour 1 and 2, but how do i get that to display on a card?
I will, but you have to wait until later i May. I am not at home at the moment.
Do you want to get a time? If so, which time? When they start? When they end? Each one, or both together?
Or do you just want a sensor that indicates when it is in the golden hour (or blue hour, or both)?
Released 3.3.0
Hello Phil and thank you for the reply!
I was looking for start/end time for both golden and blue hours and replicate stigvis card.
I don’t need to know if i’m in the golden, just the time of when golden/blue hour starts and ends
/Keellan
Hello and sorry to bother you again Phil. I’ve been reading and reading but i can’t figure this out. I usually find an answer after alot of searching and trial and error, but this nut I can’t crack on my own and would really appriciate your help
Blue hour is between -6° and -4°, and golden hour is between -4° and 6°.
So, in the morning, blue hour starts at -6° and ends at -4°, and golden hour starts at -4° and ends at 6°.
In the evening, golden hour starts at 6° and ends at -4°, and blue hour starts at -4° and ends at -6°.
So, to do what you ask, you need eight time_at_elevation
sensors, four with direction
set to rising
, and four more with direction
set to setting
.
Hi
Here are the sensors I have created. The code below is from the storage to HA, but you have to use the sun2 configuration to create them
{
“entry_id”: “be87d11dcd1a9aa7d4de8fd1b2e7d4eb”,
“version”: 1,
“minor_version”: 1,
“domain”: “sun2”,
“title”: “phone”,
“data”: {},
“options”: {
“elevation”: 0.0,
“time_zone”: “Europe/Oslo”,
“latitude”: 58.737857,
“longitude”: 5.6400118,
“sensors”: [
{
“time_at_elevation”: -6.0,
“direction”: “rising”,
“icon”: “mdi:weather-sunset-down”,
“name”: “blue hour starts in the morning”,
“unique_id”: “dcf3e30175de6772cf298682ec037045”
},
{
“time_at_elevation”: -4.0,
“direction”: “rising”,
“icon”: “mdi:weather-sunset-down”,
“name”: “golden hour starts in the morning”,
“unique_id”: “1b08550a104a4140818439ee6f8500c6”
},
{
“time_at_elevation”: 6.0,
“direction”: “rising”,
“icon”: “mdi:weather-sunset-down”,
“name”: “golden hour ends in the morning”,
“unique_id”: “3e888eb383f9ae6ec949aa3a7d365616”
},
{
“time_at_elevation”: 6.0,
“direction”: “setting”,
“icon”: “mdi:weather-sunset-down”,
“name”: “golden hour starts in the evening”,
“unique_id”: “a2e734f5e58222825d46dde64ee6c9f7”
},
{
“time_at_elevation”: -4.0,
“direction”: “setting”,
“icon”: “mdi:weather-sunset-down”,
“name”: “golden hour ends in the evening”,
“unique_id”: “48b4b258edfbacaa41cbf2e470341a9f”
},
{
“time_at_elevation”: -6.0,
“direction”: “setting”,
“icon”: “mdi:weather-sunset-down”,
“name”: “blue hour ends in the evening”,
“unique_id”: “d6db91cbedab062536d361294e7694f6”
}
],
“observer_elevation”: [
0.0,
0.0
]
},
Here is the card (in norwegian)
type: entities
entities:
- entity: sensor.phone_sun_bla_time_slutter_kveld
icon: mdi:weather-sunset-down
type: custom:multiple-entity-row
state_header: Blå
name: Gylden time kveld
format: time
entities:
- entity: sensor.phone_sun_gylden_time_starter_kveld
name: Start
format: time
- entity: sensor.phone_sun_gylden_time_slutter_kveld
name: Stopp
format: time
- type: divider
- entity: sensor.phone_sun_gylden_time_slutter_morgen
attribute: tomorrow
icon: mdi:weather-sunset-up
type: custom:multiple-entity-row
state_header: Stopp
name: Gylden time morgen
format: time
entities:
- entity: sensor.phone_sun_bla_time_starter_morgen
name: Blå
format: time
attribute: tomorrow
- entity: sensor.phone_sun_gylden_time_starter_morgen
name: Start
format: time
attribute: tomorrow
- type: divider
- entity: sensor.phone_sun_setting_azimuth
format: precision0
state_header: Ned
name: Sol, retning
icon: mdi:sun-compass
type: custom:multiple-entity-row
entities:
- entity: sensor.phone_sun_rising_azimuth
format: precision0
name: Opp
- entity: sensor.phone_sun_daylight
attribute: tomorrow_hms
state_header: I morgen
icon: mdi:sun-clock
name: Daglengde
type: custom:multiple-entity-row
entities:
- entity: sensor.phone_sun_daylight
name: I dag
attribute: today_hms
- entity: sensor.pixel_7_geocoded_location
name: ' '
title: Fototid
And here is the automation for setting a new location when on travel
alias: Ny posisjon til sun2
description: ""
trigger:
- platform: state
entity_id:
- device_tracker.pixel_7
attribute: latitude
condition: []
action:
- service: sun2.get_location
data:
location: phone
response_variable: location
- if:
- condition: template
value_template: >-
{{ distance(location.latitude, location.longitude,
'device_tracker.pixel_7') > 10 }}
then:
- service: sun2.update_location
metadata: {}
data:
location: phone
latitude: "{{ state_attr('device_tracker.pixel_7', 'latitude') }}"
longitude: "{{ state_attr('device_tracker.pixel_7', 'longitude') }}"
time_zone: "{{ state_attr('sensor.pixel_7_current_time_zone', 'time_zone_id') }}"
mode: single
I’m currently burnt out and generally need more direct instructions as my brain doesn’t quite keep up, so this helps alot! Appreciate your answer!
Going to sit down and try this!
Tusen takk!
Do you have any idea why the sensors created with negative elevation shows up as “unknown”?
The two sensors that works is the golden hour start in the morgon and ending in the evening, when the elevation is above horizon
Read through the readme but i couldn’t find an answer
Edit. Nothing was wrong, I just remembered where i live and the sun almost doesn’t set atm…
Hello again!
I was wondering if there’s a way to get a sensor like ‘time at elevation’, but instead of elevation i would like ‘time at azimuth’. I want the times when the sun is shining on my balcony, so I can open the windows and lower the temperature so my flowers don’t die
How should this work? Azimuth is an angle (if I’m not mistaken), how should this go together with a time? In my understanding at least one of each would need to be provided, as in “at what time is the azimuth 300°” or “what is the azimuth at 08:00am”.
EDIT: I forgot to add a link to the “adaptive cover” integration, that could help you here. Take a look at it, it could give you some ideas how to modify to your needs: