Releases: nutechsoftware/AlarmDecoder-IoT
Release v1.1.0p1
Changes:
- Partition change add new coredump partition.
- This change will require manual flash OTA will not work. Hopefully this is the last partition change.
- Improved top command from 1.1.0 fixed bugs and rollover issues.
- Twilio
- New sub command to disable or enable notification slots.
- Expanding total notification slots from 8 to 999.
- Memory optimization.
- General
- Continued work on docs.
- Continued work on memory and CPU optimization.
Release v1.1.0
Big changes:
- Help file and docs refactor to make more user friendly.
- Replace NVS config storage with spiffs partition and human readable ini file.
- FTP server to allow for remote editing of the configuration file on /spiffs or /sdcard partition.
- Migrate the redundant use of
switch
in each component to a globalswitch
command and refactor existing components to use globalswitch
settings. - Added support for UNKNOWN(-1) state to switch
default
state andreset
> 0 will auto reset switch after event back to the default state. - Update OTA config settings so older firmware will not see this new branch. Updates to older firmware will require manual re-flashing until I get an update firmware done.
Added
- Commands
- ad2config
- Allow AD2IoT to enforce AD2pHat or attached AD2* device firmware settings.
- switch
- Global switches for use by all components.
- New
default
value option UNKNOWN(-1). - auto reset to
default
withreset
> 0 in case the open event tracked does not have a close event.
- ftpd
- Remote HTTP content or ad2iot.ini config file management.
- ad2config
- Config using https://github.com/brofield/simpleini
Changed
- Yes :)
Release v1.0.9p4
Add missing logic for MQTT commands
subscription with new commands
enable/disable command. Misc minor cleanup of warnings. Refactor ad2_ helpers for arming to support code or codeID. Added initial support for Auto Discovery with Home Assistant and MQTT.
Example Support for auto discovery in Home Assistant.
Added
- MQTT
- Enable/Disable feature for
commands
subscription with warning when enabling about security on public MQTT servers.mqtt commands [Y|N]
- Missing logic behind
commands
subscription in the MQTT component.- Verbs:
[DISARM, ARM_STAY, FW_UPDATE, ARM_AWAY, EXIT, CHIME_TOGGLE, AUX_ALARM, PANIC_ALARM, FIRE_ALARM, BYPASS, SEND_RAW, FW_UPDATE]
- Verbs:
- Update README with details on
commands
,tprefix
anddprefix
. - Add topic prefix command
tprefix
. - Add discovery topic prefix command
dprefix
for MQTT auto discovery.
- Enable/Disable feature for
Changed
- Change
zone
command to expect a json string that is not currently validated as the last argument.{"alpha": "zone alpha descriptor", "type": "zone type string"}
.
- Refactor utils to allow for raw codes or codeID for ARM, DISARM, etc.
- Remove unnecessary code passed to ad2_ functions that don't need it.
- Remove forced C code sections. Need to clean all of them up now. Not an issue with newer build environment.
- Fixed warning on g_ad2_console_mutex.
Change log
- SM - MISC: Fix small memory leak in virtual switch usage in Pushover, Twilio and MQTT.
- SM - MQTT: Refactor publish function to make it easy to use in the code.
- SM - HAL: Added hal wrapper for ota_do_update(hal_ota_do_update) and updated any use of ota_do_update from outside of main.
- SM - MQTT: Added commands verbs
[DISARM, ARM_STAY, FW_UPDATE, ARM_AWAY, EXIT, CHIME_TOGGLE, AUX_ALARM, PANIC_ALARM, FIRE_ALARM, BYPASS, SEND_RAW, FW_UPDATE]
. - SM - MQTT: Support for Home Assistant/Others auto discovery.
- SM - MQTT: Add new command
dprefix
to set a prefix for publishing device config documents for MQTT auto discovery. - SM - MQTT: Add new command
commands
to enable/disable commands subscription. - SM - MQTT: Remove forced cdecl calling to use C++.
- SM - MQTT: Add new command
tprefix
to set a prefix for all topics on the broker. - SM - MQTT: Add new command to define signon messages to publish.
- SM - CORE: Refactor ad2_ routines to arm, disarm etc to support raw code as well as code id from
code
command. - SM - CORE: ad2_utils remove forced cdecl calling to use C++ instead. TODO: I can now safely remove the extern 'C' from everything with the current build tools.
- SM - CORE: Fixed a few compiler warnings re. external with init.
Release v1.0.9p3
Continued improvements found during daily use.
Added
- New standard command
factory-reset
to clear NVS config partition. - Show panel state change JSON on CLI.
- Twilio New
format
sub command using https://github.com/fmtlib/fmt for simple formats with positional arguments{}
for auto or{1}
for indexed. Allows duplicate tags{1}{1}
. This allows for better control of the message sent to the Twilio API depending on the API type Email, SMS, Call.
Changed
- Partition refactor to fill 4MB flash adding configuration and firmware storage space. Max firmware size is now 1.9M. The current firmware size for
webui
build is ~1.2M - 65%. Config storage partition(nvs) increased from 16KB to 44KB. - Refactor CLI to reduce noise and make it easier to use.
- Pushover & Twilio allow for multiple API calls from single virtual switch event. Ex. Email + SMS Text.
- Automatic selection of build flags for
upgrade
command to use current build. version
command now shows build flags.- API ZONE_TRACKING fix countdown messages reporting as zone faults.
- Fix don't call subscribe api after init(s) done.
- Bump stack to 8k on AD2 uart task same as ad2 socket client task.
Release v1.0.9p2
Improve BEEP and EXIT tracking and fixed ad2term reset option.
Changed
- Improve BEEP and EXIT event tracking after testing on other panels.
- Fixed reset option on ad2term command not resetting and locking up AD2*.
Release v1.0.9p1
Added ON_BEEP_CHANGE. Fixed and improved ON_ZONE_CHANGE events. Added ad2_bypass_zone helper and added zone and bypass capability to webUI.
Added
- ON_BEEP_CHANGE event.
- Added ad2_bypass_zone helper.
- Show zone fault and bypass zone capability to webUI.
Changed
- Fixed some issues in zone tracking.
- Fixed virtual zone ID's to be loaded early before any parsing of messages.
Change log
- SM - CORE: Be sure to init all virtual partitions early so they are consistent. If not configured virutal partitions ID's can change each reboot of the device.
- SM - CORE: Add ad2_bypass_zone.
- SM - WEBUI: Add action.
- SM - API: Fixed bug in zone tracking timeout outside of context.
- SM - CORE: fix bug in vpart init skipped by no zone list.
- SM - API: Fix bug when HEX zones 0CA(cancel) converts to 0.
- SM - API: Change fire to use timeout same as zones to avoid bouncing.
- SM - WEBUI: Added ON_BEEPS_CHANGE event to notifications. Add ON_ZONE_CHANGE notification and zone info to websocket state request.
- SM - MQTT: Added ON_BEEPS_CHANGE event to notifications.
- SM - API: Add ON_BEEPS_CHANGE.
- SM - WEBUI: Add ZONE state to notification message.
Added zone change notification and several small fixes and improvements.
Added zone change notification and several small fixes and improvements.
Added
- Zone tracking ON_ZONE_CHANGE events.
- Zone alpha descriptors.
- Zone partition assignment.
- Multiple recipients for email notifications.
- Delete smart switch sub commands [-] for components Twilio, Pushover, and MQTT.
- Zone state info published over MQTT with new ON_ZONE_CHANGE events.
Changed
- Fix help commands causing stack fault with large blocks of text.
- AlarmDecoder API some fixes some improvements.
- Misc IPv4/IPv6 issues and ser2sock client issues.
- Rename project to AlarmDecoder-IoT
ACL+IPv6, MQTT Client, Refactor headers etc. New simple and flexible ad2_add_http_sendQ serialized async HTTP request API for components
Added
- IPv6 support with ACL(Access Control List) for webUI and ser2sockd.
- MQTT client
- Each client connects under the root topic of
ad2iot
with a sub topic level of the devices UUID.- Example:
ad2iot/41443245-4d42-4544-4410-XXXXXXXXXXXX
- Example:
- LWT is used to indicate
online
/offline
state
of client usingstatus
topic below the device root topic.- Example:
ad2iot/41443245-4d42-4544-4410-XXXXXXXXXXXX/status = {"state": "online"}
- Example:
- Device specific info is in the
info
topic below the device root topic. - Partition state tracking with minimal traffic only when state changes. Each configured partition will be under the
partitions
topic below the device root topic.- Example:
ad2iot/41443245-4d42-4544-4410-30aea49e7130/partitions/1 = {"ready":false,"armed_away":false,"armed_stay":false,"backlight_on":false,"programming_mode":false,"zone_bypassed":false,"ac_power":true,"chime_on":false,"alarm_event_occurred":false,"alarm_sounding":false,"battery_low":true,"entry_delay_off":false,"fire_alarm":false,"system_issue":false,"perimeter_only":false,"exit_now":false,"system_specific":3,"beeps":0,"panel_type":"A","last_alpha_messages":"SYSTEM LO BAT ","last_numeric_messages":"008","event":"LOW BATTERY"}
- Example:
- Custom virtual switches with user defined topics are kept under the
switches
below the device root topic.- Example:
ad2iot/41443245-4d42-4544-4410-30aea49e7130/switches/RF0180036 = {"state":"RF SENSOR 0180036 CLOSED"}
- Example:
- New serialized async http request ad2_ api ad2_add_http_sendQ() to minimize memory usage to multiple HTTP/HTTPS push notifications.
- Each client connects under the root topic of
Changed
- Large cleanup of headers, components, help.
- Small changes in startup order and added global ca init early.
- Small change to API to prevent ejecting multiple messages when the parser receives its first message. Now just send a READY state change event with all current state bits.
- ad2_utils json helper utils refactor.
- Migrate Pushover and Twilio/SendGrid components to use the new ad2_add_http_sendQ() api.
- Validate and tune stack on existing tasks.
Release v1.0.7 now with new webUI component.
This release includes many changes here is a summary of some of them.
-
Now building using vscode and platformio for the latest ESP-IDF v4.3 and build with older ESP-IDF V3.3 when building with the stsdk build tools.
-
New component webUI now available when building with platformio and newer ESP-IDF v4.3 that supports web sockets. Supports multiple partitions via url query args vpartID and codeID.
-
Several improvements in the C++ AlarmDecoder parser class to fix problems discovered during testing multi partition support and webUI.
-
Improve 'upgrade' command to now support a build flag. The default flag is 'stsdk' if not provided as an argument to the command. This release now includes a new build 'webui' that disables the SmartThings component and enables the webUI component and is built with the latest ESP-IDF v4.3. To switch from 'stsdk to 'webui' use the command 'upgrade webui'.
-
Improve network management to better handle network resets or wifi disconnects.
Patch #6 to 1.0.6
Improve syntax of Twilio module to match the newer Pushover syntax. A little more human friendly.
Fixed a few bugs and bump version.