Ja der Status ist definiert - müsste ich mal genauer aus der Schaltung ermitteln, ich glaube pullup. Allerdings glaube ich fast nicht an ein Hardware-Problem, weil das Fehl-Klingeln ja nicht ständig, sondern nach einer Laufzeit auftritt. nach einem Reboot dann wieder einige Zeit kein Problem.
Beiträge von baerberry
-
-
Hallo zusammen,
ich habe doorpi schon länger im Einsatz und primär nur die Klingelfunktion in Benutzung, d.h. zwei Klingeln lassen zwei unterschiedliche Ziele per Sammelrufnummern (Fritzbox) klingeln. Seit einiger Zeit klingelt es nach einer gewissen Laufzeit im Abstand von ca. 30 Minuten, ohne dass der Klingeltaster (GPIO) gedrückt wurde. Das Problem wird behoben, wenn ich den Raspi neu starte. Dann läuft es wieder eine Zeit lang (gefühlt 6-8 Wochen), bis der Fehler wieder kommt. Ich hab schon vermutet, dass ein Speicher vollläuft und ab diesem Zeitpunkt Anrufe ausgelöst werden. Aber seltsam ist es schon. Kennt jemand das Problem? Gibt es einen Debug-Mode, mit dem man den Auslöser der Anrufe herausfinden kann? Im Dashboard steht noch ein Hinweis, dass linphone statt Pjsua genutzt werden sollte. Bin mir aber nicht sicher, was hier gemacht werden muss.
-
Also bisher läuft DoorPi eigentlich ganz gut (nachdem ich die Schaltung und die Software angepasst habe). Es passiert aber manchmal, dass beim Klingeln an der Haustür mein Telefon in der Wohnung nur ganz kurz klingelt, der Ruf wird also nicht die eingestellten 30 Sekunden ausgeführt, sondern nur eine halbe Sekunde. So habe ich schon ein paar Besucher verpasst. Aber wie beschrieben nur manchmal, ich würde schätzen, dass ein Ruf von 20 nicht funktioniert. Ich würde verstehen wenn das generell so wäre, denn dann läge es vermutlich an der Beschaltung. Kann es sein dass die Fritzbox sich hier unterschiedlich verhält? Ich rufe meine Telefone über eine Sammelrufnummer, dieser sind zwei interne Kurzwahlrufnummern zugeordnet...
-
OK, danke, hab meine Config mal so angepasst, bisher läuft es. Zum zweiten Punkt: Es geht nicht darum, dass ich mit dem Besucher über Doorpi spreche, sondern um den Fall, dass ich ein "normales" Telefonat führe und es klingelt parallel an der Haustüre (also unabhängig vom SIP-Call wird ein Gespräch geführt). Dann wird das Telefonat durch den Klingelanruf unterbrochen und nicht wie erwartet nur im Hintergrund angeklopft. Das ist natürlich nicht schön...
-
Ich möchte mich hier einklinken, weil es bei mir anscheinend ein ähnliches Problem ist:
Mein DoorPi klingelt meistens gut, manchmal aber überhaupt nicht, d.h. der SIP-Call wird dann nicht ausgeführt.
Ich betreibe meine Schaltung (GPIO) mit einem Spannungsteiler von VCC gegen GPIO und den Schalter zu Masse und Kondensatoren am GPIO und an VCC zur Entstörung (hat immer geklingelt, wenn Licht eingeschaltet wurde - das ist jetzt gelöst). Ich bin mir nicht sicher, ob das Problem in der Hardwarebeschaltung oder in der Software begründet sein kann, seltsam ist eben das unterschiedliche Verhalten (mal geht, mal geht nicht).Meine Konfig sieht für die GPIO Auswertung wie folgt aus:
[keyboards]
dummy = dummy
prodsystem = gpio[prodsystem_keyboard]
bouncetime = 500
mode = BOARD
polarity = 1
pressed_on_keydown = True
pull_up_down = PUD_UP[prodsystem_InputPins]
16 = Klingel1
18 = Klingel2[EVENT_OnKeyPressed_prodsystem.16]
10 = call:**701[EVENT_OnKeyPressed_prodsystem.18]
10 = call:**702Zusätzliche Frage: Wie kann ich verhindern, dass ein laufendes Gespräch durch das Klingeln unterbrochen (stumm geschaltet) wird? Das ist ziemlich lästig und ich möchte nur ein Anklopfen haben.
Danke und ich hoffe auf eine rege Diskussion...
-
Ein Problem gibt es noch: Anscheinend wird früh der erste Klingelversuch nicht ausgeführt. Jemand hatte (als erster) geklingelt, aber doorpi hat es nicht signalisiert. Wenn ich dann rausgehe und teste, dann geht es. Es scheint also der erste Klingelversuch zu scheitern. Hardware oder Software? Meine Konfig:
Code
Alles anzeigen[AREA_installer] .* = [DoorPi] base_path = /usr/local/etc/DoorPi is_alive_led = last_snapshot = snapshot_path = [DoorPiWeb] indexfile = index.html ip = loginfile = login.html online_fallback = http://motom001.github.io/DoorPiWeb port = 80 public = AREA_public www = !BASEPATH!/../DoorPiWeb [EVENT_OnStartup] 10 = sleep:1 [Group] administrator = door [SIP-Phone] firewallpolicy = PolicyNoFirewall audio_codecs = PCMA,PCMU call_timeout = 15 capture_device = ALSA: default device dialtone = !BASEPATH!/media/ShortDialTone.wav dialtone_renew_every_start = False dialtone_volume = 35 echo_cancellation_enabled = False identity = DoorPi local_port = 5061 max_call_time = 120 playback_device = ALSA: default device record_while_dialing = False records = !BASEPATH!/records/%Y-%m-%d_%H-%M-%S.wav sipphonetyp = linphone sipserver_password = ***** sipserver_realm = fritz.box sipserver_server = 192.168.2.1 sipserver_username = 623 stun_server = ua.max_calls = 2 video_codecs = VP8 video_device = StaticImage: Static picture video_display_enabled = False video_size = vga [User] door = pi [WritePermission] administrator = installer [keyboards] dummy = dummy prodsystem = gpio [prodsystem_keyboard] bouncetime = 200 mode = BOARD polarity = 0 pressed_on_keydown = True pull_up_down = PUD_UP [prodsystem_InputPins] 16 = Klingel1 18 = Klingel2 [EVENT_OnKeyPressed_prodsystem.16] 10 = call:**701 [EVENT_OnKeyPressed_prodsystem.18] 10 = call:**702
-
Ich habe es so gemacht wie oben beschrieben (Pullup-Prinzip mit Kondensator an GPIO und an 3,3V) und es läuft bisher ohne Störungen.
Endlich kann man wieder Licht einschalten, ohne dass es an der Haustür klingelt (vielleicht könnte man das auch als Feature verkaufen).Vielen Dank!!!
-
Welchen internen Pullup meinst Du? Und warum 5V? Ich hatte bisher die 3,3V genommen und würde die jetzt über den R zum Schalter führen (den Schalter gegen Masse, damit beim Schließen ein sauberes Signal am GPIO steht. Den Kondensator parallel zum GPIO gegen Masse...
-
Hab es jetzt hinbekommen. Leider habe ich noch Störquellen, meine Klingelleitung ist sehr lang und beim Einschalten von Licht klingelt es.
Mein Aufbau ist aktuell mit Pulldown, d.h. ich schalte VCC. Ist es besser, hier Pullup zu verwenden, mit einem 0,1 uF Kondensator zwischen VCC und Masse?
Stimmt hier meine Konfiguration des Keyboards? Die Polarity bezieht sich auf den offenen oder den geschalteten Zustand?[prodsystem_keyboard]
bouncetime = 200
mode = BOARD
polarity = 1
pressed_on_keydown = True
pull_up_down = PUD_UPEs ist der letzte Schritt, wäre super wenn ich noch mal Unterstützung bekommen könnte.
-
So, endlich ist der Sommer vorbei und ich komme wieder dazu, mich mit Doorpi zu beschäftigen. Ich habe das Ganze nochmal neu aufgesetzt, diesmal mit einer anderen Anleitung. Mit dieser wurden mehr Programmteile installiert und es hat auch wesentlich länger gedauert - mal sehen.
Zu Beginn habe ich mit einem Testtool die GPIO am Raspi getestet um sicherzugehen, dass diese korrekt ausgewertet werden. Meinen Pin 16, den ich verwende, konnte ich so prüfen, von der Hardware passt also alles.
Jetzt wollte ich in der doorpi.ini diesen Test machen, also zunächst ohne den SIP-Call, ich möchte nur den Taster auswerten und damit eine einfache Aktion auslösen. Habe dazu den Befehl "log" genommen und in die Config eingetragen (GPIOs habe ich natürlich entsprechend aktiviert):[prodsystem_InputPins]
16 = log:KlingeltestDie Frage ist nun, wo wird der Wert eingetragen? In der doorpi.log finde ich nichts.
Gibt es alternativ noch eine andere Möglichkeit, über die Config den einfachen GPIO Test zu machen? -
So, endlich ist der Sommer vorbei und ich komme wieder dazu, mich mit Doorpi zu beschäftigen. Ich habe das Ganze nochmal neu aufgesetzt, diesmal mit einer anderen Anleitung. Mit dieser wurden mehr Programmteile installiert und es hat auch wesentlich länger gedauert - mal sehen.
Zu Beginn habe ich mit einem Testtool die GPIO am Raspi getestet um sicherzugehen, dass diese korrekt ausgewertet werden. Meinen Pin 16, den ich verwende, konnte ich so prüfen, von der Hardware passt also alles.
Jetzt wollte ich in der doorpi.ini diesen Test machen, also zunächst ohne den SIP-Call, ich möchte nur den Taster auswerten und damit eine einfache Aktion auslösen. Habe dazu den Befehl "log" genommen und in die Config eingetragen (GPIOs habe ich natürlich entsprechend aktiviert):[prodsystem_InputPins]
16 = log:KlingeltestDie Frage ist nun, wo wird der Wert eingetragen? In der doorpi.log finde ich nichts.
Gibt es noch eine andere Möglichkeit, den einfachen GPIO Test zu machen? -
Habe alles mit Jessie nochmal neu aufgesetzt und dann die Config angepasst - es tut sich wie vorher weiter nichts.
Kann es sein, dass es zwischen den beiden Anleitungen Unterschiede gibt. In der aus dem Wiki:
https://github.com/motom001/DoorPi/wiki/Installationwird die Installation unter /home/DoorPI/doorpi angelegt, mit anderen Verzeichnissen als in der hier beschriebenen:
Anleitung Pi2 + Jessie (Release 2016-02-26) mittels PyPi
Hier landet die Installation im usr/local/etc Verzeichnis
Was ist denn die bevorzugte Variante?
-
Nachdem ich nicht sicher bin, ob ich überhaupt die richtigen Voraussetzungen auf dem Raspi habe, möchte ich das Ganze Projekt doch nochmal neu aufsetzen. Es gibt ja doch unterschiedliche Konfigurationen und ich habe das Gefühl, dass die Basiseinstellungen bei mir anders sind und eine Fehlersuche somit schwer bis unmöglich wird.
Welche Grundkonfiguration ist empfohlen oder erforderlich, damit doorpi installiert werden kann? Aus der Installationsanleitung kommt das nicht so genau hervor. Ich habe einen Raspi 2 mit DietPi, vielleicht fehlt da ja noch etwas...
-
Code
Alles anzeigen[AREA_installer] .* = [AdminNumbers] **610 = active **622 = active **623 = active **624 = active [DoorPi] base_path = /usr/local/etc/DoorPi eventlog = !BASEPATH!/conf/eventlog.db is_alive_led = last_snapshot = snapshot_path = [DoorPiWeb] indexfile = index.html ip = loginfile = login.html online_fallback = [url]http://motom001.github.io/DoorPiWeb[/url] port = 80 public = AREA_public www = !BASEPATH!/../DoorPiWeb [EVENT_OnKeyPressed_prodsystem.16] 10 = call:**622 [EVENT_OnStartup] 10 = sleep:1 [Group] administrator = door [SIP-Phone] firewallpolicy = PolicyNoFirewall audio_codecs = PCMA,PCMU call_timeout = 30 capture_device = ALSA: default device dialtone = !BASEPATH!/media/ShortDialTone.wav dialtone_renew_every_start = False echo_cancellation_enabled = False identity = DoorPi local_port = 5061 max_call_time = 130 playback_device = ALSA: default device record_while_dialing = False records = !BASEPATH!/records/%Y-%m-%d_%H-%M-%S.wav sipphonetyp = linphone sipserver_password = Password sipserver_realm = fritz.box sipserver_server = 192.168.2.1 sipserver_username = 623 stun_server = ua.max_calls = 2 video_codecs = VP8 video_device = StaticImage: Static picture video_display_enabled = False video_size = vga [User] door = pi [WritePermission] administrator = installer [keyboards] prodsystem = gpio [prodsystem_InputPins] 16 = Klingel1 [prodsystem_keyboard] bouncetime = 200 mode = BOARD polarity = 1 pressed_on_keydown = True pull_up_down = PUD_UP
In einem weiteren Versuch habe ich
[prodsystem_InputPins]
16 = Klingel1gegen
[prodsystem_InputPins]
16 = call:**622ersetzt, denn so steht es auch in der offiziellen Anleitung zur Konfiguration. Auch das bringt keine Änderung.
-
Mittlerweile habe ich die GPIOs am Laufen, allerdings wird der Kontakt noch nicht ausgewertet. Anscheinend gibt es ein Problem mit der Definition Klingel1, die ich in der ini eingetragen habe. In der Logdatei ist folgendes zu finden:
File "/usr/local/lib/python2.7/dist-packages/doorpi/action/base.py", line 64, in from_string
return importlib.import_module('doorpi.action.SingleActions.'+action_name).get(
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named Klingel1 -
also das mit den Pins check ich immer noch nicht. Du verwendest hier auch 29, ich habe den GPIO 23 in Verwendung, der Hardwaremäßig auf Pin 16 der Steckerleiste liegt. Woher kommt bei Dir der Pin 29 (EVENT_OnKeyPressed_prodsystem.29) ?
https://www.elektronik-kompend…/raspberry-pi/1907101.htm
--> Aah, das ist ein anderer Raspberry-Typ, okay...
-
Danke für Eure Beiträge, nur nochmal zum Verständnis: Ich möchte kein Pins auslösen (daher keine Output Pins), sondern mit einem Input Pin eine Aktion anstoßen. Das mit dem wiringpi werde ich mir ansehen und testen. Dann kann ich gerne einen neuen Thread eröffnen, denn ich denke das ist auch für andere interessant.
-
Noch eine Idee: Kann es sein, dass das GPIO Interface nicht aktiv ist bei mir? Dann würde natürlich auch nichts passieren. Kann man das prüfen?
-
Ich sehe schon, da haben wir eine richtige Herausforderung
Meine Config sieht inzwischen so aus, und ich habe alles schrittweise eingebaut und getestet. Was mir aufgefallen ist, dass die Reihenfolge der Befehle wild durcheinander ist.
Kann man mit dem Dummy Keyboard auch die GPIO Eingänge simulieren, also ohne die Hardware anzuschließen?
Und könnte mal jemand seine Config posten, die funktioniert, vielleicht ist es nur eine Kleinigkeit, aber ist halt schwer zu debuggen...[AREA_installer]
.* =[AdminNumbers]
**610 = active
**622 = active
**623 = active
**624 = active[DoorPi]
base_path = /usr/local/etc/DoorPi
eventlog = !BASEPATH!/conf/eventlog.db
is_alive_led =
last_snapshot =
snapshot_path =[DoorPiWeb]
indexfile = index.html
ip =
loginfile = login.html
online_fallback = http://motom001.github.io/DoorPiWeb
port = 80
public = AREA_public
www = !BASEPATH!/../DoorPiWeb[EVENT_OnKeyPressed_prodsystem.16]
10 = call:**622[EVENT_OnStartup]
10 = sleep:1[Group]
administrator = door[SIP-Phone]
firewallpolicy = PolicyNoFirewall
audio_codecs = PCMA,PCMU
call_timeout = 15
capture_device = ALSA: default device
dialtone = !BASEPATH!/media/ShortDialTone.wav
dialtone_renew_every_start = False
echo_cancellation_enabled = False
identity = DoorPi
local_port = 5061
max_call_time = 15
playback_device = ALSA: default device
record_while_dialing = False
records = !BASEPATH!/records/%Y-%m-%d_%H-%M-%S.wav
sipphonetyp = linphone
sipserver_password = Hier steht das Passwort
sipserver_realm = fritz.box
sipserver_server = 192.168.2.1
sipserver_username = **623
stun_server =
ua.max_calls = 2
video_codecs = VP8
video_device = StaticImage: Static picture
video_display_enabled = False
video_size = vga[User]
door = pi[WritePermission]
administrator = installer[keyboards]
dummy = dummy
prodsystem = gpio[prodsystem_InputPins]
16 = Klingel1[prodsystem_keyboard]
bouncetime = 200
mode = BOARD
polarity = 1
pull_up_down = PUD_UP -
Habe ich eingetragen, bringt leider nichts. Wofür stehen die ** vor der Nummer? Ich melde mich ja mit der 623 an der Fritzbox an...eigentlich hat doch jeder diese Konfiguration der DoorPi nutzt...:-(