At first, i am not sure if this is the correct category to post this but if it’s not, i would please a moderator to move it.
I think i have identified a bug with the sun integration. I have home assistant on a virtual machine (virtualbox) and i have an automation that turns on my aquarium lights 30 minutes before sunset.
Lately, i decided to be putting the computer that the virtual machine is on to sleep and if required i can wake it up on LAN.
So, today, i put the computer to sleep for one hour. I woke it up far before the aquarium automation would start and i was expecting the lights to turn on 30 min before sunset… they didn’t. They turned on one hour after they should.
This means, that for as long as the computer sleeps, the automation delays. I thought that the sun integration either checks regularly the position of the sun or it sets it up on startup but its not time related.
Automations that are based on time they dont have any problem. Only the ones thwt use the Sun integration.
You should know that if you want an integration (like the Sun integration) to behave differently from the way it does now, that’s considered to be a Feature Request (not a bug).
Feature Requests for Home Assistant Core are submitted to this forum and not to Home Assistant’s Core repository on GitHub.
According to the documentation, the Sun Integration uses the location to track if the sun is above or below the horizon: Sun - Home Assistant
There is no mention on the frequency that is checking. Therefore, people like me can assume that it checks periodically which seems not to be the case. Also the computer does not change location so there is nothing to indicate that the integration behaves as it should (therefore a bug).
But ok, lets not fight if it is a bug or a feature request, i can accept it as a feature request and i please a moderator to move the post.
Is anyone aware if there is any weather service that exposes sun position to HA so it can be used instead?
The issue here is that you use virtualbox.
Virtualbox is virtualizing hardware for the VM and that includes the hardware clock.
On bare metal the clock would be adjusted by the hardware clock. This would normally also happen on a VM if there are a virtualization utility set installed, but HA installed a QEMU utility set and not a virtualbox one.
This means the VM on virtualbox does actually not know that it has been in a sleep state for some time.
It’s my understanding that the Sun integration does periodically compute new values for sun.sun (its state value and attributes). The frequency varies and is more frequent around sunrise and sunset.
If your automation is designed to trigger a half-hour before sunset, when do you wake up the computer and start Home Assistant? Have you checked the reported system time in Home Assistant after it has been restarted? Is it correct?
I put the computer to sleep when we leave for work (around 7:30) in the morning and i wake it up about 12:00 far before 16:32 that the automstion should kick in.
I haven’t checked the system time because automations that have time triggers work normally so i thought that the time is syncronizing.
I will pay attention to it a bit more as it can be that there maybe something wrong with the offset. For example, i will move the automation to turn the lights on exactly at sunset (when the entity change from above horizon to below horizon).
No, the pause is what happens when your computer goes to sleep.
You need a hypervisor that is supported by HA if you want to set your computer to sleep and that means QEMU or a variant.
Not sure if QEMU is available on Windows though.