Beiträge von RaspiEHU

    Hallo OdroidXU4,


    wenn der Lautsprecher auf 0 gesetzt wird (Verstärker ausgeschaltet wird), muß dieser ja auch wieder manuell eingeschaltet werden.


    Hier noch einmal die hierfür verantwortlichen Zeilen aus dem alten Forum:


    Den Verstärker schalte ich dann, nicht wie vorgesehen mit dem Event "[EVENT_OnMediaRequired] ein, sondern mit:
    [EVENT_OnCallStateConnect]
    10 = out:Lautsprecher,1
    Hierdurch wird verhindert, daß der Rufton der Fritzbox zu hören ist. Der Verstärker wird erst mit der Sprechverbindung (Connect) eingeschaltet.


    Ausschalten des Lautsprechers:
    [EVENT_OnCallStateDisconnect]
    10 = out:Lautsprecher,0


    Die beiden EVENT's habe ich in noch vor dem Event [EVENT_OnKeyPressed_prodsystem.1] eingefügt.



    Damit funktioniert das ganze bei mir.


    Gruß


    Ewald

    Hallo Thomas,


    Sorry für die späte Antwort.


    Dein letzter Vorschlag hört sich gut an. Damit sollte für die meisten Anwendungen die Problematik gelöst sein. Für meine Belange finde ich den Vorschlag praktisch und praktikabel.


    Sollten sich die Chips unterscheiden, dann ist alles gut und bouncetime ist egal.

    Damit ist bestimmt gemeint, dass die bouncetime für die erste ID beendet und für die neue ID gestartet wird.


    Gruß
    Ewald

    Hallo Nea,
    habe gerade den PI mal für 1-2 Sekunden stromlos gemacht und wieder eingesteckt. Bei mir ist DoorPi wieder hochgelaufen und funktioniert inklusive Reader.
    In Deinen Beiträgen habe mitbekommen, dass Du die Stromversorgung nicht standardmäßig für den PI einspeist. Das ist bei mir nicht so. Da ist alles Standard, heißt, dass alles an der Mini-USB des PI hängt.


    @motom001
    Das mit dem bouncetimer funktioniert und ist, wie von Dir beschrieben im Logfile zu sehen.

    @motom001
    Das Problem das Ewald beschrieben hat ist nun bei mir weg. Danke.

    Na ja, so ganz weg ist das nicht. Wenn das Tag auf dem Reader liegen bleibt, wird nach Ablauf des bouncetimers der Vorgang wiederholt. Es läuft jetzt aber wesentlich entspannter ab.
    Daher Thomas, bitte drinlassen. Mit dem Workaround kann man sehr gut leben. Eine "normale" Bedienung ist jetzt möglich. Ohne wäre der Reader, zumindenst für meinen Anwendungsfall, nicht brauchbar. Danke hierfür.


    Gruß
    Ewald

    Danke fürs Ausprobieren. Vielleicht noch ein Gedanke:
    Bei Dir dauert es anscheinend 3 Sekunden, abhängig von der Türöffnerzeit. Bei mir liegt die Zeit kürzer, da mein Relais nur für 1 Sekunde arbeitet. Das Flattern des Relais habe ich übrigens auch.


    Meines Erachtens müßte das Problem im libnfc Bereich zu lösen sein. Denn eine erneute Tagmeldung sollte erst nach einem erneuten Anlegen des Tags erfolgen. Diese Abhängigkeit kann eigentlich nur im libnfc Bereich gecheckt werden. Für die darüber liegende Applikation, hier DoorPi, ist es schwierig den wirklichen Ist Zustand zu erarbeiten.


    Gruß
    Ewald

    bringt leider keinen Erfolg. Ich denke mal, dass die Anreize selbst ja auch nicht durch das Hochsetzen einer Zeitkomponente verloren gehen.


    @Nea
    Aber vielleicht mal die direkte Frage an Dich. Wie sieht das denn bei Dir aus, wenn Du das Tag etwas länger an den Reader hältst? Was sagt Deine Logdatei?
    Ist dort tatsächlich der Vorgang:


    2016-06-06 19:38:17,184 [DEBUG] [doorpi.keyboard.from_pn532] tag: Type2Tag ID=A11F222B
    2016-06-06 19:38:17,186 [DEBUG] [doorpi.keyboard.from_pn532] ID: A11F222B
    2016-06-06 19:38:17,186 [DEBUG] [doorpi.keyboard.from_pn532] ID gefunden: A11F222B


    nur einmalig zu sehen?


    Gruß
    Ewald

    Damit ich in Zukunft auch mit NFC Tags arbeiten kann, habe ich versucht, den für mich funktionierenden Aufbau mit einem RD6300 RFID Reader, durch einen PN532 zu ersetzen.
    Folgende Schritte habe ich hierfür durchgeführt:


    Vorabeiten
    - Hochrüsten des DoorPi von Version 2.5.0.1 auf 2.5.0.4
    - Test aller bisher angewendeten Funktionen, inklusive des RDM6300 RFID Readers
    - Einbringen aller erforderlichen Module und Änderungen für den PN532 anhand der von Andreas (Nea) gemachten Beschreibung. (Sehr gut zusammengefasst und ausgearbeitet).
    - Im Unterschied zu Nea’s Beschreibung habe ich die Installation unter /libnfc und nicht unter /home/pi/libnfc gemacht. Lag daran, dass in der Beschreibung das Installationsverzeichnis mit "/libnfc" und nicht mit "./libnfc" angegeben ist. Sollte aber keine Nachteile bringen.


    Test der PN532 Installation
    python /libnfc/trunk/examples/tagtool.py --device tty:AMA0:pn532
    [nfc.clf] searching for reader on path tty:AMA0:pn532
    [nfc.clf] using PN532v1.6 at /dev/ttyAMA0
    ** waiting for a tag **
    Type2Tag ID=A11F222B


    Der Test verläuft meines Erachtens erfolgreich. Wird z.B. die Receive Leitung des Lesers getrennt erfolgt eine Fehlermeldung. Daher gehe ich davon aus, dass die Anbindung des PN532 in Ordnung ist.


    Einbringen der Konfiguration in der „doorpi.ini“
    [keyboards]
    virtuell = filesystem
    prodsystem = piface
    # rfidreader = rdm6300
    nfcreader = pn532


    [nfcreader_InputPins]
    A11F222B = sleep:0


    [nfcreader_keyboard]
    device = tty:AMA0:pn532


    [EVENT_OnKeyPressed_nfcreader.A11F222B]
    10 = take_snapshot:http://guest:jpeg@192.168.5.55:80//dms.jpg
    20 = out:Garagentor,1,0,1
    30 = mailto:<Meine.Mail@Adresse,TK-6241 %d.%m.%Y um %H:%M Uhr,A-4 Relais wurde betaetigt,True


    PN532 mit DoorPi
    Wird das RFID Tag nur kurz an den Leser gehalten, wird die vorgesehene Funktionalität, ein Relais zieht an, ausgeführt.


    Logfile:
    2016-06-06 15:57:34,114 [DEBUG][doorpi.keyboard.from_pn532] tag: Type2Tag ID=A11F222B
    bis
    2016-06-06 15:57:35,711 [TRACE][doorpi.action.handler] [5NSUPS] finished fire_event for event_name OnKeyPressed_nfcrfidreader.A11F222B


    Fehler
    Wird das RFID Tag länger (ab 1 Sekunde und länger) an den Leser gehalten, wird die vorgesehene Funktionalität mehrfach ausgeführt.


    Logfile:
    2016-06-06 15:58:07,384 [DEBUG][doorpi.keyboard.from_pn532] tag: Type2Tag ID=A11F222B
    bis
    2016-06-06 15:58:10,227 [TRACE][doorpi.action.handler] [Y627DT] finished fire_event for event_name OnKeyPressed_nfcrfidreader.A11F222B


    Frage:
    Ich habe im Forum keine Hinweise auf ein derartiges Verhalten gefunden. Daher wollte ich im ersten Ansatz diese Meldung nicht als „Issue/Bug / Problem“ eintragen. Vielleicht bin ich ja der Einzige mit dem Problem und habe irgendwo etwas bei der Installation / Konfiguration übersehen. :/


    Kennt jemand dieses Verhalten und kann mir mitteilen, wie man die Mehrfachausführung unterbinden kann?


    Gruß
    Ewald

    Ich versuche mal, etwas Klarheit in die Diskusion zu bringen.


    Das Problem tritt nicht auf, wenn DoorPi an einer Asterisk betrieben wird. Nea kann das bestätigen, er hat einen entsprechenden Test gemacht. Es ist nicht ausgeschlossen, dass auch der Betrieb auch an anderen TK System problemlos funktioniert.
    Das Problem tritt auf, wenn DoorPi an einer Fritzbox, in meinem Fall einer 7490, betrieben wird. Dann wird die in der doorpi.ini angegebene .wav nicht während der Rufphase abgespielt, sondern der Rufton der Fritzbox ist zu hören.



    Den Grund hierfür habe ich unter den von mir angegebenen Links, weiter oben, ausführlich beschrieben. Trotzdem noch einmal in Kürze:
    Wird durch die Betätigung eines Klingeltasters ein Ruf durch DoorPi zu einer Nebenstelle ausgelöst, gibt Asterisk als SIP Ringing Cause den Wert 180 zurück.
    Beim gleichen Vorgang an einer Fritzbox wird der Ringing Cause 183 zurückgegeben. Thomas (motom001) hat das bestätigt.


    Zitat von motom001

    Damit ist die Vermutung von @RaspiEHU bestätigt, dass es an dem Signal 180 bzw. 183 liegt. Den Fehler konnte ich auf liblinphone eingrenzen und jegliche Konfiguration hat zum gleichen Ergebnis geführt.
    Aktuell erarbeite ich eine Demo-Python-Datei, die ohne DoorPi läuft und dem Hersteller das Problem verdeutlicht, damit man es als Bug melden kann.


    Da das Problem Linphone ist, ist jede DoorPi Version betroffen, die Linphone als SIP Client verwendet.


    Markus,
    Vielleicht reichen diese Hinweise schon für Dich, um die Thematik bearbeiten zu können. Weitere Traces und Hinweise kann wahrscheinlich Thomas einbringen, er hat entsprechende Versuche, vielleicht sogar schon die oben erwähnte Demo-Python-Datei erstellt, um das Problem an den Hersteller als Bug melden zu können.
    Edit:
    Habe mit dem Absenden gesehen, dass Thomas schon reagiert hat.


    @pahennig
    Es ist tatsächlich so, das dieses Feature schon mit der ersten DoorPi Versionen als Leistungsmerkmal beschrieben wurde. Ich selbst habe mit DoorPi angefangen, als der Linphone Client eingeführt wurde. Das LM hat für mich nie funktioniert. Andere haben das auch festgestellt.
    Im Zuge der Echo Problematik wird zur Zeit intensiv am Linphone Client gearbeitet. Auch wenn die Echo Problematik am Ende u.U. kein Linphone Problem ist, so wäre es meines Erachtens doch sinnvoll, auch das .wav Problem zu bereinigen, da auch Thomas (motom001) schon eine erhebliche Vorleistung zur Bereinigung erbracht hat und man die Linphone Umgebung zur Zeit voll im Blick hat.


    Viele Grüße
    Ewald

    Hallo Marcus,


    das Problem ist in Arbeit, siehe Einspielen einer .wav Datei im Rufzustand.


    Eine Vorabhilfe gibt es auch, siehe #1.288
    im alten Forum.


    Ein Hinweis zur dort beschriebenen Vorabhilfe:
    In der Zeile



    40 = os_execute:aplay !BASEPATH!/media/doorbell-25dB.wav -D sysdefault:CARD=0


    muss der Wert für "CARD" zu Deiner Umgebung passen. Der Wert kann mit "alsamixer" ermittelt werden. Dort bekommst Du mit "F6" die bekannten Soundkarten aufgelistet, mit einer Nummer davor. Einfach die Nummer, die vor Deiner Soundkarte steht, bei "CARD" verwenden.


    Gruß
    Ewald

    Hallo Thomas,
    die Überarbeitung von "take_snapshot" ist Dir gut gelungen. Die .jpg werden jetzt mit einem vernünftigen Zeitstempel versehen und werden auch rollierend ersetzt. :)
    Abgefragt wird bei mir eine Netzwerkkamera, nicht eine raspberry kamera.


    Was bei mir zuerst nicht ging war der Mailversand. Das lag daran, das jetzt das Parameter "use_ssl" zwingend angegeben werden muss, bei mir mit dem Wert "use_ssl = False". Das war bisher nicht notwendig. ;)


    Gruß
    Ewald

    Hallo Thomas,
    die Überarbeitung von "take_snapshot" ist Dir gut gelungen. Die .jpg werden jetzt mit einem vernünftigen Zeitstempel versehen und werden auch rollierend ersetzt. :)
    Abgefragt wird eine Netzwerkkamera, nicht eine raspberry kamera.


    Was bei mir zuerst nicht ging war der Mailversand. Das lag daran, das jetzt das Parameter "use_ssl" zwingend angegeben werden muss, bei mir mit dem Wert "ssl".


    Meine bisher funktionierende Konfiguration in der doorpi.ini (Original Namensfelder und Passwort ersetzt)

    Code
    [SMTP]
    from = Vorname.Nachnahme@gmx.de
    need_login = true
    password = 1234567890
    port = 587
    server = mail.gmx.net
    use_tls = true
    username = Vorname.Nachnahme@gmx.de


    Fehlermeldung aus doorpi.log


    Hallo jbadmin,
    meine Vermutung ist, das in den Modulen mailto.py und take_snapshot.py der Aufruf von fswebcam nicht ersetzt wurde.
    Meine Beschreibung zur Thematik findest Du im Hauptforum. Vielleicht hilft das bei der Fehlersuche weiter. In meinem Aufbau fehlt mittlerweile der mjpeg_streamer, da ich mit einer IP-Kamera im Netzwerk arbeite.
    Beitrag #1293


    Sehr wichtig ist auch die von Andreas (Nea) gemachte Beschreibung für die Implementation des mjpeg_streamers auf Git Hub Issue #130. Hier ist wirklich jeder Hinweis zu beachten.


    !!Achtung!! die im Beitrag #1293 beschriebene Fehlerbereinigung für mailto.py bitte nicht anwenden. Mir ist aufgefallen, dass die Deklaration in späteren Beiträgen beibehalten wurde und dafür im Programmcode, übrigens nur an einer Stelle, sub in subprocess geändert wurde.


    Eines ist mir noch aufgefallen:
    In Deiner doorpi.ini verwendest Du zuerst "take_snapshot", danach dann "mailto".
    Die Auswirkung ist, dass 2 Snapshots erzeugt werden. Einer mit dem Aufruf "take_snapshot", abgelegt in ...../DoorPiWeb/snapshots, der 2. Snapshot wird von mailto erzeugt, abgelegt als doorpi.jpg in /tmp.
    Das kann durchaus von Dir so gewollt sein. Ich wollte nur darauf aufmerksam machen, dass Du 2, quasi gleiche Snapshots unmittelbar hintereinander erzeugst.


    Gruß
    Ewald




    http://www.forum-raspberrypi.d…port?pid=190874#pid190874

    Ein Grund könnte darin liegen, dass das SIP Alert Value nicht den Wert 180 sondern 183 hat. Wo das letztendlich zu einem Fehlverhalten führt, linphone oder doorpi, kann ich leider nicht bewerten.
    Beide Alert Values sind zulässig, im Falle von doorpi könnte man beide gleich bewerten.


    Trotzdem super, dass das Problem erkannt und bearbeitet wird.


    Danke

    Danke für Deine Antworten.


    Zu den Themen:
    Das Deine .log nicht von meiner abweicht, habe ich jetzt auch festgestellt. Es ist jedoch so, dass ich bei der ersten Bearbeitung im Hauptforum von "cubeschrauber" eine .log bekommen habe, in der zu sehen ist, das als SIP Server mit einer "Asterisk" gearbeitet wird. Als SIP Value wird 180 zurückgegeben, nicht 183 wie bei uns. Dort funktioniert das Abspielen der .wav Datei, auch für mich nachvollziehbar.


    Hier der meines Erachtens wichtige Teil der Logdatei:
    Entscheidend sind die Zeilen:
    2015-10-08 19:12:53,417 [INFO]
    2015-10-08 19:12:53,431 [INFO]
    denn dort ist zu erkennen, dass die .wav tatsächlich abgespielt wird.




    Einen Verdacht hierzu habe ich noch: Bitte nicht verärgert sein, aber ich frage es trotzdem einmal.
    Besteht die Möglichkeit, dass Deine .wav Datei keine vom Standardrufton abweichende Melodie beinhaltet, Du also lediglich einen Rufton während der Rufphase hörst?
    Sollte das so sein, könnte das der Rufton der Fritzbox sein, nicht der Deiner .wav Datei.
    Meine .wav habe ich als Anhang beigelegt. Die Lautstärke habe ich um 25dB reduziert, da der Ton sonst noch einige Häuser weiter zu hören wäre.


    Zum Record File:
    Es werden auch bei mir Recordfiles erzeugt und zwar wird vom Klingeltasterdruck an aufgezeichnet. Jedoch ist während der Rufphase nur der Rufton zu hören. Das Mikrofon ist leider nicht scharfgeschaltet.


    Fehler in der mailto.py
    Die Anweisung "import subprocess as subprocess" passt nicht zur Programmzeile "retcode = sub.call(command, shell=True)". Dort muss "sub.call" durch "subprocess.call" ersetzt werden.

    Code
    import subprocess as subprocess
    
    
    def createSnapshot():
        snapshot_file = '/tmp/doorpi.jpg'
        size = doorpi.DoorPi().config.get_string('DoorPi', 'snapshot_size', '1280x720')
        #command = "fswebcam --no-banner -r " + size + " " + snapshot_file
        command = "php /usr/local/etc/DoorPi/tools/take_snapshot_doorpi.php" + " " + snapshot_file
        try:
            retcode = sub.call(command, shell=True)



    Modifikation in der mailto.py für den Einsatz von php anstelle von fswebcam

    Code
    #command = "fswebcam --no-banner -r " + size + " " + snapshot_file
        command = "php /usr/local/etc/DoorPi/tools/take_snapshot_doorpi.php" + " " + snapshot_file


    Fehler in der take_snapshot.py
    Mit jedem Aufruf von take_snapshot wird ein Snapshot erzeugt und im vorgesehenen Verzeichnis abgelegt. Die Anzahl habe ich auf 10 Snapshots begrenzt. Das Problem taucht auf, wenn der 11. Snapshot erzeugt wird. Dann wird die alte Datei 10.jpg ersetzt und nicht die 1.jpg. Das bleibt auch bei allen weiteren Snapshots so. Ich habe das so verstanden, dass die Dateien 1.jpg - 10.jpg rollierend ersetzt werden sollen.
    Hierfür habe ich dann bei mir den Zweig:


    elif (lastNr == max) :
    lastNr = 1


    eingefügt. Damit werden die .jpg dann rollierend ersetzt.



    Modifikation in der take_snapshot.py für den Einsatz von php anstelle von fswebcam

    Code
    # command = "fswebcam --top-banner -b --font luxisr:20 -r " + size + " " + imageFilename
        command = "php /usr/local/etc/DoorPi/tools/PHP5/take_snapshot_doorpi.php" + " " + imageFilename


    Abschließend noch die php Scripts.
    Da ich nicht wirklich ein Programmierer bin, bitte ich um Nachsicht bei der Bewertung der Scripts. Es geht nur geradeaus mit dem, was ich mir zusammen gesucht habe.
    take_snapshot_doorpi.php
    Hier wird ein Snapshot der raspicam erzeugt. Über argv[1] wird beim Aufruf mitgegeben, wo der Snapshot abgelegt werden soll. Dadurch kann das Script sowohl für mailto.py als auch take_snapshot.py verwendet werden.


    PHP
    <?php
    #! /usr/bin/php -q
    $snapshot_file = $argv[1];
    $url="http://192.168.xxx.xxx:9000/?action=snapshot";
    copy($url,$snapshot_file);


    fhem_Rolltor.php


    Der FHEM Host erhält eine UDP und erzeugt letztendlich einen Tastendruck zur Betätigung des Rolltors.


    Hoffentlich habe ich die Punkte verständlich rüberbringen können.


    Gruß
    Ewald

    Hallo Thomas,
    toll, wieder von Dir zu hören und das es vielleicht wieder weiter geht mit dem DoorPi.


    Es geht um das Einspielen einer .wav Datei im Rufzustand. Das Thema habe ich im Hauptforum auf Seite 78 #1157 geschildert. Das ganze war ziemlich aufwendig und ich möchte es daher nicht erneut hier beschreiben. Vielleicht bist Du damit einverstanden, wenn Du dir den genannten Beitrag noch einmal im Hauptforum anschaust.
    Im nächsten Tag, Seite 78 #1158 hattest Du mir aufgrund des Beitrages angeboten, mir eine .log Datei vom DoorPi zu erstellen, damit ich meine Erkenntnisse mit Deiner Umgebung gegenfahren kann. Dazu ist es dann leider nicht mehr gekommen, da Du aus sicherlich wichtigen Gründen eine Auszeit vom DoorPi genommen hast.


    Mittlerweile habe ich im Hauptforum auch wahrgenommen, daß das Problem auch bei anderen vorhanden ist. Hierzu hatte ich Kontakt mit "DasPi" (Joachim) auf der Seite 86 #1288. Dort ist dann auch ein Workaround geschildert, mit dem man das Problem umgehen kann.


    Im Beitrag Seit 78 #1157 habe ich auch noch angesprochen, daß die Aufzeichnung während der Rufphase, "record while dialing" = "True" ebenfalls nicht funktioniert.


    Worüber wir bisher nicht gesprochen hatten ist der Fritzbox Softwarestand. Der ist bei mir mittlerweile 6.51. Das gleiche Problem konnte ich auch mit dem Release 6.24 nachweisen.


    Vor einigen Tagen habe DooPi noch einmal mit dem aktuellen "nightlly snapshot" aufgesetzt. Die Probleme sind geblieben.


    In Summe, DoorPi ist ein ganz tolles Projekt. Für mich funktioniert alles, was ich mir vorgestellt habe, bis auf die beschriebenen Punkte.


    Es funktioniert:
    - Anruf einer Türklingelgruppe in der Fritzbox mit einem Kamera Snapshot auf dem Fritz DECT Telefon.
    - Erzeugen einer E-Mail mit Snapshot (mailto.py hierfür bearbeitet, siehe Hauptforum Seite 87 #1293)
    - Erzeugen eines Snapshot (take_snapshot.py Bearbeitung im gleichen Beitrag Seite 87 #1293 beschrieben)
    - Einbinden eines RFID Lesers für die Garagentorsteuerung. DoorPi sendet hierfür ein Telegramm zur Haussteuerung FHEM


    - take_snapshot.py modifiziert, damit die .jpg rollierend ersetzt werden. (Nicht im Forum beschrieben oder nicht gefunden). Im aktuellen Modul werden die Dateien 1.jpg - 10.jpg erzeugt, dann nur noch die Datei 10.jpg ersetzt. 1.jpg - 9.jpg werden nicht ersetzt.


    In den Modulen mailto.py und take_snapshot.py arbeite ich im übrigen nicht mit dem command "fswebcam" sonder mit php. Das ermöglicht mir die Verwendung von beliebigen IP-Kameras, die irgendwo im Netz hängen. Die Raspi Kamera kann ebenfalls mit php angesprochen werden. Das FHEM Telegramm erzeuge ich ebenfalls mit php.



    Viele Grüße
    Ewald