NEWS
[Adapter] Neuer radar2-Adapter
-
Auch von mir Danke für den Adapter.
Bekomme auch den Fehler: node-bluetooth not found.
npm install node-bluetooth --save
führt zu:
oot@orangepiplus:~# npm install node-bluetooth --save > node-bluetooth@1.2.5 install /root/node_modules/node-bluetooth > node-gyp configure build make: Entering directory '/root/node_modules/node-bluetooth/build' CXX(target) Release/obj.target/BluetoothSerialPort/src/linux/BluetoothSerialPort.o CXX(target) Release/obj.target/BluetoothSerialPort/src/linux/DeviceINQ.o ../src/linux/DeviceINQ.cc: In static member function ‘static void DeviceINQ::EIO_AfterSdpSearch(uv_work_t*)’: ../src/linux/DeviceINQ.cc:139:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->cb->Call(1, argv); ^ ../src/linux/DeviceINQ.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE DeviceINQ::InquireSync(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/linux/DeviceINQ.cc:251:26: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] found->Call(2, argv); ^ ../src/linux/DeviceINQ.cc:255:27: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] callback->Call(0, argv); ^ ../src/linux/DeviceINQ.cc: In member function ‘virtual void InquireWorker::HandleOKCallback()’: ../src/linux/DeviceINQ.cc:284:26: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] found->Call(2, argv); ^ ../src/linux/DeviceINQ.cc:288:27: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] callback->Call(0, argv); ^ CXX(target) Release/obj.target/BluetoothSerialPort/src/linux/BTSerialPortBinding.o ../src/linux/BTSerialPortBinding.cc: In static member function ‘static void BTSerialPortBinding::EIO_AfterConnect(uv_work_t*)’: ../src/linux/BTSerialPortBinding.cc:83:32: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->cb->Call(0, NULL); ^ ../src/linux/BTSerialPortBinding.cc:89:33: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->ecb->Call(1, argv); ^ ../src/linux/BTSerialPortBinding.cc: In static member function ‘static void BTSerialPortBinding::EIO_Write(uv_work_t*)’: ../src/linux/BTSerialPortBinding.cc:115:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (data->result != data->bufferLength) { ^ ../src/linux/BTSerialPortBinding.cc: In static member function ‘static void BTSerialPortBinding::EIO_AfterWrite(uv_work_t*)’: ../src/linux/BTSerialPortBinding.cc:135:33: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] data->callback->Call(2, argv); ^ ../src/linux/BTSerialPortBinding.cc: In static member function ‘static void BTSerialPortBinding::EIO_AfterRead(uv_work_t*)’: ../src/linux/BTSerialPortBinding.cc:207:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->cb->Call(2, argv); ^ ../src/linux/BTSerialPortBinding.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE BTSerialPortBinding::Read(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/linux/BTSerialPortBinding.cc:383:25: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] nc->Call(2, argv); ^ SOLINK_MODULE(target) Release/obj.target/BluetoothSerialPort.node COPY Release/BluetoothSerialPort.node CXX(target) Release/obj.target/BluetoothSerialPortServer/src/linux/BluetoothSerialPortServer.o CXX(target) Release/obj.target/BluetoothSerialPortServer/src/linux/BTSerialPortBindingServer.o ../src/linux/BTSerialPortBindingServer.cc: In static member function ‘static void BTSerialPortBindingServer::EIO_AfterListen(uv_work_t*)’: ../src/linux/BTSerialPortBindingServer.cc:176:33: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->ecb->Call(1, argv); ^ ../src/linux/BTSerialPortBindingServer.cc: In static member function ‘static void BTSerialPortBindingServer::TryListenAgain()’: ../src/linux/BTSerialPortBindingServer.cc:199:31: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->ecb->Call(1, argv); ^ ../src/linux/BTSerialPortBindingServer.cc: In static member function ‘static void BTSerialPortBindingServer::EIO_AfterWrite(uv_work_t*)’: ../src/linux/BTSerialPortBindingServer.cc:239:33: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] data->callback->Call(2, argv); ^ ../src/linux/BTSerialPortBindingServer.cc: In static member function ‘static void BTSerialPortBindingServer::EIO_AfterRead(uv_work_t*)’: ../src/linux/BTSerialPortBindingServer.cc:311:36: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->cb->Call(2, argv); ^ ../src/linux/BTSerialPortBindingServer.cc:326:28: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] baton->cb->Call(2, argv); ^ ../src/linux/BTSerialPortBindingServer.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE BTSerialPortBindingServer::Read(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/linux/BTSerialPortBindingServer.cc:618:25: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] nc->Call(2, argv); ^ ../src/linux/BTSerialPortBindingServer.cc: In member function ‘virtual void BTSerialPortBindingServer::ClientWorker::HandleOKCallback()’: ../src/linux/BTSerialPortBindingServer.cc:672:27: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated (declared at ../../nan/nan.h:1674) [-Wdeprecated-declarations] callback->Call(1, argv); ^ SOLINK_MODULE(target) Release/obj.target/BluetoothSerialPortServer.node COPY Release/BluetoothSerialPortServer.node make: Leaving directory '/root/node_modules/node-bluetooth/build' npm WARN saveError ENOENT: no such file or directory, open '/root/package.json' /root └─┬ node-bluetooth@1.2.5 ├── bindings@1.2.1 └── nan@2.12.1 npm WARN enoent ENOENT: no such file or directory, open '/root/package.json' npm WARN root No description npm WARN root No repository field. npm WARN root No README data npm WARN root No license field. root@orangepiplus:~# device.listPairedDevices(console.log); -bash: Syntaxfehler beim unerwarteten Wort `console.log' root@orangepiplus:~# ^C root@orangepiplus:~#
Danke für einen Tipp hierzu.
Gruß
Christian -
Mir ist eben noch eine Sache aufgefallen.
Alle eingetragenen Geräte werden unter Objekte, im Radar2 Ordner unter Valeu State notHere angezeigt obwohl mindestens eins online ist. Es scheint so als findet er keines der eingetragenen Geräte.Im alten Radar Adapter wurde in den Objekten für jedes Gerät ein extra Ordner erstellt. Beim Radar2 Adapter ist dem nicht so. Ist das normal? Hier ein Bild der Ordnerstruktur. Normal müsste da ja für jedes Gerät ein Ordner sein.
Im Log stehen bis auf die bereits von mir genannten Bluetooth Warnung nichts drin.
Gruß Markus
-
Bei mir springt der Datenpunkt für die "Anwesenheit" nicht auf false. Obwohl ich schon eine Stunde nicht zuhause bin.
Komischerweise stimmt aber der lasthere Datenpunkt, das ist die Uhrzeit wo ich das Haus verlassen habe. -
@Segway sagte in [Adapter] Neuer radar2-Adapter:
Habe ich jetzt genauso mit dem Namen und IPAdresse so eingetragen aber die Lasche unter Objekte kommt nicht
Möchte noch einmal nachfragen, warum ich nichts unter Objekte bekomme ... würde ja gerne was testen aber so gehts nicht.
-
Nochwas ist mir aufgefallen, nach einem Neustart des Adapters werden keine Datenpunkte für die eingetragenen Devices erzeugt bzw. die alten gelöscht wenn das Gerät nicht anwesend ist.
Dadurch läuft mein Log durch Fehler vom javascript Adapter voll, weil der in einem Script abgefragte Datenpunkt nicht gefunden wird. -
auch bei mir funktioniert er nicht wirklich. Hab den Adapter mal so gestartet
node /opt/iobroker/node_modules/iobroker.radar2/radar2.js --force --logs --nolazy
und folgende Fehlermeldungen erhalten.
radar set to scan every 20 sec and printers every 720 scans. { Error: bind EADDRINUSE 0.0.0.0:67 at _handle.lookup (dgram.js:266:18) at _combinedTickCallback (internal/process/next_tick.js:142:11) at process._tickCallback (internal/process/next_tick.js:181:9) errno: 'EADDRINUSE', code: 'EADDRINUSE', syscall: 'bind', address: '0.0.0.0', port: 67 } Adapter disconnected and stopped with dostop(false) and callback(true) Error updating manufacturer database: { Error: EACCES: permission denied, open '/opt/iobroker/node_modules/iobroker.radar2/node_modules/oui/oui.json' errno: -13, code: 'EACCES', syscall: 'open', path: '/opt/iobroker/node_modules/iobroker.radar2/node_modules/oui/oui.json' } .... radar initialization finished with error TypeError: Cannot read property 'push' of null at A.isApp.then.then.then.then.then.then.then.catch.then (/opt/iobroker/node_modules/iobroker.radar2/radar2.js:502:25) at <anonymous> at process._tickCallback (internal/process/next_tick.js:189:7), will stop adapter!
-
Ich habe ebenfalls den Adapter ausprobiert, es werden keine Bluetooth Objekte angelegt.
Nach Eingabe von
node /opt/iobroker/node_modules/iobroker.radar2/radar2.js --force --logs --nolazy
bekomme ich folgendes Ergebnis:
starting. Version 0.1.2 in /opt/iobroker/node_modules/iobroker.radar2, node: v8.14.0 { Error: EACCES: permission denied, open '/opt/iobroker/log/iobroker.2019-02-13.log' errno: -13, code: 'EACCES', syscall: 'open', path: '/opt/iobroker/log/iobroker.2019-02-13.log' } Adapter disconnected and stopped with dostop(false) and callback(true) Adapter will exit in latest 1 sec with code false! terminating
-
Der Adapter legt bei mir erst dann Objekte an, wenn diese einmal weg und dann wieder da sind, egal ob Bluetooth oder Wlan, egal ob mit IP oder Mac.
Das doofe ist, dass bei einem Adapter restart alle Objekte gelöscht werden, und man dann wieder warten muss, bis welche angelegt werden.. -
@ilovegym sagte in [Adapter] Neuer radar2-Adapter:
Der Adapter legt bei mir erst dann Objekte an, wenn diese einmal weg und dann wieder da sind, egal ob Bluetooth oder Wlan, egal ob mit IP oder Mac.
Das doofe ist, dass bei einem Adapter restart alle Objekte gelöscht werden, und man dann wieder warten muss, bis welche angelegt werden..Hallo!
Das ist nicht genau wie radar2 funktioniert: Alle Objekte welche im Konfig angegeben sind bleiven immer da, damit bleibt auch die Info wann derjenige gesehen wurde auch vorhanden.
Nur unknown's werden beim Adapterstart gelöscht!Ich hab ein paar printscreens von meiner Test-Raspi3B+ gemacht:
In diesem Fall scannt radar2 alle 20 Sekunden und meldet Abwesenheit wenn was länger als 2 Minuten nicht gefunden wurde.
Das Rufzeichen hinter der Fritzbox schaltet den Debug ein und fast alles wird dann geloggt.
Ohne Debug schaut das log beim Start so aus:
Und die Objekte welche generiert werden so:
-
@frankjoke sagte in [Adapter] Neuer radar2-Adapter:
@ilovegym sagte in [Adapter] Neuer radar2-Adapter:
Der Adapter legt bei mir erst dann Objekte an, wenn diese einmal weg und dann wieder da sind, egal ob Bluetooth oder Wlan, egal ob mit IP oder Mac.
Das doofe ist, dass bei einem Adapter restart alle Objekte gelöscht werden, und man dann wieder warten muss, bis welche angelegt werden..Hallo!
Das ist nicht genau wie radar2 funktioniert: Alle Objekte welche im Konfig angegeben sind bleiven immer da, damit bleibt auch die Info wann derjenige gesehen wurde auch vorhanden.
Nur unknown's werden beim Adapterstart gelöscht!Ich hab ein paar printscreens von meiner Test-Raspi3B+ gemacht:
ok, dass könnte auch mein Problem erklären warum die Objekte gelöscht wurden, hab die IP's und MAC's nicht bei known eingetragen und die waren weg bei Adapter neustart.
Kann man das vielleicht automatisieren? Wenn ich die als Geräte unter Suchobjekte eintrage, ist es ja irgendwie logisch dass diese nicht unknown sind -
@JohGre sagte in [Adapter] Neuer radar2-Adapter:
auch bei mir funktioniert er nicht wirklich. Hab den Adapter mal so gestartet
node /opt/iobroker/node_modules/iobroker.radar2/radar2.js --force --logs --nolazy
und folgende Fehlermeldungen erhalten.
radar set to scan every 20 sec and printers every 720 scans. { Error: bind EADDRINUSE 0.0.0.0:67 at _handle.lookup (dgram.js:266:18) at _combinedTickCallback (internal/process/next_tick.js:142:11) at process._tickCallback (internal/process/next_tick.js:181:9) errno: 'EADDRINUSE', code: 'EADDRINUSE', syscall: 'bind', address: '0.0.0.0', port: 67 } Adapter disconnected and stopped with dostop(false) and callback(true) Error updating manufacturer database: { Error: EACCES: permission denied, open '/opt/iobroker/node_modules/iobroker.radar2/node_modules/oui/oui.json' errno: -13, code: 'EACCES', syscall: 'open', path: '/opt/iobroker/node_modules/iobroker.radar2/node_modules/oui/oui.json' } .... radar initialization finished with error TypeError: Cannot read property 'push' of null at A.isApp.then.then.then.then.then.then.then.catch.then (/opt/iobroker/node_modules/iobroker.radar2/radar2.js:502:25) at <anonymous> at process._tickCallback (internal/process/next_tick.js:189:7), will stop adapter!
Das sind Fehlermeldungen da der Adapter nicht auf einige Daten zugreifen kann/darf.
- Frage: Hast
sudo apt-get install libcap2-bin arp-scan bluetooth bluez libbluetooth-dev libudev-dev sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which arp-scan`) sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which node`)
gemacht? Dadurch wird der Zugriff von von node und arp-scan erlaubt. Beineueren iobroker-Installationen läuft ioBroker als
iobroker
user und nicht mehr als root, und deshalb kann nicht auf alles zugregriffen werden.Übrigens, in solchem Fall kann man auch nicht vom Benutzer pi einfach iobroker managen, anstatt früher sudo muss dann
sudo -u iobroker ....
vorangestellt werden um Zugriff auf Daten im iobroker-Verzeichnis zu erhalten!Nun zu 0.0.0.0:67: Das ist der port für DNS, hast auf deinem Raspi einen DNS-Server laufen? Wenn ein anderes Programm das blockiert ist's dumm. Werde eine Änderung machen dass der Adapter nicht abstürzt wenn das der Fall ist, DNS-Erkennung gibt's dann halt nicht!
Der andere Fehler mit
EACCES
schaut eher aus dass die setcap's nicht gemacht worden sind! -
@frankjoke Danke mal für die Antworten
zu 1: Ja, genauso wie beschrieben
Hab eine neuere ioBroker Installation und habe natürlich unter User "pi" den Adapter mit
sudo
installiert. Soweit mal verstanden. DNS Server hab ich keinen am laufen.
Deinstalliere mal alles und dann probier ich's noch mal, is ja eh ein Testsystem -
@JohGre sagte in [Adapter] Neuer radar2-Adapter:
@frankjoke Danke mal für die Antworten
zu 1: Ja, genauso wie beschrieben
Hab eine neuere ioBroker Installation und habe natürlich unter User "pi" den Adapter mit
sudo
installiert. Soweit mal verstanden. DNS Server hab ich keinen am laufen.
Deinstalliere mal alles und dann probier ich's noch mal, is ja eh ein TestsystemWenn du eine neue ioBroker-Installation hast wo iobroker als iobroker user läuft (das kannst mit
top
erkunden) dann NICHTsudo
sondernsudo -u iobroker
! -
@aw1980 sagte in [Adapter] Neuer radar2-Adapter:
Bei mir springt der Datenpunkt für die "Anwesenheit" nicht auf false. Obwohl ich schon eine Stunde nicht zuhause bin.
Komischerweise stimmt aber der lasthere Datenpunkt, das ist die Uhrzeit wo ich das Haus verlassen habe.Was hast denn in der Konfig unter Delay Away stehen? Das wird in Minuten gezählt, ich hab da 2 drinnen im Beispiel unten, werde die Beschreibug updaten....
-
@frankjoke sagte in [Adapter] Neuer radar2-Adapter:
Was hast denn in der Konfig unter Delay Away stehen? Das wird in Minuten gezählt, ich hab da 2 drinnen im Beispiel unten, werde die Beschreibug updaten....
auch die 2, habe den Wert nicht verändert. Kann das auch damit zusammenhängen, dass die IP/BT Mac nicht als "known devices" gelistet war?
-
@frankjoke sagte in [Adapter] Neuer radar2-Adapter:
Was hast denn in der Konfig unter Delay Away stehen? Das wird in Minuten gezählt,
Kannst Du in der Config-Screen noch dazuschreiben was in sek und was in min angegeben wird?
-
@JohGre sagte in [Adapter] Neuer radar2-Adapter:
auch bei mir funktioniert er nicht wirklich. Hab den Adapter mal so gestartet
node /opt/iobroker/node_modules/iobroker.radar2/radar2.js --force --logs --nolazy
und folgende Fehlermeldungen erhalten.
radar set to scan every 20 sec and printers every 720 scans. { Error: bind EADDRINUSE 0.0.0.0:67 at _handle.lookup (dgram.js:266:18) at _combinedTickCallback (internal/process/next_tick.js:142:11) at process._tickCallback (internal/process/next_tick.js:181:9) errno: 'EADDRINUSE', code: 'EADDRINUSE', syscall: 'bind', address: '0.0.0.0', port: 67 } radar initialization finished with error TypeError: Cannot read property 'push' of null at A.isApp.then.then.then.then.then.then.then.catch.then (/opt/iobroker/node_modules/iobroker.radar2/radar2.js:502:25) at <anonymous> at process._tickCallback (internal/process/next_tick.js:189:7), will stop adapter!
Hab herausgefunden wann 0.0.0.0:67 auch noch benutzt wird: Wenn du den Adapter händisch gestartet hast dann bleibt er aktiv (warum auch immer node das kann/macht) und kann nur durch
sudo pkill -f radar2
die Instanz killen und dann ist der Port nicht wieder belegt,,, -
@OstfrieseUnterwegs sagte in [Adapter] Neuer radar2-Adapter:
@frankjoke sagte in [Adapter] Neuer radar2-Adapter:
Was hast denn in der Konfig unter Delay Away stehen? Das wird in Minuten gezählt,
Kannst Du in der Config-Screen noch dazuschreiben was in sek und was in min angegeben wird?
Hab grad 0.1.2 Beta4 auf git geschickt, da sind die Texte überarbeitet und es steht dabei.
https://github.com/frankjoke/ioBroker.radar2
-
@aw1980 sagte in [Adapter] Neuer radar2-Adapter:
@frankjoke sagte in [Adapter] Neuer radar2-Adapter:
Was hast denn in der Konfig unter Delay Away stehen? Das wird in Minuten gezählt, ich hab da 2 drinnen im Beispiel unten, werde die Beschreibug updaten....
auch die 2, habe den Wert nicht verändert. Kann das auch damit zusammenhängen, dass die IP/BT Mac nicht als "known devices" gelistet war?
Daran sollte es nicht liegen, es macht zwar nichts wenn sie darin gelistet sind aber wenn sie in Der Geräteliste sind kommen sie nie in die unknowns!
Die unknows sind nur dass permanent für Geräte die nicht überwacht werden sollen Objekte angelegt werden und!
-
@frankjoke
Werd ich dann gleich mal probieren