Skip to content

ACL+IPv6, MQTT Client, Refactor headers etc. New simple and flexible ad2_add_http_sendQ serialized async HTTP request API for components

Compare
Choose a tag to compare
@f34rdotcom f34rdotcom released this 21 Aug 05:25
· 161 commits to master since this release
a5f8878

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
    • LWT is used to indicate online/offline state of client using status topic below the device root topic.
      • Example: ad2iot/41443245-4d42-4544-4410-XXXXXXXXXXXX/status = {"state": "online"}
    • 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"}
    • 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"}
    • New serialized async http request ad2_ api ad2_add_http_sendQ() to minimize memory usage to multiple HTTP/HTTPS push notifications.

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.