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)
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)
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)
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()