Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
7c3e758
add detection of os34dc
rayshobby Aug 25, 2025
be881e9
Merge branch 'support/os34dc' into dev/221_4
rayshobby Sep 7, 2025
8692356
disable attachment of auto-built firmware for esp8266
rayshobby Oct 10, 2025
d3c7ba6
start updating ap homapage, use html compressor and prebuild script
rayshobby Oct 10, 2025
cd52316
change static HTML content to use minified and compressed version; ad…
rayshobby Oct 16, 2025
4717551
change latch to use 9V default boost voltage as that seems more commo…
rayshobby Oct 16, 2025
becd3fa
setup usb pd in begin() function; send pd option and actual pd voltag…
rayshobby Oct 17, 2025
c44c006
re_request pd voltage upon change
rayshobby Oct 17, 2025
cf9771a
support exponential moving average for current reading to filter noise
rayshobby Oct 17, 2025
11350fb
attempt to fix build-ci complaint
rayshobby Oct 17, 2025
616a511
for ospi: replace libgpiod with lgpio which offers a simpler and clea…
rayshobby Oct 19, 2025
594daf4
update schedule_all_stations to support preemptive running -- new zon…
rayshobby Oct 20, 2025
7c6ff9b
add files to .gitignore
rayshobby Oct 20, 2025
569e9a9
support explicit http or https and port number for wsp when making we…
rayshobby Oct 20, 2025
feb6cb0
add preemptive support for /cr and /mp endpoints; fix Docker and Make…
rayshobby Oct 25, 2025
2a195d0
initial commit of docs folder, prepare for mkdocs release
rayshobby Oct 27, 2025
9f2ff45
clarify flwrt variable
rayshobby Oct 27, 2025
2d4c8b8
address ci complaint; fix doc link typos
rayshobby Oct 27, 2025
9fe2546
attempt to fix ci again
rayshobby Oct 27, 2025
c70b255
fix ci platformio issue
rayshobby Oct 27, 2025
73b007a
issue might be in npm global install. try again
rayshobby Oct 27, 2025
d1b565e
rename firmware variable to (queuing option) to be consistent with …
rayshobby Oct 27, 2025
cc80631
add flcto (total flow count) to /jc; fix weather request issue for os…
rayshobby Oct 28, 2025
ddf9c47
replace readme.txt with .md
rayshobby Oct 28, 2025
b1d8429
polished faq doc
rayshobby Oct 29, 2025
f66e49f
change question orders to make the logic flow better
rayshobby Oct 29, 2025
2bf9a5b
add troubleshooting page
rayshobby Nov 5, 2025
a533d43
add a few more troubleshooting questions
rayshobby Nov 5, 2025
94b53e0
fix ci complaint
rayshobby Nov 6, 2025
b87e1b0
finalizing 2.2.1(4) new user manual
rayshobby Nov 11, 2025
cae946a
refine fw update instructions
rayshobby Nov 11, 2025
6a8cd80
make image links consistent
rayshobby Nov 11, 2025
78a6105
tweak defauld pd voltage; remove explicit wifi re-connect as that's h…
rayshobby Nov 12, 2025
094bbdd
update some bookmarks
rayshobby Nov 12, 2025
90ab903
address time_os_t issue on 32-bit linux
rayshobby Nov 15, 2025
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
20 changes: 13 additions & 7 deletions .github/workflows/build-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,19 @@ jobs:
- name: Install PlatformIO Core
run: pip install --upgrade platformio

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20' # Or any recent LTS version

- name: Install html-minifier-terser
run: npm install html-minifier-terser

- name: Build PlatformIO Project
run: pio run --environment d1_mini
run: pio run --environment os3x_esp8266

- name: Move and rename firmware
run: mv .pio/build/d1_mini/firmware.bin ./firmware_os_esp8266.bin
run: mv .pio/build/os3x_esp8266/firmware.bin ./firmware_os_esp8266.bin

- name: Upload firmware
uses: actions/upload-artifact@v4
Expand All @@ -63,6 +71,9 @@ jobs:
- name: Build Script
run: sudo ./build.sh -s demo

- name: Build Script
run: sudo ./build.sh -s demo

build-docker:
name: Build Docker
runs-on: ubuntu-latest
Expand Down Expand Up @@ -153,11 +164,6 @@ jobs:
name: firmware
path: ./firmware

- name: Add firmware to release
uses: softprops/action-gh-release@v2
with:
files: firmware/*

release-docker:
name: Release Docker
runs-on: ubuntu-latest
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,8 @@ build-1284/*
!build.sh
!startOpenSprinkler.sh
!updater.sh
*.bak
node_modules
*.json
!package.json
.DS_Store
29 changes: 25 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
FROM debian:bookworm-slim AS base

# Set up prerequisites for adding the RPi repository
# We need ca-certificates, curl/gnupg to add the key, and lsb-release to get the Debian version name (e.g., "bookworm")
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
gnupg \
lsb-release \
&& rm -rf /var/lib/apt/lists/*

# Add the Raspberry Pi repository GPG key
RUN curl -fsSL "https://archive.raspberrypi.org/debian/raspberrypi.gpg.key" | gpg --dearmor -o /usr/share/keyrings/raspberrypi-archive-keyring.gpg

# Add the Raspberry Pi repository to sources
RUN echo "deb [signed-by=/usr/share/keyrings/raspberrypi-archive-keyring.gpg] https://archive.raspberrypi.org/debian/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/raspberrypi.list > /dev/null

########################################
## 1st stage compiles OpenSprinkler code
FROM base AS os-build

ARG BUILD_VERSION="OSPI"
ARG BUILD_VERSION="DEMO"

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y bash g++ make libmosquittopp-dev libssl-dev libi2c-dev libgpiod-dev libgpiod2 gpiod
RUN apt-get update && apt-get install -y bash g++ make libmosquittopp-dev libssl-dev libi2c-dev liblgpio-dev
RUN rm -rf /var/lib/apt/lists/*
COPY . /OpenSprinkler
WORKDIR /OpenSprinkler
Expand All @@ -19,8 +35,12 @@ RUN make VERSION=${BUILD_VERSION}
FROM base

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y libstdc++6 libmosquittopp1 libi2c0 libgpiod2
RUN rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends \
libstdc++6 \
libmosquittopp1 \
libi2c0 \
liblgpio-dev \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir /OpenSprinkler
RUN mkdir -p /data/logs

Expand All @@ -35,3 +55,4 @@ EXPOSE 8080

#-- By default, start OS using /data for saving data/NVM/log files
CMD [ "/OpenSprinkler/OpenSprinkler", "-d", "/data" ]

2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ CXX=g++
VERSION?=OSPI
CXXFLAGS=-std=gnu++14 -D$(VERSION) -DSMTP_OPENSSL -Wall -include string.h -include cstdint -Iexternal/TinyWebsockets/tiny_websockets_lib/include -Iexternal/OpenThings-Framework-Firmware-Library/
LD=$(CXX)
LIBS=pthread mosquitto ssl crypto i2c gpiod
LIBS=pthread mosquitto ssl crypto i2c lgpio
LDFLAGS=$(addprefix -l,$(LIBS))
BINARY=OpenSprinkler
SOURCES=main.cpp OpenSprinkler.cpp notifier.cpp program.cpp opensprinkler_server.cpp utils.cpp weather.cpp gpio.cpp mqtt.cpp smtp.c RCSwitch.cpp $(wildcard external/TinyWebsockets/tiny_websockets_lib/src/*.cpp) $(wildcard external/OpenThings-Framework-Firmware-Library/*.cpp)
Expand Down
Loading