homebridge-loxone-control 2.0.6 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +16 -42
- package/package.json +2 -2
- package/.claude/settings.local.json +0 -68
package/Dockerfile
CHANGED
|
@@ -1,48 +1,22 @@
|
|
|
1
1
|
FROM homebridge/homebridge:latest
|
|
2
2
|
|
|
3
|
-
# Install dependencies required for headless Chrome / Puppeteer
|
|
4
|
-
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
5
|
-
ca-certificates \
|
|
6
|
-
fonts-liberation \
|
|
7
|
-
libasound2t64 \
|
|
8
|
-
libatk-bridge2.0-0 \
|
|
9
|
-
libatk1.0-0 \
|
|
10
|
-
libcairo2 \
|
|
11
|
-
libcups2 \
|
|
12
|
-
libdbus-1-3 \
|
|
13
|
-
libdrm2 \
|
|
14
|
-
libexpat1 \
|
|
15
|
-
libfontconfig1 \
|
|
16
|
-
libgbm1 \
|
|
17
|
-
libglib2.0-0 \
|
|
18
|
-
libgtk-3-0 \
|
|
19
|
-
libnspr4 \
|
|
20
|
-
libnss3 \
|
|
21
|
-
libpango-1.0-0 \
|
|
22
|
-
libpangocairo-1.0-0 \
|
|
23
|
-
libx11-6 \
|
|
24
|
-
libx11-xcb1 \
|
|
25
|
-
libxcb1 \
|
|
26
|
-
libxcomposite1 \
|
|
27
|
-
libxcursor1 \
|
|
28
|
-
libxdamage1 \
|
|
29
|
-
libxext6 \
|
|
30
|
-
libxfixes3 \
|
|
31
|
-
libxi6 \
|
|
32
|
-
libxrandr2 \
|
|
33
|
-
libxrender1 \
|
|
34
|
-
libxss1 \
|
|
35
|
-
libxtst6 \
|
|
36
|
-
wget \
|
|
37
|
-
xdg-utils \
|
|
38
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
39
|
-
|
|
40
|
-
# Download Chrome for Puppeteer
|
|
41
3
|
ENV PUPPETEER_CACHE_DIR=/root/.cache/puppeteer
|
|
42
|
-
|
|
4
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
5
|
+
|
|
6
|
+
# Chrome shared-library dependencies.
|
|
7
|
+
# Uses Swiss mirror — archive.ubuntu.com is unreliable from some hosts.
|
|
8
|
+
RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|http://ch.archive.ubuntu.com/ubuntu/|g' /etc/apt/sources.list.d/ubuntu.sources \
|
|
9
|
+
&& apt-get update \
|
|
10
|
+
&& apt-get install -y --no-install-recommends \
|
|
11
|
+
libnspr4 libnss3 libasound2t64 libgbm1 \
|
|
12
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
43
13
|
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
|
|
14
|
+
# Pre-download Chrome for the pinned puppeteer 24.39.1.
|
|
15
|
+
# The plugin is installed by homebridge's startup script at runtime (via
|
|
16
|
+
# the /homebridge bind mount), but Chrome must be baked into the image
|
|
17
|
+
# because /root/.cache/puppeteer is not persisted across recreates.
|
|
18
|
+
RUN npm install -g puppeteer@24.39.1 \
|
|
19
|
+
&& npx puppeteer browsers install chrome \
|
|
20
|
+
&& npm uninstall -g puppeteer
|
|
47
21
|
|
|
48
22
|
WORKDIR /homebridge
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"displayName": "Homebridge Loxone Control",
|
|
3
3
|
"name": "homebridge-loxone-control",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "2.0.
|
|
5
|
+
"version": "2.0.8",
|
|
6
6
|
"description": "Homebridge plugin to control a loxone system trough the web-interface - useful if you have zero access to the Miniserver",
|
|
7
7
|
"author": "Remo Vetere <remo.vetere@gmail.com>",
|
|
8
8
|
"license": "Apache-2.0",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@homebridge/plugin-ui-utils": "2.0.1",
|
|
54
54
|
"homebridge-lib": "^7.1.4",
|
|
55
|
-
"puppeteer": "
|
|
55
|
+
"puppeteer": "24.39.1",
|
|
56
56
|
"username": "7.0.0"
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(npm run lint)",
|
|
5
|
-
"Bash(rg:*)",
|
|
6
|
-
"Bash(ls:*)",
|
|
7
|
-
"Bash(npm run build:*)",
|
|
8
|
-
"Bash(git add:*)",
|
|
9
|
-
"Bash(docker build:*)",
|
|
10
|
-
"Bash(docker run:*)",
|
|
11
|
-
"Bash(docker-compose up:*)",
|
|
12
|
-
"Bash(docker logs:*)",
|
|
13
|
-
"Bash(docker cp:*)",
|
|
14
|
-
"Bash(docker exec:*)",
|
|
15
|
-
"Read(//var/folders/gz/_7tflyb168d59mw29v9twgt40000gn/T/TemporaryItems/NSIRD_screencaptureui_YaEQqZ/**)",
|
|
16
|
-
"Bash(chmod:*)",
|
|
17
|
-
"Bash(docker-compose:*)",
|
|
18
|
-
"Bash(npm ls:*)",
|
|
19
|
-
"Read(//Users/removetere/.homebridge/node_modules/**)",
|
|
20
|
-
"Bash(npm root:*)",
|
|
21
|
-
"Bash(homebridge --version)",
|
|
22
|
-
"Bash(npm init:*)",
|
|
23
|
-
"Bash(npm install:*)",
|
|
24
|
-
"Bash(grep -rl \"fork\\\\|child_process\\\\|spawn\" /Users/removetere/.homebridge/node_modules/homebridge-config-ui-x/dist/*.js)",
|
|
25
|
-
"Bash(find /Users/removetere/.homebridge/node_modules/homebridge-config-ui-x -name index.* -path */src/* -o -name index.* -maxdepth 2)",
|
|
26
|
-
"Bash(npx tsc:*)",
|
|
27
|
-
"Bash(npm list:*)",
|
|
28
|
-
"Read(//Users/removetere/.homebridge/**)",
|
|
29
|
-
"Bash(npx homebridge:*)",
|
|
30
|
-
"Bash(curl -s 'http://localhost:18081/api/accessory?name=Office%20Blinds')",
|
|
31
|
-
"Bash(python3 -m json.tool)",
|
|
32
|
-
"Bash(curl -s 'http://localhost:18081/api/blinds/scene?name=Office%20Blinds&position=60&tilt=tilted')",
|
|
33
|
-
"Bash(pkill -f \"npx homebridge\")",
|
|
34
|
-
"Bash(curl -s 'http://localhost:18081/api/blinds/position?name=Office%20Blinds&position=100')",
|
|
35
|
-
"Bash(python3 -c \"import sys,json; d=json.load\\(sys.stdin\\); print\\(f'pos={d[\\\\\"states\\\\\"][\\\\\"Position\\\\\"]} tilt={d[\\\\\"states\\\\\"][\\\\\"TiltPosition\\\\\"]} posState={d[\\\\\"states\\\\\"][\\\\\"PositionState\\\\\"]}'\\)\")",
|
|
36
|
-
"Bash(curl -s 'http://localhost:18081/api/blinds/position?name=Office%20Blinds&position=0')",
|
|
37
|
-
"Bash(python3 -c \"import sys,json; d=json.load\\(sys.stdin\\); print\\(f'pos={d[\\\\\"states\\\\\"][\\\\\"Position\\\\\"]} tilt={d[\\\\\"states\\\\\"][\\\\\"TiltPosition\\\\\"]}'\\)\")",
|
|
38
|
-
"Bash(pkill -9 -f homebridge)",
|
|
39
|
-
"Bash(break)",
|
|
40
|
-
"Bash(pkill -f homebridge)",
|
|
41
|
-
"Bash(python3 -c \"import sys,json; d=json.load\\(sys.stdin\\); s=d['states']; print\\(f'pos={s[\\\\\"Position\\\\\"]} tilt={s[\\\\\"TiltPosition\\\\\"]} posState={s[\\\\\"PositionState\\\\\"]}'\\)\")",
|
|
42
|
-
"Bash(git:*)",
|
|
43
|
-
"Bash(curl -s \"http://localhost:18081/api/blinds/scene?name=Office%20Blinds&position=60&tilt=tilted\")",
|
|
44
|
-
"Bash(curl:*)",
|
|
45
|
-
"Bash(npm run:*)",
|
|
46
|
-
"Bash(pkill -f \"nodemon\")",
|
|
47
|
-
"Bash(pkill -f \"homebridge\")",
|
|
48
|
-
"Bash(python3 -c \"import json,sys; data=json.load\\(sys.stdin\\); [print\\(f'{a[\\\\\"name\\\\\"]}: pos={a[\\\\\"states\\\\\"][\\\\\"Position\\\\\"]}% tilt={a[\\\\\"states\\\\\"][\\\\\"TiltPosition\\\\\"]}'\\) for a in data if 'Office Blinds' == a.get\\('name'\\)]\")",
|
|
49
|
-
"Bash(python3 -c ':*)",
|
|
50
|
-
"Bash(wait)",
|
|
51
|
-
"Bash(python3 -c \" import json,sys data=json.load\\(sys.stdin\\) for a in data: n = a.get\\('name',''\\) if 'Blinds' in n: s = a.get\\('states',{}\\) print\\(f'{n}: pos={s.get\\(\\\\\"Position\\\\\",\\\\\"?\\\\\"\\)}% tilt={s.get\\(\\\\\"TiltPosition\\\\\",\\\\\"?\\\\\"\\)}'\\) \")",
|
|
52
|
-
"Bash(python3 -c \"import json,sys; [print\\(f'{a[\\\\\"name\\\\\"]}: pos={a.get\\(\\\\\"states\\\\\",{}\\).get\\(\\\\\"Position\\\\\",\\\\\"?\\\\\"\\)}% tilt={a.get\\(\\\\\"states\\\\\",{}\\).get\\(\\\\\"TiltPosition\\\\\",\\\\\"?\\\\\"\\)}'\\) for a in json.load\\(sys.stdin\\) if 'Loggia' in a.get\\('name',''\\) and 'Livingroom' in a.get\\('name',''\\)]\")",
|
|
53
|
-
"Bash(ps -p 30889 -o pid,command)",
|
|
54
|
-
"Bash(kill 30889)",
|
|
55
|
-
"Bash(lsof -ti:8581)",
|
|
56
|
-
"Bash(lsof -ti:51361)",
|
|
57
|
-
"Bash(ps -p 68311 -o pid,command)",
|
|
58
|
-
"Bash(kill 68311)",
|
|
59
|
-
"Bash(lsof:*)",
|
|
60
|
-
"Bash(ps -p 68305 -o pid,command)",
|
|
61
|
-
"Bash(kill 68305)",
|
|
62
|
-
"Bash(ps:*)",
|
|
63
|
-
"Bash(kill 81358 85760 85844)",
|
|
64
|
-
"Bash(xargs kill:*)"
|
|
65
|
-
],
|
|
66
|
-
"deny": []
|
|
67
|
-
}
|
|
68
|
-
}
|