-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nodejs 10 Kompatibilität #20
Comments
Daran wäre ich interessiert ;) |
Ich war mir ehrlich gesagt gar nicht (mehr?) bewusst, dass es unter Node 10 nicht funktioniert. Danke für den Hinweis! Allerdings werde ich wohl nicht speziell auf Kompatibilität mit Node 10 achten, sondern nur auf Kompatibilität mit der aktuellen LTS-Version, Node 12. |
Kleines Status-Update: Bei weit über 1000 Zeilen Code ist das allerdings doch ein gutes Stück Arbeit. Den grössten Teil habe ich aber bereits geschafft, ich denke, spätestens nächste Woche wird es eine neue Version mit der überarbeiteten Code-Basis geben. Wäre nett, wenn einer von Euch die dann mal testen könnte. Zum Einen wird sich beim Umstellen vermutlich noch der eine oder andere Bug eingeschlichen haben. Zum Anderen wäre halt interessant, ob es mit Node 10 funktioniert. Mit Node 8 wird die neue Version wohl definitiv nicht mehr kompatibel sein, weil ich gesehen habe, dass eines der Features die ich jetzt verwende wohl erst ab Node 10 verfügbar ist. Sicher kompatibel wird die neue Version nur mit Node 12 sein, weil das halt die Version ist, die ich aktuell verwende. Aber sofern das keine allzu grossen Probleme macht werde ich versuchen, dass es auch noch mit Node 10 funktioniert, wenn das bei den üblichen Raspberry Pi-Distros die aktuelle Version ist. |
Hallo oyooyo, Viele Dank für die schnelle Anpassung. Ich teste gerne. Habe Keyble seit Anfang an am laufen. Mit ein paar kleinen Änderungen und eigenen MQTT-Service. Es läuft einwandfrei, außer das ich ab und an Fehler bekomme -> Simble findet dann keine Services: Cannot read property 'services' of null. Nach einem Neustart funktioniert es dann wieder :) |
Hallo, ich habe eben eine erste Version 0.2.0. mit dem neu geschriebenen Sourcecode hochgeladen. Da ist noch einiges zu tun, bislang ist hauptsächlich der Sourcecode auf Javascript umgestellt und der Code ein wenig umstrukturiert worden. Da sind definitiv noch einige Fehler drin, die noch gefunden und ausgemerzt werden müssen. Wer dabei helfen und sie schon mal testen will (Danke für das Angebot @marcelkordek !) möchte: Die neue Version kann mit Ein Fehler, den ich selbst bereits entdeckt habe, und den ihr daher nicht extra erwähnen müsst: Der "continuous-Mode" funktioniert noch nicht richtig. Wenn keyble nach der per |
Hallo oyooyo, nach erstem Test mit Node v10.0.0 auf einem Pi Zero funktioniert soweit alles. Allerdings bekomme ich von Zeit zu Zeit, selbst mit "auto_disconnect_time: 0" folgenden Fehler (Das ist dir ja bereits bekannt):
Bei mir läuft das ganze auch im"continuous-Mode". Ansonsten konnte ich noch nichts negatives Feststellen ;) |
node -v Das registrieren klappte leider nicht via keyble-registeruser -n PC -q ************* Press and hold "Unlock" button until the yellow light flashes in order to enter pairing mode TypeError: command_line_input_strings.filter is not a function |
Danke für die Meldung @marcelkordek . Das ist in der Tat genau der Fehler, der bei mir auch kam. Danke auch an Dich, @rrdd. Das umgeschriebene registeruser-Script habe ich bislang noch gar nicht getestet, weil ich zum Löschen der so angelegten User dann erst mal wieder die Android-App suchen und installieren müsste. Ich habe eben mal Version 0.2.2 hochgeladen, in der hoffentlich beide Bugs behoben sind. Der erste Bug ist hoffentlich weg, den zweiten bei registeruser habe ich versucht zu beheben, aber wie gesagt nicht getestet. Kann wieder via |
Hallo, der reconnect Fehler scheint behoben. Läuft jetzt seit Stunden ohne Fehler und Neustart durch 👍 Die einzige Änderung die ich bei mir am laufen habe ist das Keyble den Status immer sendet (auch wenn sich der Wert nicht ändert) und das er mir im Status auch den Batterie-Status mitschickt. |
Hallo, bei mir kommt jetzt bei register folg fehler. nutze nodejs 10 ReferenceError: hex_string_to_byte_array is not defined |
Ah, warst Du das, der das damals herausgefunden hatte, wo der Batterie-Zustand gespeichert wird? So oder so, sag doch mal, wo diese Information enthalten ist. Irgendwer hatte mir das schon mal genannt, und ich dachte ich hätte das dann entsprechend geändert, war aber offenbar doch nicht so.
Wäre zwar eine rückwärtsinkompatible Änderung, macht aber denke ich Sinn. Dass man Wählen kann, ob der Status immer oder nur bei Änderung ausgegeben wird, werde ich wohl auch noch als optionales Kommandozeilen-Flag hinzufügen. |
Nicht direkt, hatte ich glaube ich auch hier gelesen. Ist unter "Status_Info_Message" property e. Dieser gibt allerdings nur True oder False aus. Sprich Batterie leer oder nicht. Hat bei mir immer funktioniert. Werde mir die anderen Werte aber nochmal alle mit ausgeben lassen um zu vergleichen. Die Status Änderung auswählbar zu machen finde ich auch sehr gut. Je nach Anwendungsgebiet kann man dann wählen. |
Also folgender Fehler kommt zwischendurch noch:
Der reconnect Fehler ist dafür aber behoben. |
Ist Dir irgendein Muster aufgefallen, wann das auftritt? Damit ich mal versuchen kann, das zu reproduzieren. Es gibt jetzt eine neue Beta-Version 0.2.4. Die angekündigten Veränderungen (Status-Ausgabe als JSON und wählbar, ob Status immer oder nur bei Änderung ausgegeben wird) sind darin enthalten. Das Registrieren eines neues Benutzers via keyble-registeruser sollte jetzt auch funktionieren. Aus irgendeinem Grund funktioniert das anschliessende Setzen des Benutzernamens allerdings noch nicht. Da man den aber auch über die App setzen kann, ist das vorerst nicht so wild. In einer der nächsten Beta-Versionen wird übrigens vermutlich noch die Möglichkeit hinzukommen, das Türschloss umzukonfigurieren. (Schloss links/rechts, Neutralposition horizontal/vertikal, Anzahl Umdrehungen). |
Hallo, das registrieren klappt leider nicht bei mir. keyble-registeruser -n PC -q ************ nie wieder zurück bzw beendet sich. :-( |
@rrdd DEBUG=simble:*,keyble:* keyble-registeruser -n PC -q ... und schaust, an welcher Stelle er hängt. |
Hallo, er hängt hier keyble:event Event: disconnected +0ms |
Schade, das ist leider doch noch zu wenig aussagekräftig. DEBUG=* keyble-registeruser -n PC -q ... um auch die noble-Debug-Nachrichten anzeigen zu lassen. |
da kommt jetzt viel output. wie kann ich dir den sicher übermitteln bzw was davon kann man posten btw benötigst du? richtig auffällig ist da nichts. |
Hier mal die kurze Version vollständig: |
nutze einen raspberry pi 4 und vermute mal liegt an abandonware/noble#99 ? was meinst du? |
So richtig sensibel sind eigentlich nur die Keys - also der von der Key Card zum Registrieren neuer Benutzer, und der beim Registrieren von Benutzern erzeugte user_key. Die Bluetooth-Kommunikation selbst ist von eQ-3 mit diversen Massnahmen meinem Eindruck nach gut abgesichert. Sprich, die haben darauf geachtet, dass ein imaginärer Angreifer, der die Bluetooth-Kommunikation zwischen Deinem Smartphone/RPi und dem Türschlossantrieb belauschen/mitschneiden würde, keine Gefahr darstellt. Du hast mich da aber gerade auf einen Gedanken gebracht: Ich schätze, ich sollte bei Gelegenheit mal eine Option einbauen, durch die man verhindern kann dass die Ausgabe sensible Informationen enthält. Ob Dein Problem mit dem von Dir geposteten noble-issue zusammenhängt... Schwer zu sagen. Kann sein, aber wenn ich raten müsste, würde ich eher auf nein tippen. Von daher, dass bei vielen Leuten die in dem verlinkten issue gepostet haben offenbar lediglich ein Problem mit den Berechtigungen vorlag. Seit der vor ein paar Wochen veröffentlichten noble-Version 1.9.2-9 (?) dürfte dieses Problem aber kaum noch auftreten, weil noble seitdem eigentlich wieder gross und fett darauf hinweisen sollte, wenn diesbezüglich ein Problem vorliegt. Bis dieses Feature existiert, kannst Du mir alternativ auch eine private eMail mit dem Log an |
habs dir gemailt. danke |
Hi,
Nein ein Muster ist mir nicht direkt aufgefallen. Scheint random zu sein. Ich werde jetzt aber heute Nacht nochmal die Logs aufzeichnen. Vielleicht erkennt man etwas. Ps: 0.2.4 mit JSON und status_update läuft ohne Probleme. Mittlerweile teste ich mit Node 10.22.1. |
Sorry, hat nicht funktioniert. Offenbar habe ich da was falsch verstanden und man kann gar nichts an diese eMail-Adresse schicken. Meine richtige möchte ich wegen Spam etc. hier aber auch nicht unbedingt öffentlich posten... Ich werde mal meinen eigenen Raspberry Pi auspacken und schauen, ob ich das Problem da reproduzieren kann. Allerdings ist das ein Raspberry Pi 3 mit Raspbian, eventuell tritt das Problem da gar nicht auf. |
habe einen externen usb bt adapter bestellt. ich teste morgen mal damit. muss ich dem system irgendwie sagen, welchen adapter ich nutzen will? |
@rrdd Über eine Umgebungsvariable kann man noble mitteilen, welchen Adapter er verwenden soll: Ich habe eben mal auf meinem Raspberry Pi 3B+ (mit Raspbian und Node v12) versucht, keyble zum Laufen zu bringen, und bin auch auf Probleme gestossen: Obwohl der RPi 3 Bluetooth-Hardware verbaut hat, wurde diese irgendwie nicht richtig erkannt. Mit einem externen USB-Bluetooth-Dongle hingegen hat es dann auf Anhieb geklappt. Allerdings scheint Dein Problem ja anders gelagert zu sein, denn zumindest bis zum Verbindungsaufbau funktioniert es bei Dir ja offenbar. |
@rrdd Meine Raspbian /Raspberry Pi OS Installation war scheinbar ein wenig veraltet. Habe den Pi mal plattgemacht und die aktuellste Version aufgespielt. Das Problem aus meinem letzten Posting scheint damit behoben zu sein, das interne Bluetooth-Gerät wird nun anstandlos erkannt. Habe dann die aktuellste Version von Node 10 installiert und dann keyble. Und siehe da, ich kann Dein Problem reproduzieren. Dem ersten Anschein nach hat das Problem allerdings nichts mit Node 10 zu tun, als ich danach Node 12 installierte kam genau das gleiche Phänomen. UPDATE: Mit dem externen USB-Bluetooth-Dongle hat es bei beiden Node-Versionen problemlos geklappt. Das ursprüngliche Problem scheint also nicht mit Node 10 zu tun zu haben und auch nicht in keyble zu stecken, sondern wohl wirklich irgendwo in noble. |
@rrdd Ich glaube mittlerweile Du hattest tatsächlich recht, dass der von Dir verlinkte issue 99 das zugrundeliegende Problem ist. |
mit einem logilink usb bt stick funktioniert es |
Habe jetzt folgendes herausgefunden: Keyble läuft als Service und prüft alle 15 Minuten den Status (status_update_time: 900). auto_disconnect_time steht auf 30.
Selbst wenn ich auto_disconnect_time auf 0 stelle habe ich dieses Phänomen. |
Für mich hat es auf einem pi4 funktioniert, nachdem ich abandonware/noble#99 genutzt, bluetooth aktiviert und entblocked habe:
Und scheint mit der aktuellen beta soweit gut zu funktionieren. Danke! |
Moin, hab das Tool grade getestet. Raspi 4, 4gb Bei der Installation gabs einige Fehler Ich habe das Schloss dann resettet und danach klappte es. `keyble-sendcommand --address 00:1A:22:13:6F:D2 --user_id 0 --user_key xxxxxxxxxxxxxxxxxx --command open {"battery_low":false,"lock_status":"MOVING","lock_status_id":1,"pairing_allowed":true} [ 'Error: ', '' ] Error: Promise did not resolve within 30000 milliseconds Wie verhällt sich eigentlich das Bluethoth auf dem Raspi? Ich frage auf dem Raspi noch 4 BT Pflanzensensoren ab die manchmal wegen der Entfernung schon in einen Timeout laufen und es läuft https://github.com/mKeRix/hassio-repo für die presence detection. Kann man das BT Geschehen irgendwie debuggen um das zu checken? tnxs und Grüße |
@corgan2222 , danke für Deinen Bericht. |
argh fck done.. #kopftisch |
@corgan2222 Nun zu Deinem eigentlichen Bericht. In Deinem Fall wird neben den nicht weiter ungewöhnlichen Warnings aber auch noch ein echter Error angezeigt, von wegen dass libudev.h nicht gefunden wurde. Ich glaube, die noble-library funktioniert zwar auch ohne libudev, aber besser wäre wahrscheinlich, die benötigten Libraries zu installieren. Hier steht was zu tun ist, kurz gesagt: sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev ...ausführen, bevor man keyble installiert. Eventuell solltest Du keyble also nochmal komplett deinstallieren, libudev etc. über den obigen Befehl installieren, und keyble dann nochmal neu installieren. Was den zweiten Screenshot anbelangt: Beim Registrieren des User-Accounts werden da irgendwelche Fehler angezeigt, die mir so erst einmal nicht bekannt vorkommen ("noble warning unknown handle 64 disconnected", "noble unknown peripheral .... connected!"). Scheint aber trotzdem irgendwie funktionert zu haben, ausser dass vermutlich der Benutzername nicht gesetzt wurde, das ist noch ein bereits bekanntes Problem. Ansonsten würde ich vermuten, dass Deine Probleme vielleicht wirklich damit zu tun haben, dass Du Bluetooth für mehrere Sachen gleichzeitig benutzt. Ich meine mich zu erinnern, dass die noble-Library, die keyble für die Bluetooth-Kommunikation verwendet, Probleme damit hat, wenn gleichzeitig auch noch andere Software auf die Bluetooth-Hardware zugreift. Und der interne Bluetooth-Adapter des Raspberry Pi macht ja offenbar eh gewisse Probleme. Diese Timeouts nach 30 Sekunden sind aber schon irgendwie merkwürdig. Ich schätze, ich sollte die Zeit mal ein bisschen erhöhen, ich dachte bislang 30 Sekunden wären mehr als genug. DEBUG=* keyble-sendcommand .... Wäre im Falle der Timeouts wirklich mal interessant. |
Hallo, das Problem mit dem Timeout hab ich auch. Bei mir kommt es immer beim Unlock Befehl. Raspi 4, 4gb pi@raspberrypi:~ $ keyble-sendcommand --address 00:1A:22:13:6D:4C --user_id 4 --user_key AAAAA --command unlock |
Du meinst beim Lock-Befehl, oder? Zumindest suggeriert das das von Dir gepostete Log.
Ich interpretiere diese Ausgabe so, dass Dein Schloss aus irgendeinem Grund den "LOCKED"-Zustand nicht erkennt, und den Zustand daher irgendwann auf "UNKNOWN" setzt. Die eigentliche Frage scheint mir daher zu sein, warum Dein Türschlossantrieb nicht in den LOCKED, sondern in den UNKNOWN-Zustand wechselt. Hast Du das Schloss über die Hersteller-App korrekt konfiguriert (An welcher Seite ist das Schloss, wie viele Umdrehungen, Neutralposition horizontal/vertikal etc.)? |
Danke erstmal für die Tipps. Ich habe alles nochmal runtergeschmissen und mit der Installation der Bluetooth Apts angefangen. Danach konnte keyble auch libudev ohne Fehler installieren. Da ich noch auf das richtige Schloss warte (das aktuelle ist zu kurz) dreht das Dingen total frei. Denke daher spinnt der gerade noch und läuft in nen Timeout. Wenn ich morgen das richtige Schloss eingebaut habe, werde ich nochmal berichten.
Ich hatte das Schloss komplett resettet. Muss/kann/soll ich die Einrichtung nochmal über die App machen? |
Gut möglich. Der Türschlossantrieb erwartet glaube ich, dass da irgendwann ein Widerstand kommt. Wenn der nicht kommt sondern er immer weiter drehen kann, dann geht er irgendwann zurecht davon aus, dass da irgendetwas nicht stimmt.
Leider ja. Irgendwann soll es zwar die Möglichkeit geben, die initiale Konfiguration direkt per Keyble vornehmen zu können, aber bislang ist dafür die App nötig. Letztlich geht es wirklich nur darum, die Eigenschaften des Schlosses einzustellen - hauptsächlich, ob das Schloss auf der linken oder der rechten Seite ist, bei den anderen beiden Einstellungen ist die Standardeinstellung normalerweise okay. |
@oyooyo Danke für die Info. |
@lala-rob Freut mich zu hören! Mal was ganz Anderes, rein aus Neugier eine kleine Mini-Umfrage: |
@oyooyo witzigerweise bin ich durch Deine Library darauf aufmerksam geworden. Ich suchte nach einem günstigen Schlossmotor, der sich halbwegs gut ansteuern lässt und bei dem die Crypto OK wirkt. Vielen Dank für deine Arbeit! ❤️ |
@LilithWittmann dem kann ich mich nur anschließen. Ich habe schon lange nach einem smarten Schloss für die innere Haustür gesucht, dass keine 300€ kostet aber trotzdem halbwegs sicher ist. Tatsächlich bin ich über einen Thread im Home Assistant Forum auf das Projekt hier aufmerksam geworden und hab dann direkt das Schloss gekauft. Ich hoffe ich bekomme das morgen "Frauentauglich" hin. Die Dame beschwert sich jetzt schon, dass sie 2-3sek vor der äußeren Haustür stehen muss, bis ihr Gesicht erkannt wird und die Tür aufgeht. Wenn sie jetzt ewig auf die innere Haustür warten muss, kann ich das Ding gleich wieder zurückschicken. :) #firstworldproblems |
Ging mir auch so, bin 2018 im mikrocontroller.net Forum auf dein Projekt aufmerksam geworden. Seit dem läuft es bei mir sehr zuverlässig :) @corgan2222 Interessanter Punkt mit der Gesichtserkennung. Wie hast du das gelöst? Komplett DIY? @oyooyo Ich habe bei mir die UpdateServices Funktion in simble angepasst (try catch Block). Seit dem sind die Vielen Dank für deine bisherigen Bemühungen und Updates 👍 |
Früher oder später will ich simble eigentlich eh ausmustern, weil noble mittlerweile von Haus aus Javascript Promises bzw. async/await unterstützt, und der Hauptgrund für die Verwendung von simble damit weggefallen ist. Aber bis es soweit ist, sollte ich den Fehler in simble beheben. Kannst Du mir etwas ausführlicher schreiben, was genau Du in welcher Zeile verändert hast? Oder alternativ direkt einen entsprechenden PR einreichen? |
@oyooyo ich kann mich nicht komplett am Schloss registrieren |
@frodo777 Dieses Problem ist bekannt, aber noch nicht gefixt. Es betrifft allerdings auch nur das Setzen des Benutzer_namens_. Der Benutzer an sich sollte an dieser Stelle bereits registriert sein: vor dieser Fehlermeldung sollte bereits die User-ID und der User-Key angezeigt worden sein. |
@oyooyo Ok ich habe mal die keyble-sendcommand Befehle Versucht und siehe da das Schloss bewegt sich (sehr schön). Mein Fehler war wohl das ich den Adapter in iobroker zum Steuern benutzt habe. Der scheint bei mir nicht zu funktionieren. Der Adapter verbindet sich und wird auch grün nur bedienen lässt sich das Schloss nicht und der Status wird auch nicht aktualisiert. Mein iobroker läuft auf einen Raspi 4 und keyble läuft auf einem Raspi 3 . Gibt es eine Möglichkeit Dir eine kleine Spende zukommen zu lassen für die viele Arbeit? Ich freue mich das die Software noch weiterentwickelt wird , hatte mein Schloss jetzt ein Jahr nicht mehr in Gebrauch wegen der Nodejs Version. Wie bekomme ich die Befehle von dem einen Raspi zum Anderen. Am besten vom iobroker. Hast Du da einen Tipp für mich |
@frodo777 Zu ioBroker kann ich leider wenig sagen, da ich es nicht verwende und lediglich mal ganz kurz installiert hatte, um mich an einem Adapter für keyble zu versuchen, weil das irgendwer angefragt hatte. Bin aber nicht weit gekommen, und habe die Arbeit daran mangels Eigeninteresse kurz darauf auch schon wieder eingestellt. Wenn die neue keyble-Version erst einmal fertig ist und stabil läuft, werde ich vielleicht selbst noch ein paar "Adapter" entwickeln, um es deutlich einfach zu machen, keyble per MQTT, Node Red, ioBroker o.Ä. zu steuern, mal schauen. Dass Du mir eine kleine Spende zukommen lassen willst, hat mich fast ein wenig gerührt. Ist aber wirklich nicht nötig, trotzdem habe ich mich über die durch das Angebot ausgedrückte Wertschätzung sehr gefreut, vielen Dank! |
Da das ursprüngliche Problem der Node 10-Kompatibilität ja offenbar behoben ist, schliesse ich diesen Issue hier jetzt mal. Kommentare zur weiteren Entwicklung etc. bitte zukünftig in #23 posten. |
Ich habe versucht keyble mit einem aktuellen debian buster unter raspberry zum laufen zubringen. Leider kann man nodejs 8 gar nicht mehr darauf installieren. Er bügelt immer gleich die 10 drauf.
Hast du vielleicht nochmal die Zeit und Lust das ganze auf nodej10 kompatibel zu bauen? Das tool ist wirklich super. War kurz davor die Alexa via Skill anzukoppeln :-/
Danke im voraus
The text was updated successfully, but these errors were encountered: