Doorbird Modul [Testversion]

Das ist in der Tat ein seltsames Verhalten was ich hier gerade auch nicht nachstellen kann. Bekommst Du denn ein Bild beim Doppelklick auf das Medienobjekt angezeigt? Ich verstehe die Fehlermeldung auch nicht denn er sollte mit IPS_GetMediaContent ja direkt aus dem Objekt laden dafür ist zunächst gar kein File auf der Festplatte notwendig. In der Beschreibung steht aber er liest es aus dem file aus. das macht für mich zumindest keinen Sinn wenn das Objekt gecached ist da in das File ja nur geschrieben wird wenn IPS runtergefahren wird. Insofern sollte IPS_GetMediaContent aus dem RAM auslesen. Aber vielleicht fällt Paresy, Nallchan oder jemand anderem was dazu ein.

Jein.
Die Datei wird erst beim beenden von IPS erstellt.
Was aber für IPS_GetMediaContent egal ist. Die Funktion ist ja extra dafür gedacht immer die richtigen Daten zu liefern (etweder aus dem RAM oder wenn cache aus, vom Dateisystem).

Ich habe die gleiche Version wie du, und die funktioniert wie gewünscht.
Nur die Frage welche OS hast du ? Unter Windows funktioniert es.

Michael

Ich teste hier auf einem Raspberry Pi. Doppelklick auf das Objekt zeigt es mir korrekt an.

Kannst Du mal testen was passiert wenn Du den Dienst einmal beendest und dann neu startest. Funktioniert es dann?

Werde ich testen. Meine Vermutung ist, dass es dann mit den bisher vorhandenen Objekten klappt, da diese beim Beenden des Dienstes ja im Dateisystem abgelegt werden und mit allen neuen dann nicht. Werde es morgen testen.

Ist zumindest eine interessante Fragestellung, da bin ich noch nicht darüber gestolpert, da könnte sich ja mal Paresy zu äußern wie das eigentlich gedacht ist mit IPS_GetMediaContent und dem Auslesen aus dem Mediaobjekt, wenn es noch gar kein File gibt bzw. das erst aktualisiert wird wenn IP-Symcon runtergefahren wird.

Bei meinem Test gestern hatte ich auch kein File auf dem Dateisystem, war aber halt Windows.
Würde das mal als Bug einstufen.
Trägt es doch einfach im Bug-Tracker ein, hier geht das sonst unter.
Michael

ich habe das mal in den Bugtracker mit Verweis auf hier eingetragen mal sehen was dabei rauskommt. Eigentlich komisch das mir das nicht aufgefallen ist und glücklich das DerStandart das Verhalten gefunden hat. Hoffen wir mal das es dafür bald eine Lösung gibt.

Update für IP-Symcon 4.1 Stable es wird kein Interface Skript mehr genutzt sondern der Webhook wird direkt vom PHP Modul entgegen genommen. Bitte vor dem Modulupdate auf die aktuelle IP-Symcon 4.1 Stable aktualisieren wenn IP-Symcon 4.1 benutzt wird.

So … ich habe soeben mit folgendem Script getestet:

$Content = GetPicture("http://192.168.2.11/bha-api/image.cgi");
$Picture = IPS_CreateMedia(1);
IPS_SetMediaCached($Picture, TRUE);
IPS_SetMediaFile($Picture, "media/picture.jpg", false);
IPS_SetMediaContent($Picture, base64_encode($Content));
IPS_SendMediaEvent($Picture);
IPS_SetName($Picture, "Klingel");
IPS_SetParent($Picture,17841);


function GetPicture($URL)
	{
		$doorbirduser = "username";
		$doorbirdpassword = "password";
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,$URL);
		curl_setopt($ch, CURLOPT_TIMEOUT, 5);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
		curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
		curl_setopt($ch, CURLOPT_USERPWD, "$doorbirduser:$doorbirdpassword");
		$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		$result=curl_exec ($ch);
		curl_close ($ch);
		return $result;
	}

Gleiche Fehlermeldung, wenn ich mit IPS_GetMediaContent auf die ID des Objektes gehe. Doppelklick auf das Bild zeigt es mir an.

Habe das angelegte Medium gelöscht und danach IPS und den Raspberry gelöscht. Im Ordner media war nichts mehr drin.

Selbes Skript, selbe Durchführung - keine Fehlermeldung mehr. :confused:

Es funktioniert alles so. Der Neustart hat geholfen? :confused: Bevor ich nächstes Mal hier eine Welle lostrete, starte ich den Dienst neu, versprochen. Sorry. :frowning:

Hi Fonzo,

seitens Doorbird wurde die API um Audioübertragung und -empfang erweitert.

http://<device-ip>/bha-api/audio-transmit.cgi
http://<device-ip>/bha-api/audio-receive.cgi

Gruß
iMaxxx

Ja habe ich schon gesehen siehe G.711 µ-law in IP-Symcon einbinden. Das ist aber nicht trivial. Und so lange ich nicht weis wie man einen G.711 µ-law in IP-Symcon bekommt wird das so schnell nix werden. Aber wenn Da von Euch einer eine Idee oder gar Lösung hat bin ich offen das im Modul zu ergänzen.

Es geht jetzt auch SIP mit einem C5 von AVM. So lange IP-Symcon aber kein SIP kann wird das nach wie vor schwierig mit IP-Symcon direkt.

Wer da aber Ideen hat kann die ja gerne beisteuern ;).

Vielleicht ist das hilfreich:
sipML5 - The world’s first open source HTML5 SIP client

Hört sich ja spannend an. Könnt ja mal mit rumspielen. Wer als erster damit mit der Doorbird quatschen kann bitte melden dann kann man ja schauen ob das noch zum Modul ergänzt wird.

Hallo zusammen,

vielen Dank für das Modul! Es funktioniert wirklich gut.

Kann man das Klingeln an der Doorbird statt per Hardware-Taste an der Klingel auch über das Modul auslösen lassen?

Hintergrund ist der, dass bei mir nicht über die Taste der Doorbird geklingelt werden soll, sondern über einen separaten Klingeltaster.

Kann ich also bei Bedarf das Klingeln der Doorbird-Taste simulieren, so dass die Push-Meldung über die Doorbird App kommt? :confused:

Ein ungewöhnlicher Wunsch [emoji4]. Also dazu gibt es glaube keine Möglichkeit. Aber abhängig davon was Du genau machen willst kannst Du das ja mit IP-Symcon auch anders lösen. Du klingelst über den separaten Klingeltaster den Zeitpunkt bekommst Du in IP-Symcon mit und holst Dir dann ein Bild von der DoorBird. Aber so ganz bildlich vorstellen kann ich mir das noch nicht, was willst Du denn von der DoorBird an Infos abfragen wenn der Besucher gar nicht davor steht und einen anderen Klingelknopf drückt?

Hallo Fonzo,

vielen Dank für Deine schnelle Antwort.

Zur Historie meiner Doorbird. Die habe ich gekauft und eingerichtet, bevor es Dein Modul gab.

Da ich zwei Geschosse mit getrennten Wohnungen habe, wollte ich getrennte Klingeln für EG und OG haben.
Dabei habe ich zwei Taster per KNX abgefangen. Diese lassen direkt auch jeweils einen separaten Gong in den Wohnungen klingeln.

Zusätzlich kam dann noch die Doorbird ins Spiel. Da ich keine zwei separaten Doorbirds kaufen wollte, habe ich mir überlegt, wie ich eine einzelne Doorbird-Klingel für beide Wohnungen nutzen kann.
Dafür habe ich zwei Android Tablets genommen, eines fürs EG und das andere fürs OG.
So sollte, wenn der Taster fürs EG betätigt wird, nur das Tab im EG die Doorbird-APP öffnen und umgekehrt, wenn der Taster fürs OG betätigt wird, nur das Tab im OG die Doorbird-APP öffnen.

Das habe ich so gelöst, dass der jeweilige Taster eine IPS-Push Nachricht ausgibt. Diese Nachricht wird vom Android Tablet empfangen und über Tasker ausgewertet. Damit wird dann die Doorbird-App auf dem jeweiligen Tablet gestartet.

Meine Hardware-Taste an der Doorbird ist seither abgeklebt, also nicht bedienbar. Ansonsten würden immer beide Tablets auf das Klingeln anspringen. Und das wollte ich ja nicht. Es muss getrennt sein.

Ab und zu, wenn die Leute aus dem EG oder OG im Urlaub sind, schalte ich beide Taster zusammen. So ist egal wo geklingelt wird. Aus diesem Grund frage ich nun, ob man das Auslösen der Doorbird-Hardware-Taste simulieren kann.
Dann bräuchte für diesen Fall meinen heutigen Umweg nicht gehen.

Ich hoffe, das ist verständlicher ausgedrückt.

Ah jetzt habe ich es hoffentlich verstanden. Es hängt eine Doorbird am Eingang und zwei Klingeln für EG und OG. So wie Du das beschrieben hast ist doch aber eigentlich schon alles gelöst. Das einzige was Du machen musst ist wenn einer der Klingelbuttons gedrückt wird ein Bild von der Doorbird anfordern und abspeichern. Je nachdem welcher Knopf gedrückt wurde legst Du diese in unterschiedliche Verzeichnisse bzw. Medienobjekte ab. Dann kann auf dem Android Tab das jeweils passende Bilder für den Besucher des Stockwerks aufgerufen werden.


Doorbird_GetSnapshot(integer $InstanceID)

Hallo Fonzo,

habe gestern den DoorBird installiert und das Modul eingebunden.
Alles hat auf Anhieb perfekt geklappt, danke dafür!

Mir fehlt nur eine Kleinigkeit:
Ich bin in Mittelamerika und damit in einer anderen Zeitzone.
Weißt du ob ich die irgendwie ändern kann? Entweder im Doorbird direkt oder im Modul?
Ich bräuchte die deutsche Zeit -6h und auch das 12 Stunden Format. Also z.B. 6PM statt 18 Uhr.

Danke schonmal!