Skip to content

Commit

Permalink
#271 Dropping "Paradox" and serial number from MQTT entity names.
Browse files Browse the repository at this point in the history
  • Loading branch information
yozik04 committed Jan 13, 2022
1 parent 62e8af7 commit 4210d84
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 13 deletions.
6 changes: 6 additions & 0 deletions paradox/hardware/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ def PacketChecksum(subcons):
MAGELLAN_MG5075=66,
)

FamilyIdEnum = Enum(
Int8ub,

)

SerialPrefixToPanelType = Enum(
Int8ub,
DIGIPLEX_EVO_48=0x03,
Expand All @@ -61,6 +66,7 @@ def PacketChecksum(subcons):
SPECTRA_SP6000=0x29,
SPECTRA_SP65=0x45,
SPECTRA_SP7000=0x2a,
SPECTRA_UNIFIED=0x06,
)

CommunicationSourceIDEnum = Enum(
Expand Down
4 changes: 2 additions & 2 deletions paradox/hardware/parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Flag, Int8ub, Int16ub, Nibble, Padding, RawCopy, Struct)

from .common import (CommunicationSourceIDEnum, HexInt, PacketChecksum,
PacketLength, ProductIdEnum)
PacketLength, ProductIdEnum, FamilyIdEnum)

InitiateCommunication = Struct(
"fields"
Expand All @@ -25,7 +25,7 @@
"protocol_id" / Int8ub,
"protocol"
/ Struct("version" / Int8ub, "revision" / Int8ub, "build" / Int8ub),
"family_id" / Int8ub,
"family_id" / FamilyIdEnum,
"product_id" / ProductIdEnum,
"talker"
/ Enum(
Expand Down
2 changes: 1 addition & 1 deletion paradox/interfaces/mqtt/entities/abstract_entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def serialize(self):
return dict(
availability_topic=self.availability_topic,
device=self.device,
name=f'Paradox {self.device.serial_number} {self.entity_name}',
name=f'{self.entity_name}',
unique_id=f'paradox_{self.device.serial_number}_{self.entity_id}',
state_topic=self.state_topic,
)
Expand Down
16 changes: 8 additions & 8 deletions tests/interfaces/mqtt/test_entities.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def test_alarm_control_panel_serialize(mqtt_entity_factory):
alarm_control_panel = mqtt_entity_factory.make_alarm_control_panel_config({"key": "Partition_1", "label": "Partition 1"})
assert _serialize_deserialize(alarm_control_panel) == {
'unique_id': 'paradox_1234abcd_partition_partition_1',
'name': 'Paradox 1234abcd Partition Partition 1',
'name': 'Partition Partition 1',
'availability_topic': 'paradox/interface/availability',
'state_topic': 'paradox/states/partitions/Partition_1/current_state',
'command_topic': 'paradox/control/partitions/Partition_1',
Expand All @@ -34,7 +34,7 @@ def test_partition_binary_sensor_serialize(mqtt_entity_factory):
binary_sensor = mqtt_entity_factory.make_partition_status_binary_sensor({"key": "Partition_1", "label": "Partition 1"}, "arm")
assert _serialize_deserialize(binary_sensor) == {
'unique_id': 'paradox_1234abcd_partition_partition_1_arm',
'name': 'Paradox 1234abcd Partition Partition 1 Arm',
'name': 'Partition Partition 1 Arm',
'availability_topic': 'paradox/interface/availability',
'state_topic': 'paradox/states/partitions/Partition_1/arm',
'device': _get_expected_device_block(),
Expand All @@ -49,7 +49,7 @@ def test_zone_binary_sensor_serialize(mqtt_entity_factory):
binary_sensor = mqtt_entity_factory.make_zone_status_binary_sensor({"key": "Zone_1", "label": "Zone 1"}, "open")
assert _serialize_deserialize(binary_sensor) == {
'unique_id': 'paradox_1234abcd_zone_zone_1_open',
'name': 'Paradox 1234abcd Zone Zone 1 Open',
'name': 'Zone Zone 1 Open',
'availability_topic': 'paradox/interface/availability',
'state_topic': 'paradox/states/zones/Zone_1/open',
'device': _get_expected_device_block(),
Expand All @@ -65,7 +65,7 @@ def test_trouble_binary_sensor_serialize(mqtt_entity_factory):
binary_sensor = mqtt_entity_factory.make_system_status("troubles", "ac_trouble")
assert _serialize_deserialize(binary_sensor) == {
'unique_id': 'paradox_1234abcd_system_troubles_ac_trouble',
'name': 'Paradox 1234abcd System troubles Ac Trouble',
'name': 'System troubles Ac Trouble',
'availability_topic': 'paradox/interface/availability',
'state_topic': 'paradox/states/system/troubles/ac_trouble',
'device': _get_expected_device_block(),
Expand All @@ -80,7 +80,7 @@ def test_pai_status_sensor_serialize(mqtt_entity_factory):
sensor = mqtt_entity_factory.make_pai_status_sensor("paradox/interface/pai_status")
assert _serialize_deserialize(sensor) == {
'unique_id': 'paradox_1234abcd_pai_status',
'name': 'Paradox 1234abcd PAI Status',
'name': 'PAI Status',
'state_topic': 'paradox/interface/pai_status',
'device': _get_expected_device_block()
}
Expand All @@ -92,7 +92,7 @@ def test_run_system_status_sensor_serialize(mqtt_entity_factory):
sensor = mqtt_entity_factory.make_system_status("power", "vdc")
assert _serialize_deserialize(sensor) == {
'unique_id': 'paradox_1234abcd_system_power_vdc',
'name': 'Paradox 1234abcd System Power Vdc',
'name': 'System Power Vdc',
'availability_topic': 'paradox/interface/availability',
'state_topic': 'paradox/states/system/power/vdc',
'device': _get_expected_device_block(),
Expand All @@ -106,7 +106,7 @@ def test_pgm_switch_serialize(mqtt_entity_factory):
sensor = mqtt_entity_factory.make_pgm_switch({"key": "PGM_1", "label": "PGM 1"})
assert _serialize_deserialize(sensor) == {
'unique_id': 'paradox_1234abcd_pgm_pgm_1_on',
'name': 'Paradox 1234abcd Pgm PGM 1 On',
'name': 'Pgm PGM 1 On',
'availability_topic': 'paradox/interface/availability',
'state_topic': 'paradox/states/outputs/PGM_1/on',
'command_topic': 'paradox/control/outputs/PGM_1',
Expand All @@ -122,7 +122,7 @@ def test_zone_bypass_switch_serialize(mqtt_entity_factory):
sensor = mqtt_entity_factory.make_zone_bypass_switch({"key": "Zone_1", "label": "Zone 1"})
assert _serialize_deserialize(sensor) == {
'unique_id': 'paradox_1234abcd_zone_zone_1_bypassed',
'name': 'Paradox 1234abcd Zone Zone 1 Bypassed',
'name': 'Zone Zone 1 Bypassed',
'availability_topic': 'paradox/interface/availability',
'state_topic': 'paradox/states/zones/Zone_1/bypassed',
'command_topic': 'paradox/control/zones/Zone_1',
Expand Down
4 changes: 2 additions & 2 deletions tests/interfaces/mqtt/test_homeassistant.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ async def test_hass(mocker):
assert_any_call_with_json(interface.mqtt.publish,
"homeassistant/sensor/aabbccdd/pai_status/config",
{
"name": "Paradox aabbccdd PAI Status",
"name": "PAI Status",
"unique_id": "paradox_aabbccdd_pai_status",
"state_topic": "paradox/interface/pai_status",
"device": {
Expand All @@ -73,7 +73,7 @@ async def test_hass(mocker):
assert_any_call_with_json(interface.mqtt.publish,
"homeassistant/alarm_control_panel/aabbccdd/partition_partition_1/config",
{
"name": "Paradox aabbccdd Partition Partition 1",
"name": "Partition Partition 1",
"unique_id": "paradox_aabbccdd_partition_partition_1",
"command_topic": "paradox/control/partitions/Partition_1",
"state_topic": "paradox/states/partitions/Partition_1/current_state",
Expand Down

0 comments on commit 4210d84

Please sign in to comment.