OperationalError: database is locked deutet darauf hin, das du versuchst doorpi ein zweites mal zu starten.
Upps, der Chef war schneller.
Beiträge von Wal
-
-
Stecke den Wandler in den RPI und schaue unter /dev, ob du ein Device ttyUSB0 hast.
Hier vor und nach dem einstecken :Codewalter@raspberrypi:~ $ ls /dev/ttyU* ls: Zugriff auf /dev/ttyU* nicht möglich: Datei oder Verzeichnis nicht gefunden walter@raspberrypi:~ $ ls /dev/ttyU* /dev/ttyUSB0 walter@raspberrypi:~ $
Die AbstractBaseClass.py habe ich dir in der Antwort 44 als Download zur Verfügung gestellt.Edit:Dein Wandler habe ich hier auch rumliegen, er wird als ttyUSB0 erkannt.
EditEdit: try except in die AbstractBaseClass.py eingefügt.
Python
Alles anzeigendef _fire_EVENT(self, event_name, pin, name): try: if self.keyboard_name == '': doorpi.DoorPi().keyboard.last_key = self.last_key = pin else: doorpi.DoorPi().keyboard.last_key = self.last_key = self.keyboard_name+'.'+str(pin) doorpi.DoorPi().event_handler(event_name, name, self.additional_info) doorpi.DoorPi().event_handler(event_name+'_'+str(pin), name, self.additional_info) doorpi.DoorPi().event_handler(event_name+'_'+self.keyboard_name+'.'+str(pin), name, self.additional_info) except: print "Error"
-
Das ist bei mir erst seit Firmware 6.50 so.
-
Falls du eine Fritzbox hast, kann es daran liegen. Ich habe diesen Fehler auch, es funzt aber alles.
Wenn ich meine Fritzbox anpinge "ping fritz.box" meldet sie sich mit der IPv6 Adresse und nicht mit der IPv4.
Das hat evtl. was mit zu tun. -
-
Ich nutze wie oben geschrieben ein USB/Seriell-Wandler, der gleiche mit dem ich das Nextion programmiere.
Am Raspi ist sonst nicht's zu machen, da der Wandler als ttyUSB0 gleich erkannt wird.
Nur die Dateien einfügen und das Nextion programmieren.
Ohne Änderung der AbstractBaseClass.py, funktionieren bei mir die Eingänge vom piface nicht, die Ausgänge (blinking_led) funktionieren. -
Ja, das Keyboard hast du in den richtigen Ordner kopiert.
Die HMI-Datei mit dem Nextion-Editor laden und in das Display übertragen.
Nutzt du das piface oder den gpio vom Raspberry ?
Hast du den gleichen Fehler wie ich ?
Falls ja, nutze den Workaround AbstractBaseClass.zip von hier :
https://www.doorpi.org/forum/t…e-usb-plain-keyboard-bug/
Das Nextionkeyboard ist vom usb-plain Keyboard abgewandelt.
Wo die Log-Datei ist weiß ich auch nicht, ich nutze Putty um auf den DoorPi zuzugreifen, da lass ich mir einen Log erstellen.
Putty loggt die komplette Terminalsitzung. -
Habe aus einer Kopie vom Keyboard usb_plain und ein paar Änderungen das Keyboard nextion erstellt.
Es werden nicht alle Befehle für das Nextion funktionieren, aber Seitenaufruf und die Pineingabe gehen.
Einfach austesten.
Das Display wird über einen USB/Seriell-Wandler den man z.B. zum programmieren des Display's nutzt an den RPI angeschlossen.
Hier die Archive.zip zum testen.Auszug meiner doorpi.ini :
Code
Alles anzeigen####################### Keyboards ############################## [keyboards] nextion = nextion onboardpins = piface ####################### Nextion keyboard ####################### [nextion_InputPins] ### pin 4712 und T 47125 = out:door,1,0,5 ### pin 4712 und G 47127 = out:door,1,0,5 [nextion_OutputPins] ### Pin für Page 1 show_pad = page 1 ####################### piface keyboard ####################### [onboardpins_OutputPins] ### Relais 1 für Türöffner 1 = door [onboardpins_InputPins] ###Seite page 1 aufrufen über das piface taster 2 2 = out:page 1,1
Funktion:
Taster 2 vom PIface drücken und es erscheint am Nextion das Keypad.
Am Keypad 4712 eingeben und mit G(Garagentür) oder T(Haustür) absenden.
Durch ein druck auf das Label der Pinanzeige, wird die Eingabe gelöscht. z.Bleistift bei Fehleingabe. -
Es gibt ein UART-Keyboard, das heißt usb_plain. Ich nutze es für einen Arduino, an dem ein Nextion hängt.
Zur Zeit baue ich an meinem zweiten DoorPi, ich möchte den RPI aus der Sprechstelle haben.
Zur Zeit funktioniert das Namensschild und Pineingabe für Garage und Haustür am Schreibtisch.
Die Pineingabe wird über mein Handy mit einem NFC-Tag aktiviert, den ich an der Haustür versteckt anbringen werde.
Mit dem Tag wird eine App gestartet, die ich geschrieben habe, um eine Webadresse aufzurufen. Mit der Webadresse wird im DoorPi eine Aktion über usb_plain zum Arduino abgesendet, um die Pineingabe zu starten. Der Pin geht zurück zum DoorPi der den Türöffner betätigt. Falls Interesse besteht, kann ich mal ein Video machen. -
Das habe ich schon getestet, egal welchen Pin (0-7) ich aktiviere der Fehler kam.
-
Am Arduino liegt es auch nicht, habe eine USB/Seriell Wandler anstatt dem Arduino eingestöpselt, der Fehler bleibt bestehen.
Wäre schön , wenn das jemand bestätigen könnte.
Als Hardware braucht man einen RPI3, Piface ,(Arduino oder USB/Seriell Wandler).
Nicht das mein Piface ne Macke hat, obwohl es funzt. -
Nein, es flattert nicht's.
dieser Fehler tritt auch nur auf, wenn usb_plain geladen wird, sonst nicht.
Es sind keine weiteren Komponenten geladen und am PiFace ist nichts beschaltet.
Am RPI3 hängt nur die Spannungsversorgung und der Arduino. Nach Beenden und Neustart vom DoorPi, tritt der Fehler nicht mehr auf.
Der RPI ist in einem Gehäuse.
Habe mir einen neuen Workaround in der AbstractBaseClass.py erstellt und suche weiter.Code
Alles anzeigendef _fire_EVENT(self, event_name, pin, name): try: if self.keyboard_name == '': doorpi.DoorPi().keyboard.last_key = self.last_key = pin else: doorpi.DoorPi().keyboard.last_key = self.last_key = self.keyboard_name+'.'+str(pin) doorpi.DoorPi().event_handler(event_name, name, self.additional_info) doorpi.DoorPi().event_handler(event_name+'_'+str(pin), name, self.additional_info) doorpi.DoorPi().event_handler(event_name+'_'+self.keyboard_name+'.'+str(pin), name, self.additional_info) except: print "Error"
-
Als Workaround habe ich im Keyboard from_piface.py die Fehlerstelle deaktiviert.
Codedef event_detect(self, event): if self.status_input(event.pin_num): self._fire_OnKeyDown(event.pin_num, __name__) if self._pressed_on_key_down: # issue 134 self._fire_OnKeyPressed(event.pin_num, __name__) # else: # self._fire_OnKeyUp(event.pin_num, __name__) # if not self._pressed_on_key_down: # issue 134 # self._fire_OnKeyPressed(event.pin_num, __name__)
-
Das kann ich dir jetzt gar nicht sagen, da ich den Strahler nur einschalte, wenn er gebraucht wird.
-
Sobald ich als Keyboard usb_plain eintrage, funktionieren beim ersten Start die Eingänge des PiFace nicht.
Falls ich DoorPi beenden kann (funktioniert nicht immer) und DoorPi neu starte funzt alles.
Im Log vom ersten Start, sehe ich eine Fehlermeldung vom PiFace. -
Ist zwar nicht dieses Thema, hängt aber evtl. mit zusammen. Habe Probleme mit dem Keyboard usb_plain, nach dem ersten Start des RPI gehen die Eingänge des Piface nicht und manchmal läßt sich der doorpi_cli Task nicht beenden. Es genügt ein
in der doorpi.ini als Keyboard einzutragen, um den Fehler zu simulieren bei mir.
Beide Keyboards funktionieren ja seriell.
Ich muß mal die Log's durchkauen, ob beim ersten Log was anderes zu sehen ist, da beim zweiten Start die Eingänge funktionieren. -
Wenn ich geeignete Kabel (Cat5 oder besser) habe, warum nicht ein USB Hub in die Sprechstelle bauen und Audio/Video über USB übertragen?
Genau daran arbeite ich mit meinem Testsystem.
Usb-Hub in der Sprechstelle :
Arduino mit Nextion-Display als Namensschild und Pineingabe zum öffnen von der Haustür und Garage (funzt schon)
Pineingabe mit NFC-Tag und Handy freischalten (noch nicht aufgebaut)
Webcam (funzt schon)
Soundstick (funzt schon)
2 Klingeltaster am Arduino (funzt schon)Vorteil nur 4 Leitungen und RPI3 ist nicht an der Sprechstelle.
-
Ich denke das es auch mit der Microsoft LifeCam HD-3000 funktionieren müsste. Warum es bei dir nicht geht, weiß ich nicht.
-
Eben getestet:
RPI3 -> 3m USB passiv Kabel -> Logitech Cam o.k.
RPI3 -> 5m USB aktiver Extender -> Logitech Cam o.k.
RPI3 -> aktiver Hub -> Logitech Cam o.k.
RPI3 -> aktiver Hub -> 3m USB passiv Kabel -> Logitech Cam o.k.
RPI3 -> aktiver Hub -> 5m USB aktiver Extender -> Logitech Cam o.k.
RPI3 -> 5m USB aktiver Extender -> aktiver Hub -> Logitech Cam o.k.
RPI3 -> 5m USB aktiver Extender -> aktiver Hub -> 3m USB passiv Kabel -> Logitech Cam o.k.hat alles am Schreibtisch funktioniert.
-
Habe im Auto aktive 5m USB-Extender genutzt hat sehr gut funktioniert. Ich teste dem Extender mit der Logitech Kamera und sage hier bescheid.