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 _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