Example #1
0
    def test_rfxcom_device_message(self):
        rfx = RfxcomApplication(server=self.server, dev="foo")
        temp = mock.Mock()
        temp.process_rfxcom.return_value = []
        rfx.add_rfxcom_handler(temp)

        class DummyMessage(object):
            def __init__(self, data):
                self.data = data

        msg = DummyMessage({
            'packet_length': 10,
            'sub_type_name': 'THGN122/123, THGN132, THGR122/228/238/268',
            'sub_type': 1,
            'battery_signal_level': 137,
            'sequence_number': 0,
            'signal_strength': 137,
            'packet_type_name': 'Temperature and humidity sensors',
            'id': '0xE102',
            'packet_type': 82,
            'humidity_status': 1,
            'humidity': 55,
            'temperature': 24.7
        })

        self.loop.run_until_complete(rfx.handle_rfxcom_message(msg))
        temp.process_rfxcom.assert_called_once_with(msg.data)
Example #2
0
    def test_rfxcom_temp_creator(self):
        rfx = RfxcomApplication(server=self.server, dev="foo")

        # Add a handler for temperature events
        temp = RfxcomTemperatureHandler(rfx)
        rfx.add_rfxcom_handler(temp)
        self.assertIn(temp, rfx.handlers)
        rfx.remove_rfxcom_handler(temp)
        self.assertNotIn(temp, rfx.handlers)
Example #3
0
    def test_rfxcom_client_request(self):
        rfx = RfxcomApplication(server=self.server, dev="foo")
        temp = mock.Mock()
        temp.process_client.return_value = []
        rfx.add_rfxcom_handler(temp)

        msg = {
            'app_name': 'rfxcom'
        }
        self.loop.run_until_complete(self.server.handle_request(None, msg))
        temp.process_client.assert_called_once_with(msg, None)
Example #4
0
DEBUG = True
DEBUG_NO_RFXCOM = False
DEV_NAME = '/dev/tty.usbserial-A1YKN6S8'

ev_loop = asyncio.get_event_loop()

if DEBUG:
    ev_loop.set_debug(True)
    logging.basicConfig(level=logging.DEBUG)

try:
    # Create the server
    server = BaseDomoServer(loop=ev_loop)

    # Add an RFXCOM App
    if not DEBUG_NO_RFXCOM:
        rfx = RfxcomApplication(server=server, dev=DEV_NAME)
        rfx.add_rfxcom_handler(RfxcomTemperatureHandler(
            rfx, names={
                '0xD704': 'Garden',
                '0x6001': "Baby's room",
                '0xE102': "Our room"
            }))

    # Add static file handler
    server.web.router.add_static('/', 'example/static')
    ev_loop.run_until_complete(server.init())
    ev_loop.run_forever()
finally:
    ev_loop.close()