- Mitglied seit
- 24 Jan 2013
- Beiträge
- 14,210
- Punkte für Reaktionen
- 590
- Punkte
- 113
Hallo Allerseits
Nachdem ich meinen Raspberry Pi mit OpenELEC (XBMC) installiert habe, kam mir folgender Gedanke:
Ist es möglich, eingehende Anrufe der Fritz!Box, sich auf dem XBMC des Raspberrys anzeigen zu lassen?
Also gegooglet und recherchiert.
Die einhellige Antwort auf meine Frage lautet:42 JSON-RPC API
Nun, kannte ich noch nicht, also weiter schlau machen...gogledigoogledei...
Aktiveren der JSON-RPC API
1. In XBMC Einstellungen --> Dienste --> Webserver aktivieren.
2. Im Browser testen obs läuft: http://openelec_IP/jsonrpc (Sollte ein Klassenbaum aller unterstützten Kommandos liefern)
3. Dann funktioniert auch das hier
XBMC Notify Fenster: Wobei message auf höchstens zwei Zeilen ausgegeben werden kann. Beispiel: "message":"Zeile1: Please Reboot\nZeile2: When Ready To Update"
4. Funktioniert, eingeloggt auf dem XBMC via ssh auch dies...
5. Braucht man sich nur noch darum zu kümmern, auf der Fritz!Box, /var/calllog ein angepasstes Skript ausführen zu lassen.
6. curl braucht die Fritz!Box natürlich auch, in der MIPS*Anhang anzeigen curl.zip/MIPSEL Version passend zur Box.
7. /var/tmp/calllog.sh erstellen, mit folgenden Inhalt:
8. Einen Softlink erstellen: ln -sf /var/tmp/calllog.sh /var/calllog
9. Eventuell /var/flash/calllog aktivieren: echo "" > /var/flash/calllog
10. Fertig, testen indem man sich selber anruft und dabei auf den XBMC Screen schaut.
(Zum Debuggen mal cat /var/tmp/calllog.log eintippen)
Bekannte Ein/Beschränkung: Das calllog.sh Skript verträgt keine Leerzeichen im title/message Parameter.
Hier wäre jeder Tip zur Lösung dieses Problems sehr willkommen.
Anhang anzeigen curl.zip
*MIPS Version curl.zip in curl umbenennen und ausführbar machen (chmod +x curl).
Nachdem ich meinen Raspberry Pi mit OpenELEC (XBMC) installiert habe, kam mir folgender Gedanke:
Ist es möglich, eingehende Anrufe der Fritz!Box, sich auf dem XBMC des Raspberrys anzeigen zu lassen?
Also gegooglet und recherchiert.
Die einhellige Antwort auf meine Frage lautet:
Nun, kannte ich noch nicht, also weiter schlau machen...gogledigoogledei...
Aktiveren der JSON-RPC API
1. In XBMC Einstellungen --> Dienste --> Webserver aktivieren.
2. Im Browser testen obs läuft: http://openelec_IP/jsonrpc (Sollte ein Klassenbaum aller unterstützten Kommandos liefern)
3. Dann funktioniert auch das hier
Code:
http://[B][COLOR="#FF0000"]USER:PASSWORD@openelec_IP[/COLOR][/B]/jsonrpc?request={"id":1,"jsonrpc":"2.0","method":"GUI.ShowNotification","params":{"title":"Update Available","message":"Please Reboot When Ready To Update","displaytime":8000}}
4. Funktioniert, eingeloggt auf dem XBMC via ssh auch dies...
Code:
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"id":1,"jsonrpc":"2.0","method":"GUI.ShowNotification","params":{"title":"Update Available","message":"Please Reboot When Ready To Update","displaytime":8000}}' http://USER:PASSWORD@localhost:80/jsonrpc
6. curl braucht die Fritz!Box natürlich auch, in der MIPS*Anhang anzeigen curl.zip/MIPSEL Version passend zur Box.
7. /var/tmp/calllog.sh erstellen, mit folgenden Inhalt:
Code:
#!/bin/sh
# Variablen
METHOD='gui.shownotification'
TITLE="$1"
MESSAGE="$3"
# Pfad (auf XBMC Seite) zu einem Icon, welches zusammen mit der Nachricht angezeigt wird.
[COLOR="#FF0000"]IMAGE='/storage/.xbmc/addons/script.xbmc-pbx-addon/icon.png'[/COLOR]
# Anzeigedauer
DISPLAYTIME=15000
PARAMS='{"title":"'${TITLE}'","message":"'${MESSAGE}'","image":"'${IMAGE}'","displaytime":'$DISPLAYTIME'}'
DATA='{"jsonrpc":"2.0","method":"'$METHOD'","params":'$PARAMS',"id":1}'
URL='http://[COLOR="#FF0000"][B]USER:PASSWORD[/B][/COLOR]@openelec:80/jsonrpc'
# Kommando
TRY_IT=$([COLOR="#FF0000"]/var/media/NEW_LINK/curl[/COLOR] -s -X POST -H "Accept: application/json" -H "Content-type: application/json" -d $DATA $URL)
#DEBUG
echo -e $0":"$$"<-PID->"$! $#" Argumente\n1="$1"\n2="$2"\n3="$3"\n4="$4"\n5="$5"\n6="$6"\n7="$7"\n8="$8"\n9="$9"\nJSON:"$TRY_IT >> [COLOR="#FF0000"]/var/tmp/calllog.log[/COLOR]
9. Eventuell /var/flash/calllog aktivieren: echo "" > /var/flash/calllog
10. Fertig, testen indem man sich selber anruft und dabei auf den XBMC Screen schaut.
(Zum Debuggen mal cat /var/tmp/calllog.log eintippen)
Bekannte Ein/Beschränkung: Das calllog.sh Skript verträgt keine Leerzeichen im title/message Parameter.
Hier wäre jeder Tip zur Lösung dieses Problems sehr willkommen.
Anhang anzeigen curl.zip
*MIPS Version curl.zip in curl umbenennen und ausführbar machen (chmod +x curl).
Zuletzt bearbeitet: