Ejemplo n.º 1
0
 def read_base_device_object_xml(p_pyhouse_obj, p_obj, p_xml):
     """
     Get the BaseObject entries from the XML element.
     @param p_obj: is the object we wish to populate with data
     @param p_xml: is the element we will extract data from (including children).
     """
     try:
         p_obj.Name = PutGetXML.get_text_from_xml(p_xml, 'Name',
                                                  'Missing Name')
         p_obj.Key = PutGetXML.get_int_from_xml(p_xml, 'Key', 0)
         p_obj.Active = PutGetXML.get_bool_from_xml(p_xml, 'Active', False)
         p_obj.UUID = PutGetXML.get_uuid_from_xml(p_xml, 'UUID')
         p_obj.Comment = PutGetXML.get_text_from_xml(p_xml, 'Comment')
         p_obj.DeviceFamily = PutGetXML.get_text_from_xml(
             p_xml, 'DeviceFamily')
         p_obj.DeviceType = PutGetXML.get_int_from_xml(p_xml, 'DeviceType')
         p_obj.DeviceSubType = PutGetXML.get_int_from_xml(
             p_xml, 'DeviceSubType')
         p_obj.RoomCoords = PutGetXML.get_coords_from_xml(
             p_xml, 'RoomCoords')
         p_obj.RoomName = PutGetXML.get_text_from_xml(p_xml, 'RoomName')
         p_obj.RoomUUID = PutGetXML.get_text_from_xml(p_xml, 'RoomUUID')
     except Exception as e_err:
         LOG.error(
             'ERROR in xml_tools.read_base_obj_xml() - {}'.format(e_err))
         print('Error 111', e_err)
     return p_obj
Ejemplo n.º 2
0
 def read_interface_xml(p_controller_xml):
     l_usb = USBControllerData()
     try:
         l_usb.Product = PutGetXML.get_int_from_xml(p_controller_xml, 'Product')
         l_usb.Vendor = PutGetXML.get_int_from_xml(p_controller_xml, 'Vendor')
     except Exception as e_err:
         LOG.error('Read Interface - {0:}'.format(e_err))
     return l_usb
Ejemplo n.º 3
0
 def _read_one_lighting_schedule(p_schedule_element):
     """Extract schedule information from a schedule xml element.
     """
     l_obj = ScheduleLightData()
     l_obj.Level = PutGetXML.get_int_from_xml(p_schedule_element, 'Level')
     l_obj.LightName = PutGetXML.get_text_from_xml(p_schedule_element, 'LightName')
     l_obj.Rate = PutGetXML.get_int_from_xml(p_schedule_element, 'Rate')
     l_obj.RoomName = PutGetXML.get_text_from_xml(p_schedule_element, 'RoomName')
     return l_obj  # for testing
Ejemplo n.º 4
0
 def read_interface_xml(p_controller_xml):
     l_usb = USBControllerData()
     try:
         l_usb.Product = PutGetXML.get_int_from_xml(p_controller_xml,
                                                    'Product')
         l_usb.Vendor = PutGetXML.get_int_from_xml(p_controller_xml,
                                                   'Vendor')
     except Exception as e_err:
         LOG.error('Read Interface - {0:}'.format(e_err))
     return l_usb
Ejemplo n.º 5
0
 def _read_device_latest(p_device_obj, p_entry_xml):
     """
     """
     p_device_obj.Comment = PutGetXML.get_text_from_xml(p_entry_xml, 'Comment')
     p_device_obj.DeviceFamily = PutGetXML.get_text_from_xml(p_entry_xml, 'DeviceFamily')
     p_device_obj.DeviceType = PutGetXML.get_int_from_xml(p_entry_xml, 'DeviceType')
     p_device_obj.DeviceSubType = PutGetXML.get_int_from_xml(p_entry_xml, 'DeviceSubType')
     p_device_obj.LightingType = PutGetXML.get_text_from_xml(p_entry_xml, 'LightingType')
     p_device_obj.RoomCoords = PutGetXML.get_coords_from_xml(p_entry_xml, 'RoomCoords')
     p_device_obj.RoomName = PutGetXML.get_text_from_xml(p_entry_xml, 'RoomName')
     return p_device_obj
Ejemplo n.º 6
0
 def read_interface_xml(p_controller_entry):
     l_serial = SerialControllerData()
     l_serial.BaudRate = PutGetXML.get_int_from_xml(p_controller_entry, "BaudRate", 19200)
     l_serial.ByteSize = PutGetXML.get_int_from_xml(p_controller_entry, "ByteSize", 8)
     l_serial.DsrDtr = PutGetXML.get_bool_from_xml(p_controller_entry, "DsrDtr", False)
     l_serial.Parity = PutGetXML.get_text_from_xml(p_controller_entry, "Parity", "N")
     l_serial.RtsCts = PutGetXML.get_bool_from_xml(p_controller_entry, "RtsCts", False)
     l_serial.StopBits = PutGetXML.get_float_from_xml(p_controller_entry, "StopBits", 1.0)
     l_serial.Timeout = PutGetXML.get_float_from_xml(p_controller_entry, "Timeout", 1.0)
     l_serial.XonXoff = PutGetXML.get_bool_from_xml(p_controller_entry, "XonXoff", False)
     return l_serial
Ejemplo n.º 7
0
 def ReadXml(p_device_obj, p_in_xml):
     """
     @param p_in_xml: is the e-tree XML house object
     @param p_house: is the text name of the House.
     @return: a dict of the entry to be attached to a house object.
     """
     l_obj = UPBData()
     l_obj.UPBAddress = PutGetXML.get_int_from_xml(p_in_xml, 'UPBAddress', 255)
     l_obj.UPBNetworkID = PutGetXML.get_int_from_xml(p_in_xml, 'UPBNetworkID')
     l_obj.UPBPassword = PutGetXML.get_int_from_xml(p_in_xml, 'UPBPassword')
     stuff_new_attrs(p_device_obj, l_obj)
     return l_obj  # for testing
Ejemplo n.º 8
0
 def ReadXml(p_device_obj, p_in_xml):
     """
     @param p_in_xml: is the e-tree XML house object
     @param p_house: is the text name of the House.
     @return: a dict of the entry to be attached to a house object.
     """
     l_obj = UPBData()
     l_obj.UPBAddress = PutGetXML.get_int_from_xml(p_in_xml, 'UPBAddress',
                                                   255)
     l_obj.UPBNetworkID = PutGetXML.get_int_from_xml(
         p_in_xml, 'UPBNetworkID')
     l_obj.UPBPassword = PutGetXML.get_int_from_xml(p_in_xml, 'UPBPassword')
     stuff_new_attrs(p_device_obj, l_obj)
     return l_obj  # for testing
Ejemplo n.º 9
0
 def _read_insteon(p_in_xml):
     l_insteon_obj = InsteonData()
     try:
         l_insteon_obj.InsteonAddress = conversions.dotted_hex2int(PutGetXML.get_text_from_xml(p_in_xml, 'InsteonAddress', '99.88.77'))
     except AttributeError:
         l_insteon_obj.InsteonAddress = conversions.dotted_hex2int(PutGetXML.get_text_from_xml(p_in_xml, 'Address', '99.88.77'))
     try:
         l_insteon_obj.DevCat = conversions.dotted_hex2int(PutGetXML.get_text_from_xml(p_in_xml, 'DevCat', 'A1.B2'))
         l_insteon_obj.GroupList = PutGetXML.get_text_from_xml(p_in_xml, 'GroupList')
         l_insteon_obj.GroupNumber = PutGetXML.get_int_from_xml(p_in_xml, 'GroupNumber', 0)
         l_insteon_obj.ProductKey = Xml._read_product_key(p_in_xml)
         l_insteon_obj.Version = PutGetXML.get_int_from_xml(p_in_xml, 'Version', 1)
     except Exception as e_err:
         LOG.error('ERROR: {}'.format(e_err))
     return l_insteon_obj
Ejemplo n.º 10
0
 def _read_one_lighting_schedule(p_schedule_element):
     """Extract schedule information from a schedule xml element.
     """
     l_obj = ScheduleLightData()
     l_obj = Xml._read_one_base_schedule(p_schedule_element)
     l_obj.Level = PutGetXML.get_int_from_xml(p_schedule_element, 'Level')
     l_obj.LightName = PutGetXML.get_text_from_xml(p_schedule_element,
                                                   'LightName')
     l_obj.LightUUID = PutGetXML.get_uuid_from_xml(p_schedule_element,
                                                   'LightUUID')
     l_obj.Rate = PutGetXML.get_int_from_xml(p_schedule_element, 'Rate')
     l_obj.RoomName = PutGetXML.get_text_from_xml(p_schedule_element,
                                                  'RoomName')
     l_obj.RoomUUID = PutGetXML.get_uuid_from_xml(p_schedule_element,
                                                  'RoomUUID')
     return l_obj  # for testing
Ejemplo n.º 11
0
 def read_internet_xml(self, p_house_obj, p_house_xml):
     """
     """
     p_house_obj.Internet = InternetData()
     l_sect = p_house_xml.find('Internet')
     try:
         self.m_external_ip = PutGetXML.get_text_from_xml(p_house_xml, 'ExternalIP')
         self.m_external_delay = PutGetXML.get_int_from_xml(l_sect, 'ExternalDelay')
     except AttributeError:
         LOG.error('internet section missing - using defaults.')
         self.m_external_ip = None
         self.m_external_url = None
         self.m_external_delay = 600
     # Design change - one of these two should work
     try:
         self.m_external_url = PutGetXML.get_text_from_xml(l_sect, 'ExternalUrl')
     except:
         self.m_external_url = PutGetXML.get_text_from_xml(l_sect, 'UrlExternalIP')
     p_house_obj.Internet.ExternalIP = self.m_external_ip
     p_house_obj.Internet.ExternalUrl = self.m_external_url
     p_house_obj.Internet.ExternalDelay = self.m_external_delay
     LOG.debug("Got external IP params.  URL:{0:}, Delay:{1:}".format(self.m_external_url, self.m_external_delay))
     try:
         l_list = l_sect.iterfind('DynamicDNS')
     except AttributeError:
         l_list = []
     l_count = 0
     for l_entry in l_list:
         l_dyndns = self.extract_dyn_dns(l_entry)
         l_dyndns.Key = l_count  # Renumber
         p_house_obj.Internet.DynDns[l_count] = l_dyndns
         l_count += 1
     LOG.info('Loaded UpdateUrl:{0:}, Delay:{1:}'.format(self.m_external_url, self.m_external_delay))
     return p_house_obj.Internet
Ejemplo n.º 12
0
 def _read_port(p_xml):
     """
     @param p_xml: is the web section
     @return: the Port Number
     """
     l_port = PutGetXML.get_int_from_xml(p_xml, 'WebPort', 8580)
     return l_port
Ejemplo n.º 13
0
 def read_interface_xml(p_controller_xml):
     l_ethernet = EthernetControllerData()
     l_ethernet.PortNumber = PutGetXML.get_int_from_xml(
         p_controller_xml, 'PortNumber')
     l_ethernet.Protocol = PutGetXML.get_text_from_xml(
         p_controller_xml, 'Protocol')
     return l_ethernet
Ejemplo n.º 14
0
 def _read_port(p_xml):
     """
     @param p_xml: is the web section
     @return: the Port Number
     """
     l_port = PutGetXML.get_int_from_xml(p_xml, 'WebPort', 8580)
     return l_port
Ejemplo n.º 15
0
 def _read_device_latest(p_device_obj, p_entry_xml):
     """
     """
     p_device_obj.Comment = PutGetXML.get_text_from_xml(
         p_entry_xml, 'Comment')
     p_device_obj.DeviceFamily = PutGetXML.get_text_from_xml(
         p_entry_xml, 'DeviceFamily')
     p_device_obj.DeviceType = PutGetXML.get_int_from_xml(
         p_entry_xml, 'DeviceType')
     p_device_obj.DeviceSubType = PutGetXML.get_int_from_xml(
         p_entry_xml, 'DeviceSubType')
     p_device_obj.LightingType = PutGetXML.get_text_from_xml(
         p_entry_xml, 'LightingType')
     p_device_obj.RoomCoords = PutGetXML.get_coords_from_xml(
         p_entry_xml, 'RoomCoords')
     p_device_obj.RoomName = PutGetXML.get_text_from_xml(
         p_entry_xml, 'RoomName')
     return p_device_obj
Ejemplo n.º 16
0
 def extract_dyn_dns(self, p_internet_xml):
     l_dyndns_obj = DynDnsData()
     self.read_base_object_xml(l_dyndns_obj, p_internet_xml)
     l_dyndns_obj.UpdateInterval = PutGetXML.get_int_from_xml(p_internet_xml, 'UpdateInterval')
     l_dyndns_obj.UpdateUrl = PutGetXML.get_text_from_xml(p_internet_xml, 'UpdateUrl')
     if g_debug >= 1:
         LOG.debug("internet.extract_dyn_dns() - Name:{0:}, UpdateInterval:{1:}, UpdateUrl:{2:};".format(
                         l_dyndns_obj.Name, l_dyndns_obj.UpdateInterval, l_dyndns_obj.UpdateUrl))
     return l_dyndns_obj
Ejemplo n.º 17
0
 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
Ejemplo n.º 18
0
 def read_interface_xml(p_controller_entry):
     l_serial = SerialControllerData()
     l_serial.BaudRate = PutGetXML.get_int_from_xml(p_controller_entry,
                                                    'BaudRate', 19200)
     l_serial.ByteSize = PutGetXML.get_int_from_xml(p_controller_entry,
                                                    'ByteSize', 8)
     l_serial.DsrDtr = PutGetXML.get_bool_from_xml(p_controller_entry,
                                                   'DsrDtr', False)
     l_serial.Parity = PutGetXML.get_text_from_xml(p_controller_entry,
                                                   'Parity', 'N')
     l_serial.RtsCts = PutGetXML.get_bool_from_xml(p_controller_entry,
                                                   'RtsCts', False)
     l_serial.StopBits = PutGetXML.get_float_from_xml(
         p_controller_entry, 'StopBits', 1.0)
     l_serial.Timeout = PutGetXML.get_float_from_xml(
         p_controller_entry, 'Timeout', 1.0)
     l_serial.XonXoff = PutGetXML.get_bool_from_xml(p_controller_entry,
                                                    'XonXoff', False)
     return l_serial
Ejemplo n.º 19
0
 def _read_one_zone(p_xml):
     """
     @param p_xml: XML information for one Zone.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = IrrigationZoneData()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     l_obj.Comment = PutGetXML.get_text_from_xml(p_xml, 'Comment')
     l_obj.Duration = PutGetXML.get_int_from_xml(p_xml, 'Duration', 0)
     #  Expand with much more control data
     return l_obj
Ejemplo n.º 20
0
 def _read_one_zone(p_xml):
     """
     @param p_xml: XML information for one Zone.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = IrrigationZoneData()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     l_obj.Comment = PutGetXML.get_text_from_xml(p_xml, 'Comment')
     l_obj.Duration = PutGetXML.get_int_from_xml(p_xml, 'Duration', 0)
     # Expand with much more control data
     return l_obj
Ejemplo n.º 21
0
 def read_base_device_object_xml(p_obj, p_xml):
     """
     Get the BaseObject entries from the XML element.
     @param p_obj: is the object we wish to populate with data
     @param p_xml: is the element we will extract data from (including children).
     """
     try:
         p_obj.Name = PutGetXML.get_text_from_xml(p_xml, "Name", "Missing Name")
         p_obj.Key = PutGetXML.get_int_from_xml(p_xml, "Key", 0)
         p_obj.Active = PutGetXML.get_bool_from_xml(p_xml, "Active", False)
         p_obj.Comment = PutGetXML.get_text_from_xml(p_xml, "Comment")
         p_obj.DeviceFamily = PutGetXML.get_text_from_xml(p_xml, "DeviceFamily")
         p_obj.DeviceType = PutGetXML.get_int_from_xml(p_xml, "DeviceType")
         p_obj.DeviceSubType = PutGetXML.get_int_from_xml(p_xml, "DeviceSubType")
         p_obj.RoomCoords = PutGetXML.get_coords_from_xml(p_xml, "RoomCoords")
         p_obj.RoomName = PutGetXML.get_text_from_xml(p_xml, "RoomName")
         p_obj.UUID = PutGetXML.get_uuid_from_xml(p_xml, "UUID")
     except Exception as e_err:
         LOG.warn("ERROR in xml_tools.read_base_obj_xml() - {}".format(e_err))
         print(e_err)
     return p_obj
Ejemplo n.º 22
0
 def extract_dyn_dns(self, p_internet_xml):
     l_dyndns_obj = DynDnsData()
     self.read_base_object_xml(l_dyndns_obj, p_internet_xml)
     l_dyndns_obj.UpdateInterval = PutGetXML.get_int_from_xml(
         p_internet_xml, 'UpdateInterval')
     l_dyndns_obj.UpdateUrl = PutGetXML.get_text_from_xml(
         p_internet_xml, 'UpdateUrl')
     if g_debug >= 1:
         LOG.debug(
             "internet.extract_dyn_dns() - Name:{0:}, UpdateInterval:{1:}, UpdateUrl:{2:};"
             .format(l_dyndns_obj.Name, l_dyndns_obj.UpdateInterval,
                     l_dyndns_obj.UpdateUrl))
     return l_dyndns_obj
Ejemplo n.º 23
0
 def _read_one_node_xml(p_node_xml):
     """
     Read the existing XML file (if it exists) and get the node info.
     """
     l_node_obj = NodeData()
     XmlConfigTools.read_base_object_xml(l_node_obj, p_node_xml)
     l_node_obj.ConnectionAddr_IPv4 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV4')
     l_node_obj.ConnectionAddr_IPv6 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV6')
     l_node_obj.NodeRole = PutGetXML.get_int_from_xml(p_node_xml, 'NodeRole')
     try:
         l_node_obj.NodeInterfaces = Xml._read_interfaces_xml(p_node_xml.find('InterfaceSection'))
     except AttributeError as e_err:
         LOG.error('ERROR OneNodeRead error {}'.format(e_err))
     return l_node_obj
Ejemplo n.º 24
0
 def _read_one_broker(p_xml):
     """
     @param p_xml: XML information for one Broker.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = MqttBrokerData()
     try:
         XmlConfigTools.read_base_object_xml(l_obj, p_xml)
         l_obj.BrokerAddress = PutGetXML.get_text_from_xml(p_xml, 'BrokerAddress')
         l_obj.BrokerPort = PutGetXML.get_int_from_xml(p_xml, 'BrokerPort')
         l_obj.UserName = PutGetXML.get_text_from_xml(p_xml, 'BrokerUser')
         l_obj.Password = PutGetXML.get_text_from_xml(p_xml, 'BrokerPassword')
     except Exception:
         pass
     return l_obj
Ejemplo n.º 25
0
 def _read_one_broker(p_xml):
     """
     @param p_xml: XML information for one Broker.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = MqttBrokerData()
     try:
         XmlConfigTools.read_base_object_xml(l_obj, p_xml)
         l_obj.BrokerAddress = PutGetXML.get_text_from_xml(p_xml, 'BrokerAddress')
         l_obj.BrokerPort = PutGetXML.get_int_from_xml(p_xml, 'BrokerPort')
         l_obj.UserName = PutGetXML.get_text_from_xml(p_xml, 'BrokerUser')
         l_obj.Password = PutGetXML.get_text_from_xml(p_xml, 'BrokerPassword')
     except Exception:
         pass
     return l_obj
Ejemplo n.º 26
0
 def read_internet_xml(self, p_house_obj, p_house_xml):
     """
     """
     p_house_obj.Internet = InternetData()
     l_sect = p_house_xml.find('Internet')
     try:
         self.m_external_ip = PutGetXML.get_text_from_xml(
             p_house_xml, 'ExternalIP')
         self.m_external_delay = PutGetXML.get_int_from_xml(
             l_sect, 'ExternalDelay')
     except AttributeError:
         LOG.error('internet section missing - using defaults.')
         self.m_external_ip = None
         self.m_external_url = None
         self.m_external_delay = 600
     # Design change - one of these two should work
     try:
         self.m_external_url = PutGetXML.get_text_from_xml(
             l_sect, 'ExternalUrl')
     except:
         self.m_external_url = PutGetXML.get_text_from_xml(
             l_sect, 'UrlExternalIP')
     p_house_obj.Internet.ExternalIP = self.m_external_ip
     p_house_obj.Internet.ExternalUrl = self.m_external_url
     p_house_obj.Internet.ExternalDelay = self.m_external_delay
     LOG.debug("Got external IP params.  URL:{0:}, Delay:{1:}".format(
         self.m_external_url, self.m_external_delay))
     try:
         l_list = l_sect.iterfind('DynamicDNS')
     except AttributeError:
         l_list = []
     l_count = 0
     for l_entry in l_list:
         l_dyndns = self.extract_dyn_dns(l_entry)
         l_dyndns.Key = l_count  # Renumber
         p_house_obj.Internet.DynDns[l_count] = l_dyndns
         l_count += 1
     LOG.info('Loaded UpdateUrl:{0:}, Delay:{1:}'.format(
         self.m_external_url, self.m_external_delay))
     return p_house_obj.Internet
Ejemplo n.º 27
0
    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
Ejemplo n.º 28
0
 def _read_light_data(_p_pyhouse_obj, p_obj, p_xml):
     p_obj.CurLevel = PutGetXML.get_int_from_xml(p_xml, 'CurLevel', 0)
     p_obj.IsDimmable = PutGetXML.get_bool_from_xml(p_xml, 'IsDimmable', False)
     return p_obj  # for testing
Ejemplo n.º 29
0
 def read_interface_xml(p_controller_xml):
     l_ethernet = EthernetControllerData()
     l_ethernet.PortNumber = PutGetXML.get_int_from_xml(p_controller_xml, 'PortNumber')
     l_ethernet.Protocol = PutGetXML.get_text_from_xml(p_controller_xml, 'Protocol')
     return l_ethernet
Ejemplo n.º 30
0
 def _read_light_data(p_obj, p_xml, p_version):
     p_obj.CurLevel = PutGetXML.get_int_from_xml(p_xml, 'CurLevel', 0)
     p_obj.IsDimmable = PutGetXML.get_bool_from_xml(p_xml, 'IsDimmable', False)
     return p_obj  #  for testing