From fcc0477593b0d689feabb89bf805a7ab8422cc6f Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Wed, 16 Aug 2023 17:03:41 +0200 Subject: [PATCH] Alarm Control Panel with PIN (#982) Implements an Alarm Control Panel page on NSPanel. Solves https://github.com/Blackymas/NSPanel_HA_Blueprint/issues/66 Solves https://github.com/Blackymas/NSPanel_HA_Blueprint/discussions/227 Solves https://github.com/Blackymas/NSPanel_HA_Blueprint/issues/672 Partially solves https://github.com/Blackymas/NSPanel_HA_Blueprint/discussions/299#discussioncomment-4874612 Partially solves https://github.com/Blackymas/NSPanel_HA_Blueprint/issues/64#issuecomment-1566204490 Partially solves https://github.com/Blackymas/NSPanel_HA_Blueprint/discussions/718 --- ReleaseNotes.md | 2 + docs/en/alarm.md | 11 ++- nspanel_blueprint.yaml | 7 +- nspanel_esphome.yaml | 74 +++++++++++++--- nspanel_eu.HMI | Bin 21307134 -> 21307134 bytes nspanel_eu.tft | Bin 6365756 -> 6364812 bytes nspanel_eu_code/alarm.txt | 143 +++++++++--------------------- nspanel_eu_code/keyb_num.txt | 6 +- nspanel_us.HMI | Bin 21307134 -> 21307134 bytes nspanel_us.tft | Bin 7808856 -> 7807912 bytes nspanel_us_code/alarm.txt | 143 +++++++++--------------------- nspanel_us_code/keyb_num.txt | 6 +- nspanel_us_land.HMI | Bin 21307134 -> 21307134 bytes nspanel_us_land.tft | Bin 6365772 -> 6364828 bytes nspanel_us_land_code/alarm.txt | 143 +++++++++--------------------- nspanel_us_land_code/keyb_num.txt | 6 +- 16 files changed, 213 insertions(+), 328 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 66d81d2..747fafe 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -67,6 +67,8 @@ Now you can control an Alarm Control Panel from your NSPanel, which will allow y For more details, instructions and security considerations, please take a look at the [Alarm Control Panel docs](/docs/en/alarm.md). +**Important:** At this moment, this funcionality is available only for alarms without a code or alarms using a numeric code. Alarms with text code are not yet supported. +   ### 3. Support to sensor display precision from Home Assistant Now the values shown in your panel will follow the [sensor display precision](https://www.home-assistant.io/blog/2023/03/01/release-20233/#sensor-display-precision) provided by Home Assistant. diff --git a/docs/en/alarm.md b/docs/en/alarm.md index 596e374..08e40d7 100644 --- a/docs/en/alarm.md +++ b/docs/en/alarm.md @@ -2,7 +2,7 @@ You can control an Alarm Control Panel from your NSPanel, which will allow you to set the alarm mode between the standard modes supported by Home Assistant (Home, Away, Night, Vacation or Custom bypass) or disarm the alarm. -Currently, only alarms without a code will be supported. If your alarm requires a code, you will still be able to display it on your NSPanel, however, when you click in any button it will send services calls to Home Assistant without the code and it will fail for the service where a code is requires. +Currently, only alarms without a code or alarms with a numeric code will be supported. If your alarm requires a text code, you will still be able to display it on your NSPanel, however, when you click in any button it will send services calls to Home Assistant without the code and it will fail for the calls where a code is required.   ### Security advisory @@ -12,8 +12,15 @@ Based on that, we hardly reccoment the use of API encryption for all users contr   ## Configuration +### Allow the device to make Home Assistant service calls +First, you have to configure your Home Assistant to allow your panel to make service calls. All other services are called from the Blueprint, however this requires the ESPHome to send an event containing in plain text all the information needed to the service call, which could be a security issue, so all the alarm calls will be driven by the panel to ensure a safer environment.
+To enable this option, go to your ESPHome integrations panel (Settings > Devices and Services > ESPHome) and click "Configure" next to the entry related to your panel:
+<< ADD SCREENSHOT >>
+Then check the option "Allow the device to make Home Assistant service calls":
+<< ADD SCREENSHOT >>
+### Blueprint settings Open the automation based on the NSPanel Blueprint and look for a section related to "Alarm Control Panel".
-Select your alarm control panel entity, click "Save", and your are done. :)
+Select your alarm control panel entity, click "Save", and your are done. :sunglasses:
<<< ADD SCREENSHOT >>>>   diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index 97d9990..93c4009 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -4064,8 +4064,8 @@ variables: home: Home away: Away night: Night - vacation: Vacation - bypass: Bypass + vacation: Holiday + bypass: Custom bypass disarm: Disarm es: #Spanish weekdays: @@ -5025,7 +5025,7 @@ variables: away: Ausente night: Noturno vacation: FĂ©rias - bypass: bypass + bypass: Personalizado disarm: Desarmar ro: #Romanian weekdays: @@ -6442,6 +6442,7 @@ action: - condition: trigger id: service_call - '{{ trigger.event.data.service is defined and trigger.event.data.service is string and trigger.event.data.service | length > 0 }}' + - '{{ trigger.event.data.service is not match "alarm_control_panel." }}' # Prevent the use of this call for alarm control due to safety reasons - '{{ trigger.event.data.entity is defined and trigger.event.data.entity is string and trigger.event.data.entity | length > 0 }}' sequence: - &variable_nspanel_event diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index fbbbe15..28e9dfd 100644 --- a/nspanel_esphome.yaml +++ b/nspanel_esphome.yaml @@ -530,7 +530,6 @@ api: ESP_LOGD("service.alarm_settings", "supported_features: %i", supported_features); ESP_LOGD("service.alarm_settings", "code_format: %s", code_format.c_str()); ESP_LOGD("service.alarm_settings", "entity: %s", entity.c_str()); - ESP_LOGD("service.alarm_settings", "mui_alarm[1]: %s", mui_alarm[1].c_str()); } - lambda: |- # Alarm page - Header @@ -540,6 +539,7 @@ api: id(disp1).set_component_text_printf("icon_state", "%s", page_icon.c_str()); id(disp1).set_component_text_printf("page_label", "%s", page_title.c_str()); id(disp1).set_component_text_printf("code_format", "%s", code_format.c_str()); + id(disp1).set_component_text_printf("entity", "%s", entity.c_str()); - lambda: |- # Alarm page - Button's icons id(disp1).set_component_text_printf("bt_home_icon", "\uE689"); //mdi:shield-home @@ -988,10 +988,33 @@ text_sensor: ESP_LOGD("text_sensor.localevent", "embedded=%i", embedded); } if (domain == "climate") id(service_call_climate)->execute(entity.c_str(), key.c_str(), value.c_str(), (embedded==1)); - else if (domain == "alarm_control_panel") + else if (domain == "alarm") { std::string code_format = doc["code_format"]; - id(service_call_alarm_control_panel)->execute(entity.c_str(), key.c_str(), value.c_str()); // DEBUG - Need to open the pin code page first, code_format.c_str()); + std::string title = doc["mui"]; + if (code_format=="number") + { + id(disp1).send_command_printf("page keyb_num"); + id(disp1).set_component_value("keyb_num.page_id", 23); //Calling from Alarm page + id(disp1).set_component_text_printf("keyb_num.domain", "%s", domain.c_str()); + id(disp1).set_component_text_printf("keyb_num.key", "%s", key.c_str()); + id(disp1).set_component_text_printf("keyb_num.value", "%s", value.c_str()); + id(disp1).set_component_text_printf("keyb_num.entity", "%s", entity.c_str()); + id(disp1).set_component_text_printf("keyb_num.title", "%s", title.c_str()); + } + else id(service_call_alarm_control_panel)->execute(entity.c_str(), key.c_str(), code_format.c_str(), ""); + } + else if (domain == "keyb_num") + { + std::string base_domain = doc["base_domain"]; + if (base_domain == "alarm") + { + std::string code_format = doc["code_format"]; + std::string pin = doc["pin"]; + id(service_call_alarm_control_panel)->execute(entity.c_str(), key.c_str(), code_format.c_str(), pin.c_str()); + } + else if (base_domain == "" or base_domain.empty()) base_domain = "home"; + id(disp1).send_command_printf("page %s", base_domain.c_str()); } else if (domain == "light") id(ha_call_service)->execute("light.turn_on", key.c_str(), value.c_str(), entity.c_str()); else if (domain == "cover") @@ -1496,20 +1519,43 @@ script: parameters: entity: string key: string + code_format: string pin: string then: - lambda: |- - if (${verbose_log}) ESP_LOGD("service_call_alarm_control_panel", "ESPHome remote service call"); - HomeassistantServiceResponse resp; - HomeassistantServiceMap resp_kv; - resp.service = "alarm_control_panel.XXXX"; // DEBUG - resp_kv.key = "entity_id"; - resp_kv.value = entity.c_str(); - resp.data.push_back(resp_kv); - resp_kv.key = "pin"; // DEBUG - resp_kv.value = pin.c_str(); - resp.data.push_back(resp_kv); - id(api_server).send_homeassistant_service_call(resp); + if (${verbose_log}) + { + ESP_LOGD("service_call_alarm_control_panel", "ESPHome remote service call"); + ESP_LOGD("service_call_alarm_control_panel", "entity=%s", entity.c_str()); + ESP_LOGD("service_call_alarm_control_panel", "key=%s", key.c_str()); + ESP_LOGD("service_call_alarm_control_panel", "code_format=%s", code_format.c_str()); + ESP_LOGD("service_call_alarm_control_panel", "pin=%s", entity.c_str()); + } + std::string service = ""; + if (key=="home") service = "alarm_control_panel.alarm_arm_home"; + else if (key=="away") service = "alarm_control_panel.alarm_arm_away"; + else if (key=="night") service = "alarm_control_panel.alarm_arm_night"; + else if (key=="vacation") service = "alarm_control_panel.alarm_arm_vacation"; + else if (key=="bypass") service = "alarm_control_panel.alarm_arm_custom_bypass"; + else if (key=="disarm") service = "alarm_control_panel.alarm_disarm"; + if (${verbose_log}) ESP_LOGD("service_call_alarm_control_panel", "service=%s", service.c_str()); + if (service != "" and not service.empty()) + { + if (${verbose_log}) ESP_LOGD("service_call_alarm_control_panel", "ESPHome remote service call"); + HomeassistantServiceResponse resp; + HomeassistantServiceMap resp_kv; + resp.service = service.c_str(); + resp_kv.key = "entity_id"; + resp_kv.value = entity.c_str(); + resp.data.push_back(resp_kv); + if (pin != "" and not pin.empty()) + { + resp_kv.key = "code"; + resp_kv.value = pin.c_str(); + resp.data.push_back(resp_kv); + } + id(api_server).send_homeassistant_service_call(resp); + } - id: service_call_climate mode: restart diff --git a/nspanel_eu.HMI b/nspanel_eu.HMI index 60f47d4d8d8662cd444800190085c064e86d4221..9a8f354b221e3f242cb7572fbe97fa3a64778bea 100644 GIT binary patch delta 5365 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 b$yg@in3$L(Gf81Go=Ga#)>)Fq#qIt(tWMba diff --git a/nspanel_eu.tft b/nspanel_eu.tft index 1c84c5a77ebad27edeed50fa83b400c7da6e6322..a692d3489f5171e5a8d63f1ea5a4b2016b1475ab 100644 GIT binary patch delta 19883 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 Hn3(f_uYCEP diff --git a/nspanel_eu_code/alarm.txt b/nspanel_eu_code/alarm.txt index 60d59ab..87bb839 100644 --- a/nspanel_eu_code/alarm.txt +++ b/nspanel_eu_code/alarm.txt @@ -55,32 +55,32 @@ Page alarm Variable (string) lastclick Attributes - ID : 7 + ID : 5 Scope : local Text : Max. Text Size: 255 Variable (string) back_page Attributes - ID : 8 + ID : 6 Scope : local Text : home Max. Text Size: 15 -Variable (string) va0 - Attributes - ID : 9 - Scope : local - Text : - Max. Text Size: 10 - Variable (string) code_format Attributes - ID : 34 + ID : 31 Scope : local Text : Max. Text Size: 15 +Variable (string) entity + Attributes + ID : 32 + Scope : local + Text : + Max. Text Size: 100 + Text page_label Attributes ID : 1 @@ -93,7 +93,7 @@ Text page_label Text icon_state Attributes - ID : 6 + ID : 4 Scope : local Dragging : 0 Send Component ID : disabled @@ -103,7 +103,7 @@ Text icon_state Text bt_home_text Attributes - ID : 11 + ID : 8 Scope : local Dragging : 0 Send Component ID : disabled @@ -113,7 +113,7 @@ Text bt_home_text Text bt_away_text Attributes - ID : 13 + ID : 10 Scope : local Dragging : 0 Send Component ID : disabled @@ -123,7 +123,7 @@ Text bt_away_text Text bt_night_text Attributes - ID : 15 + ID : 12 Scope : local Dragging : 0 Send Component ID : disabled @@ -133,7 +133,7 @@ Text bt_night_text Text bt_vacat_text Attributes - ID : 17 + ID : 14 Scope : local Dragging : 0 Send Component ID : disabled @@ -143,7 +143,7 @@ Text bt_vacat_text Text bt_bypass_text Attributes - ID : 19 + ID : 16 Scope : local Dragging : 0 Send Component ID : disabled @@ -153,7 +153,7 @@ Text bt_bypass_text Text bt_disarm_text Attributes - ID : 21 + ID : 18 Scope : local Dragging : 0 Send Component ID : disabled @@ -163,7 +163,7 @@ Text bt_disarm_text Text bt_home_icon Attributes - ID : 22 + ID : 19 Scope : local Dragging : 0 Send Component ID : disabled @@ -173,7 +173,7 @@ Text bt_home_icon Text bt_away_icon Attributes - ID : 23 + ID : 20 Scope : local Dragging : 0 Send Component ID : disabled @@ -183,7 +183,7 @@ Text bt_away_icon Text bt_night_icon Attributes - ID : 24 + ID : 21 Scope : local Dragging : 0 Send Component ID : disabled @@ -193,7 +193,7 @@ Text bt_night_icon Text bt_vacat_icon Attributes - ID : 25 + ID : 22 Scope : local Dragging : 0 Send Component ID : disabled @@ -203,7 +203,7 @@ Text bt_vacat_icon Text bt_bypass_icon Attributes - ID : 26 + ID : 23 Scope : local Dragging : 0 Send Component ID : disabled @@ -213,7 +213,7 @@ Text bt_bypass_icon Text bt_disarm_icon Attributes - ID : 27 + ID : 24 Scope : local Dragging : 0 Send Component ID : disabled @@ -223,56 +223,56 @@ Text bt_disarm_icon Picture alarm_exit Attributes - ID : 4 + ID : 2 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_home_pic Attributes - ID : 10 + ID : 7 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_away_pic Attributes - ID : 12 + ID : 9 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_night_pic Attributes - ID : 14 + ID : 11 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_vacat_pic Attributes - ID : 16 + ID : 13 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_bypass_pic Attributes - ID : 18 + ID : 15 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_disarm_pic Attributes - ID : 20 + ID : 17 Scope : local Dragging : 0 Send Component ID: disabled Hotspot alarm_back Attributes - ID : 5 + ID : 3 Scope : local Dragging : 0 Send Component ID: disabled @@ -298,7 +298,7 @@ Hotspot alarm_back Hotspot bt_home Attributes - ID : 28 + ID : 25 Scope : local Dragging : 0 Send Component ID: disabled @@ -312,7 +312,7 @@ Hotspot bt_home bt_home_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"home\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"home\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_home_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -322,7 +322,7 @@ Hotspot bt_home Hotspot bt_away Attributes - ID : 29 + ID : 26 Scope : local Dragging : 0 Send Component ID: disabled @@ -336,7 +336,7 @@ Hotspot bt_away bt_away_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"away\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"away\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_away_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -346,7 +346,7 @@ Hotspot bt_away Hotspot bt_night Attributes - ID : 30 + ID : 27 Scope : local Dragging : 0 Send Component ID: disabled @@ -360,7 +360,7 @@ Hotspot bt_night bt_night_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"night\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"night\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_night_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -370,7 +370,7 @@ Hotspot bt_night Hotspot bt_vacat Attributes - ID : 31 + ID : 28 Scope : local Dragging : 0 Send Component ID: disabled @@ -384,7 +384,7 @@ Hotspot bt_vacat bt_vacat_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"vacation\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"vacation\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_vacat_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -394,7 +394,7 @@ Hotspot bt_vacat Hotspot bt_bypass Attributes - ID : 32 + ID : 29 Scope : local Dragging : 0 Send Component ID: disabled @@ -408,7 +408,7 @@ Hotspot bt_bypass bt_bypass_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"bypass\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"bypass\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_bypass_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -418,7 +418,7 @@ Hotspot bt_bypass Hotspot bt_disarm Attributes - ID : 33 + ID : 30 Scope : local Dragging : 0 Send Component ID: disabled @@ -432,7 +432,7 @@ Hotspot bt_disarm bt_disarm_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"disarm\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"disarm\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_disarm_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -440,60 +440,3 @@ Hotspot bt_disarm printh 00 printh FF FF FF -Timer swipestore - Attributes - ID : 3 - Scope : local - Period (ms): 50 - Enabled : no - - Events - Timer Event - swipex=tch0 - swipey=tch1 - -TouchCap swipe - Attributes - ID : 2 - Scope: local - Value: 0 - - Events - Touch Press Event - swipestore.en=1 // Start swipestore timer - - Touch Release Event - swipestore.en=0 - // Touch has ended, x - if(tch0==0) - { - swipec=swipex-tch2 - // From Left to Right - if(swipec>swipedx) - { - //page - } - // Right to Left - swipec2=0-swipedx - if(swipec100) - { - //page - } - // Down to Up - swipec2=0-swipedy - if(swipec<-100) - { - //page - } - } - diff --git a/nspanel_eu_code/keyb_num.txt b/nspanel_eu_code/keyb_num.txt index c0f3068..73ba313 100644 --- a/nspanel_eu_code/keyb_num.txt +++ b/nspanel_eu_code/keyb_num.txt @@ -77,7 +77,7 @@ Variable (string) aux ID : 22 Scope : local Text : - Max. Text Size: 100 + Max. Text Size: 255 Variable (string) value Attributes @@ -106,7 +106,7 @@ Text pin Text : Max. Text Size : 25 -Text t1 +Text title Attributes ID : 18 Scope : local @@ -296,7 +296,7 @@ Button benter Events Touch Release Event - aux.txt="{\"domain\": \"keyb_num\", \"key\": "+key.txt+", \"value\": "+value.txt+", \"entity\": \""+entity.txt+"\", \"base_domain\": "+domain.txt+"\"}" + aux.txt="{\"domain\": \"keyb_num\", \"key\": \""+key.txt+"\", \"value\": \""+value.txt+"\", \"entity\": \""+entity.txt+"\", \"pin\": \""+pin.txt+"\", \"base_domain\": \""+domain.txt+"\"}" printh 92 prints "localevent",0 printh 00 diff --git a/nspanel_us.HMI b/nspanel_us.HMI index 9fa31e89a4520455e53e5a8a5470ca7bbac70816..855a00b00b2b4d59285d7c1f87f2ebe17adccd7d 100644 GIT binary patch delta 5099 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 delta 6613 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 diff --git a/nspanel_us.tft b/nspanel_us.tft index a037dcdbd64238e17d04d5d3f53bf9ab29d6544e..f7383eee3637b1e38fb49e2ee08483cb6976fa3d 100644 GIT binary patch delta 19594 zcmeHuiDMPj+4q@q6SD8i%|a5gAWK3>LdXJ12oUxF39>0$!cH<-fJtHn4AgN)Ar^dE z1q7`X-&ZYI3StGJ1#2r+wC$(91{AB}uK2251n&2H&fGh>R|wx9@HsHgJ@b2(^E=OZ z&Y78e;mudN9ee-S?buo-_hxog+&=0jBbL0m?clQiq#n$!Jhy$SeI45;s_ zU((e&^T)qGX5hyR{Fs3sGw@>ue$2p+8TkJ`1M#M2O4DKbnf_)UGr$ZqgUnzv#0)jV z%y2Wpj5MRnXfwu)HRH^9(`hD{iDr_SZ1y!%%v3YY>}RH%8D^%LW%f6(GY6Oh%|Yg1 zGuzBDhnTtMP&3cWHw(;RW}!LUEHaDD60_7CVU9G*%yP5B9A#FTqs=kqShLC;XO1@~ zm=n!O=45k}G-sK!%{k^=^9J)qbDlZhTwpFV7nyZty}8(2 zVlFk8naj-;=1Oyw*`d3j_{7oJ(6e zn$z$ZB>c1*Ix<49#K&dpW7J4>wQ;1rG-pt)5II`5l7p4ZQE~{&{2VQxKlAWM%dMrZ zsD>k>j&!=0;^`M|UPtTO! zp(oS3ry7Gw^K$YF^K(k_atgrsW!2|jlsu*6D@wk~5-k48pNhq4H;dP3V}(8_(LF|c zXg}zQ=P4LjDab3%(Js`|mlb**U9QptY43F1NfiSd!)aecW59^vuqiI_(21OZ?zCtn zqm+zMGL|LiB=D!A6E}l4Eo$sf&y3QC((`3{5Ir$nkGBHXY;6n*boX6EX_fjgIyMen z-(IfwS2>_NEA_CPSt|4#C1)!+SIHY#qO%43sXDuHhBfK)=)+2+_A{iG?kLx@d4$6X zhvjJNX3)i{dY)E9pO@=7YGibHG-mlh6>*1>4=K4*$z3eb$0Piy`gqvg$8Jg(gCV7j zLLc9j>siF3p$%j70C{W%HBU$X+0&pKFv>HSFUDXn@2Ifnlzdmo_munxOLTOeKUGKX zTOG*{X3*5J`cRo)O#McI^wxfQ2xep0aQ>?WUJrXMSjiwILzE08bSAD&!zvISx~@K*>TShqFYeQvOt-irk@!>D4NI0Lhh&30i?wx+s>w z(xRM#{9+Ho8�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 Gto=V-BIw)z diff --git a/nspanel_us_code/alarm.txt b/nspanel_us_code/alarm.txt index 60d59ab..87bb839 100644 --- a/nspanel_us_code/alarm.txt +++ b/nspanel_us_code/alarm.txt @@ -55,32 +55,32 @@ Page alarm Variable (string) lastclick Attributes - ID : 7 + ID : 5 Scope : local Text : Max. Text Size: 255 Variable (string) back_page Attributes - ID : 8 + ID : 6 Scope : local Text : home Max. Text Size: 15 -Variable (string) va0 - Attributes - ID : 9 - Scope : local - Text : - Max. Text Size: 10 - Variable (string) code_format Attributes - ID : 34 + ID : 31 Scope : local Text : Max. Text Size: 15 +Variable (string) entity + Attributes + ID : 32 + Scope : local + Text : + Max. Text Size: 100 + Text page_label Attributes ID : 1 @@ -93,7 +93,7 @@ Text page_label Text icon_state Attributes - ID : 6 + ID : 4 Scope : local Dragging : 0 Send Component ID : disabled @@ -103,7 +103,7 @@ Text icon_state Text bt_home_text Attributes - ID : 11 + ID : 8 Scope : local Dragging : 0 Send Component ID : disabled @@ -113,7 +113,7 @@ Text bt_home_text Text bt_away_text Attributes - ID : 13 + ID : 10 Scope : local Dragging : 0 Send Component ID : disabled @@ -123,7 +123,7 @@ Text bt_away_text Text bt_night_text Attributes - ID : 15 + ID : 12 Scope : local Dragging : 0 Send Component ID : disabled @@ -133,7 +133,7 @@ Text bt_night_text Text bt_vacat_text Attributes - ID : 17 + ID : 14 Scope : local Dragging : 0 Send Component ID : disabled @@ -143,7 +143,7 @@ Text bt_vacat_text Text bt_bypass_text Attributes - ID : 19 + ID : 16 Scope : local Dragging : 0 Send Component ID : disabled @@ -153,7 +153,7 @@ Text bt_bypass_text Text bt_disarm_text Attributes - ID : 21 + ID : 18 Scope : local Dragging : 0 Send Component ID : disabled @@ -163,7 +163,7 @@ Text bt_disarm_text Text bt_home_icon Attributes - ID : 22 + ID : 19 Scope : local Dragging : 0 Send Component ID : disabled @@ -173,7 +173,7 @@ Text bt_home_icon Text bt_away_icon Attributes - ID : 23 + ID : 20 Scope : local Dragging : 0 Send Component ID : disabled @@ -183,7 +183,7 @@ Text bt_away_icon Text bt_night_icon Attributes - ID : 24 + ID : 21 Scope : local Dragging : 0 Send Component ID : disabled @@ -193,7 +193,7 @@ Text bt_night_icon Text bt_vacat_icon Attributes - ID : 25 + ID : 22 Scope : local Dragging : 0 Send Component ID : disabled @@ -203,7 +203,7 @@ Text bt_vacat_icon Text bt_bypass_icon Attributes - ID : 26 + ID : 23 Scope : local Dragging : 0 Send Component ID : disabled @@ -213,7 +213,7 @@ Text bt_bypass_icon Text bt_disarm_icon Attributes - ID : 27 + ID : 24 Scope : local Dragging : 0 Send Component ID : disabled @@ -223,56 +223,56 @@ Text bt_disarm_icon Picture alarm_exit Attributes - ID : 4 + ID : 2 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_home_pic Attributes - ID : 10 + ID : 7 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_away_pic Attributes - ID : 12 + ID : 9 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_night_pic Attributes - ID : 14 + ID : 11 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_vacat_pic Attributes - ID : 16 + ID : 13 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_bypass_pic Attributes - ID : 18 + ID : 15 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_disarm_pic Attributes - ID : 20 + ID : 17 Scope : local Dragging : 0 Send Component ID: disabled Hotspot alarm_back Attributes - ID : 5 + ID : 3 Scope : local Dragging : 0 Send Component ID: disabled @@ -298,7 +298,7 @@ Hotspot alarm_back Hotspot bt_home Attributes - ID : 28 + ID : 25 Scope : local Dragging : 0 Send Component ID: disabled @@ -312,7 +312,7 @@ Hotspot bt_home bt_home_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"home\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"home\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_home_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -322,7 +322,7 @@ Hotspot bt_home Hotspot bt_away Attributes - ID : 29 + ID : 26 Scope : local Dragging : 0 Send Component ID: disabled @@ -336,7 +336,7 @@ Hotspot bt_away bt_away_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"away\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"away\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_away_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -346,7 +346,7 @@ Hotspot bt_away Hotspot bt_night Attributes - ID : 30 + ID : 27 Scope : local Dragging : 0 Send Component ID: disabled @@ -360,7 +360,7 @@ Hotspot bt_night bt_night_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"night\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"night\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_night_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -370,7 +370,7 @@ Hotspot bt_night Hotspot bt_vacat Attributes - ID : 31 + ID : 28 Scope : local Dragging : 0 Send Component ID: disabled @@ -384,7 +384,7 @@ Hotspot bt_vacat bt_vacat_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"vacation\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"vacation\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_vacat_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -394,7 +394,7 @@ Hotspot bt_vacat Hotspot bt_bypass Attributes - ID : 32 + ID : 29 Scope : local Dragging : 0 Send Component ID: disabled @@ -408,7 +408,7 @@ Hotspot bt_bypass bt_bypass_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"bypass\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"bypass\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_bypass_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -418,7 +418,7 @@ Hotspot bt_bypass Hotspot bt_disarm Attributes - ID : 33 + ID : 30 Scope : local Dragging : 0 Send Component ID: disabled @@ -432,7 +432,7 @@ Hotspot bt_disarm bt_disarm_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"disarm\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"disarm\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_disarm_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -440,60 +440,3 @@ Hotspot bt_disarm printh 00 printh FF FF FF -Timer swipestore - Attributes - ID : 3 - Scope : local - Period (ms): 50 - Enabled : no - - Events - Timer Event - swipex=tch0 - swipey=tch1 - -TouchCap swipe - Attributes - ID : 2 - Scope: local - Value: 0 - - Events - Touch Press Event - swipestore.en=1 // Start swipestore timer - - Touch Release Event - swipestore.en=0 - // Touch has ended, x - if(tch0==0) - { - swipec=swipex-tch2 - // From Left to Right - if(swipec>swipedx) - { - //page - } - // Right to Left - swipec2=0-swipedx - if(swipec100) - { - //page - } - // Down to Up - swipec2=0-swipedy - if(swipec<-100) - { - //page - } - } - diff --git a/nspanel_us_code/keyb_num.txt b/nspanel_us_code/keyb_num.txt index c0f3068..73ba313 100644 --- a/nspanel_us_code/keyb_num.txt +++ b/nspanel_us_code/keyb_num.txt @@ -77,7 +77,7 @@ Variable (string) aux ID : 22 Scope : local Text : - Max. Text Size: 100 + Max. Text Size: 255 Variable (string) value Attributes @@ -106,7 +106,7 @@ Text pin Text : Max. Text Size : 25 -Text t1 +Text title Attributes ID : 18 Scope : local @@ -296,7 +296,7 @@ Button benter Events Touch Release Event - aux.txt="{\"domain\": \"keyb_num\", \"key\": "+key.txt+", \"value\": "+value.txt+", \"entity\": \""+entity.txt+"\", \"base_domain\": "+domain.txt+"\"}" + aux.txt="{\"domain\": \"keyb_num\", \"key\": \""+key.txt+"\", \"value\": \""+value.txt+"\", \"entity\": \""+entity.txt+"\", \"pin\": \""+pin.txt+"\", \"base_domain\": \""+domain.txt+"\"}" printh 92 prints "localevent",0 printh 00 diff --git a/nspanel_us_land.HMI b/nspanel_us_land.HMI index 930086122a6b1b570e90bafc3caef7da51f17261..971526e83600bddd89e5acbf9f95ea70dfb2f584 100644 GIT binary patch delta 4647 zcmeH|dt4OP702)F!U8G}1r`)VSff#w0KTds!U|a9BN438s00=j1yn@YMIZ)rxiX`P zub|u})_}IwM|>fgNh^vH>!ZFljWLGQWNnC#`oh*n<178$WpKgNs-LuS77u~&QiX8eSAEJ;cvst2b#i27fcA#EUynYaSt-PEoY-w9H(tSY zy_<&YFsSV|F8R6IEr;~?B1AasDOAR_o7++#CHp&jM_<4_p+3QxRIE~Qn;-mqAi+Xj z@WZ`NMq=_YRm;?dd;EMc%|Zgbaj&MN(!0x5mEr1S+^pAW$o4nXb{m)c92G2)?g9oL zxn~dJH>Dv6Kd0#=5~;EWA(gJ(7O496ZvHmwjEjgq9Rup;I+Lmj6}S1p&(yGfC{LA6L1C^Ic}g!Rn7lX`5#MVku6%ZMGHU$ z)W8Wi1C4Bpb_v?|KQaIhBN(G;KiZ#0&;c}(4x~{uni}XJ8bf1g934!5PKVH!=}(cc-=Ik}nHp&dok%Cq$uyNtp;KuZ zO{W=j8l6sO&`dg$X3<%6HqEA{o#qp}-EG5W&gX^L55KTK+h)$zGfkDbHyi3?p(*E_ z_@7Nkh=GuYYP(6g#}VR+;^9Zn!Gz>1{>?ALq4+lsB}A>*+lD#D%flUGnARVQW7k~7;{Hg*$sGmm@baDAdqr=OOZ7i!8i>2-;^kf20ePRew1 zYN9RzrcQ6aXt>LS(fK|stH$inh7Ze1&ukn7lf8M*9H2_n$>p&Y*_o-b7Wz1u(oNG@ zMQGkiR-Pnk*|IA;HFAexmJAJxUZ0!5tgboM68tr6>uFO9(dw21=73y~2lBz2U@mwI z6o5i7PqwFYm?lrZIauyO>(=gNp80^$?cY> z<+g(7HqWDZhGb;uklOwoWaALa9pRai#8f?JwUIMDrP+c|!_Ik0`F=CZ>5a*sXi83- zIU_aMl$vW|BU?*nnBkJim)XvWE^_@03lmtax3mBgh1V^8Saeru5VNilogNF3GAAXk zNr-fdX#%r}*<+Yjl1aln^DSQN+89d=3%`XgIj>F>S+%v)gN^r-76}I$LI>)l7<*{{ z=1-TIJ~hqMB=(XEC0aQs+46zFZ0#`pP{Z`{0BPuBGjmcVr8s7O$%IskAG4jxf1eqy zi?>)-d(nes1WHSVgAF0VI!Z&@HeY;VURFwWwqtc6P)3xU0=pCJm>2)1CD#7rk4>JO zo}Ds##-qtwSaL$CzAXG=tl-P)I!XIVBcxtJ5Zhn6@}!(lQ~IsItRV~a;_VCzC;}8L z0LAj{3~@q&`~4$^D85DVUpAN}Rf+n-cTmVPHMquc&xMf1O2JDl32BX;k{|E66VhAp zAIEn7mSPX{Aw;7zf_Ps-S}68-Eg@}`xzqg#nWv1u65#MZ>|pm7+7~DYCd6Bru)Gr? z7G;9>iw=L6ZiFmQ{2zu8;-ieO4kd&t{@9)l|JdFR|5tqpnX8N$JHTOo7KQa2-zGlB zVIN0%7AO;jqa+*cBPhMqihoMH!&Z+bWS!#QFqV)FiXA_JkS&V+Ajx5Gny9o*SG@m@ zN$98cUdb{K=laOzz2Z(cW-Ko3#SGhL`^s~ViT4GTbX4?}7oQM2s#(GCd|%nCU-3p2 z3*Vbx&9Y)paAgUl<@UxVXxQ@gxnDDnGoqeZt#w*v{T{VA=8SktV9UnT`O3yxaT+>7 z|4J=O>LO|63undKLRl*}75*#Kt*dBy0OlebxgLn%AS|_0;9(91?&#pWid_7vcAIts3(oQ;Ti@A zUMzU4$%mC)6I;l8>cv!bS+{ofXX+uj$%dPJNSlTsHtrdHTb!b1h7-kF8E-g6T~^rH zT~Jhhj0Jmr+iv}R5~~MW6vjrc;-gA|52k1x5w)6(5K5| ztHfeq=vt-9m%K(uqa8kukWGreHqlZ2q7g-}`1_+BH`ZunlYn6<`Ob1Utbl@DY%~$KZG1_h2`u0(-z-P!0Bh z{h$VX0uF#bfP>%=I1G+}KZ2v+7&s12fRn%qJ_UaQpMg{0b8s4b0nUIgK`rR68I~)46cBy;2O9N>cI{0H}H3G6Wju~!5#1q@IAN- z?t%N@0eA?0czcdUSPHnPxTv`}adGBizw5#+S1xW`T5xH}r4<)onZ!)K$I5&SHX7#MNv$Gh8KZVEY}ouvr<4^K`oq;5l|Eu56n1X zBBY1170b*mcSU!IEAgtSscV3`?rycUR_>N5g;|yxEBie&ce?n`KKtiB&+h;%NX{M@xAWcV~eOSOPZ46D1G-i?d*U@C6i*t!2pte40 zZ|$QqJ>&I$C$hD*12)hSALllEN^p^<6jgm;!udYp^=!78;{CAgOr70#T(`y}Jx3g5wBDXLp-eOE{*$7EnKrs~5VL#Q zb@twfZ++a>HB{ZK_Ax}e#cw&^T-{@MdTWZol46iR16ptc9q8p0gM0JI|M$gp*(9+Gq1Kb0t7*|}mi#+31jG$O6icg|7g^GDP<{81tekMb;!lb>iYmH6^E zOY{7+UzOGHTbtG!<&2A_T_csT7fboEQ-wy^bldcRyE4WOi+O&0=PdI)UfF2(cIP;D zmZ^Y`+@9yp$NXsW=d+W|Y4YJ@bCXut$!c-zBx9#fCI0Lbvmc)tm$!%SUuFs5l{f44 za_k)Q8a?+ZDw)rFJT`Rkl*=32_MG16$DjYmQpz(e>jQXb&NhEbi01~#hXN>sjj#!d zU^8riVknVAJWE@D@X}R=IG$hkf6>RYT9kG5NF=(atfju+8hiI!-we6GeR<&)mK)Gp>HByrK3ENv@Xzn|pOJ^5iCCw%n?>S|!=&ZoyOO&Kfgp1qNkMF5g*Wd2+tKH74~)dX9WJ(^f8}6)RuG z+C@aJ{^jFD<;uA6DWYvkznej{L+Rx!)b5*&OW$#c^W3uqe!RdLMVCx03b}<^)uw#*YDl9|Aw)c2QceOu%>|=|&+-Wp(iSKK(dGOvQn_1fL zJj{p)>rCFBZgz7V%e7`<8tH&@`?7Xhn)7Y2ZYdgGKFa!_Sg>TrPV(kcHXp48gRo65 zA7u-P*O_ljEV{&xzG9tGd|CNu#d@M-<*q*IPUNNZP7fkarGGGhXn@i`8%T6b+4o&< z^(oLfh$v4PPsYVkr1UoYg1dTL@K1A!sSeLNZw;;!{I!G-ZB}-O9ZfV|8P6I^G+DWo zDkl(SC@1lCxO$?!5$YQh;2G#T&UaIZhA78zpHAef^k6&>H))HVZ@fEJ{NwCC@oL|m zq;@^-Ro9$S+^eqMi+j@5^XIAkn+0lrX0h78SfZZj%HpN!nSPR~Zdkff?eF7CbA6h{ zYl#Y#6Yb0;+M@KiPHo76t5Q0=FR)Sgu0?2gahx>el}XHolc8_{WHxi;@m`^-wU zyH~6I!fv(isv!zf_HBHLC|c>=FB45tdT=d`rvl{@RJ}^1SH9Pp1L{xA-q(owh)3D; zV|ka!>ejY)PqH*c!@qysI#?4mq}JFwSn@vy!idqs69Ul*U}-PU(!uvD&ZsI%T2 zCud%-dSjLR`9f=$MsA7U*6m@**Kdak*a6SOPN;-kPzBZS0_=u8z@Y|SgqL71ybQmF zeNYSg;T3ol4!~=05MGBv@Edpo-h{*OTlgIufjT$}$Kdy1hkAGm8bF5Q&Ps%M2Lt`5hF#65;0oD7!hMdj1w_lM3{&PBEm&P zh?pp1l88tVlSNDs5hY@(h-o6CMNAj*pokeFVnjS7B34A4h=)ZOM8u0o5RoV%NyJPM P$s$suwtRi6WC{E?UT-D- diff --git a/nspanel_us_land.tft b/nspanel_us_land.tft index 0ff50b030f5b0351ad4b8e5ccd8da35d9a689564..bac138288634a5235ac21131acf548c210ebc120 100644 GIT binary patch delta 20735 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¥+$u=1x*N>1bKNQy;UL>l8#e!Hk_lHxmq; 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 DXF^YY diff --git a/nspanel_us_land_code/alarm.txt b/nspanel_us_land_code/alarm.txt index 60d59ab..87bb839 100644 --- a/nspanel_us_land_code/alarm.txt +++ b/nspanel_us_land_code/alarm.txt @@ -55,32 +55,32 @@ Page alarm Variable (string) lastclick Attributes - ID : 7 + ID : 5 Scope : local Text : Max. Text Size: 255 Variable (string) back_page Attributes - ID : 8 + ID : 6 Scope : local Text : home Max. Text Size: 15 -Variable (string) va0 - Attributes - ID : 9 - Scope : local - Text : - Max. Text Size: 10 - Variable (string) code_format Attributes - ID : 34 + ID : 31 Scope : local Text : Max. Text Size: 15 +Variable (string) entity + Attributes + ID : 32 + Scope : local + Text : + Max. Text Size: 100 + Text page_label Attributes ID : 1 @@ -93,7 +93,7 @@ Text page_label Text icon_state Attributes - ID : 6 + ID : 4 Scope : local Dragging : 0 Send Component ID : disabled @@ -103,7 +103,7 @@ Text icon_state Text bt_home_text Attributes - ID : 11 + ID : 8 Scope : local Dragging : 0 Send Component ID : disabled @@ -113,7 +113,7 @@ Text bt_home_text Text bt_away_text Attributes - ID : 13 + ID : 10 Scope : local Dragging : 0 Send Component ID : disabled @@ -123,7 +123,7 @@ Text bt_away_text Text bt_night_text Attributes - ID : 15 + ID : 12 Scope : local Dragging : 0 Send Component ID : disabled @@ -133,7 +133,7 @@ Text bt_night_text Text bt_vacat_text Attributes - ID : 17 + ID : 14 Scope : local Dragging : 0 Send Component ID : disabled @@ -143,7 +143,7 @@ Text bt_vacat_text Text bt_bypass_text Attributes - ID : 19 + ID : 16 Scope : local Dragging : 0 Send Component ID : disabled @@ -153,7 +153,7 @@ Text bt_bypass_text Text bt_disarm_text Attributes - ID : 21 + ID : 18 Scope : local Dragging : 0 Send Component ID : disabled @@ -163,7 +163,7 @@ Text bt_disarm_text Text bt_home_icon Attributes - ID : 22 + ID : 19 Scope : local Dragging : 0 Send Component ID : disabled @@ -173,7 +173,7 @@ Text bt_home_icon Text bt_away_icon Attributes - ID : 23 + ID : 20 Scope : local Dragging : 0 Send Component ID : disabled @@ -183,7 +183,7 @@ Text bt_away_icon Text bt_night_icon Attributes - ID : 24 + ID : 21 Scope : local Dragging : 0 Send Component ID : disabled @@ -193,7 +193,7 @@ Text bt_night_icon Text bt_vacat_icon Attributes - ID : 25 + ID : 22 Scope : local Dragging : 0 Send Component ID : disabled @@ -203,7 +203,7 @@ Text bt_vacat_icon Text bt_bypass_icon Attributes - ID : 26 + ID : 23 Scope : local Dragging : 0 Send Component ID : disabled @@ -213,7 +213,7 @@ Text bt_bypass_icon Text bt_disarm_icon Attributes - ID : 27 + ID : 24 Scope : local Dragging : 0 Send Component ID : disabled @@ -223,56 +223,56 @@ Text bt_disarm_icon Picture alarm_exit Attributes - ID : 4 + ID : 2 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_home_pic Attributes - ID : 10 + ID : 7 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_away_pic Attributes - ID : 12 + ID : 9 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_night_pic Attributes - ID : 14 + ID : 11 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_vacat_pic Attributes - ID : 16 + ID : 13 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_bypass_pic Attributes - ID : 18 + ID : 15 Scope : local Dragging : 0 Send Component ID: disabled Picture bt_disarm_pic Attributes - ID : 20 + ID : 17 Scope : local Dragging : 0 Send Component ID: disabled Hotspot alarm_back Attributes - ID : 5 + ID : 3 Scope : local Dragging : 0 Send Component ID: disabled @@ -298,7 +298,7 @@ Hotspot alarm_back Hotspot bt_home Attributes - ID : 28 + ID : 25 Scope : local Dragging : 0 Send Component ID: disabled @@ -312,7 +312,7 @@ Hotspot bt_home bt_home_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"home\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"home\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_home_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -322,7 +322,7 @@ Hotspot bt_home Hotspot bt_away Attributes - ID : 29 + ID : 26 Scope : local Dragging : 0 Send Component ID: disabled @@ -336,7 +336,7 @@ Hotspot bt_away bt_away_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"away\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"away\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_away_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -346,7 +346,7 @@ Hotspot bt_away Hotspot bt_night Attributes - ID : 30 + ID : 27 Scope : local Dragging : 0 Send Component ID: disabled @@ -360,7 +360,7 @@ Hotspot bt_night bt_night_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"night\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"night\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_night_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -370,7 +370,7 @@ Hotspot bt_night Hotspot bt_vacat Attributes - ID : 31 + ID : 28 Scope : local Dragging : 0 Send Component ID: disabled @@ -384,7 +384,7 @@ Hotspot bt_vacat bt_vacat_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"vacation\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"vacation\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_vacat_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -394,7 +394,7 @@ Hotspot bt_vacat Hotspot bt_bypass Attributes - ID : 32 + ID : 29 Scope : local Dragging : 0 Send Component ID: disabled @@ -408,7 +408,7 @@ Hotspot bt_bypass bt_bypass_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"bypass\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"bypass\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_bypass_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -418,7 +418,7 @@ Hotspot bt_bypass Hotspot bt_disarm Attributes - ID : 33 + ID : 30 Scope : local Dragging : 0 Send Component ID: disabled @@ -432,7 +432,7 @@ Hotspot bt_disarm bt_disarm_icon.pco=0 Touch Release Event - lastclick.txt="{\"domain\": \"alarm\", \"key\": \"disarm\", \"value\": \"click\", \"entity\": \""+home.entity.txt+"\", \"code_format\": \""+code_format.txt+"\"}" + lastclick.txt="{\"domain\": \"alarm\", \"key\": \"disarm\", \"value\": \"click\", \"entity\": \""+entity.txt+"\", \"mui\": \""+bt_disarm_text.txt+"\", \"code_format\": \""+code_format.txt+"\"}" printh 92 prints "localevent",0 printh 00 @@ -440,60 +440,3 @@ Hotspot bt_disarm printh 00 printh FF FF FF -Timer swipestore - Attributes - ID : 3 - Scope : local - Period (ms): 50 - Enabled : no - - Events - Timer Event - swipex=tch0 - swipey=tch1 - -TouchCap swipe - Attributes - ID : 2 - Scope: local - Value: 0 - - Events - Touch Press Event - swipestore.en=1 // Start swipestore timer - - Touch Release Event - swipestore.en=0 - // Touch has ended, x - if(tch0==0) - { - swipec=swipex-tch2 - // From Left to Right - if(swipec>swipedx) - { - //page - } - // Right to Left - swipec2=0-swipedx - if(swipec100) - { - //page - } - // Down to Up - swipec2=0-swipedy - if(swipec<-100) - { - //page - } - } - diff --git a/nspanel_us_land_code/keyb_num.txt b/nspanel_us_land_code/keyb_num.txt index c0f3068..73ba313 100644 --- a/nspanel_us_land_code/keyb_num.txt +++ b/nspanel_us_land_code/keyb_num.txt @@ -77,7 +77,7 @@ Variable (string) aux ID : 22 Scope : local Text : - Max. Text Size: 100 + Max. Text Size: 255 Variable (string) value Attributes @@ -106,7 +106,7 @@ Text pin Text : Max. Text Size : 25 -Text t1 +Text title Attributes ID : 18 Scope : local @@ -296,7 +296,7 @@ Button benter Events Touch Release Event - aux.txt="{\"domain\": \"keyb_num\", \"key\": "+key.txt+", \"value\": "+value.txt+", \"entity\": \""+entity.txt+"\", \"base_domain\": "+domain.txt+"\"}" + aux.txt="{\"domain\": \"keyb_num\", \"key\": \""+key.txt+"\", \"value\": \""+value.txt+"\", \"entity\": \""+entity.txt+"\", \"pin\": \""+pin.txt+"\", \"base_domain\": \""+domain.txt+"\"}" printh 92 prints "localevent",0 printh 00