DscKeybusInterface Versions Save

An Arduino/esp8266/esp32 library to directly interface with DSC security systems.

3.0

2 years ago
  • New: DSC Classic series panel support: PC1500, PC1550, PC2550
  • New: KeypadInterface and KeypadInterface-MQTT example sketches - emulate a DSC panel to connect DSC PowerSeries and Classic keypads as physical input devices for any general purpose, without needing a DSC panel.
  • New: HomeKit-HomeSpan example sketch (esp32) - integrate directly with Apple HomeKit as a native standalone accessory using HomeSpan
  • New: Pushover and Pushsafer push notification example sketches for esp8266/esp32
  • New: esp32-s2 microcontroller support
  • New: Code restructured to support new features from sketches using #define flags - enables Classic series support and KeypadInterface.
  • Updated: Homebridge-MQTT supports switching armed modes while armed
  • Updated: Added TLS root certificate to Twilio-SMS
  • Updated: removed deprecated handlePanel()
  • Bugfix: VirtualKeypad-Web updated notes to switch to this fork of ESPAsyncWebServer to resolve crashes with iOS and macOS clients.
  • Bugfix: Pushbullet example sketch updated TLS security certificate fingerprint
  • Bugfix: Workaround for upstream esp32 TLS handshake issue preventing making a TLS connection more than once.
  • Bugfix: Fixed Homebridge-MQTT handling exit delay states while multiple partitions are arming
  • Bugfix: Resolved access codes not updating on disarm, changed arming access codes to update before armed status changes

Thanks to all for the feedback and special thanks to the folks that have been contributing to the development! Your work is much appreciated - Nikhil.

2.0

3 years ago
  • New: Telegram bot example sketch
  • New: OpenHAB integration example sketch using MQTT
  • New: Unlocker example sketch - determines the panel installer code
  • New: TimeSyncNTP example sketch - uses NTP to automatically set the panel time
  • New: ESPHome integration example (located in the extras directory) - thanks to Dilbert66 for this contribution!
  • New: TinyGMS-SMS example sketch - sends status via SMS with a GSM modem - thanks to jvitkauskas for this contribution!
  • New: KeybusReaderIP example sketch enables Keybus data access over IP, thanks to aboulfad for this contribution!
  • New: esp32 microcontroller support - requires Arduino-esp32 v1.0.5-rc6 or newer
  • New: Features for sketches:
    • ready and disabled track partition status
    • setTime() sets the panel date and time
    • pgmOutputs[] tracks the status of PGM outputs 1-14
    • timestampChanged tracks when the panel sends a timestamp
    • accessCode tracks the access code used to arm/disarm
    • resetStatus() triggers a full status update of all partitions and zones - for example, after initialization or a lost network connection.
    • pauseStatus pauses status updates if set to true - for example, holding status changes during a lost network connection
    • stop() disables the interface - for example, prior to starting OTA updates
    • appendPartition() in example sketches simplifies adding partition numbers to messages
    • panelVersion tracks the panel version number
  • New: Handle *1 bypass/re-activate used to change stay/away mode while armed
  • Updated: VirtualKeypad-Blynk and VirtualKeypad-Web display alarm memory, programming zone lights, and event buffer
  • Updated: HomeAssistant-MQTT, Homebridge-MQTT, OpenHAB-MQTT include PGM outputs 1-14 status
  • Updated: Virtual keypad writes
    • write() for multiple keys can now be set to block until the write is complete with an optional parameter if the char array is ephemeral
    • Checking writeReady is typically no longer needed in the sketch, the library will block if a previous write is in progress - this can be checked if the sketch needs to wait until the library can perform a nonblocking write
  • Updated: HomeAssistant-MQTT sketch now includes night arm and for esp8266/esp32 includes a sensor with partition status messages
  • Updated: Expanded partition state processing to improve panel state detection at startup
  • Deprecated: handlePanel() is now loop()
  • Bugfix: Resolved keypad aux/panic key, AC power, and battery status on PC585/PC1555MX
  • Bugfix: Resolved Homebridge-MQTT sketch not handling HomeKit target states
  • Bugfix: Resolved timing issues when consecutively calling write

1.2

4 years ago
  • New: Virtual keypad web interface example, thanks to Elektrik1 for this contribution!
    • As of esp8266 Arduino Core 2.5.1, you may need to manually update the esp8266FS plugin for SPIFFS upload.
  • New: Support esp8266 CPU running at 160MHz - this helps sketches using TLS through BearSSL
  • Updated: HomeAssistant-MQTT example includes availability status, thanks to bjrolfe for this contribution!
  • Updated: List of tested DSC panels: PC585, PC1565, PC5005, PC1808
  • Updated: esp8266 power wiring diagrams
  • Updated: esp8266 module list

1.0

5 years ago
  • New: Blynk virtual keypad example sketch and app layout examples
  • New: Virtual keypad support for PGM terminals 1-4 command output
  • New: Status dsc.keybusConnected to check if data is being received from the DSC panel
  • New: Auxiliary input alarm decoding

0.4

5 years ago
  • New: Virtual keypad support for partitions 3-8, thanks to jvitkauskas for contributing the necessary logs
  • New: Support ATmega32U4-based Arduino boards (switched to AVR Timer1)
  • Changed: Simplified example names, configurations, added version numbers
  • Bugfix: Virtual keypad writes with partitions 5-8 enabled
  • Bugfix: F/A/P alarm key writes with processModuleData disabled
  • Bugfix: HomeAssistant example configuration.yaml error for alarm_control_panel

0.3

5 years ago

Note: This release changes the library methods to accomodate multiple partitions, existing sketches will need to be updated to match the new example sketches.

  • New: Status for partitions 2-8, zones 33-64
  • New: Virtual keypad support for partition 2
  • New: Athom Homey integration example sketch, contributed by MagnusPer
  • New: PCB layouts, contributed by sjlouw
  • New: Configurable number of partitions and zones to customize memory usage: dscPartitions and dscZones in dscKeybusInterface.h
  • New: KeybusReader decoding of commands 0xE6 and 0xEB
  • Changed: Split examples by platform
  • Changed: MQTT examples updated with username and password fields
  • Changed: processRedundantData now true by default to prevent storing repetitive data, reduces memory usage.

v0.2

5 years ago

This release adds a buffer for panel data to prevent messages from being lost if the sketch is busy - the Status-Email and Status-Pushbullet examples would previously lose some messages waiting for the sketch to complete sending data to the remote servers.

The buffer default is set to 10 commands for Arduino and 50 for esp8266 in src/dscKeybusInterface.h - this can be adjusted lower to use less memory or increased if the sketch takes more time. Check if bufferOverflow is true to determine if the buffer needs to be increased.