NEWS
ioBroker als Docker & ble.0
-
Hallo! Ich betreibe den ioBroker über Docker in Portainer und nutze dabei macvlan als Netzwerk. Der Adapter ble.0 im ioBroker hat nun aber keine Verbindung mehr zum Host/Device (dev/hci0). Ich hatte das aber mal! Leider bekomme ich es nicht mehr hin! Ich meine, dass man die ID des Bluetooth Devices (hci0) durchreicht, indem man die Environment Variable: "USBDEVICES" mit dem Wert "hci0" in ioBroker durchreicht. Enttäuschenderweise klappt es aber nicht mehr. Im Log steht auch:
USBDEVICES is set. Looks like the device "/dev/hci0" does not exist. Did you mount it correctly by using the "--device" option?
ioBroker kommt dann auch nun zu Schritt 3/5.
Vermutlich vergesse ich hier etwas Entscheidendes! Nur was?
Was ich im Vorfeld gemacht hatte:
sudo apt update && sudo apt upgrade
sudo apt install bluetooth pi-bluetooth bluez
sudo reboot
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-binHost:
sudo hcifonfig:
Danke für Hilfe vorab!
-
@mor9oth sagte in ioBroker als Docker & ble.0:
Ich meine, dass man die ID des Bluetooth Devices (hci0) durchreicht, indem man die Environment Variable: "USBDEVICES" mit dem Wert "hci0" in ioBroker durchreicht.
Nein. Du musst (wie die Meldung auch sagt) /dev/hci0 mit der
--device
Option einbinden.Steht hier: https://docs.buanet.de/iobroker-docker-image/docs/#mounting-usb-devices
Was ich im Vorfeld gemacht hatte:
sudo apt update && sudo apt upgrade sudo apt install bluetooth pi-bluetooth bluez sudo reboot sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin
Dazu gibt es die "PACKAGES" Umgebungsvariable. Man sollte nichts manuell in den Container installieren, weil das beim nächsten Deploy wieder weg ist.
-
@marc-berg
Hey! Danke für die Antwort. Bekomme es leider nicht hin. Dass ich Stacks verwende, habe ich wohl vergessen zu schreiben.
Laut dieser Quelle: https://gdevillele.github.io/compose/compose-file/ müsste es mit compose analog zur Option: "--device" so gehen:devices: - "/dev/hci0:/dev/hci0"
Der ble.0 hat aber weiterhin keine Verbindung zum Host
Ansosnten habe ich ziemlich viel wie das probiert:
devices:/dev/hci0 --device
Funktioniert alles nicht! Kann mir bitte jemand sagen, wie /dev/hci0 als device eingebunden wird?
So sieht mein Stack aus:
version: '3.8' services: iobroker: container_name: iobroker hostname: iobroker image: buanet/iobroker:latest restart: always networks: macvlan-network: ipv4_address: xxx.xxx.xxx.xxx ports: - '8081:8081' volumes: - type: volume source: data target: /opt/iobroker volume: nocopy: true networks: macvlan-network: external: name: macvlan-network volumes: data:
-
@marc-berg said in ioBroker als Docker & ble.0:
Nein. Du musst (wie die Meldung auch sagt) /dev/hci0 mit der --device Option einbinden.
@marc-berg
Hey! Danke für die Antwort. Bekomme es leider nicht hin. Dass ich Stacks verwende, habe ich wohl vergessen zu schreiben.
Laut dieser Quelle: https://gdevillele.github.io/compose/compose-file/ müsste es mit compose analog zur Option: "--device" so gehen:devices: - "/dev/hci0:/dev/hci0"
Der ble.0 hat aber weiterhin keine Verbindung zum Host
Ansosnten habe ich ziemlich viel wie das probiert:
devices:/dev/hci0 --device
Funktioniert alles nicht! Kann mir bitte jemand sagen, wie /dev/hci0 als device eingebunden wird?
So sieht mein Stack aus:
version: '3.8' services: iobroker: container_name: iobroker hostname: iobroker image: buanet/iobroker:latest restart: always networks: macvlan-network: ipv4_address: xxx.xxx.xxx.xxx ports: - '8081:8081' volumes: - type: volume source: data target: /opt/iobroker volume: nocopy: true networks: macvlan-network: external: name: macvlan-network volumes: data:
-
Selbst habe ich es mit Bluetooth Devices noch nicht versucht. Da sich Bluetooth Geräte wohl aber wie Netzwerkgeräte verhalten, scheint es nach einer kurzen Google-Suche, dass du der Host Modus nutzen musst, um auf das Gerät zugreifen zu können. Eine andere Lösung konnte ich nicht finden.
-
@marc-berg said in ioBroker als Docker & ble.0:
Selbst habe ich es mit Bluetooth Devices noch nicht versucht. Da sich Bluetooth Geräte wohl aber wie Netzwerkgeräte verhalten, scheint es nach einer kurzen Google-Suche, dass du der Host Modus nutzen musst, um auf das Gerät zugreifen zu können. Eine andere Lösung konnte ich nicht finden.
Hey! Genau, im Host-Modus geht es. Aber wie anfangs geschrieben, geht es auch, dass das Device durchgereicht wird. Das hatte ich ja in der Vergangenheit in dieser Umgebung (macvlan), bekomme die Verbindung halt nicht mehr hin. Hat vielleicht noch jemand anderes hier einen Lösungsansatz?
-
@mor9oth said in ioBroker als Docker & ble.0:
Aber wie anfangs geschrieben, geht es auch, dass das Device durchgereicht
Also ich bin mit dem Setting weiter gekommen! Host Verbindung steht! „Verbunden mit Gerät oder Dienst“ ist noch ungelöst.
Hat hier vielleicht jemand eine Idee, woran das liegt? Im ioBroker Protokoll habe ich nun den Fehler:
Cannot find module '@abandonware/bluetooth-hci-socket'Require stack:- /opt/iobroker/node_modules/@abandonware/noble/lib/hci-socket/hci.js- /opt/iobroker/node_modules/@abandonware/noble/lib/hci-socket/bindings.js- /opt/iobroker/node_modules/@abandonware/noble/lib/resolve-bindings.js- /opt/iobroker/node_modules/@abandonware/noble/with-custom-binding.js- /opt/iobroker/node_modules/@abandonware/noble/index.js- /opt/iobroker/node_modules/iobroker.ble/build/scanProcess.js
Das Modul habe ich installiert, mit:
npm install @abandonware/bluetooth-hci-socket
Hää! Und nun wieder alle rot!
WTF!Habe das Paket (@abandonware/bluetooth-hci-socket) dann wieder deinstalliert, jetzt habe ich wieder Verbindung zum Host!
-
@mor9oth sagte in ioBroker als Docker & ble.0:
Das Modul habe ich installiert, mit:
Wo/wie genau?
cd /opt/iobroker npm ls @abandonware/bluetooth-hci-socket
sagt?
Eine manuelle Installation sollte auch eigentlich gar nicht erforderlich sein. -
@thomas-braun said in ioBroker als Docker & ble.0:
Wo/wie genau?
In Portainer unter „Containers“ mit der Konsole „Exec Console“. Dort einfach den install Befehl und auch den uninstall Befehl ausgeführt. Bin quasi wieder dort:
@thomas-braun said in ioBroker als Docker & ble.0:
sagt?
Empty! Vermutlich, weil ich es wie oben beschrieben testweise wieder deinstalliert habe.
root@iobroker:/opt/iobroker# npm ls @abandonware/bluetooth-hci-socket iobroker.inst@3.0.0 /opt/iobroker └── (empty)
Interessant ist ja, dass es ohne das Modul eine Verbindung zum Host hat.
-
@mor9oth sagte in ioBroker als Docker & ble.0:
Dort einfach den install Befehl und auch den uninstall Befehl ausgeführt. Bin quasi wieder dort:
Du musst in das Verzeichnis deines nodejs-Projekts wechseln.
/opt/iobrokerSollte richtig dann so aussehen:
echad@chet:/opt/iobroker $ npm ls @abandonware/bluetooth-hci-socket iobroker.inst@3.0.0 /opt/iobroker └─┬ iobroker.ble@0.14.0 └─┬ @abandonware/noble@1.9.2-23 └── @abandonware/bluetooth-hci-socket@0.5.3-10 echad@chet:/opt/iobroker $
Wobei mich immer noch irritiert, das hier eine extra Einladung für das Modul erforderlich sein soll... Denn der Adapter 'ble' macht das eigentlich bei einer ordentlichen Installation gleich richtig.
-
@thomas-braun said in ioBroker als Docker & ble.0:
Sollte richtig dann so aussehen:
Oha! Und da liegt wohl das Problem! Bei mir kommt da nämlich ein Fehler:
npm ERR! code ELSPROBLEMS npm ERR! invalid: @abandonware/bluetooth-hci-socket@0.5.3-10 /opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket iobroker.inst@3.0.0 /opt/iobroker ├── @abandonware/bluetooth-hci-socket@0.5.3-10 └─┬ iobroker.ble@0.14.0 └─┬ @abandonware/noble@1.9.2-24 └── @abandonware/bluetooth-hci-socket@0.5.3-10 deduped invalid: "^0.5.3-11" from node_modules/@abandonware/noble npm ERR! A complete log of this run can be found in: /opt/iobroker/.npm/_logs/2024-02-08T18_52_15_779Z-debug-0.log
Habe ich es mit:
npm install @abandonware/bluetooth-hci-socket
Falsch installiert?
Log:
2024-02-08T18_52_15_779Z-debug-0.logÜber Hilfe bin ich dankbar!
-
@mor9oth sagte in ioBroker als Docker & ble.0:
Falsch installiert?
Offenbar. Im falschen Verzeichnis gestanden, vermute ich. Schmeiß den Kram komplett raus und installiert den ble nochmal neu.
-
@mor9oth sagte in ioBroker als Docker & ble.0:
Hat vielleicht noch jemand anderes hier einen Lösungsansatz?
Ich lese hier still mit ...
und finde es amüsant das du Pakete hier installierstsudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin
und nicht über den Hinweis :
@marc-berg sagte in ioBroker als Docker & ble.0:
Dazu gibt es die "PACKAGES" Umgebungsvariable.
Man sollte nichts manuell in den Container installieren, weil das beim nächsten Deploy wieder weg ist.und auch nicht den Hinweis zu "Deploy" beachtest .
und dazu auch Beta Tester bist :
image: buanet/iobroker:latest
Siehe auch hier zu ble :
-
@mor9oth sagte in ioBroker als Docker & ble.0:
Falsch installiert?
Zeige mal die Full Ausgabe von
iob diag
denn ... man kennt gar nicht deine Basis !
-
@thomas-braun said in ioBroker als Docker & ble.0:
ble nochmal neu.
Habe ich neu installiert und dann wieder geprüft mit:
npm ls @abandonware/bluetooth-hci-socket
Allerdings ist es dann wieder empty:
iobroker.inst@3.0.0 /opt/iobroker └── (empty) root@iobroker:/opt/iobroker#
Was mich extrem wundert! Das Modul, meintest du ja, muss ich (eigentlich) nicht extra installieren.
npm install @abandonware/bluetooth-hci-socket
-
Richtig, muss man nicht.
-
@mor9oth sagte in ioBroker als Docker & ble.0:
volume: nocopy: true
gehört nicht in den Compose von ioBroker
-
@glasfaser said in ioBroker als Docker & ble.0:
Zeige mal die Full Ausgabe von
iob diagdenn ... man kennt gar nicht deine Basis !
Reicht die Summary aus?
======================= SUMMARY ======================= v.2023-10-10 Model : Raspberry Pi 4 Model B Rev 1.1 Kernel : aarch64 Userland : arm64 Docker : v9.1.1 Installation: Docker Kernel: aarch64 Userland: arm64 Timezone: Etc/UTC User-ID: 0 X-Server: false Pending OS-Updates: 0 Pending iob updates: 0 Nodejs-Installation: /usr/bin/nodejs v18.19.0 /usr/bin/node v18.19.0 /usr/bin/npm 10.2.3 /usr/bin/npx 10.2.3 /usr/bin/corepack 0.22.0 Recommended versions are nodejs 18.19.0 and npm 10.2.3 Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 4.0G 874M 1.5G 7.4M 1.7G 3.1G Swap: 104M 0B 104M Total: 4.1G 874M 1.6G Active iob-Instances: 4 Active repo(s): stable ioBroker Core: js-controller 5.0.17 admin 6.13.16 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin Objects: 146 States: 108 Size of iob-Database: 8.3M /opt/iobroker/iobroker-data/objects.jsonl 2.1M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
=== Mark text until here for copying ===
-
-
@thomas-braun said in ioBroker als Docker & ble.0:
@mor9oth sagte in ioBroker als Docker & ble.0:
Reicht die Summary aus?
Nein. Poste die Langfassung.
ok!
======== Start marking the full check here =========
Skript v.2023-10-10 *** BASE SYSTEM *** cat: /sys/devices/virtual/dmi/id/sys_vendor: No such file or directory Hardware Vendor : Kernel : aarch64 Userland : arm64 Docker : v9.1.1 Virtualization : Docker Kernel : aarch64 Userland : arm64 Systemuptime and Load: 23:54:15 up 1 day, 3:25, 0 user, load average: 0.79, 0.50, 0.40 CPU threads: 4 *** Time and Time Zones *** Thu Feb 8 22:54:15 UTC 2024 Thu Feb 8 23:54:15 CET 2024 CET +0100 Etc/UTC *** User and Groups *** root /root root *** X-Server-Setup *** X-Server: false Desktop: Terminal: *** MEMORY *** total used free shared buff/cache available Mem: 4.0G 985M 1.2G 7.4M 1.8G 3.0G Swap: 104M 0B 104M Total: 4.1G 985M 1.4G 3793 M total memory 939 M used memory 1974 M active memory 380 M inactive memory 1187 M free memory 145 M buffer memory 1582 M swap cache 99 M total swap 0 M used swap 99 M free swap *** FILESYSTEM *** Filesystem Type Size Used Avail Use% Mounted on overlay overlay 917G 8.9G 871G 2% / tmpfs tmpfs 64M 0 64M 0% /dev shm tmpfs 64M 0 64M 0% /dev/shm /dev/root ext4 917G 8.9G 871G 2% /opt/iobroker tmpfs tmpfs 1.9G 0 1.9G 0% /proc/asound tmpfs tmpfs 1.9G 0 1.9G 0% /sys/firmware Messages concerning ext4 filesystem in dmesg: dmesg: read kernel buffer failed: Operation not permitted Show mounted filesystems \(real ones only\): TARGET SOURCE FSTYPE OPTIONS /opt/iobroker /dev/root[/var/lib/docker/volumes/iobroker_data/_data] ext4 rw,noatime /etc/resolv.conf /dev/root[/var/lib/docker/containers/752a4d492d9ce74f0231e9be00680fb7f138089fa1df8aca04cf30a685d9c975/resolv.conf] ext4 rw,noatime /etc/hostname /dev/root[/var/lib/docker/containers/752a4d492d9ce74f0231e9be00680fb7f138089fa1df8aca04cf30a685d9c975/hostname] ext4 rw,noatime /etc/hosts /dev/root[/var/lib/docker/containers/752a4d492d9ce74f0231e9be00680fb7f138089fa1df8aca04cf30a685d9c975/hosts] ext4 rw,noatime Files in neuralgic directories: /var: 16M /var/ 14M /var/lib 13M /var/lib/dpkg 12M /var/lib/dpkg/info 1.9M /var/cache /opt/iobroker/backups: 28M /opt/iobroker/backups/ /opt/iobroker/iobroker-data: 62M /opt/iobroker/iobroker-data/ 34M /opt/iobroker/iobroker-data/backup-objects 18M /opt/iobroker/iobroker-data/files 13M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js 13M /opt/iobroker/iobroker-data/files/admin.admin/custom/static The five largest files in iobroker-data are: 8.4M /opt/iobroker/iobroker-data/objects.jsonl 6.3M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_js-node_modules_iobr-99c23e.847b8ad9.chunk.js.map 2.8M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_js-node_modules_iobr-99c23e.847b8ad9.chunk.js 2.6M /opt/iobroker/iobroker-data/files/ble.admin/build/index.js.map 2.3M /opt/iobroker/iobroker-data/states.jsonl USB-Devices by-id: USB-Sticks - Avoid direct links to /dev/* in your adapter setups, please always prefer the links 'by-id': find: '/dev/serial/by-id/': No such file or directory *** NodeJS-Installation *** /usr/bin/nodejs v18.19.0 /usr/bin/node v18.19.0 /usr/bin/npm 10.2.3 /usr/bin/npx 10.2.3 /usr/bin/corepack 0.22.0 nodejs: Installed: 18.19.0-1nodesource1 Candidate: 18.19.0-1nodesource1 Version table: *** 18.19.0-1nodesource1 100 100 /var/lib/dpkg/status Temp directories causing npm8 problem: 0 No problems detected Errors in npm tree: *** ioBroker-Installation *** ioBroker Status iobroker is running on this host. Objects type: jsonl States type: jsonl Core adapters versions js-controller: 5.0.17 admin: 6.13.16 javascript: "javascript" not found Adapters from github: 0 Adapter State + system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.backitup.0 : backitup : iobroker - enabled + system.adapter.ble.0 : ble : iobroker - enabled + system.adapter.discovery.0 : discovery : iobroker - enabled + instance is alive Enabled adapters with bindings + system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin ioBroker-Repositories stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json Active repo(s): stable Installed ioBroker-Instances Used repository: stable Adapter "admin" : 6.13.16 , installed 6.13.16 Adapter "backitup" : 2.9.8 , installed 2.9.8 Adapter "ble" : 0.14.0 , installed 0.14.0 Adapter "discovery" : 4.2.0 , installed 4.2.0 Controller "js-controller": 5.0.17 , installed 5.0.17 Objects and States Please stand by - This may take a while Objects: 168 States: 124 *** OS-Repositories and Updates *** Hit:1 http://deb.debian.org/debian bookworm InRelease Hit:2 http://deb.debian.org/debian bookworm-updates InRelease Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease Hit:4 https://deb.nodesource.com/node_18.x nodistro InRelease Reading package lists... Pending Updates: 0 *** Listening Ports *** Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN 1000 1494640 - tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1000 1496144 - tcp 0 0 127.0.0.11:38775 0.0.0.0:* LISTEN 0 1491329 - tcp6 0 0 :::8081 :::* LISTEN 1000 1493783 - udp 0 0 127.0.0.11:42246 0.0.0.0:* 0 1491328 - *** Log File - Last 25 Lines *** 2024-02-08 23:53:28.636 - info: host.iobroker Updating repository "stable" under "http://download.iobroker.net/sources-dist.json" 2024-02-08 23:53:30.265 - info: admin.0 (654) Repository received successfully. 2024-02-08 23:53:31.035 - info: discovery.0 (696) starting. Version 4.2.0 in /opt/iobroker/node_modules/iobroker.discovery, node: v18.19.0, js-controller: 5.0.17 2024-02-08 23:53:31.757 - info: host.iobroker instance system.adapter.backitup.0 started with pid 715 2024-02-08 23:53:31.926 - info: admin.0 (654) failed connection to socket.io from ::ffff:192.168.178.18: Passport was not initialized 2024-02-08 23:53:34.598 - info: backitup.0 (715) starting. Version 2.9.8 in /opt/iobroker/node_modules/iobroker.backitup, node: v18.19.0, js-controller: 5.0.17 2024-02-08 23:53:34.670 - info: admin.0 (654) ==> Connected system.user.admin from ::ffff:192.168.178.18 2024-02-08 23:53:34.684 - info: backitup.0 (715) [iobroker] backup will be activated at 02:40 every 1 day(s) 2024-02-08 23:53:35.813 - error: backitup.0 (715) Error: Command failed: sudo mount :/sharename/backupDir /opt/iobroker/backups mount.nfs: Failed to resolve server : Name or service not known 2024-02-08 23:53:35.950 - info: host.iobroker instance system.adapter.ble.0 started with pid 734 2024-02-08 23:53:38.231 - info: ble.0 (734) starting. Version 0.14.0 in /opt/iobroker/node_modules/iobroker.ble, node: v18.19.0, js-controller: 5.0.17 2024-02-08 23:53:38.290 - info: ble.0 (734) loaded plugins: Xiaomi, mi-flora, ruuvi-tag, BTHome, _default 2024-02-08 23:53:38.291 - info: ble.0 (734) enabled plugins: _default 2024-02-08 23:53:38.293 - info: ble.0 (734) monitored services: 2024-02-08 23:53:38.360 - info: ble.0 (734) starting scanner process... 2024-02-08 23:53:38.682 - error: ble.0 (734) Cannot find module '@abandonware/bluetooth-hci-socket' Require stack: - /opt/iobroker/node_modules/@abandonware/noble/lib/hci-socket/hci.js - /opt/iobroker/node_modules/@abandonware/noble/lib/hci-socket/bindings.js - /opt/iobroker/node_modules/@abandonware/noble/lib/resolve-bindings.js - /opt/iobroker/node_modules/@abandonware/noble/with-custom-binding.js - /opt/iobroker/node_modules/@abandonware/noble/index.js - /opt/iobroker/node_modules/iobroker.ble/build/scanProcess.js
============ Mark until here for C&P =============
iob diag has finished.