Individual Alarm clock for each Day of week, with adjustable duration

Hi

I’ve been looking for something like this for a while.

Thank you so much for your efforts :slight_smile:

To give a little back, I have added two rules to limit the hours and minutes.

I created two extra groups

Group gMinute
Group gHour

and assigned them to all the minutes and hour ITEMS like this

Group gAlarm (StartPersist) // Where "StartPersist" is the catch all for Peristance
Group gMinute
Group gHour

//Alarm Monday
Switch PERSON1_ALARM_MON      "ALARM Monday"                        <clock>	        (gAlarm)
Number PERSON1_ALARM_MON_H    "Alarm start Monday Hour [%s]"        <calendar>	    (gAlarm,gHour)
Number PERSON1_ALARM_MON_M    "Alarm start Monday Minutes [%s]"     <calendar>	    (gAlarm,gMinute)
Number PERSON1_ALARM_MON_RUN    "ALARM Monday Duration [%s]"        <clock>	        (gAlarm)
//Alarm Tuesday
Switch PERSON1_ALARM_TUE      "ALARM Tuesday"                       <clock>	        (gAlarm)
Number PERSON1_ALARM_TUE_H    "Alarm start Tuesday Hour [%s]"       <calendar>	    (gAlarm,gHour)
Number PERSON1_ALARM_TUE_M    "Alarm start Tuesday Minutes [%s]"    <calendar>	    (gAlarm,gMinute)
Number PERSON1_ALARM_TUE_RUN    "ALARM Tuesday Duration [%s]"       <clock>	        (gAlarm)
//Alarm Wednesday
Switch PERSON1_ALARM_WED      "ALARM Wednesday"                     <clock>	        (gAlarm)
Number PERSON1_ALARM_WED_H    "Alarm start Wednesday Hour [%s]"     <calendar>	    (gAlarm,gHour)
Number PERSON1_ALARM_WED_M    "Alarm start Wednesday Minutes [%s]"  <calendar>	    (gAlarm,gMinute)
Number PERSON1_ALARM_WED_RUN    "ALARM Wednesday Duration [%s]"     <clock>	        (gAlarm)
//Alarm Thursday
Switch PERSON1_ALARM_THU      "ALARM Thursday"                      <clock>	        (gAlarm)
Number PERSON1_ALARM_THU_H    "Alarm start Thursday Hour [%s]"      <calendar>	    (gAlarm,gHour)
Number PERSON1_ALARM_THU_M    "Alarm start Thursday Minutes [%s]"   <calendar>	    (gAlarm,gMinute)
Number PERSON1_ALARM_THU_RUN    "ALARM Thursday Duration [%s]"      <clock>	        (gAlarm)
//Alarm Friday
Switch PERSON1_ALARM_FRI      "ALARM Friday"                        <clock>	        (gAlarm)
Number PERSON1_ALARM_FRI_H    "Alarm start Friday Hour [%s]"        <calendar>	    (gAlarm,gHour)
Number PERSON1_ALARM_FRI_M    "Alarm start Friday Minutes [%s]"     <calendar>	    (gAlarm,gMinute)
Number PERSON1_ALARM_FRI_RUN    "ALARM Friday Duration [%s]"        <clock>	        (gAlarm)
//Alarm Saturday
Switch PERSON1_ALARM_SAT      "ALARM Saturday"                      <clock>	        (gAlarm)
Number PERSON1_ALARM_SAT_H    "Alarm start Saturday Hour [%s]"      <calendar>	    (gAlarm,gHour)
Number PERSON1_ALARM_SAT_M    "Alarm start Saturday Minutes [%s]"   <calendar>	    (gAlarm,gMinute)
Number PERSON1_ALARM_SAT_RUN    "ALARM Saturday Duration [%s]"      <clock>	        (gAlarm)
//Alarm Sunday
Switch PERSON1_ALARM_SUN      "ALARM Sunday"                        <clock>	        (gAlarm)
Number PERSON1_ALARM_SUN_H    "Alarm start Sunday Hour [%s]"        <calendar>	    (gAlarm,gHour)
Number PERSON1_ALARM_SUN_M    "Alarm start Sunday Minutes [%s]"     <calendar>	    (gAlarm,gMinute)
Number PERSON1_ALARM_SUN_RUN    "ALARM Sunday Duration [%s]"        <clock>	        (gAlarm)


Switch PERSON1_ALARM_ACTIVE "ALARM PERSON1 Active"                                  (gAlarm)
Number PERSON1_ALARM_PRESETS "ALARM Preset Load"				    <calendar>	    (gAlarm)

then just added these two rules

rule "Confine Minute"

when	
	Member of gMinute changed
then
	
	   logInfo("Minute Limiting", "Minute Value of "+triggeringItem.name+" Currently "+triggeringItem.state)
	
	if (triggeringItem.state > 59) {
	
	postUpdate(triggeringItem.name,"0")
	}
	
		if (triggeringItem.state < 0) {
	
	postUpdate(triggeringItem.name,"59")
	}
	
end


rule "Confine Hour"

when	
	Member of gHour changed
then
	
	   logInfo("Hour Limiting", "Hour Value of "+triggeringItem.name+" Currently "+triggeringItem.state)
	
	if (triggeringItem.state > 23) {
	
	postUpdate(triggeringItem.name,"0")
	}
	
		if (triggeringItem.state < 0) {
	
	postUpdate(triggeringItem.name,"23")
	}
	
end

The only thing I need to work out now is how to change the colours of the Glypths

Update

I couldn’t get 14 of those widgets to fit within the Android Tablet screen in an elegant way, so I had to create a custom layout using SVG files.

Considering that I would compare my artistic skills to that of a feral infant, I’m quite happy with the result.