Wal hat doch ein from_nextion Keyboard für DoorPi angelegt. Damit kannst du bei Events das Bild tauschen. In DoorPi gibt's entsprechend für den Verbindungsaufbau und beim Beenden des Gesprächs ein Event. Mit Timer dazu - wie raptoxx vorgeschlagen hat - damit du auch den Fall abdeckst, dass keiner abnimmt.
Beiträge von deviloper
-
-
Alles gut. Mit dem Log kann man schon mehr anfangen. Anrufe / DTMF klappt ja soweit.
ZitatFile "/usr/local/lib/python2.7/dist-packages/doorpi/keyboard/from_nextion.py", line 108, in status_input
logger.debug("status_input for tag %s", tag)
NameError: global name 'tag' is not defined
heißt dass in der from_nextion.py die Funktion status_input auch den Tippfehler mit tag statt input_pin hat (Zeile 107). Das solltest du noch ändern.
Zitat2020-09-12 10:53:27,771 [TRACE] [doorpi.action.handler] register Event WebServerCreateNewSession from doorpi.status.webserver_lib.session_handler
2020-09-12 10:53:27,772 [DEBUG] [doorpi.action.handler] event_source doorpi.status.webserver_lib.session_handler was added
2020-09-12 10:53:27,773 [TRACE] [doorpi.action.handler] added event_name WebServerCreateNewSession and registered source doorpi.status.webserver_lib.session_handler
2020-09-12 10:53:27,774 [TRACE] [doorpi.action.handler] register Event WebServerAuthUnknownUser from doorpi.status.webserver_lib.session_handler
2020-09-12 10:53:27,775 [TRACE] [doorpi.action.handler] added event_name WebServerAuthUnknownUser and registered source doorpi.status.webserver_lib.session_handler
2020-09-12 10:53:27,777 [TRACE] [doorpi.action.handler] register Event WebServerAuthWrongPassword from doorpi.status.webserver_lib.session_handler
2020-09-12 10:53:27,779 [TRACE] [doorpi.action.handler] added event_name WebServerAuthWrongPassword and registered source doorpi.status.webserver_lib.session_handler
2020-09-12 10:53:27,806 [DEBUG] [doorpi.status.webserver_lib.request_handler_static_functions] [192.168.8.14] ('GET /status?output=json.parsed HTTP/1.1', '200', '-')
Du bist auf den Webservice gerade angewiesen. Deine Zugangsdaten stimmen aber scheinbar nicht? (wahrscheinlich wegen deiner falsch gesetzten Permissions oder hast du was falsches eingegeben?) Normal sollte DoorPi dich entsprechend abweisen
Ansonsten: Wenn du es einbauen willst - hat er da online-Zugang? Du greifst momentan auf den Online-Fallback zurück, da du DoorPiWeb nicht (richtig) auf deinem Pi installiert hast.
-
Wie gesagt, dass ist nicht Trace ... entsprechend sehen wir so nichts. Entweder du versuchst selbst zu verstehen was er ausgibt, wenn du doorpi_cli aufrufst (falls du da was nicht verstehst kannste das ja explizit fragen) oder du leitest die Ausgabe in eine Datei um (s. z.B. https://askubuntu.com/question…terminal-output-to-a-file) und lädst diese (hier im Beispiel /tmp/output.log) hier hoch:
Bashsudo systemctl stop doorpi.service sudo doorpi_cli --debug --configfile /usr/local/etc/DoorPi/conf/doorpi.ini |& tee /tmp/output.log
Ansonsten, was wir sehen können:
Code2020-09-11 15:03:48,020 [ERROR] [doorpi.status.webserver] group guests doesn't exist but is assigned to ReadPermission 2020-09-11 15:03:48,021 [ERROR] [doorpi.status.webserver] module installer doesn't exist but is assigned to group administrators in WritePermission 2020-09-11 15:03:48,022 [ERROR] [doorpi.status.webserver] module dashboard doesn't exist but is assigned to group administrators in WritePermission 2020-09-11 15:03:48,023 [ERROR] [doorpi.status.webserver] module config doesn't exist but is assigned to group administrators in WritePermission 2020-09-11 15:03:48,024 [ERROR] [doorpi.status.webserver] module dashboard doesn't exist but is assigned to group administrators in ReadPermission 2020-09-11 15:03:48,025 [ERROR] [doorpi.status.webserver] module status doesn't exist but is assigned to group administrators in ReadPermission 2020-09-11 15:03:48,026 [ERROR] [doorpi.status.webserver] module config doesn't exist but is assigned to group administrators in ReadPermission 2020-09-11 15:03:48,027 [ERROR] [doorpi.status.webserver] module dashboard doesn't exist but is assigned to group guests in ReadPermission
Sagt weiterhin, dass du das mit den Zugriffsrechten nicht korrekt eingestellt hast.
Zu deiner anderen Frage:
Codehttp://xxx.xxx.xxx.xxx/control/trigger_event?event_name=OnKeyPressed_web.keypad&event_source=doorpi.keyboard.from_url
'OnKeyPressed' - Event ist das Event des Keyboards web das dem Input-Pin keypad zugeordnet ist. Bei event_source ist zusätzlich noch die Quelle (hier das from_url-Keyboard) angegeben. Da Wal hier die Funktion '_register_EVENTS_for_pin' im from_url-Keyboard verwendet, sind für jeden Input-Pin dieses Keyboards 'OnKeyPressed', 'OnKeyUp' und 'OnKeyDown' angelegt.
Also kannst du zum einen ein weiteres Keyboard mit einem anderen Namen anlegen (anstelle von web) - was dir aber nichts bringt. Du kannst auf eines der drei Events für jeden Pin reagieren - bringt dir aber eigtl nicht viel da zu variieren. Bleibt der letzte Parameter den du ändern kannst: keypad bzw. der Name des Input-Pins.
Angenommen dein Keyboard heißt weiterhin web, hast du zB folgende Möglichkeiten:
Code[web_InputPins] pinname = Action [EVENT_OnKeyPressed_web.pinname] 10 = Action 1 20 = Action 2 30 = Action 3
Aufruf:
-
Das ist wieder das Log vom DoorPi Service, der nicht im Debug / Trace-Modus startet. Das sieht - abgesehen von der anfangs schonmal angesprochenen fehlerhaften Nutzeranlage - erstmal fehlerfrei aus. Wir brauchen aber die Ausgaben im Trace oder Debug-Modus. Die sind wesentlich ausführlicher. URL hast du soweit kontrolliert? IP stimmt? Das DoorPi Dashboard ist darüber erreichbar?
-
-
Also 624 ist jetzt der DoorPi und 620 deine Doorfon-App? Verbindung ist da heißt du kannst von 620 die 624 anrufen und Sprache etc klappt? DoorPi zeigt im Log an, dass er bei 620 jemanden erreicht?
-
Okay hat denn der Wechsel auf Seite 8 bei DTMF #8# geklappt? Das Event wurde zumindest ausgelöst und "page 8" an Nextion weitergeleitet. Empfangen an DoorPi vom Nextion-Display scheint ja auch zu funktionieren (hast irgendwas an Zahlenfolge geschickt).
Du kannst dir die Ausgabe von doorpi_cli auch in eine Datei umleiten... (Z.B. 2> /tmp/doorpi.log) DoorPi ist standardmäßig so eingerichtet dass der Service beim Start mit startet. Deshalb nach dem Start ein neues Log In die Log-Datei schreibt er als Service. Wenn du über die Konsole startest siehst du dort direkt die Log-Ausgabe...
Beim anfügen der status_input musst du beachten, dass Python auf die Anzahl an Leerzeichen und Tabulatoren achtet. Die Funktion muss gleichweit eingerückt sein wie die Funktion davor. Momentan scheinst du sie zuweit links ausgerichtet zu haben
-
Also in der from_url.py fehlt die status_input (wenn du die von Wal genommen hast... darüber meckert DoorPi):
Python: from_url.pydef status_input(self, input_pin): logger.debug("status_input for tag %s", input_pin) return (input_pin == self.last_key)
Das noch am Ende einfügen (hinter 38), dann sind nochmal ein paar Fehler weg.
Also mit:
stoppst du den DoorPi-Service. Dann startest du DoorPi in der Konsole (dabei musst du deine Config-Datei mit übergeben. Hier jetzt mit dem Standardverzeichnis) im debug-Modus.
Die Log-Datei löschen? Einfach die Datei oder den Inhalt löschen
-
Wie rufst du DoorPi denn auf? Service beendet und dann im --debug gestartet? Damit wir auch tatsächlich die relevanten Logenträge sehen können. Und lösch mal die Log Datei, und teste es dann neu. So hast du noch die ganzen vorherigen Tests drin
-
Jetzt meckert er noch über Ouput Pin "page 8". Das gibt's nicht bei dir (nur 0-7).
-
Ein von dir verwendetes Keyboard scheint keine Funktion status_input zu implementieren. Sollte es aber. Zu deiner Config mal ein paar Sachen:
Code[DTMF] ### Das soll ueber einem Tastendruck am Telefon eine Seite vom Nextion öffnen "#0#" = out:Oeffner,0,1,5 ### nicht getestet nur uebernommen "#3#" = out:page 3,1 ### Raute-3 öffnet Seite 3 "#5#" = out:page 5,1 ### Raute-5 öffnet Seite 5 "#7#" = out:page 7,1 ### Raute-7 öffnet Seite 7 "#8#" = out:page 8,1 ### Raute-8 öffnet Seite 8 "#404#" = os_execute:sudo shutdown "#500#" = os_execute:sudo reboot
Kommentare in einer Aktion mag DoorPi nicht. (s. Fehlermeldungen im Log)
Code[DTMF] ### Das soll ueber einem Tastendruck am Telefon eine Seite vom Nextion öffnen "#0#" = out:Oeffner,0,1,5 "#3#" = out:page 3,1 "#5#" = out:page 5,1 "#7#" = out:page 7,1 "#8#" = out:page 8,1 "#404#" = os_execute:sudo shutdown "#500#" = os_execute:sudo reboot
Und dann bei den Input-Pins:
Code[onboardpins_InputPins] ###Taster 1 öffnet seite 1 ; Taster 2 öffnet seite 2 ; Pin 6 weckt Bildschirm auf und schaltet IR-Relais an ; Input 7 ist der Alarm Schalter (Gehäuse geöffnet) 1 = out:page 0,1 2 = out:page 1,1 6 = IR-Relais 7 = Alarm
Was möchtest du damit erreichen? Das bennenen eines InputPins ist nicht möglich (und schon garnicht bei In-&Output den selben Namen) aber auch eigtl nicht nötig. (stattdessen sleep:0, wenn du nichts machen willst)
Code[onboardpins_InputPins] ### Taster 1 öffnet seite 1 ; Taster 2 öffnet seite 2 ; Pin 6 weckt Bildschirm auf und schaltet IR-Relais an ; Input 7 ist der Alarm Schalter (Gehäuse geöffnet) 1 = out:page 0,1 2 = out:page 1,1 6 = out:IR-Relais,1,0,60 7 = sleep:0
Deine Read&Write-Permissions sind auch nicht korrekt.
-
Sollte. Zeig mal dein Log
-
Nja durch die OutputPins steuerst du die Relais. Die blinking led wird wahrscheinlich nicht gehen, da pifacedigital die LEDs nicht einfach als einen Ouput pin ansieht sondern dafür eine extra Funktion hat.
-
zu 1) du könntest das OnSipPhoneMakeCall Event nutzen.
zu 2) kenn das Loxone System nicht im Detail. Was bekommst du dann auf Knopfdruck für ein Signal?
-
Hm also ein Fehler im Log tritt soweit nicht auf aber du hast in der doorpi-Konfig ja auch nichts von dem Nextion-Keyboard von Wal stehen? (U.a. nicht als Keyboard angelegt) Kein Input / Output und entsprechend auch keine Reaktion.
-
1) Die PiFace Eingänge werden auf GND gezogen um auszulösen. GND müsste neben den Eingängen sein.
2) Du musst das Keyboard piface anlegen.
und dann die OuputPins mit nem Namen versehen.
jetzt kannst du bei einem Event z.B. mit der out-Aktion diesen Ausgang schalten.
4) Joa und sonst meckert er, falls ihm etwas fehlt.
-
Hey, wie heißt er denn? Hatte gerade für einen anderen User eine entsprechende Erweiterung erstellt. Guck mal im Hardware Teil des Forums bei dem RFID Thema.
-
https://de.elv.com/elv-bewegungsmeldermodul-pir-13-057723 ? Also wenn du Licht hast, kannst du dir den Aufwand von Lichtmessung mittels LDR und IR Filter Schaltung sparen und auf eine Kamera mit IR Filter setzen. Dann nimm doch die V2 von der RPi Kamera. Die neuste Version ist recht teuer und würde dir hauptsächlich Standbild etwas bringen.
-
Ad 2: [EVENT_OnKeyPressed_rfid.0010327614] müsste [EVENT_OnKeyPressed_rfidreader.0010327614] heißen.
Ad 1: OnKeyUp solltest du noch einem Keyboard zuordnen. Soll es onboardpins sein?
-
Kommt auf dein Setting an. 24/7 beleuchtet? Also ggf. mit IR-CUT-Filter. Gute Nachtsensibilität (Sony IMX Sensor). Willst einen Livestream? Da bekommt der Pi eh nicht mehr als FullHD hin etc.