Skip to content

Commit

Permalink
Added night mode mapped to stay and docs
Browse files Browse the repository at this point in the history
  • Loading branch information
roopesh committed Jul 18, 2021
1 parent d3d9835 commit cfd1458
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 21 deletions.
22 changes: 11 additions & 11 deletions apps/ad-qolsys/door_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,16 @@ def __str__(self):

def __repr__(self):
me = f'{{' \
f'"zoneid": self.zoneid,' \
f'"entity_id": self.entity_id,' \
f'"friendly_name": self.friendly_name,' \
f'"state": self.state,' \
f'"partition_id": self.partition_id,' \
f'"device_class": self.device_class,' \
f'"payload_on": self.payload_on,' \
f'"payload_off": self.payload_off,' \
f'"config_topic": self.config_topic,' \
f'"state_topic": self.state_topic,' \
f'"availability": self.availability_list' \
f'"zoneid": {self.zoneid},' \
f'"entity_id": {self.entity_id},' \
f'"friendly_name": {self.friendly_name},' \
f'"state": {self.state},' \
f'"partition_id": {self.partition_id},' \
f'"device_class": {self.device_class}' \
#f'"payload_on": {self.payload_on},' \
#f'"payload_off": {self.payload_off},' \
#f'"config_topic": {self.config_topic},' \
#f'"state_topic": {self.state_topic},' \
#f'"availability": {self.availability_list}' \
f'}}'
return me
19 changes: 10 additions & 9 deletions apps/ad-qolsys/partition.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def __init__(self, p_id: int, name: str, status: str, code: int, confirm_code_ar
self.alarm_panel_config_topic = self.homeassistant_mqtt_discovery_topic + "alarm_control_panel/qolsys/" + self.entity_id + "/config"
self.alarm_panel_state_topic = self.mqtt_state_topic + "alarm_control_panel/qolsys/" + self.entity_id + "/state"
self.availability_topic = self.mqtt_availability_topic + "alarm_control_panel/qolsys/" + self.entity_id + "/availability"
self.command_template = '{"event":"{% if action == \"ARM_HOME\" or action == \"ARM_AWAY\" %}ARM","arm_type":"{% if action == \"ARM_HOME\" %}stay{% else %}away{% endif %}"{% else %}{{action}}", "usercode":"' + str(self.code) + '"{% endif %}, "token":"' + self.token + '", "partition_id":"' + str(self.p_id) + '"}'
self.command_template = '{"event":"{% if action == \"ARM_HOME\" or action == \"ARM_AWAY\" or action == \"ARM_NIGHT\" %}ARM","arm_type":"{% if action == \"ARM_HOME\" or action == \"ARM_NIGHT\" %}stay{% else %}away{% endif %}"{% else %}{{action}}", "usercode":"' + str(self.code) + '"{% endif %}, "token":"' + self.token + '", "partition_id":"' + str(self.p_id) + '"}'

@property
def availability_list(self):
Expand Down Expand Up @@ -106,6 +106,7 @@ def status(self):
@status.setter
def status(self, status:str):
__c_ARM_STAY__ = "ARM_STAY"
__c_ARM_NIGHT__ = "ARM_NIGHT"
__c_ARM_DELAY__ = "EXIT_DELAY"
__c_DISARM__ = "DISARM"
__c_ENTRY_DELAY__ = "ENTRY_DELAY"
Expand Down Expand Up @@ -151,13 +152,13 @@ def __str__(self):

def __repr__(self):
me = f'{{' \
f'"id": self.p_id,' \
f'"name": self.name,' \
f'"status": self.status,' \
f'"entity_id": self.entity_id,' \
f'"alarm_panel_config_topic": self.alarm_panel_config_topic,' \
f'"alarm_panel_state_topic": self.alarm_panel_state_topic,' \
f'"code": self.code,' \
f'"zones": self.zones' \
f'"id": {self.p_id},' \
f'"name": {self.name},' \
f'"status": {self.status},' \
f'"entity_id": {self.entity_id},' \
f'"code": {self.code},' \
f'"zones": {self.zones}' \
# f'"alarm_panel_config_topic": {self.alarm_panel_config_topic},' \
# f'"alarm_panel_state_topic": {self.alarm_panel_state_topic},' \
f'}}'
return me
8 changes: 7 additions & 1 deletion apps/ad-qolsys/qolsys_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,18 @@
# qolsys_confirm_arm_code: True/False (Optional) Require the code for arming
# qolsys_disarm_code: (Required - if you want to disarm the alarm)
# qolsys_arm_away_always_instant: True/False (Optional) Set to true if all Arm Away commands should be instant; defaults to False
# homeassistant_mqtt_discovery_topic: homeassistant/ (Optional) The topic Home Assistant is using for MQTT Discovery (homeassistant/ is the default in HA and here)
# mqtt_state_topic: mqtt-states (Optional) The topic to publish state updates to for the alarm_control_panel and binary_sensor (default: mqtt-states)
# mqtt_availability_topic: mqtt-availability (Optional) The topic to publish availability events to for the alarm_control_panel and binary_sensor (default: mqtt-availability)
# qolsys_alarm_triggered_topic: (Optional) The topic to publish triggered events to; defaults to qolsys/alarm/triggered
# qolsys_alarm_pending_topic: (Optional) The topic to publish pending events to; defaults to qolsys/alarm/pending

# Developer documentation
# This is basically how shit flows:
# Get an event from the qolsys panel (qolsys_client.py) --> QolsysClient.qolsys_data_received.
# The event type and sub event (zone_event_type, arming_type, alarm_type) determine which mqtt queue to publish to.
# You need a listener for that topic in QolsysClient.initialize
# That data reciever then publishes to the relevant topic, as defined in the app arugments or default topics.

class QolsysClient(mqtt.Mqtt):
def get_arg(self, name: str, arr: list, default=None):

Expand Down

0 comments on commit cfd1458

Please sign in to comment.