DoorPi-Erweiterungen

  • Guten Morgen deviloper,


    vielen Dank für die Erklärung. Damit kann ich als unwissender Anwender was anfangen ;(


    OK Code habe ich in die from_url.py eingefügt. Leider immer noch kein Erfolg.


    dann habe ich folgendes gemacht:

    - Stop DoorPi

    - Start DoorPi wie du geschrieben hast (Im Putty hat sich viel bewegt)

    - einmal Klingeln lassen, Gespräch angenommen und per DTMF eine Seite aufgerufen

    - Einmal die URL angeklickt im Browser


    Da der Logfile Ordner immer noch leer war habe ich mal alles aus Putty rauskopiert. Nach dem Neustart war auch wieder eine Log da, diese habe ich auch mit angehangen.


    Wie immer vielen Dank für deine Hilfe

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

  • Ja die Anzeige von Seite 8 hat funktioniert. Beim "Klingeln" über das Nextion wir die Zahlenfolge geschickt und es klingelt, Telegram wird gesendet und meine Loxone springt auf. Für mich funktioniert eigentlich fast alles jetzt.


    Ich habe mal einen Screenshot eingefügt von der from_url.py. Ich dachte ich habe es richtig eingerückt!

    Der Notepad ++ funktioniert nicht 100% 'tig. Am Besten immer die Datei auf dem RPI mit nano abändern. "sudo nano /usr/.....".

  • Danke an euch.


    Ich habe jetzt die Datei nochmal mit nano bearbeitet. Auch habe ich die Zeile gelöscht.


    Leider funktioniert das Aufrufen einer Seite über die URL noch nicht. Habt Ihr noch weitere Ideen?


    Anbei nochmal das Logfile

  • 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?

  • Sorry ich war Familiär verhindert die letzten Tage.


    Also wenn meine Frau nicht weiterprogrammiert hat, wovon ich ausgehe :D:D) dann weis ich nicht warum aber der URL Aufruf geht. :thumbup::thumbup:


    Die Seite wird aufgerufen. War ich nur zu ungeduldig und DoorPi war nicht komplett geladen?

    Ich packe den trace noch mal mit rein.


    So jetzt möchte ich wirklich nicht Zuviel verlangen. Es geht wohl mehr um das Verständnis! Kann ich unterschiedliche Seiten aufrufen? Die URL scheint ja immer die selbe zu sein und die Seite wird über den Eintrag in der Doorpi.ini definiert, so verstehe ich es.


    Vielen Dank an euch für eure Hilfe. Das hat mir sehr geholfen.


    Update: habe den DoorPi neu gestartet um zu sehen ob es noch geht und leider nicht mehr. Ich warte jetzt mal ein Stück um zu sehen ob es nwieder funktioniert.


    Mit der Logdatei bin ich mir immer nicht sicher ob ich das richtige schicke. Ich habe es wie im Post 20 gemacht.

  • 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:

    Shell-Script
    1. sudo systemctl stop doorpi.service
    2. sudo doorpi_cli --debug --configfile /usr/local/etc/DoorPi/conf/doorpi.ini |& tee /tmp/output.log


    Ansonsten, was wir sehen können:

    Code
    1. 2020-09-11 15:03:48,020 [ERROR] [doorpi.status.webserver] group guests doesn't exist but is assigned to ReadPermission
    2. 2020-09-11 15:03:48,021 [ERROR] [doorpi.status.webserver] module installer doesn't exist but is assigned to group administrators in WritePermission
    3. 2020-09-11 15:03:48,022 [ERROR] [doorpi.status.webserver] module dashboard doesn't exist but is assigned to group administrators in WritePermission
    4. 2020-09-11 15:03:48,023 [ERROR] [doorpi.status.webserver] module config doesn't exist but is assigned to group administrators in WritePermission
    5. 2020-09-11 15:03:48,024 [ERROR] [doorpi.status.webserver] module dashboard doesn't exist but is assigned to group administrators in ReadPermission
    6. 2020-09-11 15:03:48,025 [ERROR] [doorpi.status.webserver] module status doesn't exist but is assigned to group administrators in ReadPermission
    7. 2020-09-11 15:03:48,026 [ERROR] [doorpi.status.webserver] module config doesn't exist but is assigned to group administrators in ReadPermission
    8. 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
    1. 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
    1. [web_InputPins]
    2. pinname = Action
    3. [EVENT_OnKeyPressed_web.pinname]
    4. 10 = Action 1
    5. 20 = Action 2
    6. 30 = Action 3

    Aufruf:

    Code
    1. http://xxx.xxx.xxx.xxx/control/trigger_event?event_name=OnKeyPressed_web.pinname&event_source=doorpi.keyboard.from_url
  • Guten Morgen,


    ok ich verstehe das es frustrierende ist wenn jemand die grundlegenden Sachen nicht einhält.


    Ich habe jetzt den Trace gestartet und angehängt und während des trace folgendes ausgeführt:

    - Display aufgeweckt

    - Klingel betätigt

    - Sprachverbindung aufgebaut

    - gesprochen

    - per DTMF Seite 7 und 8 aufgerufen

    - aufgelegt

    - per URL aufgerufen http://192.168.8.27/control/tr…=doorpi.keyboard.from_url

    - Seite schaltet nicht um


    Die Errors im "normalen" Logfile sehe ich aber habe nicht das Wissen dieses zu beheben. Ich weis nicht was mit Modulen gemeint ist. Auch die Funktion mit dem Seitenaufruf per URL sehe ich mittlerweile als Luxusproblem :|.

    Der DoorPi läuft mit den Funktionen die benötigt werden dank der Hilfe hier im Forum.


    Von daher bedanke ich mich hier bei euch :thumbup::thumbup: für die Hilfe und werde den DoorPi jetzt erst einmal einbauen und dann mit hoffentlich wenig Fragen zurückkommen. Das ist kein Aufgeben, jedoch muss nicht noch mehr Zeit dafür investiert werden.


    Schönes Wochenende

  • 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.

  • Hi, danke nochmals für diene Bemühungen. Ich denke das mit dem "tag" habe ich gefunden und gelöst.

    Das Dashboard läuft und ist erreichbar unter der IP vom DoorPi. Ich kann lesen was oben steht Bsp. "Event WebServerAuthUnknownUser from doorpi.status.webserver" aber ich verstehe es nicht.


    Ich kann mich nicht erinnern das ich soviel mit Usern und Passwörter eingeben musste bei der Installation. Eventuell setze ich ihn neu auf || aber das wird wohl wieder ein Stück dauern bis er dann wieder so läuft wie jetzt!


    Ja es gibt online Zugang zum DoorPi nachdem er eingebaut ist.


    Nur zur Vollständigkeit nochmal das neueste Trace.