mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-18 13:44:20 +01:00
deconz: Add LEDVANCE / OSRAM otau firmware downloader (#983)
* Update config.json * Create ledvance-otau-dl.sh * Update run.sh * Update Dockerfile * Update CHANGELOG.md * Update CHANGELOG.md * Update ledvance-otau-dl.sh Fix lint issues: https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt... https://www.shellcheck.net/wiki/SC2003 -- expr is antiquated. Consider rewr... * Update ledvance-otau-dl.sh Fix lint issue: https://www.shellcheck.net/wiki/SC2004 -- $/${} is unnecessary on arithmeti... * Update Dockerfile Adressing @pvizeli comment : The script have the correct permission of a+x? Add CMD to set a+x permission on ledvance-otau-dl.sh script * Update Dockerfile * Add exec permissions * revert oups bad multiple cmdlines in CMD[] * revert oups bad multiple cmdlines in CMD[] * dummy commit * Update Dockerfile remove dummy comment * Update ledvance-otau-dl.sh remove dummy comment * fix bug Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## 5.1
|
||||
|
||||
- Add LEDVANCE / OSRAM otau firmware downloader, respecting max 10 DL per minute Ratelimits
|
||||
|
||||
## 5.0
|
||||
|
||||
- Fix additional gateway visible on Phoscon login on Ingress
|
||||
|
||||
@@ -56,6 +56,7 @@ RUN if [ "${BUILD_ARCH}" = "armhf" ]; \
|
||||
&& sed -i 's/\/root/\/data/' /etc/passwd
|
||||
|
||||
COPY data/ika-otau-dl.sh /bin/
|
||||
COPY data/ledvance-otau-dl.sh /bin/
|
||||
COPY data/nginx.conf /etc/nginx/nginx.conf
|
||||
COPY data/run.sh data/discovery.sh /
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "deCONZ",
|
||||
"version": "5.0",
|
||||
"version": "5.1",
|
||||
"slug": "deconz",
|
||||
"description": "Control a Zigbee network with ConBee or RaspBee by Dresden Elektronik",
|
||||
"arch": ["amd64", "armhf", "aarch64"],
|
||||
|
||||
42
deconz/data/ledvance-otau-dl.sh
Executable file
42
deconz/data/ledvance-otau-dl.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
URL_OSRAM="https://api.update.ledvance.com/v1/zigbee/firmwares"
|
||||
|
||||
while true
|
||||
do
|
||||
|
||||
# fetch data
|
||||
if ! OSRAM_DATA="$(curl -sL ${URL_OSRAM})"; then
|
||||
echo "[Info] Can't fetch data from osram!"
|
||||
sleep 18000
|
||||
continue
|
||||
fi
|
||||
|
||||
OSRAM_DATA_SIZE="$(echo "${OSRAM_DATA}" | jq --raw-output '.firmwares | length')"
|
||||
DL_DONE=0
|
||||
for (( i=0; i < "${OSRAM_DATA_SIZE}"; i++ )); do
|
||||
OSRAM_COMPANY=$( echo "${OSRAM_DATA}" | jq --raw-output ".firmwares[$i].identity.company // empty" 2>/dev/null)
|
||||
OSRAM_PRODUCT=$( echo "${OSRAM_DATA}" | jq --raw-output ".firmwares[$i].identity.product // empty" 2>/dev/null)
|
||||
OTAU_FILENAME=$( echo "${OSRAM_DATA}" | jq --raw-output ".firmwares[$i].name // empty" 2>/dev/null)
|
||||
OTAU_URL="$URL_OSRAM/download/${OSRAM_COMPANY}/${OSRAM_PRODUCT}/latest"
|
||||
|
||||
if [ -z "${OTAU_URL}" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
|
||||
OTAU_FILE="/data/otau/${OTAU_FILENAME}"
|
||||
if [ -f "${OTAU_FILE}" ] && [[ $(file --mime-type -b "${OTAU_FILE}") == "application/octet-stream" ]] ; then
|
||||
continue
|
||||
fi
|
||||
curl -s -L -o "${OTAU_FILE}" "${OTAU_URL}"
|
||||
((DL_DONE++))
|
||||
if [ "$((DL_DONE % 10))" == "0" ]; then
|
||||
# LEDVANCE/OSRAM API RateLimits : The rate limit 10 calls per 60 seconds or quota 100 MB per month.
|
||||
DL_DONE=0
|
||||
sleep 65
|
||||
fi
|
||||
done
|
||||
|
||||
sleep 259200
|
||||
done
|
||||
@@ -123,6 +123,10 @@ deCONZ-otau-dl.sh &> /dev/null &
|
||||
bashio::log.info "Running the IKEA OTA updater..."
|
||||
ika-otau-dl.sh &> /dev/null &
|
||||
|
||||
# Start OTA updates for LEDVANCE/OSRAM
|
||||
bashio::log.info "Running the LEDVANCE/OSRAM OTA updater..."
|
||||
ledvance-otau-dl.sh &> /dev/null &
|
||||
|
||||
# Wait until all is done
|
||||
bashio::log.info "deCONZ is set up and running!"
|
||||
wait "${WAIT_PIDS[@]}"
|
||||
|
||||
Reference in New Issue
Block a user