| @@ -41,6 +41,18 @@ class BaseMessage(object): | |||
| """ | |||
| return self.raw | |||
| def dict(self, **kwargs): | |||
| """ | |||
| Dictionary representation. | |||
| """ | |||
| return dict(time=self.timestamp, mesg=self.raw, **kwargs) | |||
| def __repr__(self): | |||
| """ | |||
| String representation. | |||
| """ | |||
| return repr(self.dict()) | |||
| class Message(BaseMessage): | |||
| """ | |||
| @@ -106,12 +118,6 @@ class Message(BaseMessage): | |||
| if data is not None: | |||
| self._parse_message(data) | |||
| def __str__(self): | |||
| """ | |||
| String conversion operator. | |||
| """ | |||
| return self.raw | |||
| def _parse_message(self, data): | |||
| """ | |||
| Parse the message from the device. | |||
| @@ -155,6 +161,37 @@ class Message(BaseMessage): | |||
| # Current cursor location on the alpha display. | |||
| self.cursor_location = int(self.bitfield[21:23], 16) | |||
| def dict(self, **kwargs): | |||
| """ | |||
| Dictionary representation. | |||
| """ | |||
| return dict( | |||
| time = self.timestamp, | |||
| bitfield = self.bitfield, | |||
| numeric_code = self.numeric_code, | |||
| panel_data = self.panel_data, | |||
| mask = self.mask, | |||
| ready = self.ready, | |||
| armed_away = self.armed_away, | |||
| armed_home = self.armed_home, | |||
| backlight_on = self.backlight_on, | |||
| programming_mode = self.programming_mode, | |||
| beeps = self.beeps, | |||
| zone_bypassed = self.zone_bypassed, | |||
| ac_power = self.ac_power, | |||
| chime_on = self.chime_on, | |||
| alarm_event_occurred = self.alarm_event_occurred, | |||
| alarm_sounding = self.alarm_sounding, | |||
| battery_low = self.battery_low, | |||
| entry_delay_off = self.entry_delay_off, | |||
| fire_alarm = self.fire_alarm, | |||
| check_zone = self.check_zone, | |||
| perimeter_only = self.perimeter_only, | |||
| text = self.text, | |||
| cursor_location = self.cursor_location, | |||
| **kwargs | |||
| ) | |||
| class ExpanderMessage(BaseMessage): | |||
| """ | |||
| @@ -187,12 +224,6 @@ class ExpanderMessage(BaseMessage): | |||
| if data is not None: | |||
| self._parse_message(data) | |||
| def __str__(self): | |||
| """ | |||
| String conversion operator. | |||
| """ | |||
| return self.raw | |||
| def _parse_message(self, data): | |||
| """ | |||
| Parse the raw message from the device. | |||
| @@ -221,6 +252,18 @@ class ExpanderMessage(BaseMessage): | |||
| else: | |||
| raise InvalidMessageError('Unknown expander message header: {0}'.format(data)) | |||
| def dict(self, **kwargs): | |||
| """ | |||
| Dictionary representation. | |||
| """ | |||
| return dict( | |||
| time = self.timestamp, | |||
| address = self.address, | |||
| channel = self.channel, | |||
| value = self.value, | |||
| **kwargs | |||
| ) | |||
| class RFMessage(BaseMessage): | |||
| """ | |||
| @@ -250,12 +293,6 @@ class RFMessage(BaseMessage): | |||
| if data is not None: | |||
| self._parse_message(data) | |||
| def __str__(self): | |||
| """ | |||
| String conversion operator. | |||
| """ | |||
| return self.raw | |||
| def _parse_message(self, data): | |||
| """ | |||
| Parses the raw message from the device. | |||
| @@ -286,6 +323,19 @@ class RFMessage(BaseMessage): | |||
| except ValueError: | |||
| raise InvalidMessageError('Received invalid message: {0}'.format(data)) | |||
| def dict(self, **kwargs): | |||
| """ | |||
| Dictionary representation. | |||
| """ | |||
| return dict( | |||
| time = self.timestamp, | |||
| serial_number = self.serial_number, | |||
| value = self.value, | |||
| battery = self.battery, | |||
| supervision = self.supervision, | |||
| **kwargs | |||
| ) | |||
| class LRRMessage(BaseMessage): | |||
| """ | |||
| @@ -311,12 +361,6 @@ class LRRMessage(BaseMessage): | |||
| if data is not None: | |||
| self._parse_message(data) | |||
| def __str__(self): | |||
| """ | |||
| String conversion operator. | |||
| """ | |||
| return self.raw | |||
| def _parse_message(self, data): | |||
| """ | |||
| Parses the raw message from the device. | |||
| @@ -334,3 +378,15 @@ class LRRMessage(BaseMessage): | |||
| except ValueError: | |||
| raise InvalidMessageError('Received invalid message: {0}'.format(data)) | |||
| def dict(self, **kwargs): | |||
| """ | |||
| Dictionary representation. | |||
| """ | |||
| return dict( | |||
| time = self.timestamp, | |||
| event_data = self.event_data, | |||
| event_type = self.event_type, | |||
| partition = self.partition, | |||
| **kwargs | |||
| ) | |||