Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 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
fb4e145
Remove support for older esp build tools and use newer esp-idf v5.1
f34rdotcom Mar 17, 2026
ce683b4
Added and set to default a local firmware update using the uSD flash …
f34rdotcom Mar 18, 2026
bfd55c3
A few tweaks to new uSD fw update.
f34rdotcom Mar 18, 2026
f436a44
Working on deprecation of upload-artifact@v3
f34rdotcom Mar 18, 2026
ec9982d
Removing broken stsdk.
f34rdotcom Mar 18, 2026
413275b
Removing broken pio cache.
f34rdotcom Mar 18, 2026
d2193fe
Update python setup for action to remove future deprecation.
f34rdotcom Mar 18, 2026
1f2f75b
Another action deprecation.
f34rdotcom Mar 18, 2026
8bbd75a
Update change log for this release.
f34rdotcom Mar 18, 2026
f025552
Add release workflow file.
f34rdotcom Mar 18, 2026
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
62 changes: 62 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
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@v4
with:
submodules: recursive

- uses: actions/setup-python@v5
with:
python-version: '3.10'

- 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: 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-webui

- 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/bootloader.bin $PP/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/partitions.bin $PP/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/ota_data_initial.bin $PP/esp32/esp32-poe-iso-webui/

- name: Upload firmware package Artifact
uses: actions/upload-artifact@v4
with:
name: AD2IoT-Release-Package
path: AD2IoT-Release
81 changes: 81 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: CI build release

on:
release:
types: [published] # Triggers when a release is published

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

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write # Grants permission to write to the repository content (including releases)

steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Create base Artifact release package structure
run: |
mkdir $REL_PATH
cp README.md CHANGELOG.md LICENSE $REL_PATH/
mkdir $REL_PATH/esp32
cp contrib/README-FLASH-ESP32.md contrib/ESP32-DOWNLOAD-TOOL-UPLOADING-FIRMWARE.png $REL_PATH/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: 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 $REL_PATH/esp32/esp32-poe-iso-webui

- name: Add esp32-poe-iso webui firmware build to release package
run: |
cp .pio/build/esp32-poe-iso/firmware.bin $REL_PATH/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 $REL_PATH/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/bootloader.bin $REL_PATH/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/partitions.bin $REL_PATH/esp32/esp32-poe-iso-webui/
cp .pio/build/esp32-poe-iso/ota_data_initial.bin $REL_PATH/esp32/esp32-poe-iso-webui/

- name: Zip the release folder
run: zip -r esp32-poe-iso-webui.zip $REL_PATH

- name: Upload firmware package Artifact
uses: actions/upload-artifact@v4
with:
name: AD2IoT-Release-Package
path: $REL_PATH

- name: Upload Release Asset
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # The default token provided by GitHub Actions
run: |
# The 'gh release upload' command needs the tag name of the release
TAG_NAME="${{ github.event.release.tag_name }}"
FILE_PATH="./esp32-poe-iso-webui.zip"
echo "Uploading $FILE_PATH to release $TAG_NAME"
# Use --clobber to overwrite the asset if it already exists
gh release upload "$TAG_NAME" "$FILE_PATH" --clobber
# You can also use wildcards for multiple files, e.g., './dist/*.tgz'
42 changes: 0 additions & 42 deletions .travis.yml

This file was deleted.

51 changes: 40 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,65 @@ 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] - 2026-03-17 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.
- Remove building broken STSDK during github commit.
- Improved documentation fixing errors and adding config file examples in each section.
- Add new component to load firmware from uSD card. Upload firmware.bin to /sdcard using FileZilla and trigger upgrade with command 'UPGD' and 'VERS'. After upgrade the firmware.bin file will be removed from /sdcard folder.
- Disable OTA firmware update component.
### 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
Loading