NEWS
eqiva Bluetooth-Türschloss per Skript steuern (exec-Befehl)
-
Ich habe aus Kostengründen an meiner Wohnungstür ein eqiva Bluetooth-Türschloss verbaut und hatte eigentlich die Hoffnung bereits aufgegeben, dieses jemals mit ioBroker verbinden zu können. Nun gibt es allerdings mit keyble eine relativ frische Lösung, das Teil per Raspberry Pi anzusteuern. Die Installation war zwar mehr als hakelig und mit viel Hin und Her bei der installierten Node-Version verbunden (scheinbar ein typisches Bluetooth-Problem), aber inzwischen läuft alles: ich kann per Terminal-Befehl meine Tür auf- und zuschließen bzw. öffnen.
Nun möchte ich das Ganze natürlich auch über den ioBroker nutzbar machen, scheitere hier aber leider am exec-Befehl des Javascript-Adapters (Version 4.1.4). In der Vergangenheit habe ich den definitiv schon erfolgreich benutzt, aber leider das betroffene Gerät nicht mehr parat, um ausprobieren zu können, ob das damalige Skript noch immer funktioniert. Meine Befürchtung ist, dass mir die notwendigen Berechtigungen fehlen, denn so ist die aktuelle Situation:
- die Eingabe im Terminal per PuTTY funktioniert einwandfrei
keyble-sendcommand --address 00:XX:XX:XX:XX:XX --user_id X --user_key XXXXXXXXXXXXXXXX --command open
- der Befehl im Skript hingegen löst keinerlei Aktion aus
exec('keyble-sendcommand --address 00:XX:XX:XX:XX:XX --user_id X --user_key XXXXXXXXXXXXXXXX --command open')
Der Haken zur Ausführung von exec-Befehlen im Adapter ist natürlich gesetzt.
Missverstehe ich die Funktion bzw. das, was sie zu leisten imstande ist, oder muss ich den Befehl schlichtweg in einer anderen Form übermitteln? Und falls es wie vermutet eine Frage der Berechtigungen sein sollte: Wie kann ich diese nachträglich anpassen, damit der Befehl vom Adapter ausgeführt werden kann?
-
Kommando zurück: Ich habe soeben mal versucht, was denn passiert, wenn ich den Befehl über den Terminal-Adapter eintippe. Dabei habe ich festgestellt, dass die vom ioBroker erreichbare Instanz von keyble nicht in der Lage war, auf das Modul "bluetooth-hci-socket" zuzugreifen, da es unter "/home/pi/npm/lib/node_modules/" lag. Also fix rüberkopiert nach "/usr/lib/node_modules/", noch einmal getestet, festgestellt, dass "sudo" notwendig zu sein scheint, angepasst, und Erfolg gehabt!
Ich bin mir ziemlich sicher, dass ich hier mit meiner Bastelei gegen diverse Regeln einer geordneten Installation verstoße, aber die Hauptsache für mich: Es funktioniert nun! Ich kann per Datenpunkt meine Tür sowohl abschließen (false) als auch öffnen (true).