Пример #1
0
 def test_pi16_QMOD(self):
     """ test the decode of a QMOD response"""
     protocol = pi()
     response = b"(B\x9c\xaf\r"
     command = "QMOD"
     expected = {
         "raw_response": ["(B\x9c¯\r", ""],
         "_command": "QMOD",
         "_command_description": "Operational mode query",
         "Device Mode": ["Inverter (Battery) Mode", ""],
     }
     result = protocol.decode(response, command)
     # print(result)
     self.assertEqual(result, expected)
Пример #2
0
 def test_pi16_QPI(self):
     """ test the decode of a QPI response"""
     protocol = pi()
     response = b"(PI16\x9c\xaf\r"
     command = "QPI"
     expected = {
         "raw_response": ["(PI16\x9c¯\r", ""],
         "_command": "QPI",
         "_command_description": "Device Protocol Version inquiry",
         "Protocol Version": ["PI16", ""],
     }
     result = protocol.decode(response, command)
     # print(result)
     self.assertEqual(result, expected)
Пример #3
0
 def test_pi16_QMOD_badkey(self):
     """ test the decode of a QMOD response - with a bad key"""
     protocol = pi()
     response = b"(012345\x9c\xaf\r"
     command = "QMOD"
     expected = {
         "raw_response": ["(012345\x9c¯\r", ""],
         "_command": "QMOD",
         "_command_description": "Operational mode query",
         "Device Mode": ["Invalid key: 012345", ""],
     }
     result = protocol.decode(response, command)
     # print(result)
     self.assertEqual(result, expected)
Пример #4
0
 def test_pi16_QED(self):
     """ test the decode of a QED response"""
     protocol = pi()
     response = b"(012345\x9c\xaf\r"
     command = "QED12345678"
     expected = {
         "raw_response": ["(012345\x9c¯\r", ""],
         "_command": "QED12345678",
         "_command_description": "Query energy produced for a specific day",
         "Energy produced": [12345, "Wh"],
     }
     result = protocol.decode(response, command)
     # print(result)
     self.assertEqual(result, expected)
Пример #5
0
 def test_pi16_QPIBI(self):
     """ test the decode of a QPIBI response"""
     protocol = pi()
     response = b"(0 6 1234 12 43\xb7\x6c\r"
     command = "QPIBI"
     expected = {
         "raw_response": ["(0 6 1234 12 43·l\r", ""],
         "_command": "QPIBI",
         "_command_description": "Battery information query",
         "unknown": [0, ""],
         "Number of batteries": [6, "#"],
         "Battery total capacity": [1234, "Ah"],
         "unknown_2": [12, ""],
         "Battery remaining time": [43, "min"],
     }
     result = protocol.decode(response, command)
     # print(result)
     self.assertEqual(result, expected)
Пример #6
0
 def test_pi16_QPIGS(self):
     """ test the decode of a QPIGS response"""
     protocol = pi()
     response = b"(224.6 000000 49.9 0006.8 232.4 01594 49.9 006.8 029 415.0 415.0 057.9 ---.- 100 00000 00000 ----- 000.0 000.0 ---.- 035.0 D---110001k\xdb\r"
     command = "QPIGS"
     expected = {
         "raw_response": [
             "(224.6 000000 49.9 0006.8 232.4 01594 49.9 006.8 029 415.0 415.0 057.9 ---.- 100 00000 00000 ----- 000.0 000.0 ---.- 035.0 D---110001kÛ\r",
             "",
         ],
         "_command": "QPIGS",
         "_command_description": "General status query",
         "Grid voltage": [224.6, "V"],
         "Output power": [0, "W"],
         "Grid frequency": [49.9, "Hz"],
         "Output current": [6.8, "A"],
         "AC output voltage R": [232.4, "V"],
         "AC output power R": [1594, "W"],
         "AC output frequency": [49.9, "Hz"],
         "AC output current R": [6.8, "A"],
         "Output load percent": [29, "%"],
         "PBUS voltage": [415.0, "V"],
         "SBUS voltage": [415.0, "V"],
         "Positive battery voltage": [57.9, "V"],
         "Negative battery voltage": [0, "V"],
         "Battery capacity": [100, "%"],
         "PV1 input power": [0, "W"],
         "PV2 input power": [0, "W"],
         "PV3 input power": [0, "W"],
         "PV1 input voltage": [0.0, "V"],
         "PV2 input voltage": [0.0, "V"],
         "PV3 input voltage": [0, "V"],
         "Max temperature": [35.0, "°C"],
         "status TODO": ["D---110001", ""],
     }
     result = protocol.decode(response, command)
     # print(result)
     self.assertEqual(result, expected)
Пример #7
0
 def test_pi16_QPIRI(self):
     """ test the decode of a QPIRI response"""
     protocol = pi()
     response = b"(230.0 50.0 013.0 230.0 013.0 18.0 048.0 1 10 0\x86\x42\r"
     command = "QPIRI"
     expected = {
         "raw_response": ["(230.0 50.0 013.0 230.0 013.0 18.0 048.0 1 10 0\x86B\r", ""],
         "_command": "QPIRI",
         "_command_description": "Device rating inquiry",
         "Grid Input Voltage Rating": [230.0, "V"],
         "Grid Input Frequency Rating": [50.0, "Hz"],
         "Grid Input Current Rating": [13.0, "A"],
         "AC Output Voltage Rating": [230.0, "V"],
         "AC Output Current Rating": [13.0, "A"],
         "Maximum input current per PV": [18.0, "A"],
         "Battery Voltage Rating": [48.0, "V"],
         "Number of MPP trackers": [1, ""],
         "Machine Type": ["Hybrid", ""],
         "Topology": ["transformerless", ""],
     }
     result = protocol.decode(response, command)
     # print(result)
     self.assertEqual(result, expected)