static convertTime(hour, minute, offset) {
        const dayInMinutes = 24*60;

        const inMidnightOffset = hour * 60 + minute;
        let outMidnightOffset = inMidnightOffset + offset;

        if (outMidnightOffset < 0) {
            outMidnightOffset += dayInMinutes;
        } else if (outMidnightOffset > dayInMinutes) {
            outMidnightOffset -= dayInMinutes;
        }

        return {
            hour: outMidnightOffset/60 |0,
            minute: outMidnightOffset%60
        };
    }
Valetudo aims to use UTC only and leave timezone conversion stuff to the frontend.
This will work fine for most things, however unfortunately Roborock DND is an edge case

Due to the daily reboot happening at 3-4am, the robot cannot use UTC as its system time
since that would interfere with regular operation for users that don't live near UTC

Therefore, the timezone needs to be set correctly (out of scope for valetudo!) and
we need to store DND as localTime

@private
@param {number} hour
@param {number} minute
@param {number} offset