DoorBird InterCom System - 73_DoorBird.pm

Begonnen von Sailor, 21 Mai 2019, 20:05:38

Vorheriges Thema - Nächstes Thema

Frank_Huber

Zitat von: Sailor am 30 Januar 2024, 18:06:21Testversion
Danke, werde ich testen!
Werde aber erst nach Fasching Zeit finden...

Sailor

#436
ACHTUNG - Update erfolgt bald!

Sobald ich eine Rückmeldung von Frank Huber habe und ggf. die letzten Bugs ausgemerzt habe, werde ich demnächst die neue Version hochladen.
Da die neue Version nicht mit eurer alten RasPi / Linux - Konfiguration kompatibel ist, wird die neue 73_Doorbird.pm nach einem fhem-Update ohne vorherige Neu-Installation der Linux Distribution mit Fehlermeldung aufgrund fehlender Pakete abbrechen.

Aus diesem Grund empfehle ich das Attribut
attr global exclude_from_update 73_DoorBird.pm zu setzen bis ihr Zeit habet eurer Host-System auf den neusten Stand zu bringen.

Eure RasPis empfehle ich nur mit dem offiziellen Raspi-Imager auf Stand zu bringen. Damit, sowie mit
sudo apt-get install -y sox && sudo apt-get install -y libsox-fmt-all && sudo apt-get install -y libsodium-dev && sudo apt-get install -y gstreamer1.0-tools
sudo cpan install Crypt::AuthEnc::ChaCha20Poly1305
sudo cpan install Crypt::Argon2
sudo cpan install Sodium::FFI
sudo cpan install IO::String module
sudo cpan install IO::Socket
habe ich es bei mir erfolgreich getestet.

Gruß
    Sailor
******************************
Man wird immer besser...

Bualicher

#437
Hallo zusammen,

ich habe das DoorBird-Modul aus dem vorigen Post auf mein neu aufgesetztes System mit den angegebenen Paketen gepackt und meinen DoorBird D2102V mit FW000143 angemeldet.
Verlief alles völlig unkompliziert und es scheint auch alles zu funktionieren.

Im Anhang ein Auszug aus dem Log mit Verbose 5 von einem Klingelvorgang mit Bewegungserkennung.

Ich habe den Benutzer mit "User" ersetzt und, auch wenn es nicht wirklich notwendig ist, die IP-Adressen teilweise geändert.
Wobei
192.xxx.xxx.80 ein E/A-Controller
192.xxx.xxx.81 die Türstation
192.xxx.xxx.82 & .83 Gongs
sind.

Sailor

Hallo Timo

Zitat von: Bualicher am 13 Februar 2024, 10:57:52Verlief alles völlig unkompliziert und es scheint auch alles zu funktionieren.
Im Anhang ein Auszug aus dem Log mit Verbose 5 von einem Klingelvorgang mit Bewegungserkennung.

Dein Log sieht sauber aus!

Danke!

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

Ein herzerfrischendes Moin vom Achtern Diek vorweg!

Zu der Frage "Was ist der OpsMode" hier kurz eine Erklärung.

Wenn man automatisierte Abläufe seiens des DoorBird programmieren möchte, kann man das mit dem OpsMode machen.

Hierzu legt man zunächst ein Unterverzeichnis "/opt/fhem/audio" an und hinterlegt dort die Audio-Dateien wie beispielsweise die normale Gäste, Gäste während der Party oder die Feuerwehr im Falle eines detektierten Brandes begrüßt werden soll (normal.mp3, party.mp3, fire.mp3).

Weiterhin legt man das Attribut "attr myDoorbird AudioFileDir" auf "/opt/fhem/audio".

Jetzt legt man das Attribut "attr myDoorbird OpsModeList Normal Party Fire"

Mit sofortiger Wirkung hat man entsprechend 12 neue set - Befehle - 4 für jeden Modus.
a) Welche Audiodatei abgespielt werden soll im Falle eines Klingel - Events
b) Welche Audiodatei abgespielt werden soll im Falle eines Motion  - Events
c) Welches Relay ausgelöst werden soll im Falle eines Klingel - Events
d) Welches Relay ausgelöst werden soll im Falle eines Motion - Events

So kann man im Fall einer Party beim Betätigen der Klingel die Gäste mit einem "Herzlich Willkommen auf unserer Party!" begrüßen und anschließend die Tür automatisch öffnen.

Gruß
   Sailor
******************************
Man wird immer besser...

Bualicher

Was bedeutet folgende Meldung "kein Element waveparse", die bei einem Test mit OpsMode Feuer beim Abspielen des Audiofiles im Log aufgetaucht ist:

/usr/bin/sox:      SoX v14.4.2

Input File     : '/opt/fhem/DoorBird/audio/Feuer_Motion_Onyx.mp3'
Channels       : 1
Sample Rate    : 24000
Precision      : 16-bit
Duration       : 00:00:07.73 = 185472 samples ~ 579.6 CDDA sectors
File Size      : 155k
Bit Rate       : 160k
Sample Encoding: MPEG audio (layer I, II or III)


Output File    : '/opt/fhem/DoorBird/audio/Feuer_Motion_Onyx.wav'
Channels       : 1
Sample Rate    : 24000
Precision      : 16-bit
Duration       : 00:00:07.73 = 185472 samples ~ 579.6 CDDA sectors
Sample Encoding: 16-bit Signed Integer PCM
Endian Type    : little
Reverse Nibbles: no
Reverse Bits   : no
Comment        : 'Processed by SoX'

/usr/bin/sox INFO sox: effects chain: input        24000Hz  1 channels
/usr/bin/sox INFO sox: effects chain: output       24000Hz  1 channels
2024.02.14 14:34:02 3: DoorBird : An event has been triggered by the DoorBird unit  : motion
WARNUNG: Fehlerhafte Leitung: Kein Element »wavparse«
2024.02.14 14:34:06 3: DoorBird : DoorBird_EventReset - Reseting reading to idle    : motion_sensor

Sailor

Hallo Timo
Zitat von: Bualicher am 14 Februar 2024, 14:41:48Was bedeutet folgende Meldung "kein Element waveparse", die bei einem Test mit OpsMode Feuer beim Abspielen des Audiofiles im Log aufgetaucht ist:
WARNUNG: Fehlerhafte Leitung: Kein Element »wavparse«

Das bedeutet, das dein System die Codecs noch nicht installiert hat:
https://wiki.fhem.de/wiki/DoorBird#Keine_Ausgabe_von_Mp3-Dateien

Gruß
    Sailor
******************************
Man wird immer besser...

Bualicher

Danke für Deine Antwort.
Ich habe jetzt alle Pakete vom Wiki-Eintrag (außer gstreamer1.0-doc --> gibt es kein Paket) installiert.
Jetzt erhalte ich folgende Fehler im Log, wenn ich per Transmit_Audio eine Datei zum DoorBird schicke:
Leitung wird auf PAUSIERT gesetzt ...
Leitung läuft vor ...
Leitung ist vorgelaufen ...
Leitung wird auf ABSPIELEN gesetzt ...
New clock: GstSystemClock
Verzögerung neu verteilen ...
FEHLER: Von Element /GstPipeline:pipeline0/GstCurlHttpSink:curlhttpsink0: failed to transfer data: Unsupported protocol
Zusätzliche Fehlerdiagnoseinformation:
../ext/curl/gstcurlbasesink.c(402): gst_curl_base_sink_render (): /GstPipeline:pipeline0/GstCurlHttpSink:curlhttpsink0
FEHLER: Von Element /GstPipeline:pipeline0/GstWavParse:wavparse0: Internal data stream error.
Zusätzliche Fehlerdiagnoseinformation:
../gst/wavparse/gstwavparse.c(2324): gst_wavparse_loop (): /GstPipeline:pipeline0/GstWavParse:wavparse0:
streaming stopped, reason error (-5)
Execution ended after 0:00:02.329096383
Leitung wird auf NULL gesetzt ...
Leitung wird geleert ...

Was könnte hier die Fehlerursache sein?
Zum System: Pi3B mit Bookworm 64bit lite

Sailor

#443
Hallo Timo

Zitat von: Bualicher am 14 Februar 2024, 19:18:25Jetzt erhalte ich folgende Fehler im Log, wenn ich per Transmit_Audio eine Datei zum DoorBird schicke:
Was könnte hier die Fehlerursache sein?

HAst du auch diesen Wiki-Satz gesehen: "Dieses Verzeichnis samt Inhalt muss man mit den entsprechenden Rechten versehen."

Lass mich das mal mit meinem System vergleichen...
Es kommt bei dir aber auch nichts aus dem Doorbird - Lautsprecher raus?

Gruß
    Sailor
******************************
Man wird immer besser...

Bualicher

#444
Danke für Deine Antwort.
Welche Rechte benötigt das Verzeichnis?
Zumindest hat das Verzeichnis die Rechte um dort eine .wav der vorigen .mp3 abzuspeichern.
fhem@RaspiFHEM:~$ ls -al /opt/fhem/DoorBird/audio
insgesamt 2108
drwxr-xr-x 2 fhem dialout   4096 15. Feb 08:14 .
drwxr-xr-x 4 fhem dialout 122880 13. Feb 14:32 ..
-rw-r--r-- 1 fhem dialout 276960 15. Feb 08:13 Abwesend_Klingel_Nova.mp3
-rw-r--r-- 1 fhem dialout 663596 15. Feb 08:14 Abwesend_Klingel_Nova.wav
-rw-r--r-- 1 fhem dialout 162240 13. Feb 22:01 Feuer_Klingel_Onyx.mp3
-rw-r--r-- 1 fhem dialout 388268 14. Feb 19:02 Feuer_Klingel_Onyx.wav
-rw-r--r-- 1 fhem dialout 154560 13. Feb 22:01 Feuer_Motion_Onyx.mp3
-rw-r--r-- 1 fhem dialout 369836 14. Feb 14:34 Feuer_Motion_Onyx.wav

Nein, der DoorBird macht keine Audioausgabe.

Kann es mit der gstreamer-Version zusammenhängen?
fhem@RaspiFHEM:~$ gst-launch-1.0 --version
gst-launch-1.0 version 1.22.0
GStreamer 1.22.0
https://tracker.debian.org/pkg/gstreamer1.0
An der fehlenden "gstreamer1.0-doc", für welche das System kein Installationspaket gefunden hat, sollte es ja eigentlich nicht liegen. Das dürfte nur Dokumentation sein, oder?

Bualicher

Was ich versucht habe (IP-ADRESSE, USER und PASSWORT wurden durch meine Daten ersetzt):

gst-launch-1.0 filesrc location=/opt/fhem/DoorBird/audio/Abwesend_Klingel_Nova.wav ! wavparse ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,rate=8000,channels=1" ! mulawenc ! "audio/x-mulaw,rate=8000,channels=1" ! curlhttpsink location=http://IP-ADRESSE/bha-api/audio-transmit.cgi content-type="audio/basic" use-content-length=true user=USER passwd=PASSWORTErgibt die gleiche Fehlermeldung wie beim Aufruf in FHEM.

gst-launch-1.0 filesrc location=/opt/fhem/DoorBird/audio/Abwesend_Klingel_Nova.wav ! wavparse ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,rate=8000,channels=1" ! mulawenc ! "audio/x-mulaw,rate=8000,channels=1" ! curlhttpsink location="http://IP-ADRESSE/bha-api/audio-transmit.cgi?http-user=USER&http-password=PASSWORT"Spielt die Datei am DoorBird ab, wenn auch in sehr schlechter Qualität (irgendein Klopfen ist als Nebengeräusch zu hören) und es kommen keine Fehlermeldungen.

Sailor

Hi Timo

Zitat von: Bualicher am 15 Februar 2024, 15:25:26gst-launch-1.0 filesrc location=/opt/fhem/DoorBird/audio/Abwesend_Klingel_Nova.wav ! wavparse ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,rate=8000,channels=1" ! mulawenc ! "audio/x-mulaw,rate=8000,channels=1" ! curlhttpsink location="http://IP-ADRESSE/bha-api/audio-transmit.cgi?http-user=USER&http-password=PASSWORT"Spielt die Datei am DoorBird ab, wenn auch in sehr schlechter Qualität (irgendein Klopfen ist als Nebengeräusch zu hören) und es kommen keine Fehlermeldungen.

Wird die Datei besser wenn du den folgenden Parameter hinten dran hängst: content-type="audio/basic"
gst-launch-1.0 filesrc location=/opt/fhem/DoorBird/audio/Abwesend_Klingel_Nova.wav ! wavparse ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,rate=8000,channels=1" ! mulawenc ! "audio/x-mulaw,rate=8000,channels=1" ! curlhttpsink location="http://IP-ADRESSE/bha-api/audio-transmit.cgi?http-user=USER&http-password=PASSWORT" content-type="audio/basic"
Gruß
   Sailor
******************************
Man wird immer besser...

Bualicher

Hallo Sailor,

nein, die Qualität wird dadurch leider nicht besser. Hört sich an, als ob ein Maschinengewehr im Hintergrund abgefeuert wird.

Sailor

Hallo Timo

Zitat von: Bualicher am 15 Februar 2024, 20:59:46Hört sich an, als ob ein Maschinengewehr im Hintergrund abgefeuert wird.
Na das hält wenigstens unerwünschte Gäste auf Abstand.

Versuche mal eine MP3 Lied-Datei abzuspielen.

Gruß
    Sailor
******************************
Man wird immer besser...

Bualicher

Hi Sailor,
das hatte ich auch schon versucht.
Es ist ebenfalls eine schreckliche Qualität.

Ich habe die Nebengeräusche auch, wenn ich eine .wav abspiele, welche bereits das Zielformat hat und ich audioresample und audioconvert weglasse. Dachte nämlich, dass mein Pi überfordert ist und da evtl. zuviel rechnen muss.

Mal die Frage andersrum: läuft es bei Dir oder anderen Anwendern ohne meine o.g. Fehler (unsupportet protocol), also mit der vom Modul erzeugten Befehlszeile?
Gibt es auf diesen Anlagen keine Störgeräusche?
Weil offenbar ist ja bei mir etwas anders als bei anderen. Daher würde ich gerne diese Fehlerquelle finden und auf den gleichen fehlerfreien Stand kommen.

Ist mein Pi 3B zu langsam?
Das System wurde vor keiner Woche neu aufgesetzt:
Bookworm 64bit lite vom Pi-Imager, FHEM (nach debian.fhem.de (Manual Installation)), dann Homebridge mit allen erforderlichen Pakete installiert. Sonst ist eigentlich nicht viel zusätzlich drauf.