function get_NextScheduledDate($CircleId) { $ProgramId = GetValue(get_ControlId(c_Control_Program, $CircleId)); $ControlIdLastDate = get_ControlId(c_Control_LastDate, $CircleId); $ControlIdNextTime = get_ControlId(c_Control_NextTime, $CircleId); switch ($ProgramId) { case c_ProgramId_EveryDay: $date = get_DateTime($ControlIdLastDate, c_Format_LastDate, $ControlIdNextTime, c_Format_NextTime)+1*24*60*60; break; case c_ProgramId_Every2Day: $date = get_DateTime($ControlIdLastDate, c_Format_LastDate, $ControlIdNextTime, c_Format_NextTime)+2*24*60*60; break; case c_ProgramId_Every3Day: $date = get_DateTime($ControlIdLastDate, c_Format_LastDate, $ControlIdNextTime, c_Format_NextTime)+3*24*60*60; break; case c_ProgramId_Every4Day: $date = get_DateTime($ControlIdLastDate, c_Format_LastDate, $ControlIdNextTime, c_Format_NextTime)+4*24*60*60; break; case c_ProgramId_MonWedFri: $date = strtotime('next monday'); if (strtotime('next wednesday')<$date) { $date=strtotime('next wednesday');} if (strtotime('next friday')<$date) { $date=strtotime('next friday');} break; case c_ProgramId_MonTur: $date = strtotime('next monday'); if (strtotime('next thursday')<$date) { $date=strtotime('next thursday');} break; case c_ProgramId_Sunday: $date = strtotime('next sunday'); break; case c_ProgramId_Monday: $date = strtotime('next monday'); break; case c_ProgramId_Tuesday: $date = strtotime('next tuesday'); break; case c_ProgramId_Wednesday: $date = strtotime('next wednesday'); break; case c_ProgramId_Thursday: $date = strtotime('next thursday'); break; case c_ProgramId_Friday: $date = strtotime('next friday'); break; case c_ProgramId_Saturday: $date = strtotime('next saturday'); break; case c_ProgramId_Manual: return false; default: IPSLogger_Err(__file__, "Unknown ProgramId $ProgramId"); Exit; } if ($date<=time()) { $date = strtotime('next day'); } return Date(c_Format_NextDate, $date); }
* */ /** @}*/ include_once "IPSWatering.inc.php"; $CircleName = IPS_GetName($_IPS['EVENT']); $categoryId_Circles = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.modules.IPSWatering.WaterCircles'); $CircleId = IPS_GetCategoryIDByName($CircleName, $categoryId_Circles); $ControlId = get_ControlId(c_Control_Active, $CircleId); $WaterConfig = get_WateringConfiguration(); // Wert von Bewässerungs Sensor ermitteln $SensorLimit = GetValue(get_ControlId(c_Control_Sensor, $CircleId)); $SensorValue = false; if (array_key_exists(c_Property_Sensor, $WaterConfig[$CircleName])) { $SensorPath = $WaterConfig[$CircleName][c_Property_Sensor]; if ($SensorPath <> '') { $SensorId = IPSUtil_ObjectIDByPath($SensorPath); if ($SensorId===false) { IPSLogger_Wrn(__file__, "Specified Sensor '$SensorPath' could NOT be found"); } else { $SensorValue = GetValue($SensorId); } } } if ($SensorValue===false and $SensorLimit>0) { IPSLogger_Err(__file__, "Rainfall Sensor NOT defined for Circle '$CircleName'");