Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge release 1.1.0p2 work #58

Open
wants to merge 97 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
dffc3ff
Missed in update doc change.
f34rdotcom Sep 18, 2022
9b336e6
Prep for release of 1.1.1 P1. Fixes problem in twilio reporting and i…
f34rdotcom Nov 15, 2022
23ac142
Fix version on last release was actually P1 this is P2 for 1.1.0.
f34rdotcom Nov 15, 2022
bb694f8
Some cleanup work as I work on final release testing.
f34rdotcom Nov 16, 2022
237ff84
Testing having PIO build the project in travis.
f34rdotcom Nov 16, 2022
e990826
...
f34rdotcom Nov 16, 2022
ca6374b
...
f34rdotcom Nov 16, 2022
be75daa
...
f34rdotcom Nov 16, 2022
16bdbf4
done.
f34rdotcom Nov 16, 2022
6fe2313
P3: Fixing STSDK. Building seems to work needs more testing and ftpd …
f34rdotcom Dec 30, 2022
a206d6e
Still on P2 so add to P2 not P3.
f34rdotcom Dec 30, 2022
9ca78ed
Update build docs.
f34rdotcom Dec 30, 2022
49208ea
Compile steps seem solid on my system. Needs more testing. FTPD still…
f34rdotcom Dec 30, 2022
dc8a0a7
More changes and a release date push.
f34rdotcom Feb 10, 2023
0b9ee87
testing..
f34rdotcom Feb 10, 2023
eb86aca
More doc changes. Switcthing from travis-ci to github actions since I…
f34rdotcom Feb 18, 2023
eb70f37
..
f34rdotcom Feb 18, 2023
63b264a
..
f34rdotcom Feb 18, 2023
e4647f3
..
f34rdotcom Feb 18, 2023
ef24fe4
..
f34rdotcom Feb 18, 2023
1dcceae
..
f34rdotcom Feb 18, 2023
9f2d5fb
..
f34rdotcom Feb 18, 2023
5d42cd6
..
f34rdotcom Feb 18, 2023
07e725a
...
f34rdotcom Feb 18, 2023
38c6364
..
f34rdotcom Feb 18, 2023
1620fb5
..
f34rdotcom Feb 18, 2023
381f097
...
f34rdotcom Feb 18, 2023
89bba4f
...
f34rdotcom Feb 18, 2023
d962125
...
f34rdotcom Feb 18, 2023
cafd4fa
...
f34rdotcom Feb 18, 2023
daac103
...
f34rdotcom Feb 18, 2023
ff0946b
...
f34rdotcom Feb 18, 2023
6eca9c7
..
f34rdotcom Feb 18, 2023
24f7757
...
f34rdotcom Feb 18, 2023
91cbef1
...
f34rdotcom Feb 18, 2023
674d685
...
f34rdotcom Feb 18, 2023
62dd3a5
...
f34rdotcom Feb 18, 2023
e458ca6
...
f34rdotcom Feb 18, 2023
a0d18d7
...
f34rdotcom Feb 18, 2023
93d6232
...
f34rdotcom Feb 18, 2023
3c41b91
...
f34rdotcom Feb 18, 2023
82dc07c
...
f34rdotcom Feb 18, 2023
06af21c
...
f34rdotcom Feb 18, 2023
af36798
...
f34rdotcom Feb 18, 2023
8249f90
...
f34rdotcom Feb 18, 2023
0fe9ba0
...
f34rdotcom Feb 18, 2023
5de7587
..
f34rdotcom Feb 18, 2023
b016cc8
..
f34rdotcom Feb 18, 2023
aa340c1
..
f34rdotcom Feb 18, 2023
0dfb6d2
..
f34rdotcom Feb 18, 2023
0c4c081
..
f34rdotcom Feb 18, 2023
dd16da3
..
f34rdotcom Feb 18, 2023
10f3631
..
f34rdotcom Feb 18, 2023
3df2d42
..
f34rdotcom Feb 18, 2023
b210fc6
..
f34rdotcom Feb 18, 2023
df059a6
..
f34rdotcom Feb 18, 2023
8b87509
..
f34rdotcom Feb 19, 2023
d8bd4d1
..
f34rdotcom Feb 19, 2023
aa71b61
..
f34rdotcom Feb 19, 2023
7e677b7
..
f34rdotcom Feb 19, 2023
84bb902
..
f34rdotcom Feb 19, 2023
e983ca8
..
f34rdotcom Feb 19, 2023
dc0b782
...
f34rdotcom Feb 19, 2023
a7c0ac4
STSDK firmware builds but I still can't adopt.
f34rdotcom Feb 19, 2023
c9ae3fd
Finishing touches? Maybe.
f34rdotcom Feb 19, 2023
cad8a54
...
f34rdotcom Feb 19, 2023
bd93aec
stsdk build issue testing.
f34rdotcom Mar 12, 2023
34db6f2
...
f34rdotcom Mar 12, 2023
6e25063
...
f34rdotcom Mar 12, 2023
aecab8b
...
f34rdotcom Mar 12, 2023
4bd3262
...
f34rdotcom Mar 12, 2023
9297100
...
f34rdotcom Mar 13, 2023
75f96d9
...
f34rdotcom Mar 13, 2023
a64c433
...
f34rdotcom Mar 13, 2023
3c3c5aa
...
f34rdotcom Mar 13, 2023
cf546b8
...
f34rdotcom Mar 13, 2023
0fb0ac8
...
f34rdotcom Mar 13, 2023
b1d0cb1
...
f34rdotcom Mar 18, 2023
d9e323a
...
f34rdotcom Mar 18, 2023
58c5864
...
f34rdotcom Mar 18, 2023
71b875e
...
f34rdotcom Mar 18, 2023
86d42e1
...
f34rdotcom Mar 18, 2023
7ca985e
Some final cleanup and finalizing last changes.
f34rdotcom Mar 18, 2023
f959ee6
...
f34rdotcom Mar 19, 2023
11e2a27
...
f34rdotcom Mar 19, 2023
96d345d
...
f34rdotcom Mar 19, 2023
52d5f85
...
f34rdotcom Mar 19, 2023
eaf1ad1
Building local for both STSDK and pio, Fixed some bugs in stuff. More…
f34rdotcom Mar 20, 2023
0185033
test automated build
f34rdotcom Jun 8, 2023
a37de2c
...
f34rdotcom Jun 8, 2023
3e4943f
...
f34rdotcom Jun 8, 2023
cf54da7
...
f34rdotcom Jun 8, 2023
24ceec8
...
f34rdotcom Jun 8, 2023
ad50bce
...
f34rdotcom Jun 8, 2023
fb6b4e5
...
f34rdotcom Jun 8, 2023
210f64f
...
f34rdotcom Jun 8, 2023
eb32abc
...
f34rdotcom Nov 26, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: CI build

on: [push, workflow_dispatch]

env:
PP: AD2IoT-Release
SHELL: /bin/bash
TERM: 'xterm-256color'

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/cache@v3
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio

- uses: actions/setup-python@v4
with:
python-version: '3.9'

- name: Create base Artifact release package structure
run: |
mkdir $PP
cp README.md CHANGELOG.md LICENSE $PP/
mkdir $PP/esp32
cp contrib/README-FLASH-ESP32.md contrib/ESP32-DOWNLOAD-TOOL-UPLOADING-FIRMWARE.png $PP/esp32/

- name: Install required packages for st-device-c-ref build
run: |
sudo apt-get install -y gperf cmake ninja-build ccache dfu-util

- name: Checkout st-device-sdk-c-ref
uses: actions/checkout@v3
with:
repository: SmartThingsCommunity/st-device-sdk-c-ref
path: ./.st-device-sdk-c-ref

- name: setup build environment for stsdk-c-ref and build AlarmDecoder-IoT for SmartThings
run: |
cd .st-device-sdk-c-ref
git config --global user.name "GitHub Actions Bot"
git config --global user.email "<>"
python setup.py esp32
ln -s $RUNNER_WORKSPACE/AlarmDecoder-IoT apps/esp32/
python build.py esp32 AlarmDecoder-IoT
cd ..
# Remove any sdkconfig created in build to be safe.
rm sdkconfig

- name: Install PlatformIO Core
run: pip install --upgrade platformio

- name: Build esp32-poe-iso
run: pio run -e esp32-poe-iso

- name: Build spiffs.bin for esp32-poe-iso
run: pio run -t buildfs -e esp32-poe-iso

- name: Create release package folders for each branch.
run: |
mkdir $PP/esp32/esp32-poe-iso-stsdk
mkdir $PP/esp32/esp32-poe-iso-webui

- name: Add esp32-poe-iso stsdk firmware build to release package
run: |
cp build/alarmdecoder_ad2iot_esp32.bin $PP/esp32/esp32-poe-iso-stsdk/firmware.bin

- name: Add esp32-poe-iso webui firmware build to release package
run: |
cp .pio/build/esp32-poe-iso/firmware.bin $PP/esp32/esp32-poe-iso-webui/

- name: Add common firmware files for each branch to the package.
run: |
cp .pio/build/esp32-poe-iso/spiffs.bin $PP/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/spiffs.bin $PP/esp32/esp32-poe-iso-stsdk/
cp .pio/build/esp32-poe-iso/bootloader.bin $PP/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/bootloader.bin $PP/esp32/esp32-poe-iso-stsdk/
cp .pio/build/esp32-poe-iso/partitions.bin $PP/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/partitions.bin $PP/esp32/esp32-poe-iso-stsdk/
cp .pio/build/esp32-poe-iso/ota_data_initial.bin $PP/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/ota_data_initial.bin $PP/esp32/esp32-poe-iso-stsdk/

- name: Upload firmware package Artifact
uses: actions/upload-artifact@v3
with:
name: AD2IoT-Release-Package
path: AD2IoT-Release
42 changes: 0 additions & 42 deletions .travis.yml

This file was deleted.

50 changes: 39 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,64 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased] Open issues
- [ ] CORE: TODO: Add astyle testing in new github action worflow.
- [ ] STSDK: TODO: Successful adopting test.

### SM - Sean Mathews coder at f34r.com
- [ ] API: Add countdown tracking for DSC/Ademco exit mode
- [ ] CORE: Needed feature ad2_fw_update() to update AD2* firmware.
- [ ] CORE: TODO: Monitor limited sockets look for ways to reduce if possible.
- [ ] CORE: Push includes down to lower level. main include has too many component specific includes.
- [ ] TWILIO & PUSHOVER: Add virtual partition qualifier to virtual switch command. Currently on the Twilio notification is hard coded to the default virtual partition in slot 0. The Pushover notification currently has no qualifier and sends messages regardless of the partition as long as it matches. Merge these into a single pattern allowing for the user to define it by its ```vpart``` id.
- [ ] CORE: Audit Espressif v3.2 api usage look for more that are soon to be deprecated.
- [ ] STSDK: TODO. FIX Ability to build stsdk component inside of pio build environment. Currently only possible to build with STSDK build.py script.
- [ ] CORE: FIXME: Setting HOST NAME when using static IP over ethernet not working.
- [ ] CORE: FIXME: reboot of esp32 causes connected ser2sock clients to hang. So far various attempts to fix have been unsuccessful. Will need to do some network captures to determine the problem.
- [ ] CORE: HUP/RESTART needs to be centralized so cleanup ex(_fifo_destroy) can happen first. How to connect with STSDK having its own restart calls.
- [ ] STSDK: TODO: Find way to set IOT_PUB_QUEUE_LENGTH & IOT_QUEUE_LENGTH from 10 to 20 during build.
- [ ] CORE: Noted coredump when doing oil change check and a twilio message goes out. Both are mbedtls web requests. Will need to investigate and possibly serialize web requests.
- [ ] API: Add countdown tracking for DSC/Ademco exit mode
- [ ] CORE: Improve: Finish wiring Virtual Switch A & B and Button A & B.
- [ ] STSDK: Improve: Connect Component OutputA & OutputB with switch capabilities tied to hal_
- [ ] CORE: Wishlist: Compile for bare metal BeagleBone Black and Raspberry Pi. https://forums.freertos.org/t/freertos-porting-to-raspberry-pi-3/6686/5. Alternatively run inside an ESP32 Virtual machine on a Pi?
- [ ] CORE: TODO: better hardware abstraction. Need to remove _esp_ specific code to make it easier to port to other hardware. Trying to keep the code as POSIX as possible with the limited resources I have.
- [ ] CORE: TODO: ```'ping'``` command could come in handy. Again today needed this with ST MQTT servers seeming to be down.
- [ ] STSDK: TODO. FIX Ability to build stsdk component inside of pio build environment. Currently only possible to build with STSDK build.py script.
- [ ] STSDK: Improve: Connect Component OutputA & OutputB with switch capabilities tied to hal_
- [ ] STSDK: TODO: Add SmartThings Zone devices.
- [ ] STSDK: TODO: Find way to set IOT_PUB_QUEUE_LENGTH & IOT_QUEUE_LENGTH from 10 to 20 during build.
- [ ] TWILIO & PUSHOVER: Add virtual partition qualifier to virtual switch command. Currently on the Twilio notification is hard coded to the default virtual partition in slot 0. The Pushover notification currently has no qualifier and sends messages regardless of the partition as long as it matches. Merge these into a single pattern allowing for the user to define it by its ```vpart``` id.
- [ ] webUI: Add REST api compatible with the current webapp including a secret key. This is low priority as this method of connection is not very efficient.

### AJ
- [ ] Add a GitHub Action to run a `pio` build on every PR
- [ ] Migrate `astyle` to GitHub Action
- [ ] Update README.md to reflect `pio` build changes

---
## Releases
## [1.1.1] - 2022-09-18 Sean Mathews - coder @f34rdotcom
## [1.1.0 P2] - 2023-01-?? Sean Mathews - coder @f34rdotcom
Changes:
- Add CI using github Actions to test building and create an Artifact with a release package with compiled firmware and instructions.
- More info on Artifacts: https://docs.github.com/en/actions/managing-workflow-runs/downloading-workflow-artifacts
- Removed travis-ci support.
- Fix missing settings and organized sdkconfig.defaults file.
- Improve error handling to fix null pointer crashes when processing unexpected response from Twilio rest API.
- TODO: Find more time to audit and cleanup code.
- Fixed some small errors in the default configuration ini file and made sure basic switches have examples in components.
- Get STSDK building again.
- Confirm adopting works after fixing key and serial storage omissions.
- Improved documentation fixing errors and adding config file examples in each section.
### Change log
- [X] SM OTA: Noticed it was trying too hard to connect at first boot after first check timeout. Set retry check time to 5 minutes when network down and on too many fails skip for 24h.
- [X] SM MQTT,TWILIO,PUSOVER: Fix notify regex filter not applied to test causing a switch to fire even if a filter is set that would exclude it.
- [X] SM CORE: Service startup when network is disabled needs to be delayed waiting for the network to start.
- [X] SM CORE: cleanup some compiler warnings about unused vars. Others I need to add more error handling.
- [X] SM API,MQTT,PUSHOVER,TWILIO: Replace "fault" with "trouble" in error messages and code comments. Improve error reporting when validating and loading switches during init.
- [X] SM CORE: Moving from travis-ci to Github Actions for build testing. I ran out of credits :(. No loss now we can generate a release file something that seemed much more difficult with travis-ci. Add a workflow file named ```CI build``` to test and build a release file with compiled firmware and instructions. See the ```CI build``` build Summary page for the Artifacts file ```AD2IoT-Release-Package```
- [X] SM CORE: Docs improvements.
- [X] SM FTPD: Does not build with stsdk. Had to wrap <dirent.h> in extern 'C' because stsdk already imports as extern. Testing did not show any issues and none were expected.
- [X] SM STSDK: Build and uploaded set keys but was not able to adopt. '''Error 81-001 Something went wrong'''
- [X] SM CORE: Testing stsdk and webui modules build. Currently not able to add ```top``` or ```mqtt``` modules with ```stsdk``` build.
- [X] SM CORE: Update README.md docs on building project including stsdk and platformio.
- [X] SM CORE: Add fixes for stsdk code that I have been sitting on. Mostly just CDECL stuff.
- [X] SM CORE: Fix CMakeList.txt to fetch SimpleIni from github and include it for stsdk building.
- [X] SM CORE: Travis build platformio project test.
- [X] SM CORE: Fix sdkconfig.defaults was missing critical bits. Better organized now and "should" build same exact same firmware as in release.
- [X] SM CORE: Fix missing compile flag ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH
- [X] SM TWILIO: Improve error handling and response data validation.
- [X] SM CORE: Small changes to default ad2iot.ini to fix a few switch numbers and add testing for all default switches in components.
## [1.1.0 P1] - 2022-09-18 Sean Mathews - coder @f34rdotcom
Changes:
- Partition change add new coredump partition.
- This change will require manual flash OTA will not work. Hopefully this is the last partition change.
Expand Down
Loading