Page 1 of 1

problem with time.matchesRule

Posted: Wednesday 22 January 2020 22:38
by ronaldbro
Hi waaren,

I use a function to itter through a list to get the desired color temperature depending on the time. This worked flawless for some time, but since one or two weeks (I think) it doesn't work anymore. After some investigation it seems time.matchesRule gives some false positives.

in the example below the rule 'between 07:55 and 08:00' is always true, and when I comment this line then 'between 19:45 and 20:00' will be always true.

Don't kwow if the problem started after an update of dzvents or after my migration to a raspberry pi 4.

Can you please help?

Code: Select all

        autoSetpoints = {
            {time = 'between 00:00 and 07:00',    temp = 232, level = 20},
            {time = 'between 07:00 and 07:05',    temp = 224, level = 22},
            {time = 'between 07:05 and 07:10',    temp = 216, level = 24},
            {time = 'between 07:10 and 07:15',    temp = 208, level = 26},
            {time = 'between 07:15 and 07:20',    temp = 200, level = 28},
            {time = 'between 07:20 and 07:25',    temp = 192, level = 30},
            {time = 'between 07:25 and 07:30',    temp = 184, level = 30},
            {time = 'between 07:30 and 07:35',    temp = 176, level = 30},
            {time = 'between 07:35 and 07:40',    temp = 168, level = 30},
            {time = 'between 07:40 and 07:45',    temp = 160, level = 30},
            {time = 'between 07:45 and 07:50',    temp = 152, level = 30},
            {time = 'between 07:50 and 07:55',    temp = 144, level = 30},
            {time = 'between 07:55 and 08:00',    temp = 136, level = 30},
            {time = 'between 08:00 and 19:00',   temp = 128, level = 30},
            {time = 'between 19:00 and 19:15',  temp = 135, level = 30},
            {time = 'between 19:15 and 19:30',  temp = 142, level = 30},
            {time = 'between 19:30 and 19:45',  temp = 149, level = 30},
            {time = 'between 19:45 and 20:00',  temp = 156, level = 30},
            {time = 'between 20:00 and 20:15',  temp = 163, level = 30},
            {time = 'between 20:15 and 20:30',  temp = 170, level = 30},
            {time = 'between 20:30 and 20:45',  temp = 177, level = 30},
            {time = 'between 20:45 and 21:00',  temp = 184, level = 30},
            {time = 'between 21:00 and 21:15',  temp = 191, level = 30},
            {time = 'between 21:15 and 21:30',  temp = 198, level = 30},
            {time = 'between 21:30 and 21:45',  temp = 205, level = 30},
            {time = 'between 21:45 and 22:00',  temp = 212, level = 30},
            {time = 'between 22:00 and 22:15',  temp = 219, level = 30},
            {time = 'between 22:15 and 22:30',  temp = 226, level = 30},
            {time = 'between 22:30 and 23:00',  temp = 232, level = 25},
            {time = 'between 23:00 and 00:00',   temp = 232, level = 20}
        },

Code: Select all

    GetAutoTemp = function(dz, scene) 
        local i = 1
        local currentTemp = 0
        while scene.autoSetpoints[i] ~= nil and currentTemp == 0 do
            if dz.time.matchesRule(scene.autoSetpoints[i].time) then
		dz.log('match = ' .. scene.autoSetpoints[i].time)
                currentTemp = scene.autoSetpoints[i].temp
            end
            i = i + 1
        end
        return currentTemp
    end,

Re: problem with time.matchesRule

Posted: Wednesday 22 January 2020 23:16
by waaren
ronaldbro wrote: Wednesday 22 January 2020 22:38 I use a function to itter through a list to get the desired color temperature depending on the time. This worked flawless for some time, but since one or two weeks (I think) it doesn't work anymore. After some investigation it seems time.matchesRule gives some false positives.
Thx for reporting. Is indeed a bug
I need to investigate further and also find out why integration tests did not notice.

Re: problem with time.matchesRule

Posted: Wednesday 22 January 2020 23:27
by ronaldbro
Thanks waaren

Re: problem with time.matchesRule

Posted: Thursday 23 January 2020 0:08
by waaren
ronaldbro wrote: Wednesday 22 January 2020 23:27 Thanks waaren
Should be fixed in V4.11638

Re: problem with time.matchesRule

Posted: Thursday 23 January 2020 20:59
by ronaldbro
I just updated and the problem is fixed.
Thanks Waaren