Beiträge von deviloper

    Sehe gerade das es auch mit PJSIP (pjsua) geht. Auch wenn die Bibliothek ebenfalls eingestellt wurde ... Mit https://www.pjsip.org/python/pjsua.htm#Lib create_player und dann noch mit dem Sound Device connecten. Dann macht es ggf. auch Sinn, dass in der Basisklasse zu definieren.


    Hab gerade gesehen, dass da in pjsua_lib bereits ein Player definiert ist. Also letztlich kann man's von da kopieren. (PjSIP scheint keinen eigenen Wählton zu erzeugen, DoorPi erzeugt den selbst falls dieses SIPPhone ausgewählt ist ... praktisch das was man sonst zum Abspielen einer wav machen würde).

    Eine solche Anleitung war vorher auch nicht unter dem von dir genannten Link hinterlegt. Da ging es bloß um die Installation (die ich deswegen nochmal im Forum unter Installationsprozess aufgeschrieben hab, da ich die auch vermisst hab). Wenn du konkrete Fragen stellst, bekomst du aber auch Antworten. Ansonsten hilft es evtl. die Projekte anderer Nutzer anzugucken oder in den Quellcode zu schauen. Für GPIO brauchst du das Keyboard "gpio" (from_gpio.py). Das du das nutzen willst, definierst du in der doorpi.ini bzw. der Konfigurationsdatei. ... aber darauf achten, dass die Eingänge eines Pis nicht fürchterlich robust sind (ggf. zB. also einen Optocouple davor etc.)

    Insgesamt sind es aber sehr variable Möglichkeiten, wie man was mit dem (Door)Pi macht, sodass eine generelle "Aufbauanleitung" wohl nicht existiert.


    Zitat

    kein SIP und beispielsweise nur Fritzbox mit Fritzfon, dann benötigst Du einen mjpeg_streamer

    mjpegstreamer ist eine der Möglichkeiten zusätzlich einen Video-Stream zu erzeugen. Hat aber so direkt nicht viel mit dem DoorPi zu tun. Da gibt's auch noch andere, ggf. effizientere Möglichkeiten.


    Zitat

    willst Du beides, musst Du darauf achten, dass derm jpeg_stream vor Anrufaufbau gestoppt wird, da Linphone sonst keine Video aufbaut, da das Device schon vom Streamer belegt ist.

    Stimmt. take_snapshot sollte auch nicht ohne weiteres klappen, da mjpeg streamer den video-device blockt. Habe, weil die meisten Video Stream Lösungen den blocken mal eine abgewandelte Variante von take_snapshot gepostet, die sich per OpenCV den Stream schnappt und davon ein Frame als Bild speichert. Falls es nur um ein einzelnes Bild geht.


    Zitat

    möchtest Du über SIP auch Video, kommst Du an einer Asterisk Installation nicht vorbei

    Das kommt doch auch drauf an was er als SIP-Server nutzt? Nutz selbst keine Fritzbox, sodass ich nicht weiß ob die mit VideoCalls klar kommt aber es gibt ja auch andere Anlagen :S

    motom001 : Wie sieht es denn aktuell aus. Setzt du dich in nächster Zeit nochmal dran? Momentan ist es ja nicht so einfach etwas zum neuen DoorPi beizutragen bzw. fehlt dabei evtl. auch eine etwas nähere Erleuterung was noch gemacht werden muss (damit mal die Basis steht) und wie grob die Struktur hinter dem ganzen sein soll und wo man das ganze hinpacken kann, damit es mehreren Leuten zum Test zur verfügung steht. Das System ist ja (zum Glück) bisher recht offen und dadurch auch individuell gewesen, sodass nicht jeder zwangsweise alle Hardware zum Test da hat.
    Im 1. Post in dem Thread steht ja auch was von nem linphone-Einsatz. Wenn ichs richtig gelesen habe hat linphone in der libLinphone die Schnittstelle zu Python fallen lassen.


    Der Stand von https://github.com/motom001/DoorPi/tree/DoorPi3?files=1 ist ja nicht der, den du hier in den Screenshots gezeigt hast.


    Was spricht denn eigtl für einen kompletten Neustart? Die config auf JSON umstellen, sollte ja gehen. Die Plugins stoßen ja auch nicht wirklich an die Grenzen deiner momentanen Umsetzung. Reicht es nicht auf Python 3 umzustellen?

    du kannst dir mit https://github.com/umlaeute/v4l2loopback ein virtual video device erzeugen und das streamen.


    DoorPi tätigt halt, wenn du es auslöst, einen (Video-)Anruf. Wenn du während dessen nur den Stream sehen willst, ist der weg über linphone ggf. der richtige. Willst du unabhängig deine Kamera haben, musst du es auch unabhängig streamen. Hier nehmen ja einige den mjpeg streamer. Und dann gibst du in der App auf deinem Smartphone (einer geeigneten ...) dann den SIP-Server an, wo sie sich als Telefon registriert und zusätzlich die Adresse deiner Streams, die sie dir dann anzeigt.


    Zu deinem Log: SIP Videocall

    Im Trace: Nach allem was mit Video zu tun hat oder als Fehler/Warnung gekennzeichnet ist.


    Zum Stream: kommt drauf an was du vor hast. Bin mir auch nicht sicher in wie weit die verwendete linphone4raspberry Lib das drin hat, aber falls es drüber funktioniert sollte linphone das Videosignal eigtl selbst mitsenden.

    Ansonsten kannst du auch einen rtsp Stream odg. selbst erzeugen und den unabhängig vom Linphone (z.B. falls garkeiner geklingelt hat und du entsprechend garkeinen "Anruf" hast) nutzen/anzeigen.

    M4ce1 meinte jetzt, dass es ggf. schöner wäre nur bei Bedarf den Sensor zu aktivieren. Wenn ich motom001 Struktur richtig verstehe, wäre das eher eine Aktion statt ein Keyboard?

    So wäre eine Beispielimplementierung dann als Action. Das dann aber anstelle von dem Keyboard, da ich die Events recycled habe.

    Die Parameter sind alle optional, da defaults im Skript hinterlegt sind.


    Ausgelöst wird das ganze z.B.: (timeout 30 Sekunden)

    Code: config
    1. 10 = await_fingerprint:30

    Danke fürs korrigieren. Python ist echt ne komische Sprache :O Komm eigtl von C++, da braucht es sowas nicht. Und diese 'undefinierten' Scopes.. (bzw. durchs einrücken... )


    Klingt gut wobei ich gar nicht weiß ob motom001 pull requests noch zulässt.

    M4ce1 testet das Keyboard gerade auch.


    Beim Code müsste man nochmal überlegen, ob die Zuweisung des last-key evtl nur erfolgen soll, falls es ein zutreffender Finger ist und nicht generell bei jedem Finger.

    Wo ist denn da die Verbindung zum DoorPi?

    Die von dir verwendete Bibliothek ist als "deprected" gekennzeichnet (https://github.com/adafruit/Adafruit_Python_DHT)

    Wahrscheinlich suchst du sowas? Kenne mich mit Nextion noch weniger als mit Python aus aber zum einen machte deine Schleife an der Stelle nicht so viel Sinn, es sei denn du willst immer die selben Werte da stehen haben. Dann solltest du deinen formatierten String auch zum Nextion schicken und nicht nur ausgeben (print) ...

    Ich hab es im Beitrag hinzugefügt.


    Das Keyboard verhält sich wie das für PN532/RM6300. Es läuft in einer Endlosschleife, bis DoorPi beendet wurde. Darin wird immer wieder auf einen neuen Finger gewartet.

    Wenn eine Finger gefunden wurde, wird nach diesem unter den Registrierten gesucht. Ist er dort vorhanden und eindeutig als dieser identifiziert (Variable security) wird zunächst OnFoundKnown ausgelöst und dann, falls registriert, für diesen Finger hinterlegte Events (OnKeyDown/Up/Press ) ausgelöst. Die Pin-Nummer ist hierbei jetzt die Position des Fingerabdrucks in der (auf dem Sensor) hinterlegten Datenbank. (Die in der pyFingerprint enthaltene https://github.com/bastianrasc…xamples/example_search.py kann dir die ausgeben)


    Und dann in der Config

    Ok kannst du evtl. mal den Inhalt aus dem Log 1 zu 1 kopieren?


    Ich hab ja schon keine Ahnung von Python aber du scheinbar auch nicht :D

    Füge doch mal in der Zeile 41 in der mailto.py folgendes ein:

    Python: mailto.py
    1. server.set_debuglevel(1)

    Dann solltest du schonmal genauere Fehlermeldungen bekommen.


    Ansonsten einfach mal ne Python-Konsole öffnen und darin mal folgendes ausführen:

    Dabei dürfte dir dann auch eine Fehlermeldung entgegen kommen. Wie gesagt entspricht der Aufruf weiterhin dem in der Dokumentation...


    Dass DoorPi auf Python 2.7 stehen geblieben ist wurde ja mehrfach schon thematisiert. Du kannst dich ja an motom001 wenden, falls du die Portierung hinbekommst bzw soll die Grundstruktur ja geändert werden.

    Habs euch mal grob mit der pyFingerprint-Library zusammengesetzt. Ich habe aber selbst weder einen der unterstützten Sensoren noch hab ich es getestet. Kann also sein, dass da Syntax und/oder andere Fehler drin sind.


    1. pyFingerprint - Library installieren: https://github.com/bastianrasc…fingerprint/#installation

    2. Fingerabdrücke registieren: https://github.com/bastianrasc…t/#how-to-use-the-library 

    3. /usr/local/lib/python2.7/dist-packages/doorpi/keyboard/from_fingerprint.py anlegen und folgenden Inhalt einfügen:


    Wäre eigtl sinnvoller ein eigenes Topic dafür aufzumachen, weil ich denke, dass das mehr ein Problem deiner Parameter/Config ist. Ich hab es nicht ausprobiert aber mal in die entsprechende Action geschaut - https://github.com/motom001/Do…n/SingleActions/mailto.py. Wie sieht deine Config aus? Hast du den smtp-Server genauer definiert?


    https://docs.python.org/2/library/smtplib.html ist die Doc der verwendeten Bibliothek. Da siehst du, dass der Aufruf in DoorPi durchaus noch richtig ist:

    Python
    1. SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

    und der Fehler eher bei deinem SMTP-Server oder deiner entsprechenden DoorPi-Config liegt. Aus letzterer werden folgende Werte ausgelesen (falls ein dritte Wert in der Funktion steht ist dass der Standardwert):

    Python: mailto.py
    1. smtp_host = doorpi.DoorPi().config.get('SMTP', 'server', 'smtp.gmail.com')
    2. smtp_port = doorpi.DoorPi().config.get_int('SMTP', 'port', 465)
    3. smtp_user = doorpi.DoorPi().config.get('SMTP', 'username')
    4. smtp_password = doorpi.DoorPi().config.get('SMTP', 'password')
    5. smtp_from = doorpi.DoorPi().config.get('SMTP', 'from')
    6. smtp_use_tls = doorpi.DoorPi().config.get_boolean('SMTP', 'use_tls', False)
    7. smtp_use_ssl = doorpi.DoorPi().config.get_boolean('SMTP', 'use_ssl', True)
    8. smtp_need_login = doorpi.DoorPi().config.get_boolean('SMTP', 'need_login', True)

    In deiner DoorPi-Config sollte der SMTP-Server entsprechend definiert sein. (Hab es mal am Beispiel T-Online ausgefüllt, weil deine Mail daher stammte ...):

    Code
    1. [SMTP]
    2. server = securesmtp.t-online.de
    3. port = 995
    4. username = hansimaus
    5. password = Hansi12345
    6. from = hansi@t-online.de
    7. # Die zwei folgenden kannst du weglassen (Std.-Wert)
    8. use_ssl = True
    9. need_login = True

    Hallo zusammen,


    Leider bekomme ich mit dem v4l2 Treiber immer den Fehler ENOSPC. Kabel ist korrekt montiert. OV5647 ist der Sensor. Es greift kein Prozess auf die Camera zu (zumindest wird mir keiner angezeigt). vcgencmd get_camera gibt mir 1 und 1 zurück. Der GPU mem ist mittlerweile auf 512, nachdem 256 auch nicht funktionierte. Firmware und Software sind aktuell. Bin etwas ratlos. Habt ihr Ideen was ich evtl. noch verändern könnte?