Dilbert66 / esphome-vistaECP

This is an implementation of an ESPHOME custom component and ESP Library to interface directly to a Safewatch/Honeywell/Ademco Vista 15/20 alarm system using the ECP interface and very inexpensive ESP8266/ESP32 modules .
GNU Lesser General Public License v2.1
124 stars 21 forks source link

Issues with sensors and keypad presses #80

Closed travisrroy closed 1 year ago

travisrroy commented 1 year ago

Hello Alain! Thanks for creating this project to help us smartify our older alarm systems.

I'm having some odd issues with my setup that I haven't been able to figure out. I've read through many of the other issues people have had and still haven't been able to figure it out. I've tried to attach as much information and logs about my system as possible. Don't mind the Telco Fault, I had the system disconnected at this time to hopefully prevent a false alarm. I'm sure my issues are just a mistake (or mistakes) I've made trying to set this up.

System

Devices

Config

#for documentation see project at https://github.com/Dilbert66/esphome-VistaECP
substitutions:
  systemName: "vistaalarm"
  accessCode: !secret access_code #Only comes into effect if needed for arming and quickarm is not set
  keypadAddr: "18" #set this to an unused keypad address slot. Make sure to enable it in  your vista panel programming

  ##esp32
  rxPin: "22" #GPIO pin to use for data receive (yellow line) 
  txPin: "21" #GPIO pin to use for data transmit (green line)
  monitorPin: "18" #GPIO pin to use for monitoring module traffic such as RF or Expanders . Set to -1 to disable

  ##esp8266
  # rxPin: "5" #GPIO pin to use for data receive (yellow line) 
  # txPin: "4" #GPIO pin to use for data transmit (green line)
  # monitorPin: "14" #GPIO pin to use for monitoring module traffic such as RF or Expanders . Set to -1 to disable

  # module addresses:
  # 07 4229 zone expander  zones 9-16
  # 08 4229 zone expander zones 17-24
  # 09 4229 zone expander zones 25-32
  # 10 4229 zone expander zones 33-40
  # 11 4229 zone expander zones 41 48
  # 12 4204 relay module  
  # 13 4204 relay module
  # 14 4204 relay module
  # 15 4204 relay module

  expanderAddr1: "07" # 1st zone expander emulator (4229) address to use . Set to 0 to disable. 
  expanderAddr2: "0" # 2nd expander emulator address to use . Set to 0 to disable. 

  relayAddr1: "0" # relay module emulation (4204) addresses. Set to 0 to disable
  relayAddr2: "0"
  relayAddr3: "0"
  relayAddr4: "0"

  TTL: "30000"  # time  to live  in ms for zone/fire status before expiring;
  quickArm: "false"
  lrrSupervisor: "true" # set to true if we don't have an LRR monitoring supervisor we can emulate one to get the statuses

globals:
       #persistent storage variables
    - id: zoneStates  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes
    - id: zoneAlarms  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes
    - id: zoneBypass  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes
    - id: zoneChecks  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes      
    - id: lrrCode  #persistant storage for last lrr message in case of reboot
      type: int
      restore_value: yes      

esphome:
  name: $systemName
  platform: ESP32
  #board: nodemcu-32s
  board: mhetesp32devkit
  # platform: ESP8266
  # board: nodemcuv2

  # subdirectory where library *.h and *.cpp are placed 
  includes:
    - vistaEcpInterface/

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Optional manual IP
  manual_ip:
    static_ip: 192.168.1.187
    gateway: 192.168.1.1
    subnet: 255.255.255.0

  ap:
    ssid: "$systemName"
    password: !secret wifi_password_backup

logger:
  baud_rate: 115200
  level: DEBUG

api:
   password: !secret api_password  
   #encryption:
     #key: !secret encryption_key   

ota:
   password: !secret ota_password
   safe_mode: True

status_led:
  pin:
    number: GPIO2
    inverted: yes

custom_component:
- lambda: |-
    auto VistaECP = new vistaECPHome($keypadAddr,$rxPin,$txPin,$monitorPin);
    VistaECP->accessCode="$accessCode";
    VistaECP->quickArm=$quickArm;
    VistaECP->expanderAddr1=$expanderAddr1; //zone expander
    VistaECP->expanderAddr2=$expanderAddr2;
    VistaECP->relayAddr1=$relayAddr1; //relay module 
    VistaECP->relayAddr2=$relayAddr2;
    VistaECP->relayAddr3=$relayAddr3; 
    VistaECP->relayAddr4=$relayAddr4;     
    VistaECP->lrrSupervisor=$lrrSupervisor;
    VistaECP->TTL=$TTL;
    VistaECP->debug=1;
    VistaECP->onSystemStatusChange([&](std::string statusCode) {
       id(system_status).publish_state(statusCode);
    });
    VistaECP->onLrrMsgChange([&](std::string msg) {
        id(m1).publish_state(msg); 
    }); 
    VistaECP->onRfMsgChange([&](std::string msg) {
        id(rf1).publish_state(msg); 
    });    
    VistaECP->onLine1DisplayChange([&](std::string msg) {
        id(l1).publish_state(msg); 
    });  
    VistaECP->onLine2DisplayChange([&](std::string msg) {
        id(l2).publish_state(msg); 
    }); 
    VistaECP->onBeepsChange([&](std::string beeps) {
        id(beep1).publish_state(beeps); 
    });      
    VistaECP->onStatusChange([&](sysState led,bool open) {
      switch(led) {
        case sfire: id(fire).publish_state(open);break;
        case salarm: id(alarm1).publish_state(open);break;
        case strouble: id(trouble).publish_state(open);break;
        case sarmedstay: id(stay).publish_state(open);break;
        case sarmedaway: id(away).publish_state(open);break;
        case sinstant: id(instant).publish_state(open);break; 
        case sready: id(ready).publish_state(open);break; 
        case sac: id(ac).publish_state(open);break;          
        case sbypass: id(bypass).publish_state(open);break;  
        case schime: id(chime).publish_state(open);break;
        case sbat: id(bat).publish_state(open);break;
        case scheck: id(check).publish_state(open);break;
        case sarmednight: id(night).publish_state(open);break;   
        case sarmed: id(armed).publish_state(open);break;       
        default: break;
        }
    });
    VistaECP->onZoneStatusChange([&](uint8_t zone, std::string open) {
      switch (zone) {
        case 9: id(z9).publish_state(open); break;
        case 10: id(z10).publish_state(open); break;
        case 11: id(z11).publish_state(open); break;
        case 12: id(z12).publish_state(open); break;
        case 13: id(z13).publish_state(open); break;
      }
    }); //you can add more zones above . Also add the text sensor entry below

    VistaECP->onRelayStatusChange([&](uint8_t addr,uint8_t zone,bool open) {
    switch(addr) {
    case 12: switch (zone) {
                case 1: id(r1).publish_state(open); break;
                case 2: id(r2).publish_state(open); break;
              }
              break;
      case 13: break;
      }
    });  //add as many case and switch statements as needed to control your binary sensor outputs      
    return {VistaECP};

binary_sensor:
 #- platform: gpio  #example use of pin d8 as a zone trigger port for the emulated zone expander
  #  pin: D8
  #  id: pind8
  #  device_class: window
   # on_press:       #zone,on/off
   #   - lambda: |-
   #       vista.setExpFault(17,1); 
  #  on_release:
  #    - lambda: |-
   #       vista.setExpFault(17,0);  

    #system status indicator definitions
  - platform: template
    id: trouble
    name: "$systemName Trouble"
    #device_class: problem

  - platform: template
    id: bypass
    name: "$systemName Bypass"

  - platform: template
    id: away
    name: "$systemName Away"

  - platform: template
    id: armed
    name: "$systemName Armed"    

  - platform: template
    id: stay
    name: "$systemName Stay"

  - platform: template
    id: instant
    name: "$systemName Instant"

  - platform: template
    id: night
    name: "$systemName Night"

  - platform: template
    id: ac
    name: "$systemName AC"
    device_class: plug  

  - platform: template
    id: chime
    name: "$systemName Chime"

  - platform: template
    id: check
    name: "$systemName Check"
    device_class: problem  

  - platform: template
    id: alarm1
    name: "$systemName Alarm"

  - platform: template
    id: bat
    name: "$systemName Battery"
    device_class: problem

  - platform: template
    id: fire
    device_class: smoke
    name: "$systemName Fire"

  - platform: template
    id: ready
    name: "$systemName Ready"
    #device_class: problem

    #relay module channels add as many as you need.  To hide, comment out the name: attribute
  - platform: template
    id: r1
    # name: "$systemName Relay1"

  - platform: template
    id: r2
    # name: "$systemName Relay2"   

    #zone definitions.  Add more (also add to the switch statment above). To hide, comment out the name: attribute
text_sensor:
    #zone definitions
  - platform: template
    id: z9
    name: "$systemName Front Door"

  - platform: template
    id: z10
    name: "$systemName Patio Door"

  - platform: template
    id: z11
    name: "$systemName Garage Door"

  - platform: template
    id: z12
    name: "$systemName Basement Door"

  - platform: template
    id: z13
    name: "$systemName Main Motion"

    #system status 
  - platform: template
    id: system_status
    name: "$systemName System Status"
    icon: "mdi:shield"

  - platform: template
    id: m1
    name: "$systemName Lrr Msg"
    icon: "mdi:alert-box"

  - platform: template
    id: rf1
    name: "$systemName RF Msg"
    icon: "mdi:alert-box"    

  - platform: template
    id: l1
    name: "$systemName Line1"

  - platform: template
    id: l2
    name: "$systemName Line2"

  - platform: template
    id: beep1
    name: "$systemName Beeps"    

switch:
  - platform: template
    name: "$systemName Connection"
    id: connection_status_switch
    lambda: |-
      return vista.keybusConnected;
    icon: "mdi:shield-link-variant"
    turn_on_action:
      - switch.toggle: restart_switch
    turn_off_action:
      - lambda: |-
          disconnectVista();
  - platform: restart
    id: restart_switch

Sensor Issue

Things I've Tried

Log

This is the log from when I open the basement door, zone 12.

[02:34:17][I][EXT:445]: FB 04 01 CA 5C A0 00 00 00 00 00 00 00 
[02:34:17][D][info:690]: RFX: 0117340,A0
[02:34:17][D][text_sensor:067]: 'vistaalarm RF Msg': Sending state '0117340,A0'
[02:34:17][I][CMD:445]: F2 12 06 00 00 00 00 61 6C 02 45 6C F5 
[02:34:17][I][CMD:445]: F2 16 06 00 00 00 00 62 63 02 45 43 F5 
[02:34:17][I][CMD:445]: F7 00 00 07 10 08 00 0C 08 02 00 00 2A 
[02:34:17][D][text_sensor:067]: 'vistaalarm Line1': Sending state '****DISARMED****'
[02:34:17][D][text_sensor:067]: 'vistaalarm Line2': Sending state 'Hit * for faults'
[02:34:17][I][INFO:724]: Prompt: ****DISARMED**** 
[02:34:17][I][INFO:725]: Prompt: Hit * for faults
[02:34:17][I][INFO:726]: Beeps: 0

[02:34:17][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'unavailable'
[02:34:17][D][binary_sensor:036]: 'vistaalarm Ready': Sending state OFF
[02:34:17][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:17][I][EXT:445]: F6 12 00 92 00 C1 C4 00 00 00 00 00 00 
[02:34:18][I][EXT:445]: F6 12 00 12 01 ED C4 00 00 00 00 00 00 
[02:34:18][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:18][I][EXT:445]: F6 12 00 22 09 12 E2 00 00 00 00 00 00 
[02:34:18][I][EXT:445]: F6 12 00 52 01 AD E2 00 00 00 00 00 00 
[02:34:19][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:19][I][EXT:445]: F6 12 00 12 02 41 F4 00 00 00 00 00 00 
[02:34:19][I][EXT:445]: F6 12 00 92 01 6D F4 00 00 00 00 00 00 
[02:34:19][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:19][I][EXT:445]: F6 12 00 92 02 0A EC 00 00 00 00 00 00 
[02:34:20][I][EXT:445]: F6 12 00 D2 01 2D EC 00 00 00 00 00 00 
[02:34:20][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:20][I][EXT:445]: F6 12 00 92 00 C1 C4 00 00 00 00 00 00 
[02:34:20][I][EXT:445]: F6 12 00 12 01 ED C4 00 00 00 00 00 00 
[02:34:21][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:21][I][EXT:445]: F6 12 00 12 09 0A E2 00 00 00 00 00 00 
[02:34:21][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:21][I][EXT:445]: F6 12 00 52 01 AD 00 00 00 00 00 00 00 
[02:34:25][I][CMD:445]: F7 00 00 07 10 08 00 0C 08 02 00 00 2A 
[02:34:25][I][INFO:724]: Prompt: ****DISARMED**** 
[02:34:25][I][INFO:725]: Prompt: Hit * for faults
[02:34:25][I][INFO:726]: Beeps: 0

[02:34:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:25][I][EXT:445]: F6 12 00 22 12 82 EC 00 00 00 00 00 00 
[02:34:25][I][EXT:445]: F6 12 00 92 01 6D EC 00 00 00 00 00 00 
[02:34:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:26][I][EXT:445]: F6 12 00 22 04 12 C4 00 00 00 00 00 00 
[02:34:26][I][EXT:445]: F6 12 00 D2 01 2D C4 00 00 00 00 00 00 
[02:34:26][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:26][I][CMD:445]: 77 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:26][I][EXT:445]: F6 12 00 12 00 C1 DC 00 00 00 00 00 00 
[02:34:26][I][CMD:445]: FB 02 20 F1 F2 00 00 00 00 00 00 00 00 
[02:34:27][I][EXT:445]: FB 04 01 CA 5C 80 00 00 00 00 00 00 00 
[02:34:27][D][info:690]: RFX: 0117340,80
[02:34:27][D][text_sensor:067]: 'vistaalarm RF Msg': Sending state '0117340,80'
[02:34:27][I][CMD:445]: F2 12 06 00 00 00 00 63 6C 02 45 6C F5 
[02:34:27][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 
[02:34:27][D][text_sensor:067]: 'vistaalarm Line1': Sending state 'Telco Fault     '
[02:34:27][D][text_sensor:067]: 'vistaalarm Line2': Sending state '                '
[02:34:27][I][INFO:724]: Prompt: Telco Fault      {84,101,108,99,111,0}
[02:34:27][I][INFO:725]: Prompt:                 
[02:34:27][I][INFO:726]: Beeps: 0

[02:34:27][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'disarmed'
[02:34:27][D][binary_sensor:036]: 'vistaalarm Ready': Sending state ON
[02:34:27][I][CMD:445]: F2 16 06 00 00 00 00 64 63 02 45 43 F5 
[02:34:27][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:27][I][EXT:445]: F6 12 00 22 00 02 F4 00 00 00 00 00 00 
[02:34:27][I][EXT:445]: F6 12 00 12 01 ED F4 00 00 00 00 00 00 
[02:34:27][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 22 09 82 62 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 52 01 AD 62 00 00 00 00 00 00 
[02:34:28][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 40 04 24 22 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 92 01 6D 22 00 00 00 00 00 00 
[02:34:29][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:29][I][EXT:445]: F6 12 00 02 02 82 DC 00 00 00 00 00 00 
[02:34:29][I][EXT:445]: F6 12 00 D2 01 2D DC 00 00 00 00 00 00 
[02:34:29][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:30][I][EXT:445]: F6 12 00 22 00 02 F4 00 00 00 00 00 00 
[02:34:30][I][EXT:445]: F6 12 00 12 01 ED F4 00 00 00 00 00 00 
[02:34:30][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:30][I][EXT:445]: F6 12 00 92 09 0A 62 00 00 00 00 00 00 
[02:34:31][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:31][I][EXT:445]: F6 12 00 52 01 AD 00 00 00 00 00 00 00 
[02:34:32][D][text_sensor:067]: 'vistaalarm Beeps': Sending state '0'
[02:34:34][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 
[02:34:34][I][INFO:724]: Prompt: Telco Fault      {84,101,108,99,111,0}
[02:34:34][I][INFO:725]: Prompt:                 
[02:34:34][I][INFO:726]: Beeps: 0

[02:34:36][I][CMD:445]: FB 02 25 81 5D 00 00 00 00 00 00 00 00 
[02:34:36][I][EXT:445]: 00 21 00 DF 00 00 00 00 00 00 00 00 74 
[02:34:37][I][CMD:445]: FB 02 20 60 83 00 00 00 00 00 00 00 00 
[02:34:37][I][EXT:445]: 00 24 00 DC 00 00 00 00 00 00 00 00 74 
[02:34:38][I][CMD:445]: F7 00 00 07 10 08 00 1C 08 02 00 00 2A

HA Keypad Issue

Log

When just hitting a key on the keypad

[02:42:23][D][Debug:412]: Writing keys: 0
[02:42:23][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:23][I][EXT:445]: F6 12 00 22 02 00 B1 00 00 00 00 00 00 
[02:42:24][I][EXT:445]: F6 12 00 92 01 6D B1 00 00 00 00 00 00 
[02:42:24][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:24][I][EXT:445]: F6 12 00 12 02 B0 FF 00 00 00 00 00 00 
[02:42:24][I][EXT:445]: F6 12 00 D2 01 2D FF 00 00 00 00 00 00 
[02:42:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:25][I][EXT:445]: F6 12 00 22 20 00 D8 00 00 00 00 00 00 
[02:42:25][I][EXT:445]: F6 12 00 12 01 ED D8 00 00 00 00 00 00 
[02:42:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:25][I][EXT:445]: F6 12 00 92 04 B1 00 00 00 00 00 00 00 
[02:42:26][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:26][I][CMD:445]: 77 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:26][I][EXT:445]: F6 12 00 12 08 00 E8 00 00 00 00 00 00 
[02:42:26][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:26][I][EXT:445]: F6 12 00 52 01 AD 00 00 00 00 00 00 00 
[02:42:30][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 
[02:42:30][I][INFO:724]: Prompt: Telco Fault      {84,101,108,99,111,0}
[02:42:30][I][INFO:725]: Prompt:                 
[02:42:30][I][INFO:726]: Beeps: 0

[02:42:32][D][text_sensor:067]: 'vistaalarm Beeps': Sending state '0'
[02:42:34][I][CMD:445]: F7 00 00 07 10 08 00 1C 08 02 00 00 2A 
[02:42:34][D][text_sensor:067]: 'vistaalarm Line1': Sending state '****DISARMED****'
[02:42:34][D][text_sensor:067]: 'vistaalarm Line2': Sending state '  Ready to Arm  '
[02:42:34][I][INFO:724]: Prompt: ****DISARMED**** 
[02:42:34][I][INFO:725]: Prompt:   Ready to Arm  
[02:42:34][I][INFO:726]: Beeps: 0

[02:42:35][I][EXT:445]: F6 12 00 00 21 00 DF 00 00 00 00 00 00 
[02:42:36][I][CMD:445]: FB 02 20 82 61 00 00 00 00 00 00 00 00 
[02:42:37][I][EXT:445]: 00 24 82 5A 00 00 00 00 00 00 00 00 74 
[02:42:38][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 

When using HA Developer Tools to send a code

[02:45:41][D][Debug:412]: Writing keys: 12341
[02:45:42][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:42][I][EXT:445]: F6 12 00 22 0A 01 02 03 04 01 DD 00 00 
[02:45:42][I][EXT:445]: F6 12 00 92 01 6D 02 03 04 01 DD 00 00 
[02:45:42][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:42][I][EXT:445]: F6 12 00 92 0A 01 E0 C0 70 9D 00 00 00 
[02:45:43][I][EXT:445]: F6 12 00 D2 01 2D E0 C0 70 9D 00 00 00 
[02:45:43][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:43][I][EXT:445]: F6 12 00 92 01 01 02 03 04 01 5D 00 00 
[02:45:43][I][EXT:445]: F6 12 00 12 01 ED 02 03 04 01 5D 00 00 
[02:45:44][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:44][I][EXT:445]: F6 12 00 92 0A 04 03 04 01 1D 00 00 00 
[02:45:44][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:44][I][EXT:445]: F6 12 00 12 04 40 E0 C0 70 DD 00 00 00 
[02:45:44][I][EXT:445]: F6 12 00 52 01 AD E0 C0 70 DD 00 00 00 
[02:45:45][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:45][I][EXT:445]: F6 12 00 12 02 C0 E0 C0 70 9D 00 00 00 
[02:45:45][I][EXT:445]: F6 12 00 92 01 6D E0 C0 70 9D 00 00 00 
[02:45:45][D][text_sensor:067]: 'vistaalarm Garage Door': Sending state 'C'
[02:45:45][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:45][I][EXT:445]: F6 12 00 D2 01 2D 00 00 00 00 00 00 00 
[02:45:47][I][EXT:445]: F6 12 00 00 21 00 DF 00 00 00 00 00 00 
[02:45:48][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54
Dilbert66 commented 1 year ago

From the look of the logs, there is something very weird going with the tx line. Those F6 are send cmds to the panel. Looking at what you are sending, the format is incorrect. From what I see, your esp is sending bad data to the panel continuously. I have no idea what is causing that.

[02:45:41][D][Debug:412]: Writing keys: 12341
[02:45:42][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00  #this is the panel response to a request to send. It's saying , ok device address 18 (hex 0x12) go ahead and send your keys
[02:45:42][I][EXT:445]: F6 12 00 22 0A 01 02 03 04 01 DD 00 00  #this is your ESP sending it's keys.  The first 3 bytes are just to show that it's a response to the F6 12.  The following bytes are 22 0a 01 02 03 04 01 dd .  22 is the message id, 0a should be the message length but it is incorrect.  It should be 06 , then your 5 keys then the last byte is a checksum. I didnt validate the checksum to see if that is correct.

[02:45:42][I][EXT:445]: F6 12 00 92 01 6D 02 03 04 01 DD 00 00 # this is the following response. I have no idea where that is coming from.   I

Honestly, to me it looks like you have 2 different devices sending on address 18?  

Try changing your ESP address to another address.
travisrroy commented 1 year ago

Ah! That's what it was. Enabled address 19 and changed to 19 and now it's working!

I am still unsure about lrrSupervisor. Would you be able to clarify what that is for?

Dilbert66 commented 1 year ago

If you are using a long range radio (IP or GSM) interface and monitored by a central monitoring station , then set it to false. If you don't have this interface, then set it to true and the firmware will emulate one. It enables extra status messages sent from the panel to be captured by the firmware for display.

https://www.alarmgrid.com/videos/honeywell-vista-program-star-29-long-range-radio

travisrroy commented 1 year ago

Ok, good to know. thanks!

Would you know how to fix all these values being set to Unknown after an OTA update? image

Dilbert66 commented 1 year ago

Try using the "dev" branch. It has been updated to support multi partitions as well as other bug fixes. Please note that the yaml file has changed so you will need to update it with your own config.

travisrroy commented 1 year ago

Ah! That definitely helped. After a couple minutes, it updated all the binary sensors to their proper values.

Although, I did have to make a few changes to the single partition config to get the keypad working. I'm sure you know what needs to be changed for that or would you rather I open a pull request with those changes?