[SOLVED] DateTime issue with daylight saving time

Hello,

I have a strange behavior since today - due to daylight saving I suppose.

I have a Setpoint on my Sitemap in order to set a time based in minutes I define.
I then add the selected minutes to define a Timer StartTime.
This worked very well, but since today I got a 1 hour offset always.
I did some testing I found that the hours “jump” by 1 hours back to 02:00, but on 28.10, which I cannot explain.

var int minutes = (nBewaesserung_Rasen_Startzeit.state as DecimalType).intValue()
var DateTime dStartTime = parse(now.getYear() + "-" + now.getMonthOfYear() + "-" + now.getDayOfMonth() + "T00:00")
dStartTime = dStartTime.plusMinutes(minutes)
dBewaesserung_Rasen_NaechsterStart.sendCommand((dStartTime).toString)

As you can see in the log below, the correct StartTime is set for all values until 180.

nBewaesserung_Rasen_Startzeit = 120, dBewaesserung_Rasen_NaechsterStart = 02:00
nBewaesserung_Rasen_Startzeit = 135, dBewaesserung_Rasen_NaechsterStart = 02:15
nBewaesserung_Rasen_Startzeit = 150, dBewaesserung_Rasen_NaechsterStart = 02:30
nBewaesserung_Rasen_Startzeit = 165, dBewaesserung_Rasen_NaechsterStart = 02:45

However, when the value nBewaesserung_Rasen_Startzeit is set to 180, the dBewaesserung_Rasen_NaechsterStart doesn’t change to 03:00, but 02:00 ?!

Any clue? Do I miss something?

Many thanks for your support :slight_smile:

10:11:27.247 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'nBewaesserung_Rasen_Startzeit' received command 120
10:11:27.253 [INFO ] [smarthome.event.ItemStateChangedEvent] - nBewaesserung_Rasen_Startzeit changed from 105 to 120
10:11:27.261 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'dBewaesserung_Rasen_NaechsterStart' received command 2019-10-28T02:00:00.000+0100
10:11:27.269 [INFO ] [smarthome.event.ItemStateChangedEvent] - dBewaesserung_Rasen_NaechsterStart changed from 2019-10-28T01:45:00.000+0100 to 2019-10-28T02:00:00.000+0100
10:11:27.274 [INFO ] [smarthome.event.ItemStateChangedEvent] - sBewaesserung_Rasen_Status changed from geplant: 28.10.2019 01:45 to geplant: 28.10.2019 02:00

10:11:29.075 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'nBewaesserung_Rasen_Startzeit' received command 135
10:11:29.082 [INFO ] [smarthome.event.ItemStateChangedEvent] - nBewaesserung_Rasen_Startzeit changed from 120 to 135
10:11:29.091 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'dBewaesserung_Rasen_NaechsterStart' received command 2019-10-28T02:15:00.000+0100
10:11:29.102 [INFO ] [smarthome.event.ItemStateChangedEvent] - dBewaesserung_Rasen_NaechsterStart changed from 2019-10-28T02:00:00.000+0100 to 2019-10-28T02:15:00.000+0100
10:11:29.109 [INFO ] [smarthome.event.ItemStateChangedEvent] - sBewaesserung_Rasen_Status changed from geplant: 28.10.2019 02:00 to geplant: 28.10.2019 02:15

10:11:30.601 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'nBewaesserung_Rasen_Startzeit' received command 150
10:11:30.607 [INFO ] [smarthome.event.ItemStateChangedEvent] - nBewaesserung_Rasen_Startzeit changed from 135 to 150
10:11:30.633 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'dBewaesserung_Rasen_NaechsterStart' received command 2019-10-28T02:30:00.000+0100
10:11:30.638 [INFO ] [smarthome.event.ItemStateChangedEvent] - sBewaesserung_Rasen_Status changed from geplant: 28.10.2019 02:15 to geplant: 28.10.2019 02:30
10:11:30.644 [INFO ] [smarthome.event.ItemStateChangedEvent] - dBewaesserung_Rasen_NaechsterStart changed from 2019-10-28T02:15:00.000+0100 to 2019-10-28T02:30:00.000+0100

10:11:32.140 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'nBewaesserung_Rasen_Startzeit' received command 165
10:11:32.147 [INFO ] [smarthome.event.ItemStateChangedEvent] - nBewaesserung_Rasen_Startzeit changed from 150 to 165
10:11:32.159 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'dBewaesserung_Rasen_NaechsterStart' received command 2019-10-28T02:45:00.000+0100
10:11:32.164 [INFO ] [smarthome.event.ItemStateChangedEvent] - sBewaesserung_Rasen_Status changed from geplant: 28.10.2019 02:30 to geplant: 28.10.2019 02:45
10:11:32.169 [INFO ] [smarthome.event.ItemStateChangedEvent] - dBewaesserung_Rasen_NaechsterStart changed from 2019-10-28T02:30:00.000+0100 to 2019-10-28T02:45:00.000+0100

!################################# ????????? why 02:00 - I would expect it is 03:00 

10:11:34.162 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'nBewaesserung_Rasen_Startzeit' received command 180
10:11:34.169 [INFO ] [smarthome.event.ItemStateChangedEvent] - nBewaesserung_Rasen_Startzeit changed from 165 to 180
10:11:34.182 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'dBewaesserung_Rasen_NaechsterStart' received command 2019-10-28T02:00:00.000+0100
10:11:34.187 [INFO ] [smarthome.event.ItemStateChangedEvent] - dBewaesserung_Rasen_NaechsterStart changed from 2019-10-28T02:45:00.000+0100 to 2019-10-28T02:00:00.000+0100
10:11:34.191 [INFO ] [smarthome.event.ItemStateChangedEvent] - sBewaesserung_Rasen_Status changed from geplant: 28.10.2019 02:45 to geplant: 28.10.2019 02:00

10:11:36.053 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'nBewaesserung_Rasen_Startzeit' received command 195
10:11:36.074 [INFO ] [smarthome.event.ItemStateChangedEvent] - nBewaesserung_Rasen_Startzeit changed from 180 to 195
10:11:36.077 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'dBewaesserung_Rasen_NaechsterStart' received command 2019-10-28T02:15:00.000+0100
10:11:36.080 [INFO ] [smarthome.event.ItemStateChangedEvent] - sBewaesserung_Rasen_Status changed from geplant: 28.10.2019 02:00 to geplant: 28.10.2019 02:15
10:11:36.088 [INFO ] [smarthome.event.ItemStateChangedEvent] - dBewaesserung_Rasen_NaechsterStart changed from 2019-10-28T02:00:00.000+0100 to 2019-10-28T02:15:00.000+0100

Found the problem :-).

It shall forever be your secret. :wink:

This was not my intention, but I did my previous reply when I was on the road with my mobile.

As far as I see, the issue is with Daylight saving.
I missed below code, which set the next day if the time is beforeNow.

  if (dStartTime.beforeNow)
    dStartTime = dStartTime.plusDays(1)

The initial value for dStartTime is always today, 0:00. Hence when I set 2:00 this morning at 9:00, the next day was set, due to previous if statement.
However, the SetPoint always increase the dStartTime, without taking into account the 1Day offset, which is later in the code. Hence the dStartTime was indeed taking into account the time change last night. I didn’t get it this morning, when I figured out this behavior.

I suppose the StartTime should be again correct by tomorrow.

1 Like