def _read_base_device(p_pyhouse_obj, p_xml):
     """
     @param p_xml: is the XML Element for the entire device
     @param p_version: is some helper data to get the correct information from the config file.
     @return: a Controller data object with the base info filled in
     """
     l_obj = ControllerData()  # Create an empty controller object.
     l_obj = deviceXML.read_base_device_object_xml(p_pyhouse_obj, l_obj, p_xml)
     l_obj.DeviceType = 1
     l_obj.DeviceSubType = 2
     return l_obj
 def test_04_MessageObj(self):
     """ Add an object.
     """
     l_data = ControllerData()
     l_data.Name = 'Mqtt Schedule Object'
     l_data.LightName = 'Test Light'
     l_data.RoomName = 'Living Room'
     l_data.Comment = 'The formal Living Room.'
     l_message = _make_message(self.m_pyhouse_obj, l_data)
     # print(PrettyFormatAny.form(l_message, 'C2-04-A - Message', 80))
     self.assertEqual(self.jsonPair(l_message, 'Sender'), self.m_pyhouse_obj.Computer.Name)
     self.assertSubstring('DateTime', l_message)
     self.assertEqual(self.jsonPair(l_message, 'Name'), l_data.Name)
 def saveControllerData(self, p_json):
     """A new/changed controller is returned.  Process it and update the internal data via controller.py
     """
     l_json = json_tools.decode_json_unicode(p_json)
     l_ix = int(l_json['Key'])
     l_delete = l_json['Delete']
     if l_delete:
         try:
             del self.m_pyhouse_obj.House.Lighting.Controllers[l_ix]
         except AttributeError:
             LOG.error("web_controllers - Failed to delete - JSON: {}".FORMAT(l_json))
         return
     l_obj = ControllerData()
     try:
         l_obj = self.m_pyhouse_obj.House.Lighting.Controllers[l_ix]
     except KeyError:
         LOG.warning('Creating a new controller {}'.format(l_ix))
     web_utils.get_base_info(l_obj, l_json)
     l_obj.Comment = l_json['Comment']
     l_obj.DeviceFamily = l_json['DeviceFamily']
     l_obj.DeviceType = 1
     l_obj.DeviceSubType = 2
     l_obj.InterfaceType = l_json['InterfaceType']
     l_obj.Port = l_json['Port']
     if l_obj.InterfaceType == 'Serial':
         l_obj.BaudRate = l_json['BaudRate']
     web_family.get_family_json_data(l_obj, l_json)
     web_utils.get_room_info(l_obj, l_json)
     self.m_pyhouse_obj.House.Lighting.Controllers[l_ix] = l_obj
     LOG.info('Controller Added - {}'.format(l_obj.Name))
Beispiel #4
0
 def test_02_Write(self):
     l_list = list(self.m_xml.controller_sect.iterfind('Controller'))
     l_xml = l_list[1]
     l_dev = ControllerData()
     upbXML.ReadXml(l_dev, l_xml)
     l_out = ET.Element('Testing')
     upbXML.WriteXml(l_out, l_dev)
Beispiel #5
0
 def setUp(self, p_root):
     self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root)
     self.m_xml = SetupPyHouseObj().BuildXml(p_root)
     self.m_button_obj = ButtonData()
     self.m_controller_obj = ControllerData()
     self.m_light_obj = LightData()
     self.m_api = LightingCoreAPI()
Beispiel #6
0
 def test_01_Read(self):
     l_list = list(self.m_xml.controller_sect.iterfind('Controller'))
     l_xml = l_list[1]
     l_dev = ControllerData()
     upbXML.ReadXml(l_dev, l_xml)
     self.assertEqual(l_dev.UPBAddress, int(TESTING_UPB_ADDRESS))
     self.assertEqual(l_dev.UPBNetworkID, int(TESTING_UPB_NETWORK))
     self.assertEqual(l_dev.UPBPassword, int(TESTING_UPB_PASSWORD))
 def setUp(self, p_root):
     self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root)
     self.m_xml = SetupPyHouseObj().BuildXml(p_root)
     self.m_family = familyAPI(self.m_pyhouse_obj).LoadFamilyTesting()
     self.m_pyhouse_obj.House.FamilyData = self.m_family
     self.m_api = controllerAPI()
     self.m_controller_obj = ControllerData()
     self.m_version = '1.4.0'
Beispiel #8
0
 def test_2_BaseController(self):
     """ Read in the xml file and fill in the lights
     """
     l_obj = ControllerData()
     l_base = self.m_api.read_base_device_object_xml(
         self.m_pyhouse_obj, l_obj, self.m_xml.controller)
     l_xml = self.m_api.write_base_device_object_xml('Light', l_base)
     self.assertEqual(l_xml.attrib['Name'], 'Insteon Serial Controller')
     self.assertEqual(l_xml.attrib['Key'], '0')
     self.assertEqual(l_xml.attrib['Active'], 'True')
Beispiel #9
0
 def test_01_Interface(self):
     l_ctlr = self.m_xml.controller_sect[1]
     l_device = ControllerData()
     l_obj = lightingcoreAPI.read_core_lighting_xml(l_device, l_ctlr,
                                                    self.m_version)
     print(PrettyFormatAny.form(l_obj, 'L L'))
     L_interface = usbXML.read_interface_xml(l_ctlr)
     stuff_new_attrs(l_obj, L_interface)
     print(PrettyFormatAny.form(l_obj, 'L L'))
     self.assertEqual(l_obj.Vendor, int(TESTING_USB_VENDOR))
     self.assertEqual(l_obj.Product, int(TESTING_USB_PRODUCT))
Beispiel #10
0
 def _read_base_device(p_pyhouse_obj, p_xml):
     """
     @param p_xml: is the XML Element for the entire device
     @param p_version: is some helper data to get the correct information from the config file.
     @return: a Controller data object with the base info filled in
     """
     l_obj = ControllerData()  # Create an empty controller object.
     l_obj = LightingCoreAPI.read_core_lighting_xml(p_pyhouse_obj, l_obj,
                                                    p_xml)
     #  l_obj.DeviceSubType = 1
     return l_obj
Beispiel #11
0
 def test_02_BaseController(self):
     """ Read in the xml file and fill in the lights
     """
     l_obj = ControllerData()
     l_base = self.m_api.read_base_device_object_xml(
         self.m_pyhouse_obj, l_obj, self.m_xml.controller)
     self.assertEqual(l_base.Name, 'Insteon Serial Controller')
     self.assertEqual(l_base.Key, 0, 'Bad Key')
     self.assertEqual(l_base.Active, True)
     self.assertEqual(l_base.Comment, TESTING_DEVICE_COMMENT)
     self.assertEqual(l_base.RoomCoords.X_Easting,
                      float(TESTING_DEVICE_ROOM_X))
     self.assertEqual(l_base.DeviceFamily, TESTING_DEVICE_FAMILY_INSTEON)
     self.assertEqual(l_base.RoomName, TESTING_DEVICE_ROOM_NAME)
Beispiel #12
0
 def _read_one_controller_xml(p_pyhouse_obj, p_xml):
     """
     Load all the xml for one controller.
     Base Device, Controller, Family and Interface
     """
     try:
         l_obj = Utility._read_base_device(p_pyhouse_obj, p_xml)
         Utility._read_controller_data(p_pyhouse_obj, l_obj, p_xml)
         Utility._read_interface_data(p_pyhouse_obj, l_obj, p_xml)
         Utility._read_family_data(p_pyhouse_obj, l_obj, p_xml)
     except Exception as e_err:
         LOG.error('ERROR - ReadOneController - {0:}'.format(e_err))
         l_obj = ControllerData()
     return l_obj
Beispiel #13
0
 def test_01_Interface(self):
     l_ctlr = self.m_xml.controller_sect[1]
     l_device = ControllerData()
     l_obj = lightingcoreAPI.read_core_lighting_xml(l_device, l_ctlr,
                                                    self.m_version)
     L_interface = usbXML.read_interface_xml(l_ctlr)
     stuff_new_attrs(l_obj, L_interface)
     #
     l_xml = lightingcoreAPI.write_core_lighting_xml(
         'TestController', l_obj)
     usbXML.write_interface_xml(l_xml, l_obj)
     print(PrettyFormatAny.form(l_xml, 'XML'))
     self.assertEqual(l_xml.attrib['Name'], TESTING_CONTROLLER_NAME_1)
     self.assertEqual(l_xml.attrib['Key'], TESTING_CONTROLLER_KEY_1)
     self.assertEqual(l_xml.attrib['Active'], TESTING_CONTROLLER_ACTIVE_1)
     self.assertEqual(l_xml.find('Vendor').text, TESTING_USB_VENDOR)
     self.assertEqual(l_xml.find('Product').text, TESTING_USB_PRODUCT)
Beispiel #14
0
 def test_04_MessageObj(self):
     """ Add an object.
     """
     l_data = ControllerData()
     l_data.Name = 'Mqtt Schedule Object'
     l_data.LightName = 'Test Light'
     l_data.RoomName = 'Living Room'
     l_data.Comment = 'The formal Living Room.'
     l_message = Util._make_message(self.m_pyhouse_obj, l_data)
     #  print(PrettyFormatAny.form(l_message, 'Message', 80))
     self.assertEqual(self.jsonPair(l_message, 'Sender'),
                      self.m_pyhouse_obj.Computer.Name)
     self.assertSubstring('DateTime', l_message)
     self.assertEqual(self.jsonPair(l_message, 'Name'), l_data.Name)
Beispiel #15
0
 def _fake_params(self):
     l_obj = ControllerData()
     l_obj.BaudRate = 19200
     return l_obj
Beispiel #16
0
 def setUp(self):
     self.m_controller_obj = ControllerData()
     self.m_controller_obj._Queue = Queue.Queue(300)
Beispiel #17
0
 def setUp(self):
     self.m_api = DecodeResponses()
     self.m_controller_obj = ControllerData()
     self.m_controller_obj._Message = TEST_MESSAGE
Beispiel #18
0
 def setUp(self, p_root):
     self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root)
     self.m_xml = SetupPyHouseObj().BuildXml(p_root)
     self.m_controller_obj = ControllerData()
     self.m_controller_obj.InterfaceType = 'Serial'
     self.m_version = '1.4.0'
Beispiel #19
0
 def setUp(self, p_root):
     self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root)
     self.m_xml = SetupPyHouseObj().BuildXml(p_root)
     self.m_obj = ControllerData()
     self.inst = Util
 def setUp(self):
     SetupMixin.setUp(self, ET.fromstring(XML_LONG))
     self.m_ctrlr = ControllerData()
Beispiel #21
0
 def saveControllerData(self, p_json):
     """A new/changed controller is returned.  Process it and update the internal data via controller.py
     """
     l_json = json_tools.decode_json_unicode(p_json)
     l_controller_ix = int(l_json['Key'])
     l_delete = l_json['Delete']
     if l_delete:
         try:
             del self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix]
         except AttributeError:
             LOG.error("web_controllers - Failed to delete - JSON: {}".FORMAT(l_json))
         return
     try:
         l_obj = self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix]
     except KeyError:
         l_obj = ControllerData()
     l_obj.Name = l_json['Name']
     l_obj.Active = l_json['Active']
     l_obj.Key = l_controller_ix
     l_obj.Comment = l_json['Comment']
     l_obj.RoomCoords = l_json['RoomCoords']
     l_obj.IsDimmable = l_json['IsDimmable']
     l_obj.DeviceFamily = l_json['DeviceFamily']
     l_obj.RoomName = l_json['RoomName']
     l_obj.LightingType = l_json['LightingType']
     l_obj.UUID = l_json['UUID']
     l_obj.InterfaceType = l_json['InterfaceType']
     l_obj.Port = l_json['Port']
     if l_obj.DeviceFamily == 'Insteon':
         Insteon_utils.Util().get_json_data(l_obj, l_json)
     elif l_obj.DeviceFamily == 'UPB':
         l_obj.UPBAddress = l_json['UPBAddress']
         l_obj.UPBPassword = l_json['UPBPassword']
         l_obj.UPBNetworkID = l_json['UPBNetworkID']
     if l_obj.InterfaceType == 'Serial':
         l_obj.BaudRate = l_json['BaudRate']
     self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] = l_obj
     LOG.info('Controller Added - {}'.format(l_obj))
 def setUp(self):
     SetupMixin.setUp(self, ET.fromstring(XML_LONG))
     self.m_pyhouse_obj.House.FamilyData = familyAPI().build_lighting_family_info()
     self.m_controller_obj = ControllerData()
Beispiel #23
0
 def _fake_params(self):
     l_obj = ControllerData()
     l_obj.BaudRate = 19200
     return l_obj
Beispiel #24
0
 def saveControllerData(self, p_json):
     """A new/changed controller is returned.  Process it and update the internal data via controller.py
     """
     l_json = json_tools.decode_json_unicode(p_json)
     l_controller_ix = int(l_json['Key'])
     l_delete = l_json['Delete']
     if l_delete:
         try:
             del self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix]
         except AttributeError:
             print("web_controllers - Failed to delete - JSON: {0:}".FORMAT(l_json))
         return
     try:
         l_obj = self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix]
     except KeyError:
         l_obj = ControllerData()
     l_obj.Name = l_json['Name']
     l_obj.Active = l_json['Active']
     l_obj.Key = l_controller_ix
     l_obj.Comment = l_json['Comment']
     l_obj.RoomCoords = l_json['RoomCoords']
     l_obj.IsDimmable = l_json['IsDimmable']
     l_obj.DeviceFamily = l_json['DeviceFamily']
     l_obj.RoomName = l_json['RoomName']
     l_obj.LightingType = l_json['LightingType']
     l_obj.UUID = l_json['UUID']
     l_obj.InterfaceType = l_json['InterfaceType']
     l_obj.Port = l_json['Port']
     if l_obj.DeviceFamily == 'Insteon':
         Insteon_utils.Util().get_json_data(l_obj, l_json)
     elif l_obj.DeviceFamily == 'UPB':
         l_obj.UPBAddress = l_json['UPBAddress']
         l_obj.UPBPassword = l_json['UPBPassword']
         l_obj.UPBNetworkID = l_json['UPBNetworkID']
     if l_obj.InterfaceType == 'Serial':
         l_obj.BaudRate = l_json['BaudRate']
     self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] = l_obj
     LOG.info('Controller Added - {}'.format(l_obj))
Beispiel #25
0
 def setUp(self, p_root):
     self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root)
     self.m_xml = SetupPyHouseObj().BuildXml(p_root)
     self.m_controller_obj = ControllerData()
     self.m_ctlr_api = controllerAPI()
     self.m_version = '1.4.0'