Seite 3 von 15

Re: DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 07.08.2017, 09:55
von mikewolf99
Hallo,
@Indigo
finde leider nicht wirklich ne Dok über die Web Befehle, früher gabs ne Befehlsrefenz diese finde ich leider nicht mehr ?!
@Thorsten
wäre Super wenn Du dies machen würdest !!

kann mir wer erklären wie ich dies Abfragen bzw steuern kann per web ?!
####################### Virtual keyboard #######################
[webservice_keyboard]
base_path_input = /home/doorpi/keyboard/inputs/
base_path_output = /home/doorpi/keyboard/outputs/
reset_input=false

mfg
mikewolf

Re: DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 07.08.2017, 11:56
von dtp
mikewolf99 hat geschrieben: @Thorsten
wäre Super wenn Du dies machen würdest !!
Hab schon einige Dinge zu den entsprechenden Posts hinzugefügt.

Gruß,

Thorsten

Re: DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 08.08.2017, 22:54
von mikewolf99
Hallo Thorsten,

danke für Deine Infos ,

werde am We probieren am Projekt weiter zu arbeiten und Deine Tipps umzusetzen,


Mit freundlichen Grüßen
mikewolf

DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 09.08.2017, 13:39
von mikewolf99
Hallo Thorsten,
Noch ne frage wie kann ich von pc aus Zustände des Doorpi abfragen bzw setzten ?
Finde auch im Doorpi Forum nichts und die Resonanz ist eher bescheiden .
Vom Doorpi ausschalten ist kein
Problem
Eines noch für die virtuelle. Tasten wird ein Pfad in der door.ini angegeben , sollte dort ne Datei sein und wenn ja wie soll diese aussehen
Auch hier lässt mich das Wiki im Stich

Mit besten Dank im Voraus
Mike


Gesendet von iPhone mit Tapatalk

Re: DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 09.08.2017, 14:58
von dtp
Hallo Mike!
mikewolf99 hat geschrieben: Noch ne frage wie kann ich von pc aus Zustände des Doorpi abfragen bzw setzten ?
Hier mal ein Beispiel zur direkten Ansteuerung des PiFace-Moduls per Browser.

In meiner doorpi.ini habe ich die Ein- und Ausgänge meines PiFace-Moduls folgendermaßen konfiguriert:

Code: Alles auswählen

[keyboards]
onboardpins = piface
virtual = filesystem

[onboardpins_InputPins]
0 = Klingel
1 = Briefkasten-Klappe
2 = Briefkasten-Tuer
3 = Briefkasten-Status
4 = Licht
5 = Briefkasten-Sabotage
6 = Tueroeffner
7 = Auflegen

[onboardpins_OutputPins]
0 = Verstaerker
1 = Tueroeffner
2 = Briefkasten-Status-LED
7 = DoorPi-Alive-LED
Mit folgenden Befehlen ist es mir nun möglich, die Eingänge zu simulieren und ggf. die Ausgänge zu schalten:

Code: Alles auswählen

# Laufender Betrieb von DoorPi
# Klingel simulieren
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.0&event_source=doorpi.keyboard.from_piface

# Briefkasteneinwurf simulieren
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.1&event_source=doorpi.keyboard.from_piface

# Briefkastenleerung simulieren
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.2&event_source=doorpi.keyboard.from_piface

# Abfrage Briefkastenstatus simulieren
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.3&event_source=doorpi.keyboard.from_piface

# Haustürlicht einschalten
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.4&event_source=doorpi.keyboard.from_piface

# Sabotage Briefkasten-Serviceklappe simulieren
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.5&event_source=doorpi.keyboard.from_piface

# Türöffner aktivieren
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.6&event_source=doorpi.keyboard.from_piface

# DoorPi-Anruf beenden
http://192.xxx.xxx.xxx:80/control/trigger_event?event_name=OnKeyPressed_onboardpins.7&event_source=doorpi.keyboard.from_piface

Mit

Code: Alles auswählen

# Liste aller aktuellen Events
http://192.xxx.xxx.xxx:80/dashboard/pages/status.modules.eventhandler.html
kann ich zudem sämtliche Events abfragen.
mikewolf99 hat geschrieben: Eines noch für die virtuelle. Tasten wird ein Pfad in der door.ini angegeben , sollte dort ne Datei sein und wenn ja wie soll diese aussehen
Ehm, redest Du jetzt vom virtuellen Filesystem? Das habe ich bei mir in der doorpi.ini so konfiguriert:

Code: Alles auswählen

[keyboards]
onboardpins = piface
virtual = filesystem
...
[virtual_keyboard]
base_path_output = /usr/local/etc/DoorPi/filesystem/outputs/
base_path_input = /usr/local/etc/DoorPi/filesystem/inputs/

[virtual_InputPins]
briefkastenstatus = out:Briefkasten-Status-LED,1,0,6
Die Briefkasten-Status-LED steuere ich nun über den Befehl

Code: Alles auswählen

echo true > /usr/local/etc/DoorPi/filesystem/inputs/briefkastenstatus
wobei sich im Verzeichnis "/usr/local/etc/DoorPi/filesystem/inputs" lediglich eine leere Datei mit dem Namen "briefkastenstatus" ohne weitere Endung befindet, die dann einfach mit "true" gefüllt wird.

Hoffe, das hilft Dir weiter.

Gruß,

Thorsten

9. Steuerung von DoorPi-Events per SIRI

Verfasst: 13.08.2017, 14:15
von dtp
Die Einrichtung der Homebridge auf einem Raspberry Pi für die HomeMatic wurde ja hier von thkl sehr gut beschrieben und umgesetzt.

Zusätzlich muss man jetzt nur noch das homebridge-http-simple-switch-Plugin mit dem Befehl

Code: Alles auswählen

sudo npm install -g homebridge-http-simple-switch
installieren und die config.json entsprechend konfigurieren. Dazu einfach unter accessories die folgenden Codezeilen einfügen

Code: Alles auswählen

"accessories": [{
  "accessory": "SimpleHttpSwitch",
  "name": "Türöffner",
  "url": "http://<DoorPi-User>:<DoorPi-Passwd>@<DoorPi-URL>:<Port>/control/trigger_event?event_name=OnKeyPressed_onboardpins.<PiFace-Eingang gem. doorpi.ini>&event_source=doorpi.keyboard.from_piface",
  "default_state_off": true, 
  "sendimmediately": "",
  "http_method": "GET"
}],
wobei "<DoorPi-User>" und "<DoorPi-Passwd>" die Anmeldedaten für den DoorPi bezeichnen (die Default-Werte für DoorPi-User und DoorPi-Passwd lauten "door" und "pi") und "<DoorPi-URL>" und "<Port>" die IPv4-Adresse des Raspis, auf dem der DoorPi läuft, sowie den zugehörigen Port (in der Regel 80 oder 8080) bezeichnen.

Da ich bei mir den Türöffner über ein Relais des PiFace-Moduls ansteuere, das in der doorpi.ini über Eingang "6" angesteuert wird, müsste ich in obiger Codeseqenz "<PiFace-Eingang gem. doorpi.ini>" noch einfach durch eine 6 ersetzen. Nun kann nach einem Neustart der homebridge der Türöffner einfach mit "Hey SIRI, schalte den Türöffner" geöffnet werden.

Leider hat aber das homebridge-http-simple-switch-Plugin den kleinen Nachteil, dass das zugehörige Schaltersymbol in der Home App immer zwischen an und aus toggelt, obwohl es sich eigentlich nur um einen Taster handelt. Bisher habe ich hierfür noch keine Lösung gefunden. Allerdings schränkt das Problem die Funktionsweise nicht ein.

Hier übrigens noch eine Übersicht meiner config.json aus dem homebridge-config-ui-Plugin:
Homebridge_configjson.png
Dieses Plugin ist aber lediglich ein "Nice to Have" und daher für den Betrieb der Homebridge optional.

Gruß,

Thorsten

10. Umleiten von Gesprächen bei Abwesenheit

Verfasst: 15.08.2017, 14:53
von dtp
Ich lasse mir ja per Telegram eine Push-Nachricht inkl. Bild auf mein Handy zusenden, wenn es an der Haustür geklingelt hat. Nun kann es aber auch interessant sein, Gespräche mit dem DoorPi über das Handy zu führen, wenn man nicht zuhause ist.

Auch dafür bietet der DoorPi eine Möglichkeit, nämlich mit dem kleinen Kommando "file_call_value:", das an entsprechender Stelle und mit entsprechendem Datei-Link versehen in die doorpi.ini einzufügen ist.

Maßnahmen im DoorPi

Zunächst muss im Verzeichnis "/usr/local/etc/DoorPi" eine Datei (z.B. "rufumleitung.txt") angelegt werden, in die die anzurufende Rufnummer eingetragen wird.

Code: Alles auswählen

sudo nano /usr/local/etc/DoorPi/rufumleitung.txt

Bei mir ist das die in der FRITZ!Box hinterlegte Nummer 11 für den Gruppenruf der SIP-Türsprechanlage. Nano anschließend mit "Strg-X" und "J" beenden und der Datei "rufumleitung.txt" mit

Code: Alles auswählen

sudo chmod 777 /usr/local/etc/DoorPi/rufumleitung.txt

die notwendigen Ausführungs-, Schreib- und Leserechte verpassen.

In der doorpi.ini wird nun der Befehl

Code: Alles auswählen

[EVENT_OnKeyPressed_onboardpins.0]
10 = call:xxxxx
ersetzt durch

Code: Alles auswählen

[EVENT_OnKeyPressed_onboardpins.0]
10 = file_call_value:/usr/local/etc/DoorPi/rufumleitung.txt
Das war's auch schon.

Maßnahmen auf der CCU

Auf der CCU sollte CUxD installiert und das Gerät "CUxD.CUX2801001:1.CMD_EXEC" eingerichtet sein. Hier eine Kurzanleitung zur Einrichtung des CUxD-Geräts:
  1. Unter CUxD-Gerätetyp das Gerät "(28) System-Exec" auswählen und den Rest am besten unverändert lassen (Seriennummer: 1, etc.).
  2. Anschließend auf "Gerät auf CCU erzeugen!" klicken.
  3. Danach in WebUI in den Posteingang für neue Geräte gehen und den neuen Gerätetyp bestätigen.
  4. Zur Sicherheit CCU neu booten.
Weitere Informationen zum Thema findet ihr an dieser Stelle. Wer mag, kann dem Gerätetyp unter Geräte auch noch einen neuen Namen geben. Bei mir heißt er z.B. "CCU CUxD Exec" bzw. der entsprechende Kanal 1 "CCU CUxD Exec 1". Das ist aber nicht notwendig. Man kann den Eintrag auch unverändert lassen, da der Aufruf stets mit dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC") erfolgt, also unabhängig vom vergebenen WebUI-Namen ist.

Damit nun automatisch zwischen internem und externen Ruf umgeschaltet werden kann, empfiehlt sich das Beschreiben der obigen Datei "rufumleitung.txt" z.B. in Abhängigkeit von einer Änderung des Anwesenheitszustands. Zudem muss die CCU die notwendigen Rechte erhalten, um auf die Datei "rufumleitung.txt" zugreifen zu können.

Falls ihr noch eine CCU2 oder älter habt, sollte als erstes das Addon "ssh-keydir" unter Zusatzsoftware installiert werden. Dieses findet sich z.B. hier zum Download. Nach der Installation von "ssh-keydir" einen Neustart der CCU durchführen. Für die CCU3 ist "ssh-keydir" obsolet, da dessen Funktionalität bereits integriert ist. Anschließend ist es notwendig, sich als root auf der CCU einzuloggen und folgende Kommandos einzeln nacheinander auszuführen:

Code: Alles auswählen

1. mount -o remount,rw /
2. ssh-keygen -b 2048 -t rsa
3. Nach Hinweis "Enter file in which to save the key (/root/.ssh/id_rsa):" Return drücken 
4. Nach Hinweis "Enter passphrase (empty for no passphrase):" Return drücken
5. Nach Hinweis "Enter same passphrase again:" Return drücken
6. cat /root/.ssh/id_rsa.pub | ssh pi@<IP-Adresse des DoorPi> 'cat >>/home/pi/.ssh/authorized_keys'
wobei "<IP-Adresse des DoorPi>" mit der IP des DoorPi (z.B. 192.168.0.20) zu ersetzen ist. Abschließend wird man noch nach dem Passwort für die Shell des DoorPi gefragt. Nun ist die CCU in der Lage, ohne weitere Passwort-Abfrage die Datei "rufumleitung.txt" auf dem DoorPi-Raspberry zu beschreiben.

Als nächstes wird ein kleines WebUI-Programm auf der CCU erstellt, dass in Abhängigkeit von einer Änderung der Anwesenheits-Systemvariablen ausgeführt wird.
EG Briefkasten PRG LBoxPi Rufumleitung.PNG
In diesem Programm wird jeweils ein kleines Skript bei Änderung auf An- oder Abwesenheit mit folgendem Inhalt aufgerufen:

Code: Alles auswählen

! Rufumleitung DoorPi bei Anwesenheit
! Version 1.0, Autor: dtp

! Telefonnummer, auf die DoorPi-Anrufe bei Anwesenheit umgeleitet werden
string phone = "11"; ! z.b. Rufnummer für die Gruppenfunktion der SIP-Türsprechanlage

! Einwahldaten des DoorPi
string login = "pi@192.xxx.xxx.xxx";

! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("echo "#phone#" | ssh "#login#" 'cat > /usr/local/etc/DoorPi/rufumleitung.txt'");

Code: Alles auswählen

! Rufumleitung DoorPi bei Abwesenheit
! Version 1.0, Autor: dtp

! Telefonnummer, auf die DoorPi-Anrufe bei Abwesenheit umgeleitet werden
string phone = "0123456789"; ! eigene Handynummer

! Einwahldaten des DoorPi
string login = "pi@192.xxx.xxx.xxx";

! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("echo "#phone#" | ssh "#login#" 'cat > /usr/local/etc/DoorPi/rufumleitung.txt'");
Gruß,

Thorsten

Re: DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 09.01.2018, 21:17
von Alexxx2005
Hey Thorsten,

tolles Projekt hast du fertig gestellt !

das Piface sollte noch extra aktiviert werden ?

Unter :

https://www.element14.com/community/thr ... hread=true

ist etwas beschrieben aber leider bekommt man da nur
Fehlermeldungen , nach welcher Anleitung hast du es
installiert / konfiguriert ?

Viele Grüße Alex

Re: DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 10.01.2018, 08:46
von dtp
Hi Alex,

eigentlich brauchst Du nur unter raspi-config das SPI auf "Enabled" setzen. Dann sollte das PiFace 2 entsprechend nutzbar sein.

Ich hatte ja eingangs geschrieben, dass das PiFace-Modul aktuell nicht von Raspbian Stretch unterstützt wird. Da scheint es nun aber wohl einen Workaround zu geben. Hier gibt's näher Infos dazu. Unter Raspbian Jessie musst du ansonsten eigentlich nichts weiter machen.

Gruß,

Thorsten

Re: DoorPi-Videotürsprechanlage und HomeMatic

Verfasst: 13.01.2018, 00:05
von Alexxx2005
Hallo Thorsten,

danke der Link hat mir geholfen , nun ist es möglich über

Code: Alles auswählen

{Event_OnKeyPressed_onboardpins.6}


Eingänge zu schalten.

Finde es schade das die Befehlserklärung etwas mager ist :
https://github.com/motom001/DoorPi/wiki/Configfile
hat mir zwar weitergeholfen trotzdem sind mir noch paar Sachen
unklar vielleicht kannst du mir da weiterhelfen:

- Was bedeutet der Area Installer und muss man da etwas eintragen
- Welche Bedeutung haben die Ziffern in deinem Beispiel hinter
Türöffner oder Briefkasten

und zu guter letzt das eintragen der Handynummer in der Text Datei
funktioniert nicht, die Text Datei ist angelegt und die Rechte vergeben,
eine SSH Verbindung wurde eingerichtet und über "ssh @192.168.**" die
Verbindung hergestellt und die Maßnahmen auf der Raspberrymatic anhand
deinen Befehlen eingetragen, bei id_rsa , passphrase habe ich 3x Enter gedrückt.
Sobald ich aber die Variable auf True oder False ändere wird meine Text Datei
beim DoorPi nicht geändert.

Skript habe ich das von Dir getestet oder

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801010:1.CMD_EXEC").State("echo +49171XXXX | ssh pi@192.168.XXX.XXX 'cat > /usr/local/etc/DoorPi/rufumleitung.txt'");
Habe ich noch etwas vergessen oder geht das bei Raspberrymatic anders ?

VIele Grüße Alex