Beiträge von deviloper

    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?

    Benutzername: door

    Passwort: pi

    Ansonsten für die Soundgeschichte setzen hier einige auf diesen Polycom Communicator (CS100/CX100). Der hat eigtl eine Echo Cancellation an Board und Lautsprecher/Mikrophonkapseln (kannst natürlich austauschen).

    Da ich auf v4l2rtspserver als rtsp-Server setze, ist währenddessen der Zugriff auf die picamera gesperrt. Abhilfe schafft hier z.B. das man auf den Stream zugreift. Dazu muss allerdings die take_snapshot-Funktion etwas erweitert werden (es sei denn ich hab da was übersehen...). Der Stream kann aber auch von einer externen IP-Kamera odg. sein.

    Zu take_snapshot.py hinzufügen und get anpassen:

    Danach ist die Funktion allerdings anders aufzurufen. (z.B.: take_snapshot:stream,rtsp://url:port/unicast ) Ihr braucht dafür OpenCV, was einem auch noch andere Funktionen (Gesichtserkennung, etc.) ermöglicht.

    Vorkompilliert für Python2.7 sollte sich OpenCV mit

    Shell-Script
    1. sudo apt-get install python-opencv

    installieren lassen.


    Sollte so funktionieren (hab's noch nicht ausführlich getestet) und hilft ja evtl. jemandem.

    Ich durfte gerade DoorPi komplett neu aufsetzen, drum war ich auf der Suche nach dem Installationsartikel. Der war leider nicht mehr verfügbar. Allerdings ist die momentane setup.py aus dem github Rep auch nicht mehr funktionstüchtig. Von d.h. hier mal ein paar Notizen dazu:


    Installation von DoorPi

    Zunächst besorgt euch das aktuelle Image von Raspian Buster Lite (https://www.raspberrypi.org/downloads/raspbian/) und packt es mit z.B. Etcher auf eure SD-Karte. Hier dann noch eine Datei "ssh" (ohne Endung) anlegen, falls ihr die Konfiguration im "Headless"-Betrieb vornehmen wollt. Mit Putty (o. anderem SSH-Client) einloggen und mit raspi-config die wichtigsten Einstellungen vornehmen. Dann kommt die eigtl. DoorPi-Installation.


    Euer System auf den aktuellen Stand bringen:

    Code
    1. sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

    Dann brauchen wir git zum clonen des Reps (hier Master branch)

    Code
    1. sudo apt-get install git
    2. git clone https://github.com/motom001/DoorPi.git -b master /tmp/DoorPi

    Für die Installation brauchen wir noch pip. Die Installation innerhalb von setup.py scheitert allerdings. Also holen wir uns eine aktuelle Version von get-pip.py und installieren es damit.

    Code
    1. curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    2. python get-pip.py

    In das DoorPi Verzeichnis wechseln:

    Code
    1. cd /tmp/DoorPi

    Jetzt müssen wir die setup.py modifizieren (Zeile 52) (entweder über SCP oder per nano/vi/etc.):

    Code
    1. from pip.req import parse_requirements

    ersetzen durch:

    Code
    1. try: # for pip >= 10
    2. from pip._internal.req import parse_requirements
    3. except ImportError: # for pip <= 9.0.3
    4. from pip.req import parse_requirements

    Damit sollte jetzt der Aufruf von setup.py funktionieren.

    Code
    1. sudo python setup.py install

    Jetzt sollte der Start von doorpi eigtl. bereits ebenfalls funktionieren:

    Code
    1. sudo doorpi_cli --trace

    Raus kommt ihr da mit [Strg]+[C]. Leider wird das python-daemon - Modul bei der Installation auch nicht mehr korrekt installiert, sodass ein Start als Service noch nicht möglich ist. Das korrigieren wir schnell:

    Code
    1. sudo pip install python-daemon


    Es fehlt noch Linphone damit auch das telefonieren klappt. PIP haben wir ja schon installiert, also:

    Code
    1. sudo pip install linphone4raspberry


    Jetzt bietet es sich noch - je nach Lokalisation des Projektes - an das Webinterface offline verfügbar zu machen:

    Code
    1. git clone https://github.com/motom001/DoorPiWeb.git /usr/local/etc/DoorPiWeb


    Abschließend starten wir DoorPi als Service und stellen sicher, dass das auch beim Systemstart passiert:

    Code
    1. sudo systemctl enable doorpi.service
    2. sudo systemctl start doorpi.service

    Das sollte jetzt eigtl. funktionieren. Ansonsten mal schauen, wass "journalctl -xe" euch noch zeigt.



    RTSP Server

    Das ist jetzt die Stelle, wo die meisten zu unterschiedlichen Paketen greifen. u.A. gibt es neben v4l2rtspserver (https://github.com/mpromonet/v4l2rtspserver.git) noch MotionEye, VLC, RPI-Webcam-Interface, gstreamer, ffmpeg und mjpeg-streamer als Möglichkeiten einen Video-Stream von der Kamera zu bekommen (falls ihr überhaupt das Raspberry Camera Modul nutzt). Unterschiede bestehen im Funktionsumfang, der Kompression des Streams und vor allem hinsichtlich der Performance. Generell ist der PI aber mit einem h264-Hardware-Encoder ausgestattet.


    Los geht's: Kamera-Treiber laden

    Code
    1. sudo modprobe -v bcm2835-v4l2

    v4l2rtspserver muss leider einmal selbst gebuildet werden, also brauchen wir cmake:

    Code
    1. sudo apt-get install cmake

    Weiter geht's mit dem Clonen des Reps und dem anschließenden build. Abschließend wird es noch installiert.

    Code
    1. git clone https://github.com/mpromonet/v4l2rtspserver.git /tmp/v4l2rtspserver
    2. cd /tmp/v4l2rtspserver
    3. cmake .
    4. make
    5. sudo make install

    v4l2rtspserver sollte sich selbst als Service registrieren ("sudo service --status-all" listet euch zur Kontrolle sowohl DoorPi als auch v4l2rtspserver-Services), muss allerdings noch aktiviert werden:

    Code
    1. sudo systemctl enable v4l2rtspserver

    Ansonsten kann man auch hierbei noch die Parameter verändern in "lib/systemd/system/v4l2rtspserver.service" unter ExecStart steht mit welchen Parametern der Server gestartet wird. Die PiCamera unterstützt folgende Auflösungen: https://picamera.readthedocs.io/en/release-1.12/fov.html, sodas z.B. folgendes gehen würde:

    Code
    1. ExecStart=/usr/local/bin/v4l2rtspserver -H 1944-W 2592 -F 15 /dev/video0

    Der Stream ist dann unter folgender Adresse erreichbar:

    Code
    1. rtsp://{IPAddressOfYourPI}:8554/unicast





    Evtl. formulier ich den Beitrag nochmal um, falls mir unterwegs noch mehr Stolpersteine begegnen ...

    okay das Problem mit dem IR Filter würde ich aber in den Griff bekommen. Zb https://arduinoelectronics.wordpress.com/tag/mosfet/ oder http://www.evilmadscientist.co…d-circuit/comment-page-1/ bieten dazu einen netten Einstieg. Per Mosfet könnte ich dann auch eine Beleuchtung dazu schalten - und halt den Filter davor. Per Poti ist die Sensibilität einstellbar.


    Bleibt aber die Grundfrage ob es sinnvoll ist, bereits im Tor einen Raspberry Pi zu nutzen und die Signale zu digitalisieren oder ob eine modifizierte (bzw. optisch integrierte) IP Camera und getrennte Audioleitungen (analog) bis zur Tür/Wohnung sinnvoller sind. Sowie ob an den Turstellen überhaupt noch Raspberrys notwendig sind, wenn am Tor schon einer ist (ggf. Verbindung zum Haustelefon, etc. oder ist das anders möglich?)


    Und was lasse ich auf welchem PI laufen? An der Tür DoorPi und am Tor motioneyeos zb? Dann hätte ich einen rtps stream zur Verfügung aber wie bekomme ich den Sound von pi zu pi?

    okay sorry also zum IR Cut -> die Pi NoIR Camera hat ja keinen IR Filter und die brauche ich wenn es ein Pi wird, um auch nachts mit entsprechenden Strahlern etwas zu sehen. Also brauche ich einen Helligkeitssensor der mir den Filter bei Tag davor legt.


    Hatte das mit der Toranlage etwas vereinfacht erklärt. Die Anlage besteht aus zwei Pfeilern, einer davon hohl und an nem ist auch eine UP Dose eingebracht, wo die Klingelplatte drüber befestigt ist. Das Ethernet - Signal erzeuge ich jetzt im holen Turm aus dem Coax Kabel, da von dort aus ein CAT6 Kabel in einem Unterirdischen Rohr zum zweiten Pfeiler geht, wo dann die zweite Kamera befestigt werden soll.
    Heißt im holen Turm habe ich auch die 230V für den (umgebauten) PowerLAN Adapter und wollte, zumindest die am zweiten Pfeiler befindliche Kamera per POE von dort versorgen. Die Kamera hinter der Klingelplatte könnte ich aber theoretisch auch direkt mit Strom versorgen (ohne PoE).


    Jetzt verständlicher? :)