Plattformunabhängige Software Fernbedienung - Betatest

Moderators: Support Team Germany, Support Coordinator

Plattformunabhängige Software Fernbedienung - Betatest

Postby Tungdil » 18.04.2008, 21:29

Hallo.

Ich habe seit zwei Tagen einen MusicPal und fand die Idee von Telekommander Klasse eine Softwarefernbedienung zu haben, da mein MusicPal auch einige Meter von meinem Computer entfernt ist. Allerdings benutze ich Linux und Mac OS, daher war Telekommanders Fernbedienung für mich leider nicht geeignet.

Ich habe mir also selber eine Softwarefernbedienung programmiert, die auf Python und Tkinter bassiert und somit plattformunabhängig ist.

Ist natürlich noch in einem sehr frühen Stadium und sieht nicht besonders gut aus. Aber es funktioniert. Wäre schön, wenn das jemand testen könnte. :)

Folgendes ist bereits fertig:
- Play / Pause
- Skip
- Lautstärke rauf / runter / mute
- Titelanzeige
- Zeitanzeige
- deutsche und englische Oberfläche

Getestet habe ich das bereits unter Linux (Ubuntu Gutsy) und Mac OS X (10.5). Funktionieren sollte es auf allen Plattformen, für die es einen Python-Interpreter und Tkinter gibt. Darunter sind auch Handys und PocketPCs.

Systemvoraussetzungen:
Unter MacOS X (ab 10.4) sind keine zusätzlichen Installationen erforderlich. Unter Linux müssen Python und Tkinter (Unter Ubuntu heißt das Paket "python-tk".) installiert sein.
Zu Windows kann ich noch nichts sagen, aber auch hier sollte die Installation von Python und Tkinter genügen. Dazu gibt es offenbar einen entsprechenden Installer. http://tkinter.unpy.net/wiki/How_20to_20install_20Tkinter

Zur Installation:
Einfach das Archiv entpacken und dann die config.xml in einem Texteditor öffnen und die Einträge für IP, Passwort und Sprachdatei ("german.xml" oder "english.xml" anpassen.

Starten des Programms
Im Terminal / auf der Konsole / in der Eingabeaufforderung in das PalRemote-Verzeichnis wechseln und dort "python main.py" eingeben.

Download
http://www.spittank.net/PalRemote.tar.gz

Die ganze Prozedur wird später sicher noch einfacher... ;-)

Das Programm steht übrigens unter der GPL v3.

Grüße, Tungdil
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Funktioniert, danke!

Postby orrilino » 19.04.2008, 22:01

Bei mir läuft's super (Ubuntu 7.10), sehr cool, das habe ich gebraucht! Nur, ich habe zuerst nicht gecheckt, wo ich bei Deinem Programm die Lautstärke rauf und runter etc. einstellen kann (jetzt wo ich es weiss, ist es schon logisch, aber Du musst es wohl mal irgendwo erst mal sagen): Im Webinterface des MusicPals, unter "Sie hören gerade". Vielen Dank, und mach' ruhig weiter damit! Orri
orrilino
 
Posts: 1
Joined: 14.12.2007, 18:50

Postby Tungdil » 20.04.2008, 07:40

Hmmm... eigentlich sollten da drei Schaltflächen im Programmfenster sein für die Lautstärke (Mute, Leiser und Lauter). Außerdem sollten im Programmmenü entsprechende Einträge unter "Steuerung" bzw. "Controls" sein.

Ist aber egal. In der Version, an der ich gerade bastele, habe ich die Schaltflächen durch einen mit dem MusicPal synchronisierten Schieberegler ersetzt. ;-)

Ich werde die geänderte Version bald hochladen.
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Postby telekommander » 20.04.2008, 10:23

Das freut mich, das ich auch mal der Inspirationsgeber bin.

Interessant, du synchronisierst den Lautstärkeregler mit dem M.Pal ?
"Grabbst" du dazu den aktuellen Zustand aus dem Quellcode vom Webinterface ?

Hast du es geschafft den M.Pal aus dem Standby Modus ( Ruhezustand) zu holen ?
Durch Abspielen eines Favoriten über die Parameter &a=p&i=0 , wird der M.Pal zum Leben zu erweckt, bleibt aber eigentlich im Standby.
( 0 entspricht dem ersten Favoritem in der Liste )


.
telekommander
 
Posts: 19
Joined: 28.12.2007, 16:39

Postby Tungdil » 20.04.2008, 10:42

telekommander wrote:Interessant, du synchronisierst den Lautstärkeregler mit dem M.Pal ?
"Grabbst" du dazu den aktuellen Zustand aus dem Quellcode vom Webinterface ?


Exakt. Ich zähle dazu einfach die "volume_on.gif". Das funktioniert gut.

telekommander wrote:Hast du es geschafft den M.Pal aus dem Standby Modus ( Ruhezustand) zu holen ?


Nein, damit habe ich mich ehrlich gesagt noch nicht beschäftigt. Ich gehe bisher ganz naiv davon aus, dass sich der MusicPal nicht im Ruhezustand befindet und auch sonst keine Fehler auftreten. :roll:

telekommander wrote:Durch Abspielen eines Favoriten über die Parameter &a=p&i=0 , wird der M.Pal zum Leben zu erweckt, bleibt aber eigentlich im Standby.
( 0 entspricht dem ersten Favoritem in der Liste )


Danke für den Hinweis.
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Postby jki » 20.04.2008, 11:26

Tungdil wrote:
telekommander wrote:Hast du es geschafft den M.Pal aus dem Standby Modus ( Ruhezustand) zu holen ?


Nein, damit habe ich mich ehrlich gesagt noch nicht beschäftigt. Ich gehe bisher ganz naiv davon aus, dass sich der MusicPal nicht im Ruhezustand befindet und auch sonst keine Fehler auftreten. :roll:


Diese Skript per TFTP nach /var/www/admin/cgi-bin/ipc_send.cgi geschoben

#!/bin/sh
CMD=`echo $1|grep "cmd="|sed -e 's/.*cmd=\([^&]*\)&*.*/\1/'`
ARGS=`echo $1|grep "args="|sed -e 's/.*args=\([^&]*\)&*.*/\1/;s/\%C2\%A7/§/g;s/\%A7/§/g;s/\%20/ /g'`
if [ "$CMD" != "" ]; then
/bin/ipc_send $CMD "$ARGS"
fi
echo


(und lauffähig gemacht: chmod a+x ipc_send.cgi) und schon kann man per http://1.2.3.4/admin/cgi-bin/ipc_send.cgi?cmd=power_down bzw. power_up den Pal suspendieren oder aufwecken.

Das Skript taugt auch zum Senden von Nachrichten per "cmd=show_list&args=Hallo Welt§Zeile 2".

Tungdil wrote:
telekommander wrote:Durch Abspielen eines Favoriten über die Parameter &a=p&i=0 , wird der M.Pal zum Leben zu erweckt, bleibt aber eigentlich im Standby.
( 0 entspricht dem ersten Favoritem in der Liste )


Danke für den Hinweis.


Wäre cool, auch Tasten für direkte Favoritenwahl zu haben.

Und noch cooler wäre es, wenn sich das Tool in die Taskleiste von Gnome und KDE einhängen könnte... :->

Weiter so!

Jan
jki
 
Posts: 70
Joined: 23.11.2007, 19:35

Postby Tungdil » 20.04.2008, 11:39

Das mit den Messages wußte ich schon und war gerade dabei, das testweise zu implementieren. ;-)

Allerdings mache ich das direkt per Telnet und nicht über den Umweg der Weboberfläche.

Das man den Pal damit auch aufwecken kann, war mir neu, wird aber sofort eingebaut. Danke für den Tipp! :)

jki wrote:
Wäre cool, auch Tasten für direkte Favoritenwahl zu haben.

Und noch cooler wäre es, wenn sich das Tool in die Taskleiste von Gnome und KDE einhängen könnte... :->

Weiter so!

Jan


Man wird sehen, was möglich ist. ;-)

Das Einbinden in die Taskleiste wird erstmal nicht gehen, da es von Tk nicht unterstützt wird. Ich möchte das auch eigentlich nicht im Hauptprogramm haben, da ich das plattformunabhängig halten will.

Es spricht aber nichts gegen plattformabhängige Plugins. Später. ;-)

Grüße, Tungdil
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Postby jki » 20.04.2008, 12:04

Tungdil wrote:Das mit den Messages wußte ich schon und war gerade dabei, das testweise zu implementieren. ;-)

Allerdings mache ich das direkt per Telnet und nicht über den Umweg der Weboberfläche.


Stimmt, erspart das Uploaden des Skripts.

Tungdil wrote:Das man den Pal damit auch aufwecken kann, war mir neu, wird aber sofort eingebaut. Danke für den Tipp! :)

jki wrote:
Wäre cool, auch Tasten für direkte Favoritenwahl zu haben.

Und noch cooler wäre es, wenn sich das Tool in die Taskleiste von Gnome und KDE einhängen könnte... :->

Weiter so!

Jan


Man wird sehen, was möglich ist. ;-)

Das Einbinden in die Taskleiste wird erstmal nicht gehen, da es von Tk nicht unterstützt wird. Ich möchte das auch eigentlich nicht im Hauptprogramm haben, da ich das plattformunabhängig halten will.

Es spricht aber nichts gegen plattformabhängige Plugins. Später. ;-)


Oder ganz anders: die Fernsteuerung als Firefox-Plugin. Ist quasi der Desktop und wäre ebenfalls portabel. Habe allerdings selbst keine Erfahrung mit XUL und kann über den Aufwand nichts aussagen.

Jan
jki
 
Posts: 70
Joined: 23.11.2007, 19:35

Postby Tungdil » 20.04.2008, 12:11

Hmm... Firefox, ist auch eine Idee. Aber das überlasse ich dann lieber jemand anderem. ;-)

So... Deinen Tipp habe ich integriert, es gibt jetzt drei neue Einträge im Tools-Menü: Suspend, Wakeup und Reboot.

Jetzt mache ich noch schnell meine sendMsgBox-Funktion fertig und dann lade ich die aktuelle Version hoch.
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Postby Tungdil » 20.04.2008, 13:15

Neue Version / Änderungen
- main.py ist jetzt ausführbar, unter Linux, Mac OS, etc. reicht also jetzt der Aufruf von "./main.py" im PalRemote-Verzeichnis
- Play-Button passt sein Aussehen an den Status des Pal an (Play/Pause)
- Lautstärke kann jetzt über einen Schieberegler eingestellt werden
- Der Pal kann über das Tools-Menü in den Standby versetzt, wieder aufgeweckt oder komplett neu gestartet werden.
- Kleinere Änderungen an der GUI
- Kommunikation mit dem Pal erfolgt jetzt ausschließlich über die Klasse MpCommm, diese bietet alle Standardfunktionen und lässt sich aus jedem Python-Script aufrufen.
- Die Funktion für das Senden einer Textnachricht befindet sich im Code, ist allerdings noch nicht in die GUI eingebaut.

Beispiel für die Nutzung der MpComm-Klasse

Falls man die GUI nicht benötigt, kann man einzelne Funktionen auch direkt aus einem Python-Script aufrufen (um zum Beispiel einige Funktionen in die Taskleiste zu legen :-) ).

Hier ein Beispiel für die Play/Pause-Funktion

playpause.py
Code: Select all
#!/usr/bin/env python

from mpComm import *

mpc = MpComm("192.168.1.23","admin")

mpc.playPause()


MpComm bietet folgende Standardfunktionen:
- playPause()
- skip()
- volUp()
- volDown()
- volSet(x), x = Lautstärke in Prozent als Ganzzahl
- volMute()
- sendMsgBox(Zeile1, Zeile2)
- suspend()
- wakeup()
- reboot()

Außerdem bietet es die folgenden Funktionen:
- sendCommand(c)
-- Sendet ein Kommando "c" an das Webinterface ("admin.cgi")
- tc.run_atomic_command(c)
-- sendet ein Kommando "c" via Telnet
- getState()
-- Liefert ein assoziatives Array ("Dictionary") mit Statusinformationen
-- Dieses kann via
Code: Select all
state = mpc.getState()
state["x"]
ausgelesen werden, wobei x für einen der folgenden Werte steht:
--- title = Name des Titels, der Station oder "Not Playing".
--- minutes ("0", falls keine UPnP-Wiedergabe)
--- seconds ("00", falls keine UPnP-Wiedergabe)
--- radio = True, falls Internetradio gespielt wird
--- playing = True, falls etwas abgespielt wird
--- volume = Aktuelle Lautstärke

Download
http://www.spittank.net/PalRemote.tar.gz

Viel Spaß damit.
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Neue Features

Postby Tungdil » 26.04.2008, 20:32

Meine Experimente haben einige Fortschritte gemacht. Allerdings wird es noch eine Weile dauern, bis die Ergebnisse in Form einer neuen Version hier auftauchen, da ich im Moment wenig Zeit habe. Weil ich aber schon mehrere Anfragen bzgl. der Unterstützung von Favoriten bekommen habe, möchte ich wenigstens über die Fortschritte informieren.

Folgendes wird in der nächsten Version definitiv möglich sein:

- Favoriten anzeigen und abspielen
- Abspielen beliebiger Stationen oder Dateien nach Eingabe der URL

Außerdem werde ich vermutlich eine Funktion integrieren, die den Austausch der Favoritenliste ermöglicht. Evtl. auch zeitgesteuert.
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Postby nikolaus69 » 29.04.2008, 16:46

hallo,
irgendwie kapier ich das hier nicht! oder läuft das unter windows xp einfach nicht?

1. runtergeladen enpackt
2 config.xml 192.168.1.24 im editor eingetragen und gespeichert
und weiter?
telenet - hab ich leider noch keine erfahrungen!
und was tun mit python oder tkinter
wer kann mir helfen?
würde es auch gerne auf meinem pocketpc testen!
wenn das läuft wäre s genial!

gruß
der nikolaus
nikolaus69
 
Posts: 7
Joined: 10.02.2008, 23:38

Postby Tungdil » 01.05.2008, 20:26

Hallo,

du musst dir Python und Tkinter herunterladen und installieren. Downloads für Windows und einige andere Systeme findest du hier:http://tkinter.unpy.net/wiki/How_20to_20install_20Tkinter

Dort gibt es auch eine Version für Windows CE / Mobile 2003.

Wie der Ablauf auf dem Pocket PC ist, kann ich dir leider nicht sagen. Generell sollte es laufen, aber bisher hat das noch niemand getestet. Wäre interessant, zu erfahren, ob das klappt.

Unter Windows musst du dazu eine Eingabeaufforderung öffnen (Start->Ausführen, dort "cmd" eingeben) und in das Verzeichnis wechseln, in das du die Dateien entpackt hast ("cd C:\Pfad\zu\PalRemote", entsprechend anpassen...) und dort dann den Befehl "python main.py" eingeben. Wahrscheinlich gibt es auch eine Möglichkeit die Python-Dateien direkt aus dem Explorer heraus auszuführen, da ich aber kein Windows benutze, kann ich dazu nichts sagen.

Danach sollte das Programm starten. Allerdings befindet sich im Moment ein Bug in der aktuellen Version, der eventuell das Ändern der Lautstärke verhindert. Alle anderen Funktionen sollten aber funktionieren.

Der Fehler mit der Lautstärke wird in der nächsten Version behoben sein, außerdem wird man damit auf die Favoriten zugreifen können. Die neue Version wird vermutlich am Sonntag fertig werden.
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Neue Version

Postby Tungdil » 02.05.2008, 19:06

Changelog:

- Bugfix: Lautstärkeregler
- Neu: Favoriten anzeigen
- Neu: Favoriten abspielen

Download
http://www.spittank.net/PalRemote-Beta.zip
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Postby Tungdil » 03.05.2008, 09:58

Changelog:

- Neu: Favoriten hinzufügen
- Neu: Favoriten löschen
- Neu: URL abspielen (Auf die Auswerfen-Schaltfläche klicken)
- Neu: Textnachricht an den MusicPal senden (im Werkzeuge-Menü, wird auf dem MusicPal angezeigt)

Download
http://www.spittank.net/PalRemote-Beta.zip
Tungdil
 
Posts: 20
Joined: 18.04.2008, 20:42

Next

Return to MusicPal