From 3e006fecfc74fd960cb615591ab265c53abe2223 Mon Sep 17 00:00:00 2001 From: crazeeeyez Date: Sun, 18 Apr 2021 06:31:34 -0700 Subject: [PATCH] Making always instant an option --- README.md | 2 ++ apps/ad-qolsys/qolsys_client.py | 2 ++ apps/ad-qolsys/qolsys_requests.py | 3 +++ 3 files changed, 7 insertions(+) diff --git a/README.md b/README.md index c912984..2343483 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Arguments in apps.yaml: # qolsys_disarm_code: (Required - if you want to disarm the alarm) # qolsys_confirm_disarm_code: True/False (Optional) Require the code for disarming; defaults to False # qolsys_confirm_arm_code: True/False (Optional) Require the code for arming; defaults to False +# qolsys_arm_away_always_instant: True/False (Optional) Set to true if all Arm Away commands should be instant; defaults to False ``` You’ll need you appdaemon's apps.yaml to include an app with this module and class: @@ -46,6 +47,7 @@ qolsys_panel: qolsys_disarm_code: 4567 # Optional - Required if you want to disarm the panel qolsys_confirm_arm_code: False qolsys_confirm_disarm_code: False + qolsys_arm_away_always_instant: False ``` As far MQTT is concerned, I had to figure out how to enable MQTT inside AppDaemon. In case you’re new to AppDaemon and have the same questions, I had to put this in my appdaemon.yaml: diff --git a/apps/ad-qolsys/qolsys_client.py b/apps/ad-qolsys/qolsys_client.py index 7766e0f..40bcef9 100755 --- a/apps/ad-qolsys/qolsys_client.py +++ b/apps/ad-qolsys/qolsys_client.py @@ -50,6 +50,7 @@ def initialize(self): self.__c_qolsys_disarm_code__ = "qolsys_disarm_code" self.__c_qolsys_confirm_disarm_code__ = "qolsys_confirm_disarm_code" self.__c_qolsys_confirm_arm_code__ = "qolsys_confirm_arm_code" + self.__c_qolsys_arm_away_always_instant__ = "qolsys_arm_away_always_instant" # populate some variables we'll need to use throughout our app self.mqtt_namespace = self.args[self.__c_mqtt_namespace__] if self.__c_mqtt_namespace__ in self.args else "" @@ -67,6 +68,7 @@ def initialize(self): self.qolsys_disarm_code = self.args[self.__c_qolsys_disarm_code__] if self.__c_qolsys_disarm_code__ in self.args else 9999 self.qolsys_confirm_disarm_code = self.args[self.__c_qolsys_confirm_disarm_code__] if self.__c_qolsys_confirm_disarm_code__ in self.args else False self.qolsys_confirm_arm_code = self.args[self.__c_qolsys_confirm_arm_code__] if self.__c_qolsys_confirm_arm_code__ in self.args else False + self.qolsys_arm_away_always_instant = self.args[self.__c_qolsys_arm_away_always_instant__] if self.__c_qolsys_arm_away_always_instant__ in self.args else False self.mqtt_plugin_config = self.get_plugin_config(namespace=self.mqtt_namespace) self.log("qolsys_host: %s, qolsys_port: %s, qolsys_token: %s, qolsys_timeout: %s, request_topic: %s", self.qolsys_host, self.qolsys_port, self.qolsys_token, self.qolsys_timeout, self.request_topic, level="DEBUG") diff --git a/apps/ad-qolsys/qolsys_requests.py b/apps/ad-qolsys/qolsys_requests.py index 0a3b16f..c7a5d90 100755 --- a/apps/ad-qolsys/qolsys_requests.py +++ b/apps/ad-qolsys/qolsys_requests.py @@ -199,7 +199,10 @@ def mqtt_request_received(self, event_name, data, kwargs): usercode = payload_json["usercode"] if "usercode" in payload_json else None partition_id = payload_json["partition_id"] if "partition_id" in payload_json else None arm_type = payload_json["arm_type"] if "arm_type" in payload_json else None + instant = payload_json["instant"] if "instant" in payload_json else False + if self.app.qolsys_arm_away_always_instant: instant = True + self.app.log("event: %s, usercode: %s, partition_id: %s, arm_type: %s, instant: %s", event_type, usercode, partition_id, arm_type, instant, level="INFO") if token == None: #raise("Token required for anything you want to do")