def saveScheduleData(self, p_json): """A new/changed schedule is returned. Process it and update the internal data via schedule.py """ l_json = json_tools.decode_json_unicode(p_json) l_delete = l_json['Delete'] l_schedule_ix = int(l_json['Key']) if l_delete: try: del self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except AttributeError as e: LOG.warning('Failed to delete schedule: {}, ix:{}').format( e, l_schedule_ix) return try: l_obj = self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except KeyError: l_obj = ScheduleBaseData() l_obj.Name = l_json['Name'] l_obj.Active = l_json['Active'] l_obj.Key = l_schedule_ix # l_obj.ScheduleType = l_json['ScheduleType'] l_obj.Time = l_json['Time'] l_obj.DayOfWeek = l_json['DayOfWeek'] l_obj.ScheduleMode = l_json['ScheduleMode'] # if l_obj.ScheduleType == 'Lighting': l_obj = self._save_light(l_obj, l_json) elif l_obj.ScheduleType == 'Irrigation': l_obj = self._save_irrigation(l_obj, l_json) # l_obj._DeleteFlag = l_json['Delete'] self.m_pyhouse_obj.House.Schedules[l_schedule_ix] = l_obj self.m_pyhouse_obj._APIs.House.ScheduleAPI.RestartSchedule()
def saveScheduleData(self, p_json): """A new/changed schedule is returned. Process it and update the internal data via schedule.py """ l_json = json_tools.decode_json_unicode(p_json) l_delete = l_json['Delete'] l_schedule_ix = int(l_json['Key']) if l_delete: try: del self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except AttributeError as e: LOG.warning('Failed to delete schedule: {}, ix:{}').format(e, l_schedule_ix) return try: l_obj = self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except KeyError: l_obj = ScheduleBaseData() l_obj.Name = l_json['Name'] l_obj.Active = l_json['Active'] l_obj.Key = l_schedule_ix # l_obj.ScheduleType = l_json['ScheduleType'] l_obj.Time = l_json['Time'] l_obj.DOW = l_json['DOW'] l_obj.ScheduleMode = l_json['ScheduleMode'] # if l_obj.ScheduleType == 'Lighting': l_obj = self._save_light(l_obj, l_json) elif l_obj.ScheduleType == 'Irrigation': l_obj = self._save_irrigation(l_obj, l_json) # l_obj._DeleteFlag = l_json['Delete'] self.m_pyhouse_obj.House.Schedules[l_schedule_ix] = l_obj self.m_pyhouse_obj.APIs.House.ScheduleAPI.RestartSchedule()
def _read_one_base_schedule(p_schedule_element): """Extract schedule information from a Base schedule xml element. ScheduleBaseData() """ l_obj = ScheduleBaseData() XmlConfigTools.read_base_UUID_object_xml(l_obj, p_schedule_element) l_obj.DOW = PutGetXML.get_int_from_xml(p_schedule_element, 'DayOfWeek', '127') l_obj.ScheduleMode = PutGetXML.get_text_from_xml(p_schedule_element, 'ScheduleMode', 'Default Mode') l_obj.ScheduleType = PutGetXML.get_text_from_xml(p_schedule_element, 'ScheduleType') l_obj.Time = PutGetXML.get_text_from_xml(p_schedule_element, 'Time') # if l_obj.ScheduleType == 'LightingDevice': # l_obj.ScheduleType = 'Lighting' return l_obj
def _read_one_base_schedule(p_schedule_element): """Extract schedule information from a schedule xml element. """ l_obj = ScheduleBaseData() XmlConfigTools.read_base_object_xml(l_obj, p_schedule_element) l_obj.Time = PutGetXML.get_text_from_xml(p_schedule_element, 'Time') l_obj.ScheduleType = PutGetXML.get_text_from_xml(p_schedule_element, 'ScheduleType') if l_obj.ScheduleType == 'LightingDevice': l_obj.ScheduleType = 'Lighting' try: l_obj.DOW = PutGetXML.get_int_from_xml(l_obj, 'DayOfWeek', 0x7F) except: l_obj.DOW = 0x7F try: l_obj.Mode = PutGetXML.get_int_from_xml(l_obj, 'Mode', 0) except: l_obj.Mode = 0 return l_obj
def _read_one_base_schedule(p_schedule_element): """Extract schedule information from a Base schedule xml element. ScheduleBaseData() """ l_obj = ScheduleBaseData() XmlConfigTools.read_base_object_xml(l_obj, p_schedule_element) try: l_obj.DOW = PutGetXML.get_int_from_xml(l_obj, 'DayOfWeek', 0x7F) except: l_obj.DOW = 0x7F try: l_obj.ScheduleMode = PutGetXML.get_text_from_xml( l_obj, 'ScheduleMode', 0) except: l_obj.ScheduleMode = 'Home' l_obj.ScheduleType = PutGetXML.get_text_from_xml( p_schedule_element, 'ScheduleType') if l_obj.ScheduleType == 'LightingDevice': l_obj.ScheduleType = 'Lighting' l_obj.Time = PutGetXML.get_text_from_xml(p_schedule_element, 'Time') return l_obj
def saveScheduleData(self, p_json): """A new/changed schedule is returned. Process it and update the internal data via schedule.py """ l_json = JsonUnicode().decode_json(p_json) l_delete = l_json['Delete'] l_schedule_ix = int(l_json['Key']) if l_delete: try: del self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except AttributeError as e: LOG.warning('Failed to delete schedule: {0:}, ix:{1:}').format(e, l_schedule_ix) return try: l_obj = self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except KeyError: l_obj = ScheduleBaseData() l_obj.Name = l_json['Name'] l_obj.Active = l_json['Active'] l_obj.Key = l_schedule_ix # l_obj.ScheduleType = l_json['ScheduleType'] l_obj.Time = l_json['Time'] l_obj.DOW = l_json['DOW'] print('fetched DOW {}'.format(l_obj.DOW)) l_obj.Mode = l_json['Mode'] # l_obj.Level = int(l_json['Level']) l_obj.LightName = l_json['LightName'] l_obj.Rate = l_json['Rate'] l_obj.RoomName = l_json['RoomName'] # l_obj._DeleteFlag = l_json['Delete'] self.m_pyhouse_obj.House.Schedules[l_schedule_ix] = l_obj self.m_pyhouse_obj.APIs.House.ScheduleAPI.RestartSchedule()
def saveScheduleData(self, p_json): """A new/changed schedule is returned. Process it and update the internal data via schedule.py """ l_json = JsonUnicode().decode_json(p_json) l_delete = l_json['Delete'] l_schedule_ix = int(l_json['Key']) if l_delete: try: del self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except AttributeError as e: LOG.warning('Failed to delete schedule: {0:}, ix:{1:}').format( e, l_schedule_ix) return try: l_obj = self.m_pyhouse_obj.House.Schedules[l_schedule_ix] except KeyError: l_obj = ScheduleBaseData() l_obj.Name = l_json['Name'] l_obj.Active = l_json['Active'] l_obj.Key = l_schedule_ix # l_obj.ScheduleType = l_json['ScheduleType'] l_obj.Time = l_json['Time'] l_obj.DOW = l_json['DOW'] # print('fetched DOW {}'.format(l_obj.DOW)) l_obj.ScheduleMode = l_json['ScheduleMode'] # l_obj.Level = int(l_json['Level']) l_obj.LightName = l_json['LightName'] l_obj.Rate = l_json['Rate'] l_obj.RoomName = l_json['RoomName'] # l_obj._DeleteFlag = l_json['Delete'] self.m_pyhouse_obj.House.Schedules[l_schedule_ix] = l_obj self.m_pyhouse_obj.APIs.House.ScheduleAPI.RestartSchedule()
def setUp(self, p_root): self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root) self.m_xml = SetupPyHouseObj().BuildXml(p_root) self.m_schedule_obj = ScheduleBaseData() self.m_api = scheduleXml()