Beiträge von deviloper

    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.

    Alles gut. Mit dem Log kann man schon mehr anfangen. Anrufe / DTMF klappt ja soweit.

    Zitat

    File "/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.

    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:

    Bash
    sudo 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:

    Code
    2020-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:

    Code
    http://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:

    Code
    http://xxx.xxx.xxx.xxx/control/trigger_event?event_name=OnKeyPressed_web.pinname&event_source=doorpi.keyboard.from_url

    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.py
        def 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:

    Code
    sudo systemctl stop doorpi.service

    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.

    Code
    sudo doorpi_cli --debug --configfile /usr/local/etc/DoorPi/conf/doorpi.ini

    Die Log-Datei löschen? Einfach die Datei oder den Inhalt löschen :D

    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 ;)

    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.

    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.

    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.

    Code
    [keyboards]
    onboardpins = piface

    und dann die OuputPins mit nem Namen versehen.

    Code
    [onboardpins_OutputPins]
    0 = Tueroeffner
    1 = Klingel

    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.

    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.