DoorBird InterCom System - 73_DoorBird.pm

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

Vorheriges Thema - Nächstes Thema

enrikb

Hi,

wozu eigentlich das ganze gstreamer Zeugs? Warum nicht gleich als µLaw / raw abspeichern und dann direkt über HTTP rausschieben?

Geht es denn mit curl von der Kommandozeile aus?

Viele Grüße,
Enrik

Sailor

Hallo enrik

Zitat von: enrikb am 04 März 2020, 09:58:16
wozu eigentlich das ganze gstreamer Zeugs? Warum nicht gleich als µLaw / raw abspeichern und dann direkt über HTTP rausschieben?
Geht es denn mit curl von der Kommandozeile aus?

Leider nicht. Es sieht wohl so aus, dass der DoorBird keinen Speicher dafuer hat und die Datei somit gestreamt werden muss.

Steht auch so in der API.

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

Sailor

Hallo Steffen

Zitat von: steffen83 am 04 März 2020, 09:42:30
ShellCommand            : timeout 26 gst-launch-1.0 filesrc location=/opt/fhem/audio/time.wav ! wavparse ! audioconv
das meinst du wohl

Nein, ich meinte eine Fehlermeldung. Das was du siehst, ist der vorformatierte Befehl.

Versuche es mal mit deaktivierter SessionId. Dann verwendet er direkt Username und Passwort.
Ich versuche gerade den Fehler einzugrenzen...

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

steffen83

ich habe keine SesID aktiviert
Attributes:
   EventReset 5
   ImageFileDir /mnt/fritz/1TB/Kamera/Klingel/image
   KeepAliveTimeout 30
   MaxHistory 5
   VideoDurationDoorbell 60
   VideoDurationMotion 45
   VideoFileDir /mnt/fritz/1TB/Kamera/Klingel/video
   VideoFileFormat mpeg
   WaitForHistory 1
   room       2.0 Kamera-> 1.0 Doorbird,alexa
   verbose    5
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

enrikb

Hi Sailor,

Zitat von: Sailor am 04 März 2020, 13:24:29
Leider nicht. Es sieht wohl so aus, dass der DoorBird keinen Speicher dafuer hat und die Datei somit gestreamt werden muss.

Dann ist es auf dem DoorBird falsch implementiert. Wenn ich die Daten einer TCP-Verbindung nicht schnell genug lokal los werde (weil z.B. mein Audio Device die Daten mit einer festen Rate abnimmt, was ja zu erwarten ist), dann hat die TCP-Verbindung für eine entsprechende Drosselung zu sorgen, wenn der Socket-Puffer voll ist und niemand liest.

Naja, die erwarten halt, dass auf der anderen Seite ein audio capture stattfindet und daher die Datenrate schon stimmen wird ...

curl hat BTW auch Optionen, um die Datenrate zu limitieren (--limit-rate, --speed-limit). Bei Gelegenheit probiere ich das mal aus.

Zitat von: Sailor am 04 März 2020, 13:24:29
Steht auch so in der API.

Da sehe ich zwar das gstreamer Beispiel aber auf Anhieb keinen Hinweis, dass es nicht anders ginge.

Viele Grüße,
Enrik

Sailor

Hi enrik

Zitat von: enrikb am 04 März 2020, 13:42:41
curl hat BTW auch Optionen, um die Datenrate zu limitieren (--limit-rate, --speed-limit). Bei Gelegenheit probiere ich das mal aus.

Nur zu!  Ich nehme funktionierende Beispiele die eine Paketinstallation weniger fordern, dankbar auf!

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

Sailor

Hi Steffen

Zitat von: steffen83 am 04 März 2020, 13:41:28
ich habe keine SesID aktiviert
Attributes:
   EventReset 5
   ImageFileDir /mnt/fritz/1TB/Kamera/Klingel/image
   KeepAliveTimeout 30
   MaxHistory 5
   VideoDurationDoorbell 60
   VideoDurationMotion 45
   VideoFileDir /mnt/fritz/1TB/Kamera/Klingel/video
   VideoFileFormat mpeg
   WaitForHistory 1
   room       2.0 Kamera-> 1.0 Doorbird,alexa
   verbose    5


Sieht aber so aus als sei es per Default Wert an:

Zitat von: steffen83 am 04 März 2020, 09:42:30

2020.03.04 09:38:50 5 : mydoorbird : DoorBird_Transmit_Audio - GstCommand              : gst-launch-1.0 filesrc location=/opt/fhem/audio/time.wav ! wavparse ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,rate=8000,channels=1" ! mulawenc ! "audio/x-mulaw,rate=8000,channels=1" ! curlhttpsink location=http://192.168.0.20/bha-api/audio-transmit.cgi sessionid=AqDqZn8PZjaBuIDKJ1mdzNn6FPNXiUhUdFMBkYMLak4mFFNFaluOfWjn9yf2g content-type="audio/basic" use-content-length=true


Versuche mal das Attribut SessionIdSec = 0 zu setzen.

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

steffen83

So, bitte einmal anhören

https://www.magentacloud.de/lnk/1G4sJ09K

Aber verschluckt er sich am Anfang?

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

steffen83

Könntest du Mal prüfen ob es auch eine Möglichkeit gibt die Videos aus der pro Version runter zu laden?
Und ob es die Möglichkeit gibt, eigene Passwörter bei den Usern einzustellen?

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

enrikb

Hi,

ich konnte vorhin nur kurz mit curl testen. TCP-mäßig sah das eigentlich nicht so verkehrt aus, aber aus dem DoorBird kam nur kurz etwas, viel kürzer als mein Testton (10s).

Es hörte sich so an, als würde die EC/NR nicht funktionieren bzw. wie wild dagegen regeln.

Kann es sein, dass man gleichzeitig 'lauschen' muss, damit die intern das Mikro anschalten und die EC/NR funktioniert? Das konnte ich noch nicht testen.

Viele Grüße,
Enrik

Sailor

Zitat von: steffen83 am 04 März 2020, 17:17:42
So, bitte einmal anhören
Aber verschluckt er sich am Anfang?

Ich kann es kaum hören...
Meiner verschluckt sich am Anfang. Und es geht mir genau darum, herauszufinden ob das Verhalten bei allen DoorBirds gleich lang auftritt.

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

steffen83

Du kannst es kaum hören aus meinem Video? Ich höre es über Handy und das ist schon laut.
Beim Vogel kommt es so mittelmäßig raus. Evtl wenn man die Lautstärke am Vogel noch etwas aufdreht

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

Sailor

Hallo Steffen

Zitat von: steffen83 am 04 März 2020, 22:05:18
Du kannst es kaum hören aus meinem Video? Ich höre es über Handy und das ist schon laut.
Beim Vogel kommt es so mittelmäßig raus. Evtl wenn man die Lautstärke am Vogel noch etwas aufdreht

Naja, der Vogel ist ja auch kein Bose Sound System mit Sub-Woofer!  ;D

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

steffen83

Das stimmt allerdings [emoji16]
Bin Mal gespannt wie es bei den anderen so läuft, ab welcher Sekunde Ton da ist.
Ich musste bei mir echt die Session id auf 0 setzen. Dann ging es sofort

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

enrikb

Zitat von: enrikb am 04 März 2020, 21:36:42
ich konnte vorhin nur kurz mit curl testen. TCP-mäßig sah das eigentlich nicht so verkehrt aus, aber aus dem DoorBird kam nur kurz etwas, viel kürzer als mein Testton (10s).

Es hörte sich so an, als würde die EC/NR nicht funktionieren bzw. wie wild dagegen regeln.

Ich habe das jetzt nochmal in Ruhe ausprobieren können. Das Ratelimiting von curl ist leider für diesen Zweck unbrauchbar, da es über zu lange Zeiträume mittelt.

Daher habe ich mir auf Basis von libcurl ein Kommandozeilen-Tool geschrieben, das wirklich genau mit 8000 byte/s sendet.

Der 10 Sekunden lange Testton ist nun in einer parallel angefertigten Testaufnahme vor dem Doorbird-Lautsprecher auch exakt 10s lang.

Der entscheidende Punkt ist also tatsächlich, dass man nicht zu schnell sendet. Das Teil schmeisst sonst Daten am Anfang weg, weil offenbar ein interner Puffer überläuft oder so.

Das Beispiel in der API-doc regelt das, indem es ein audio capture als Quelle nimmt ...

Viele Grüße,
Enrik