Closing a solenoid after a set time interval ends

  TimeInputParam t(param);
  L1_wateringTime = t.getStartHour() * 3600 + t.getStartMinute() * 60 + t.getStartSecond();

What type does t.getStartHour() return? If it is an int, and it is 10:00 or later, the first multiply will overflow.

Why are all your time variables long? Do you expect to start watering yesterday? Time variables should ALWAYS be unsigned long, unless time runs backwards in your part of the universe.