コード例 #1
0
    def testSetUnsettable(self, mock_websocket_create_connection):
        client = Client('127.0.0.1')

        ws = mock.Mock()
        ws.recv.return_value = binascii.unhexlify('0200f500f700')
        mock_websocket_create_connection.return_value = ws

        with self.assertRaises(AttributeError) as context:
            client.set_values({'A_CYC_RH_VALUE': 22})
コード例 #2
0
    def testFetchMetric(self, mock_websocket_create_connection):
        client = Client('127.0.0.1')

        ws = mock.Mock()
        ws.recv.return_value = binascii.unhexlify(
            '0024000000000000000000000000000001000800030000000000000061df98b100030003203fb9500331000000000000000000560000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b000f732a6ca969a171d1730800010000022700000028000000000000000001a6029e000100000028ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000057c503e8ffffffffffff000000190000000000010000000000000000000300001b98012000a50000000000000000001e00010000000100000000000000000007001b000f001700010012000200070044000000010000000000000007003200320001000000000000001e0000c0a80501ffffff0000000000000000000000000000000000000000000000000000000000c0a8050c86076097f78844b7ac4db61e502fe4f2004c004c000100c00101001c001e000a00320000003703840000708f00320032000a0000000000010000000a721f0000000000010000000f728300000000000000000064715700000000000000000000000000000000000000010037001e000000000000000068bf71bb000083910000002600b4000000010001000000010001001e000f00080001001200000003000000000000000000000017000003e90000000000000001000100010000000a003200010000000000000000000000000000000000000000001000000000000000000000000000540048000000000000000000000000000000c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        )
        mock_websocket_create_connection.return_value = ws

        self.assertEqual(1, client.fetch_metric('A_CYC_ENABLED'))

        ws.send.assert_called_once_with(binascii.unhexlify('0300f6000000f900'),
                                        opcode=0x2)
コード例 #3
0
    def testSetValue(self, mock_websocket_create_connection):
        client = Client('127.0.0.1')

        ws = mock.Mock()
        ws.recv.return_value = binascii.unhexlify('0200f500f700')
        mock_websocket_create_connection.return_value = ws

        client.set_values({
            'A_CYC_STATE': 0,
            'A_CYC_BOOST_TIMER': 0,
            'A_CYC_FIREPLACE_TIMER': 0,
            'A_CYC_EXTRA_TIMER': 0
        })

        ws.send.assert_called_once_with(
            binascii.unhexlify('0a00f900011200000412000005120000061200001349'),
            opcode=0x2)
コード例 #4
0
    def testSetAssertion(self, mock_websocket_create_connection):
        client = Client('127.0.0.1')

        ws = mock.Mock()
        ws.recv.return_value = binascii.unhexlify('0200f500f700')
        mock_websocket_create_connection.return_value = ws

        with self.assertRaises(AssertionError) as context:
            client.set_values({'A_CYC_BOOST_TIMER': '11.2'})

        with self.assertRaises(ValueError) as context:
            client.set_values({'A_CYC_BOOST_AIR_TEMP_TARGET': '11.2'})

        with self.assertRaises(AssertionError) as context:
            client.set_values({'A_CYC_BOOST_SPEED_SETTING': '11.2'})

        with self.assertRaises(AssertionError) as context:
            client.set_values({'A_CYC_FIREPLACE_SUPP_FAN': '11.2'})
コード例 #5
0
    def testSetNewSettableAddressByName(self,
                                        mock_websocket_create_connection):
        client = Client('127.0.0.1')

        ws = mock.Mock()
        ws.recv.return_value = binascii.unhexlify('0200f500f700')
        mock_websocket_create_connection.return_value = ws

        client.set_settable_address('A_CYC_RH_VALUE', int)

        client.set_values({'A_CYC_RH_VALUE': 22})
コード例 #6
0
class TestClient(TestCase):
    # [4, 249, 20508, 29215, 49976]
    def setUp(self):
        self.client = Client('127.0.0.1')

    @mock.patch('vallox_websocket_api.client.websocket.create_connection',
                autospec=True)
    def testSetHomeAirTempTargetRawInt(self, mock_websocket_create_connection):
        ws = mock.Mock()
        ws.recv.return_value = b''
        mock_websocket_create_connection.return_value = ws

        self.client.set_values({'A_CYC_HOME_AIR_TEMP_TARGET': 19})

        ws.send.assert_called_once_with(struct.pack('HHHHH', 4, 249, 20508,
                                                    29215, 49976),
                                        opcode=0x2)

    @mock.patch('vallox_websocket_api.client.websocket.create_connection',
                autospec=True)
    def testSetHomeAirTempTargetRawFloat(self,
                                         mock_websocket_create_connection):
        ws = mock.Mock()
        ws.recv.return_value = b''
        mock_websocket_create_connection.return_value = ws

        self.client.set_values({'A_CYC_HOME_AIR_TEMP_TARGET': 19.0})

        ws.send.assert_called_once_with(struct.pack('HHHHH', 4, 249, 20508,
                                                    29215, 49976),
                                        opcode=0x2)

    @mock.patch('vallox_websocket_api.client.websocket.create_connection',
                autospec=True)
    def testSetHomeAirTempTargetRawString(self,
                                          mock_websocket_create_connection):
        ws = mock.Mock()
        ws.recv.return_value = b''
        mock_websocket_create_connection.return_value = ws

        self.client.set_values({'A_CYC_HOME_AIR_TEMP_TARGET': '19'})

        ws.send.assert_called_once_with(struct.pack('HHHHH', 4, 249, 20508,
                                                    29215, 49976),
                                        opcode=0x2)
コード例 #7
0
import sys
from vallox_websocket_api import Client
from pprint import pprint


client = Client('192.168.178.26')
mode = str(sys.argv[1])
if mode == 'A_CYC_STATE':
	metrics = client.fetch_metrics(['A_CYC_STATE'])
elif mode == 'A_CYC_SUPP_FAN_SPEED':
	metrics = client.fetch_metrics(['A_CYC_SUPP_FAN_SPEED'])
elif mode == 'A_CYC_EXTR_FAN_SPEED':
	metrics = client.fetch_metrics(['A_CYC_EXTR_FAN_SPEED'])
elif mode == 'A_CYC_TEMP_EXTRACT_AIR':
	metrics = client.fetch_metrics(['A_CYC_TEMP_EXTRACT_AIR'])
elif mode == 'A_CYC_TEMP_EXHAUST_AIR':
	metrics = client.fetch_metrics(['A_CYC_TEMP_EXHAUST_AIR'])
elif mode == 'A_CYC_TEMP_OUTDOOR_AIR':
	metrics = client.fetch_metrics(['A_CYC_TEMP_OUTDOOR_AIR'])
elif mode == 'A_CYC_TEMP_SUPPLY_AIR':
	metrics = client.fetch_metrics(['A_CYC_TEMP_SUPPLY_AIR'])
elif mode == 'A_CYC_CELL_STATE':
	metrics = client.fetch_metrics(['A_CYC_CELL_STATE'])

pprint(metrics)
コード例 #8
0
 def setUp(self):
     self.client = Client('127.0.0.1')
コード例 #9
0
import sys
from vallox_websocket_api import Client

client = Client('192.168.178.26')
args = len(sys.argv)
mode = int(sys.argv[1])
if args >= 3:
    duration = int(sys.argv[2])

if mode == 0:
    client.set_values({'A_CYC_BOOST_TIMER': str(0)})
    client.set_values({'A_CYC_STATE': 'C_CYC_STATE_HOME'})
    #	print "setting mode home."
    print "0"
elif mode == 1:
    client.set_values({'A_CYC_BOOST_TIMER': str(0)})
    client.set_values({'A_CYC_STATE': 'C_CYC_STATE_AWAY'})
    #	print "setting mode away."
    print "1"
elif mode == 2:
    client.set_values({'A_CYC_BOOST_TIMER': str(duration)})
    #	print "boosting for " + str(duration) + " minutes."
    print "2"
elif mode == 5:
    client.set_values({'A_CYC_MODE': '5'})
    #	print "Turning off."
    print "5"