unit – Object activate without script command?

I have something strange here in my script. In this clock_time script turn the lamp object active one by one. When the object of the lamp goes off after 3 seconds, there will be another script. If the clock time reaches 120 or more, the lamp is active again. Also, does light_timer still count if the lamp is active?

    Public GameObject[] lights; // 3 lamps
public int number;
int public[] light_timer; // 3 values ​​"2,4,6"
public int clock_timer;

void Home ()
{
// all the "lamps" of gameObject are off
number = lights.Length -1;


}
Null update ()
{
if (gameObject.activeInHierarchy == true)
{
clock_timer = (int) Time.time;
}
plus
{
clock_timer = 0;
}
for (int i = 0; i < lights.Length; i++)
    {

        if (clock_timer >= light_timer[i] && lights[i].activeInHierarchy == false)
{
lights[i].SetActive (true);
}

yes (lights)[i].activeInHierarchy == true)
{
light_timer[i] = light_timer[i] + 1;
print ("yo:" + i);
}

}

}