DoorPI / VoIP Door-Intercomstation with Raspberry Pi


Webservice Update
Es wurden jetzt Webservices hinzugefügt. Bitte beachten, dass die Parameter mittels url encode behandelt werden, sonst kommt es zu unerwünschten Nebeneffekten.

trigger_event = das starten eines Events im Namen einer beliebigen Quelle
 Parameter event_name: Name des Events
 Parameter event_source: Name der Quelle

 Beispiel: http://{DoorPi Ip-Adresse}/control/trigger_event?event_name=OnTimeYear&event_source=action.SingleActions.time_tick
 Das Beispiel löst das Event OnTimeYear im Namen der Quelle action.SingleActions.time_tick aus

config_value_get = Hole den String eines Parameters aus der Config-Datei
 Parameter section: Name der Config-Sektion
 Parameter key: Name des Config-Keys
 Parameter default = '': optional und gibt einen Default-Wert an
 Parameter store = 'True': optional und gibt an ob der Key mit dem Default-Wert gespeichert werden soll, wenn es den nicht gibt

 Beispiel: http://{DoorPi Ip-Adresse}/control/config_value_get?section=DoorPiWeb&key=port&default=80&store=false

config_value_set = Setze einen neuen Config-Wert
 Parameter in Kurzform: section, key, value, password = 'False'

 Beispiel: http://{DoorPi Ip-Adresse}/control/config_value_set?section=DoorPiWeb&key=port&value=80

config_value_delete = Lösche einen Wert aus der Config (Achtung: Damit ist die Config noch nicht in einer Config-Datei geschrieben!)
 Parameter in Kurzform: section, key

 Beispiel: http://{DoorPi Ip-Adresse}/control/config_value_delete?section=DoorPiWeb&key=port

config_save = Speichere die Config ab - nutze dazu die übergebene Config-Datei, oder einen Standard-Wert wie !BASEPATH!/conf/doorpi.ini
 Parameter configfile = '': optional Name und Pfad zur Config

 Beispiel: http://{DoorPi Ip-Adresse}/control/config_save

Quelle: Webservice Update · motom001/DoorPi@0b83394 · GitHub

Mit der Config:


[EVENT_TueroeffnerPerWebservice]
10 = out:Tueroeffner,1,0,3

ergibt das die URL:


http://{DoorPi Ip-Adresse}/control/trigger_event?event_name=TueroeffnerPerWebservice&event_source=doorpi

Schon wird der Türöffner für 3 Sekunden betätigt.
Natürlich geht das ganze auch mit Authentifizierung - entweder per http-basic oder per URL, z.B:


http://benutzername:passwort@{DoorPi Ip-Adresse}/control/trigger_event?event_name=TueroeffnerPerWebservice&event_source=doorpi

motom001/DoorPi · GitHub
DoorPi (VoIP Wechselsprechanlage / Türsprechanlage mit Video-Support)

Oder ist die Frage nach dem Link zur Türstation gemeint?

hallo motom001,

da im raspberry forum die Seite 39 leider nicht erreichbar ist, antworte ich dir mal hier.

vielen dank für für deine Hilfe und den upload des neuen keyboards.

habe es gleich getestet. nach ein paar kleinen Änderungen hat es super funktioniert.

falls du die Änderungen übernehmen möchtest, werde ich sie dir hier zeigen.

von:


Zeile 32: newChar = self._UART.read()
Zeile 39. if self._last_received_chars.endswith(input_pin + self._input_stop_flag):
Zeile 82: self._ser.timeout = 1

nach:


Zeile 32: newChar = self._ser.read()
Zeile 39: if self._last_received_chars.endswith(input_pin):
Zeile 82: self._ser.timeout = 1
Zeile 83: self._ser.close()

Funktioniert jetzt wunderbar. Die Reaktionszeit beträgt jetzt ca 1 Sekunde, womit ich aber leben kann.

Der Grund, weshalb ich den Weg gerne den Weg über USB und Arduino gehen würde, ist, dass der Ort der Klingel ca 20m von dem DoorPi entfernt ist. und nun möchte ich nicht extra Kabel für Taster, Lautsprecher und Mic legen, wenn ich sowieso USB für die Webcam legen muss. daher 20 usb-kable mit eingebautem repeater am ende noch ein aktiven usb-hub und fertig.

Mit freundlichen Grüßen Kreon

Hallo zusammen,
Kann hier jemand einen Türlautsprecher empfehlen? Würde von Siedle das TLE 051.01 funktionieren?
Danke und Gruß. Dan

Hallo,

Hätte jetzt mal versucht DoorPi zu insstallieren.

  1. Problem: Installation nach Beschreibung nicht ganz möglich (Verzeichnisstruktur) :cool:
  2. Problem: doorpi.cfg nicht vorhanden :confused:
  3. Problem: beim Ausführen gibt’s Fehlermeldungen (mit einer selbstgebastelten Config-Datei) :rolleyes:

Gibt eine neuere / funktionierende Versioan als die auf Git?

Besten Dank
Gruß
Manfred

Hallo Manni,
Problem kann ich bestätigen, habe es gestern Abend auch probiert mit gleichem Ergebnis…
Schöne Grüße. Dan

Hallo,

Wäre ja nicht so schlimm, wenn ich deshalb nicht die alte Hauskingel schon demontiert hätte. Und für ein Rückblick war keine Zeit mehr.

Zur Zeit geht halt garnix :smiley:

Wäre halt doch nicht schlecht gewesen, wenn es diesbezüglich einen Hinweis geben würde, dann hätte ich damit gewartet!

Gruß
Manfred

Grundsätzlich richtig :slight_smile:

Ich weiß nicht was Du mit Verzeichnisstruktur meinst.
Ich habe am Wochenende viel Zeit investiert und die Installationsroutine umgestellt auf eine setup.py.
Da ich das zum ersten Mal gemacht habe, hat nicht gleich alles funktioniert.
Seit Sonntag Abend haben wir eine funktionierende Setup-Routine mit prüfung aller nötigen Abhängigkeiten. Getestet wurde von mit ein aktuelles Rasbian wheezy und von zwei anderen RaspPBX bzw jessy.

Wenn es bei Dir zu Problemen kommt, dann bräuchte ich die Angabe der Umgebung (Pi, OS, …) und eine etwas umfangreichere Beschreibung der Fehler.

Richtig - DoorPi läuft grundsätzlich auch erst einmal ohne Config-Datei und ist dann über die Weboberfläche zu erreichen. Da die Beispiel-Config zu so vielen Nachfragen geführt hat, habe ich mich entschlossen, die Beispiel-CFG aus dem Repository zu entfernen. Ich helfe gern beim Erstellen einer neuen Config-Datei, wenn ich weiß was rings herum alles benötigt wird.

Dann würde mich die Config und die Log-Datei interessieren.
Wenn DoorPi mit dem Parameter --trace gestartet wird, dann ist die Log-Datei sehr aussagekräftig und ich konnte damit bisher fast jedes Problem lösen. Ohne Config und ohne Log ist es für mich schwer Dir wirklich effektiv zu helfen.

Nein - auf GitHub ist immer die aktuellste Version zu finden. Es ist allerdings auch ein kurzer Aktualisierungs-Intervall, wenn Probleme entdeckt und gemeldet werden.

Ich versuche gerade die Release-Planung und Veröffentlichung umzustellen.
Auf GitHub wird es die Entwicklung geben und die Releases werden auf pypi zu finden sein. So kann jeder entscheiden ob er ein Release oder einen „snapshot“ nutzen will.

Mich würde auch hier interessieren, was hat nicht geklappt, was war die Fehlermeldung, was hast Du statt dessen erwartet, wo gab es Probleme, …
Eine Log-Datei mit trace-Level (siehe oben) und eine Config-Datei (ohne Passwörter) würde mir beim Support massiv helfen…

So long - jetzt seid Ihr dran…

Servus,

Also installiert habenich nach Anleitung im Wiki.
Die Schritt für Schritt Anleitung ohne automatischem Setup.

Heute Abend mal die Setupdatei Probieren.

Gruß
Manfred

Teste bitte mal diese Anleitung:


git clone https://github.com/motom001/DoorPi.git /tmp/DoorPi
sudo python /tmp/DoorPi/setup.py build -b /tmp/DoorPi install &&
sudo doorpi_cli --trace

Dann sollte DoorPi laufen. Parallel dazu sagst du mir, was Du hast (Hardware, PiFace?, …) und was Du erreichen möchtest und wir bauen Dir zusammen eine passende Config.

Im Anschluss daran richten wir DoorPi als daemon ein und testen auch das.

Abschließend hast Du eine lauffähige Version von DoorPi mit all Deinen Wünschen.

Wenn es zwischendurch zu Fehlern kommen sollte, dann brauche ich bitte genau Angaben, was hat wann an welchem Schritt nicht funktioniert. Idealerweise hängst Du die DoorPi-Log als Anlage dran und ich schau drüber…

So, habe jetzt mal das versucht.
Ausgabe im Terminal siehe Anhang.

Irgendwie habe ich jetzt keinen richtig Plan :confused:
Bin jetzt nicht unbedingt der RPi-Spezi :smiley:

Scheint irgend eine Datei nicht zu finden?

PS.: Wo wird die doorpi.log abgelegt?

Besten Dank,
Gruß
Manfred

DoorPI.txt (5.24 KB)

Hallo in die Runde,

nach einigen Tests haben wir eine relativ stabile Version:


git clone https://github.com/motom001/DoorPi.git /tmp/DoorPi
cd /tmp/DoorPi
sudo python setup.py install
sudo rm /etc/init.d/doorpi
sudo cp /usr/local/etc/DoorPi/docs/daemon/doorpi /etc/init.d/doorpi
sudo update-rc.d doorpi defaults
doorpi_cli --trace --test &&
sudo /etc/init.d/doorpi start

Dadurch wird die aktuelle Version geladen und im Ordner /tmp/DoorPi abgelegt. Dort wird die Installation ausgeführt und die doorpi nach /etc/init.d/doorpi kopiert.
Anschließend diese Datei für System-Start und -Ende registriert und DoorPi in einem test-Modus gestartet.
Sollte dieser Test erfolgreich gewesen sein, wird der daemon gestartet.

Entweder wird das Verzeichnis-Zeugs angelegt unter:
1.) /usr/local/etc/DoorPi
2.) /home/pi/DoorPi
Je nach dem ob der User auf /usr/local/etc Schreibzugriff hat oder nicht.

An der Stelle die Bitte:
Eröffnet Issues auf GitHub zu Euren Problemen und packt log + config mit als Anlage dazu. Lest Euch die Fehlermeldungen mit --trace Level durch, manchmal hilft das schon um den Fehler selbst zu finden. Wenn Ihr Euren Pi nicht nur für DoorPi verwendet, dann schreibt das bitte mit in den Issue rein (+ die Info was sonst noch läuft). Eventuell gibt es später mal in der Weboberfläche von DoorPi die Möglichkeit, dass alles mit einem Klick zu erledigen. So lange ist es ein wenig Handarbeit für Euch…

Rückmeldung / Kritik / Anregungen / … sind herzlich willkommen. Entweder hier, im forum-raspberrypi.de oder am Besten direkt auf GitHub.

Hallo,

Habe jetzt die neue Version versucht zu installieren.

Bis dahin geht alles gut:


sudo cp /usr/local/etc/DoorPi/docs/daemon/doorpi /etc/init.d/doorpi

Führe ich den Befehl aus kommt folgende Fehlermeldung:


cp: Aufruf von stat für „/usr/local/etc/DoorPi/docs/daemon/doorpi“ nicht möglich: Datei oder Verzeichnis nicht gefunden

Wenn ich dann in den Ordner „/usr/local/etc/DoorPi“ gehe, ist dieser leer.

Zur Überprüfung, der Ordner „/home/pi/DoorPi“ ist bei mir nicht vorhanden.

Ich komme leider gar nicht dazu ein „–trace“ auszuführen :frowning:

Gruß
Manfred

Schau mal bitte, ob die Datei schon unter /etc/init.d/doorpi vorhanden ist.
Zum Start von DoorPi versuch mal bitte
sudo doorpi_cli --trace
Danach schau noch einmal in den Ordner
/usr/local/etc/doorpi
Was ist da jetzt alles drin?

Hi,

also ich muss schon sagen, die 2.4.6.1 der Doorpi läuft super. Ich habe hier einen fliegenden Aufbau aber die Qualität und Stabilität ist schon fein. Ich habe mir das PiFace2 bestellt und überlege dann alles umzubauen.

Wie habt Ihr eure Verdrahtung gelöst? Ich habe nur ein 4x2x0,6 an der Stelle wo die Klingel hinsoll.

Die Raspi würde ich nicht außen lassen wollen sondern im Keller.

2x Drähte für Mikro,
2x Drähte für Lautsprecher,
2x Drähte für Klingel,
2x Drähte um die Tasten der Klingel zu beleuchten.

Damit wäre alles weg und ich weiß noch nichtmal ob das gut funktionieren würde (weil halt alles „ungeschützt“ durch das 4x2 muss).

Wie habt ihr das gelöst?

Mit freundlichen Grüßen
KRis

Hallo zusammen

habe die version 2.4.1.6 erfolgreich installiert.
scheint zu laufen, komme auf das weblogin.
doch nun stellt sich mir die frage, wo finde ich die login daten, bzw. wo kann ich diese setzen? :confused:

bin sehr dankbar für jede hilfe.

power09

–> habs gefunden. habe die entsprechnde forumseite beim durchstöbern übersehen…

Der DoorPi scheint die Eierlegende Wollmichsau zu sein :slight_smile: . Würde gerne noch ein OLED Display einbinden.

http://www.amazon.de/Zoll-Wei%C3%9F–Display-Modul-12864-Arduino/dp/B00Q6WSGZC/ref=sr_1_44?ie=UTF8&qid=1448184957&sr=8-44&keywords=oled+display

Wo dann der Text steht:
Willkommen bei Familie … Wenn geklingelt wird: Es klingelt. Bitte warten.

Habt ihr eine Idee, wie man das einbinden kann?

Hallo Thomas,

als erstes ein großes Danke für die Arbeit die hier investiert wurde. Das alles neben dem Job noch an den Start zu bringen finde ich immer wieder faszinierend.

Ich habe aktuelle Version installiert und die ersten Erfolgt verzeichnen können. Bei ein paar Problemen brauch ich nun aber doch Hilfe :

  1. die IPS API ist bei mir nur per SSL ( https ) zu erreichen. Setze ich im Config-File einfach https ein, bekomme ich
    in DoorPi einen SSL Fehler . Gibt es dafür eine Lösung ?

  2. Ich habe die Grundinstallation noch ohne die externe Soundkarte gemacht. Kannst du mir helfen, welche Einträge ich in
    der doorpi.ini ändern muss, damit ich die USB Soundkarte ( Conrad Headsetadapter ) nutzen kann.

    cat /proc/asound/cards | grep ]: | sed ‚s/.* - //‘ --> ergibt : USB Audio Device

    doorpi.ini : playback_device = ALSA: USB Audio Device --> kein Device mit dem Namen gefunden ?!

Vielen Dank

Edit 10.1. 19:30 : Sound funktioniert, bleibt das „Problem“ der IPS Anbindung

Gruss Thomas

Hallo zusammen,

ich habe eine Frage zu JSON-RPC zu IP-Symcon. Ich möchte gerne eine boolean-variable bei einem Anruf setzen um das Webfrontend automatisch bei einem Anruf umzuschalten.

Leider aber, klappt das nicht wie auf Seite eins beschrieben.

AttributeError: 'NoneType' object has no attribute 'start_recording'
2016-01-10 19:59:52,260 [INFO]  	[requests.packages.urllib3.connectionpool] Starting new HTTP connection (1): XXX.fritz.box
2016-01-10 19:59:52,293 [ERROR]  	[doorpi.action.SingleActions.ipsrpc_setvalue] couldn't send IpsRpc ('instancemethod' object has no attribute '__getitem__')
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/doorpi/action/SingleActions/ipsrpc_setvalue.py", line 50, in ips_rpc_set_value
    if ips_rpc_check_variable_exists(key, config) is not True: raise Exception("var %s doesn't exist", key)
  File "/usr/local/lib/python2.7/dist-packages/doorpi/action/SingleActions/ipsrpc_setvalue.py", line 40, in ips_rpc_check_variable_exists
    return response.json['result']
TypeError: 'instancemethod' object has no attribute '__getitem__'

Habt Ihr eine Idee? Variable existiert natürlich in IPSymcon

Mit freundlichen Grüßen
Kris

Hallo Kris,

ich hab nun die Verbindung zu einem anderen IPS ohne HTTPs öffnen können, habe aber genau den Fehler den du hast, also Variable existiert angeblich nicht .

Thomas scheint aktuell hier nicht mitzulesen, wir können nur warten.

Gruss Thomas

Hi,

ich habe das anders gelöst, ich lasse bei Rufaufbau ein Shellscript starten, dieses wiederrum ruft mit Curl eine Webseite auf, die die Variable schaltet.

Also in der doorpi.ini

[EVENT_OnSipPhoneMakeCall]
10 = os_execute:/opt/sprechanlage.sh

die Datei /opt/sprechanlage.sh

#!/bin/bash

curl -f http://server.fritz.box/user/sprechanlage.php

und die Datei sprechanlage.php im C:\IP-Symcon\webfront\user

<?php

SetValueBoolean(13528 /*[Steuerelemente\Sprechanlage\Connect]*/, True);  

?>

Von hinten durch die Brust ins Auge, aber es geht wenigstens :wink:

Mit freundlichen Grüßen
Kris