Multiple PIR, Multiple timer LED control, having some problems.

Having problems with this code, first "motion" works fine but the second "motion2" will trigger only once after first "motion" timers have run out.

#include <Wire.h>
#include "RTClib.h"
#include <Time.h>
#include <TimeAlarms.h>

int pirpin = 12;
int lastpir;
int pirpin2 = 7;
int lastpir2;
const int led1 = 3;
const int led2 = 5;
const int led3 = 6;
const int led4 = 9;
const int led5 = A3;
const int led6 = A0;
unsigned long startTime;
unsigned long startTime2;
unsigned long startTime3;

unsigned long timer1 = 60000;
unsigned long timer2 = 120000;
unsigned long timer3 = 30000;
unsigned long timer4 = 5000;



int led1val = 128; //välisukse poolne
int led2val = 255; //välisuksest järgmine
int led3val = 128; //jne...
int led4val = 128; //
int led5val = 255; //köök

RTC_DS1307 RTC;


void setup()
{
  pinMode(led1, OUTPUT); 
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(pirpin, INPUT);
  pinMode(pirpin2, INPUT);
  Serial.begin(9600);
  Wire.begin();
  RTC.begin();

  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
  DateTime now = RTC.now();
  setTime(hour(), minute(), second(), day(), month(), year());
  setTime(now.hour(),now.minute(),now.second(),now.day(),now.month(),now.year()); 

  // Alarmid (Hour, Minute, Second)
  Alarm.alarmRepeat(5,0,0, Alarm1);  //
  Alarm.alarmRepeat(8,0,0, Alarm2);  // 
  Alarm.alarmRepeat(12,30,0, Alarm3); // 
  Alarm.alarmRepeat(15,30,0, Alarm4);  //
  Alarm.alarmRepeat(17,30,0, Alarm5);  // 
  Alarm.alarmRepeat(0,0,0, Alarm6);  // 
  /*  Alarm.alarmRepeat(23,0,0, Alarm7);  // 
   Alarm.alarmRepeat(6,45,0, Alarm8);  // 
   Alarm.alarmRepeat(0,0,0, Alarm9);  // 
   Alarm.alarmRepeat(0,0,0, Alarm10);  // 
   */

}

void  loop(){ 
  DateTime now = RTC.now();
  setTime(now.hour(),now.minute(),now.second(),now.day(),now.month(),now.year()); // set time & date
  Alarm.delay(1000); //clock display delay

  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
  Serial.print("   Pir2   ");
   Serial.print(digitalRead(pirpin2));
     Serial.println("~~");
        Serial.print(analogRead(led5));



  motion();
  motion2();

}



void motion(){
  int pir = digitalRead(pirpin);
  if (pir == HIGH && lastpir == LOW) 
  {
    startTime = millis();
    analogWrite(led1, led1val);
    analogWrite(led2, led2val);
    analogWrite(led3, led3val);
    analogWrite(led4, led4val);
  }
  lastpir = pir; 
  {
    if (millis() - startTime > timer1)
      analogWrite(led1, 0);
    if (millis() - startTime > timer2)
      analogWrite(led2, 0);
    if (millis() - startTime > timer3)
      analogWrite(led3, 0);
    if (millis() - startTime > timer4)
      analogWrite(led4, 0);
  }
}

void motion2(){
  int pir2 = digitalRead(pirpin2);
  if (pir2 == HIGH && lastpir2 == LOW) 
  {
    startTime2 = millis();
    analogWrite(led5, led5val);
    digitalWrite(led6, HIGH);
  }
  lastpir2 = pir2; 
  {
    if (millis() - startTime2 > timer3)
      analogWrite(led5, 0);
    digitalWrite(led6, LOW);

  }
}

// Alarm Functions
void Alarm1(){ //5:00
  led1val = 150;
  led2val = 75;
  led3val = 0; 
  led4val = 0; 
  /*  EEPROM.write(1, 150);
   EEPROM.write(2, 100);
   EEPROM.write(3, 0);
   EEPROM.write(4, 0);
   */
}

void Alarm2(){ //8:00
  led1val = 255;
  led2val = 150;
  led3val = 255;  
  led4val = 0;
  led5val = 0;
  /* EEPROM.write(1, 0);
   EEPROM.write(2, 150);
   EEPROM.write(3, 0);
   EEPROM.write(4, 0);
   */
}
void Alarm3(){ //12:30
  led1val = 180;
  led2val = 150;
  led3val = 75;  
  led4val = 50;
  /*  EEPROM.write(1, 150);
   EEPROM.write(2, 100);
   EEPROM.write(3, 0);
   EEPROM.write(4, 0);
   */
}

void Alarm4(){ //15:00
  led1val = 100;
  led2val = 150;
  led3val = 50;  
  led4val = 11;
  led5val = 255;
  /* EEPROM.write(1, 150);
   EEPROM.write(2, 100);
   EEPROM.write(3, 0);
   EEPROM.write(4, 0);
   */
}

void Alarm5(){ //17:30
  led1val = 33;
  led2val = 75;
  led3val = 50;  
  led4val = 50;
  led5val = 100;
  /* EEPROM.write(1, 150);
   EEPROM.write(2, 100);
   EEPROM.write(3, 0);
   EEPROM.write(4, 0);
   */
}
void Alarm6(){ //00:00
  led1val = 100;
  led2val = 75;
  led3val = 0;
  led4val = 50;  
  led5val = 80;
}
/*
void Alarm7(){
 led1val = 130;
 led2val = 60;
 led3val = 30;
 led4val = 0;  
 }
 void Alarm8(){
 led1val = 100;
 led2val = 100;
 led3val = 30;
 led4val = 0;  
 }
 */