HOW-TO: SIP Intercom mit dem Raspberry Pi ohne Piface
[ATTACH=CONFIG]n101[/ATTACH]
Hallo!!!
ja die SIP Türsteuerung auf dem RPI läuft stabil. Hier ein kurzes How-To:
Raspberry Ein- und Ausgänge:
Taster am GPIO #25 ist die Klingel
Taster am GPIO #24 ist das Licht LED am GPIO #18 zeigt an, ob der Service läuft.
Am USB-Port hängt eine Soundkarte mit Mic-Eingang und Line-Out. Am Line-Out hängt ein Mini-Verstärker, daran ein wasserfester Lautsprecher um am Mic-Eingang ein kleines Mikrofon.
Installation auf dem Raspberry:
RPI updaten, aktuellste Firmware, USB 1.1 statt 2 aktivieren, die USB Soundkarte aktivieren (HDMI Sound deaktivieren)
#!/bin/bash echo "Update:" sudo apt-get update sudo apt-get upgrade echo "Firmware:" uname -a echo "Firmware:" sudo apt-get update sudo apt-get install git sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update sudo chmod +x /usr/bin/rpi-update sudo rpi-update echo "USB 1.1:" echo "dwc_otg.speed=1 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait" > /tmp/cmdline.txt sudo sh -c "cp /tmp/cmdline.txt /boot/" echo "HDMI Sound entfernen:" grep -v "snd-bcm2835" /etc/modules > /tmp/modules sudo mv /tmp/modules /etc/ echo "Neustart:" sudo reboot
Dann hab ich nicht das ganze doorberry Projekt installiert, sondern nur die neueste Version von PJSIP:
#!/bin/bash echo "Dependencies" sudo apt-get install alsaplayer-alsa python2.7-dev python-daemon python-lockfile libv4l-dev libx264-dev libssl-dev libasound2-dev echo "PJSIP" cd wget http://www.pjsip.org/release/2.2/pjproject-2.2.tar.bz2 tar xvfj pjproject-2.2.tar.bz2 cd pjproject-2.2/ ./configure --disable-video --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable- g7221-codec --disable-ilbc-codec echo "PJSIP: use ALSA instead of Portaudio + deactivate conferencing" cat << PJ > pjlib/include/pj/config_site.h #define PJMEDIA_AUDIO_DEV_HAS_ALSA 1 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 #define PJMEDIA_CONF_USE_SWITCH_BOARD 1 PJ make dep && make sudo make install echo "PJSIP Python" cd pjsip-apps/src/python make sudo make install
Das make dauert Ewigkeiten, nicht wundern...
Conferencing habe ich übrigens deaktiviert, da das die CPU vom RPI schont, bessere Latenz nach sich zieht und ich es sowieso nicht brauche.
In der Zwischenzeit kann die Loxone Seite angegangen werden:
Loxone Programmierung
Mein Raspberry hat die IP Adresse 192.168.178.103, mein Miniserver die IP 192.168.178.2 also folgendes in der Türsteuerung eintragen:
Doorberry!!!-tarsteuerung.png
Dann eine Virtuellen UDP Eingang erstellen (Empfangsport 7000) und zwei Virtuelle UDP Eingang Befehle (einer fürs Licht, einer für den Gong)
Doorberry!!!-udp-licht.pngDoorberry!!!-udp-gong.png
Damit wird dann die Türsteuerung getriggert:
Doorberry!!!-udp-tarsteuerung.png
Service:
Zuletzt dann einen Service auf dem Raspberry, der zum einen prüft, ob eine Taste gedrückt wurde und wenn ja einen UDP Befehl an den Homeserver schickt und zum anderen einen SIP Client
bereitstellt, der die Anrufe, die von der Loxone Türsteuerung oder anderen SIP Clients kommen automatisch annimmt.
Hierzu die angefügte ZIP Datei sip_intercom.zip nach /home/pi/ kopieren und den Service installieren:
sip_intercom.zip
#!/bin/bash echo "copy service to init.d" sudo cp sip_intercom/service/sip_intercom /etc/init.d/ echo "make files executable" sudo chmod +x /etc/init.d/sip_intercom sudo chmod +x /home/pi/sip_intercom/sip/sip_intercom sudo chmod +x /home/pi/sip_intercom/sip/sip.py echo "init the service" sudo update-rc.d sip_intercom start 10 2 3 4 5 sudo update-rc.d sip_intercom stop 10 0 1 6 [U]#Die Logik steckt in dem Python Skript /home/pi/sip_intercom/sip/sip.py. Dort kann man weitere Taster hinzufügen oder auch den Empfänger der UDP Pakete, also die IP des Miniservers ändern.[/U] #Mit diesen Kommandos wird der Service gestartet und gestoppt: #sudo /etc/init.d/sip_intercom start #sudo /etc/init.d/sip_intercom stop #sudo /etc/init.d/sip_intercom restart #Logdateien landen hier: #nano /home/pi/sip_intercom/sip_intercom.log
Viel Spaß beim basteln und programmieren....
[ATTACH=CONFIG]n102[/ATTACH] [ATTACH=CONFIG]n99[/ATTACH] [ATTACH=CONFIG]n103[/ATTACH]
sip_intercom.zip
Edit: Bei mir läuft das System stabil seit über 2 Jahren! Dennoch muss ich zugestehen, das diese Version vielleicht nicht mehr Stand der Technik ist!
der DoorPi ist ein ganz anderes Kaliber!😆
Kommentar