That just requires some additional transition specs.
$to='luc@local.lab'
$alarmMgr=Get-View AlarmManager
$alarm=Get-View-Id ($alarmMgr.GetAlarm($null))|where{$_.Info.Name-eq$alarmName}
$spec=$alarm.Info
$group=New-Object VMware.Vim.GroupAlarmAction
$action=New-Object VMware.Vim.AlarmTriggeringAction
$action.Action=New-Object VMware.Vim.SendEmailAction
$action.Action.ToList=$to
$action.Action.Subject=$alarmName
$action.Action.CcList=''
$action.Action.Body=''
$trans1=New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec
$trans1.StartState=[VMware.Vim.ManagedEntityStatus]::green
$trans1.FinalState=[VMware.Vim.ManagedEntityStatus]::yellow
$trans2=New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec
$trans2.StartState=[VMware.Vim.ManagedEntityStatus]::yellow
$trans2.FinalState=[VMware.Vim.ManagedEntityStatus]::red
$trans3=New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec
$trans3.StartState=[VMware.Vim.ManagedEntityStatus]::red
$trans3.FinalState=[VMware.Vim.ManagedEntityStatus]::yellow
$trans4=New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec
$trans4.StartState=[VMware.Vim.ManagedEntityStatus]::yellow
$trans4.FinalState=[VMware.Vim.ManagedEntityStatus]::green
$action.TransitionSpecs+=$trans1
$action.TransitionSpecs+=$trans2
$action.TransitionSpecs+=$trans3
$action.TransitionSpecs+=$trans4
$group.Action+=$action
$spec.Action=$group
$spec.ActionFrequency=0
$alarm.ReconfigureAlarm($spec)