mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-19 14:14:21 +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
|
# Changelog
|
||||||
|
|
||||||
|
## 5.1
|
||||||
|
|
||||||
|
- Add LEDVANCE / OSRAM otau firmware downloader, respecting max 10 DL per minute Ratelimits
|
||||||
|
|
||||||
## 5.0
|
## 5.0
|
||||||
|
|
||||||
- Fix additional gateway visible on Phoscon login on Ingress
|
- 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
|
&& sed -i 's/\/root/\/data/' /etc/passwd
|
||||||
|
|
||||||
COPY data/ika-otau-dl.sh /bin/
|
COPY data/ika-otau-dl.sh /bin/
|
||||||
|
COPY data/ledvance-otau-dl.sh /bin/
|
||||||
COPY data/nginx.conf /etc/nginx/nginx.conf
|
COPY data/nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY data/run.sh data/discovery.sh /
|
COPY data/run.sh data/discovery.sh /
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "deCONZ",
|
"name": "deCONZ",
|
||||||
"version": "5.0",
|
"version": "5.1",
|
||||||
"slug": "deconz",
|
"slug": "deconz",
|
||||||
"description": "Control a Zigbee network with ConBee or RaspBee by Dresden Elektronik",
|
"description": "Control a Zigbee network with ConBee or RaspBee by Dresden Elektronik",
|
||||||
"arch": ["amd64", "armhf", "aarch64"],
|
"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..."
|
bashio::log.info "Running the IKEA OTA updater..."
|
||||||
ika-otau-dl.sh &> /dev/null &
|
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
|
# Wait until all is done
|
||||||
bashio::log.info "deCONZ is set up and running!"
|
bashio::log.info "deCONZ is set up and running!"
|
||||||
wait "${WAIT_PIDS[@]}"
|
wait "${WAIT_PIDS[@]}"
|
||||||
|
|||||||
Reference in New Issue
Block a user